The Swift Package Index logo.Swift Package Index

Build Information

Successful build of MicroMaxOnAppleSilicon, reference v3.0.3 (542c83), with Swift 6.4 for macOS (SPM) on 3 Oct 2026 18:32:09 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/mesqueeb/MicroMaxOnAppleSilicon.git
Reference: v3.0.3
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/mesqueeb/MicroMaxOnAppleSilicon
 * tag               v3.0.3     -> FETCH_HEAD
HEAD is now at 542c835 chore: release v3.0.3
Cloned https://github.com/mesqueeb/MicroMaxOnAppleSilicon.git
Revision (git rev-parse @):
542c835c91432166ce5d9d420a952580c7497b06
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/mesqueeb/MicroMaxOnAppleSilicon.git at v3.0.3
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.4
Building package at path:  $PWD
https://github.com/mesqueeb/MicroMaxOnAppleSilicon.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Pre-planning 1 / 125]
[Planning deferred tasks]
[34 / 52] MicroMaxOnAppleSilicon_MicroMaxOnAppleSilicon
[36 / 52]
[40 / 53] MicroMaxCBridge
[46 / 62]
[50 / 66]
[54 / 66] MicroMaxCBridge
[54 / 66] MicroMaxOnAppleSilicon
[66 / 107] MicroMaxCBridge
[69 / 107]
[74 / 107]
[77 / 107]
[81 / 107]
[83 / 107]
[86 / 107]
[89 / 107]
[91 / 107]
[92 / 107]
[98 / 107] MicroMaxOnAppleSilicon
[104 / 107] MicroMaxOnAppleSilicon
Build complete! (7.69 sec)
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:45:26: warning: implicit conversion loses integer precision: '__darwin_time_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
   45 |     return t.tv_sec*1000 + t.tv_usec/1000;
      |     ~~~~~~ ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:157:16: warning: '&' within '|' [-Wbitwise-op-parentheses]
  157 |     if(a->K-Z|z&S  |                              /* miss: other pos. or empty*/
      |              ~~^~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:157:16: note: place parentheses around the '&' expression to silence this warning
  157 |     if(a->K-Z|z&S  |                              /* miss: other pos. or empty*/
      |                ^
      |               (  )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:158:16: warning: '&' within '|' [-Wbitwise-op-parentheses]
  158 |        !(m<=q|X&8&&m>=l|X&S))                       /*   or window incompatible */
      |              ~~^~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:158:16: note: place parentheses around the '&' expression to silence this warning
  158 |        !(m<=q|X&8&&m>=l|X&S))                       /*   or window incompatible */
      |                ^
      |               (  )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:158:26: warning: '&' within '|' [-Wbitwise-op-parentheses]
  158 |        !(m<=q|X&8&&m>=l|X&S))                       /*   or window incompatible */
      |                        ~~^~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:158:26: note: place parentheses around the '&' expression to silence this warning
  158 |        !(m<=q|X&8&&m>=l|X&S))                       /*   or window incompatible */
      |                          ^
      |                         (  )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:162:16: warning: '&&' within '||' [-Wlogical-op-parentheses]
  161 |     W(d++<n||d<3||              /*** min depth = 2   iterative deepening loop */
      |                 ~~
  162 |       z&S&&K==I&&(GetTickCount()-Ticks<tlim&d<=MaxDepth&!micromax_should_stop|| /* root: deepen upto time / cancel */
      |       ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  163 |                   (K=X,L=Y&~S,Score=m,d=3)))                  /* time's up: go do best    */
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:162:16: note: place parentheses around the '&&' expression to silence this warning
  162 |       z&S&&K==I&&(GetTickCount()-Ticks<tlim&d<=MaxDepth&!micromax_should_stop|| /* root: deepen upto time / cancel */
      |                ^
      |       (
  163 |                   (K=X,L=Y&~S,Score=m,d=3)))                  /* time's up: go do best    */
      | 
      |                                            )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:167:19: warning: operator '?:' has lower precedence than '|'; '|' will be evaluated first [-Wbitwise-conditional-parentheses]
  167 |         m=-P<l|R<5?d-2?-I:e:-P;   /*** prune if > beta  unconsidered:static eval */
      |           ~~~~~~~~^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:167:19: note: place parentheses around the '|' expression to silence this warning
  167 |         m=-P<l|R<5?d-2?-I:e:-P;   /*** prune if > beta  unconsidered:static eval */
      |                   ^
      |           (       )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:167:19: note: place parentheses around the '?:' expression to evaluate it first
  167 |         m=-P<l|R<5?d-2?-I:e:-P;   /*** prune if > beta  unconsidered:static eval */
      |                   ^
      |                (              )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:174:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  174 |                 W(r=o[++j])                                /* loop over directions o[] */
      |                   ~^~~~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:174:20: note: place parentheses around the assignment to silence this warning
  174 |                 W(r=o[++j])                                /* loop over directions o[] */
      |                    ^
      |                   (       )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:174:20: note: use '==' to turn this assignment into an equality comparison
  174 |                 W(r=o[++j])                                /* loop over directions o[] */
      |                    ^
      |                    ==
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:181:29: warning: '&' within '|' [-Wbitwise-op-parentheses]
  181 |                         if(y&S|(y&15)>=BW)break;                 /* board edge hit           */
      |                            ~^~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:181:29: note: place parentheses around the '&' expression to silence this warning
  181 |                         if(y&S|(y&15)>=BW)break;                 /* board edge hit           */
      |                             ^
      |                            (  )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:202:47: warning: operator '?:' has lower precedence than '|'; '|' will be evaluated first [-Wbitwise-conditional-parentheses]
  202 |                                 v-=w[p]>0|R<EG?0:20;                   /*** freeze K in mid-game ***/
      |                                    ~~~~~~~~~~~^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:202:47: note: place parentheses around the '|' expression to silence this warning
  202 |                                 v-=w[p]>0|R<EG?0:20;                   /*** freeze K in mid-game ***/
      |                                    ~~~~~~~~~~~^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:202:47: note: place parentheses around the '?:' expression to evaluate it first
  202 |                                 v-=w[p]>0|R<EG?0:20;                   /*** freeze K in mid-game ***/
      |                                               ^
      |                                           (        )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:207:40: warning: operator '>>' has lower precedence than '-'; '-' will be evaluated first [-Wshift-op-parentheses]
  207 |                                     +(R-76>>2);                      /* end-game Pawn-push bonus */
      |                                       ~^~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:207:40: note: place parentheses around the '-' expression to silence this warning
  207 |                                     +(R-76>>2);                      /* end-game Pawn-push bonus */
      |                                        ^
      |                                       (   )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:218:39: warning: | has lower precedence than <; < will be evaluated first [-Wparentheses]
  218 |                                 C=R<EG|P-I|d<3||t&&p-3?C:d;            /* extend 1 ply if in-check */
      |                                   ~~~~^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:218:39: note: place parentheses around the '<' expression to silence this warning
  218 |                                 C=R<EG|P-I|d<3||t&&p-3?C:d;            /* extend 1 ply if in-check */
      |                                   ~~~~^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:218:39: note: place parentheses around the | expression to evaluate it first
  218 |                                 C=R<EG|P-I|d<3||t&&p-3?C:d;            /* extend 1 ply if in-check */
      |                                     ~~^~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:218:50: warning: '&&' within '||' [-Wlogical-op-parentheses]
  218 |                                 C=R<EG|P-I|d<3||t&&p-3?C:d;            /* extend 1 ply if in-check */
      |                                               ~~~^~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:218:50: note: place parentheses around the '&&' expression to silence this warning
  218 |                                 C=R<EG|P-I|d<3||t&&p-3?C:d;            /* extend 1 ply if in-check */
      |                                                  ^
      |                                                 (     )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:220:46: warning: operator '?:' has lower precedence than '|'; '|' will be evaluated first [-Wbitwise-conditional-parentheses]
  220 |                                     s=C>2|v>V?-D(16-k,-l,-V,-v,/*** futility, recursive eval. of reply */
      |                                       ~~~~~~~^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:220:46: note: place parentheses around the '|' expression to silence this warning
  220 |                                     s=C>2|v>V?-D(16-k,-l,-V,-v,/*** futility, recursive eval. of reply */
      |                                              ^
      |                                       (      )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:220:46: note: place parentheses around the '?:' expression to evaluate it first
  220 |                                     s=C>2|v>V?-D(16-k,-l,-V,-v,/*** futility, recursive eval. of reply */
      |                                              ^
      |                                           (
  221 |                                                  F,y&255,C):v;
      | 
      |                                                              )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:225:44: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  225 |                                     W(*sp++=*p++);
      |                                       ~~~~~^~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:225:44: note: place parentheses around the assignment to silence this warning
  225 |                                     W(*sp++=*p++);
      |                                            ^
      |                                       (         )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:225:44: note: use '==' to turn this assignment into an equality comparison
  225 |                                     W(*sp++=*p++);
      |                                            ^
      |                                            ==
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:235:46: warning: | has lower precedence than <; < will be evaluated first [-Wparentheses]
  235 |                                     Fifty = t|p<3?0:Fifty+1;
      |                                              ^~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:235:46: note: place parentheses around the '<' expression to silence this warning
  235 |                                     Fifty = t|p<3?0:Fifty+1;
      |                                              ^
      |                                               (  )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:235:46: note: place parentheses around the | expression to evaluate it first
  235 |                                     Fifty = t|p<3?0:Fifty+1;
      |                                              ^
      |                                             (  )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:235:50: warning: operator '?:' has lower precedence than '|'; '|' will be evaluated first [-Wbitwise-conditional-parentheses]
  235 |                                     Fifty = t|p<3?0:Fifty+1;
      |                                             ~~~~~^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:235:50: note: place parentheses around the '|' expression to silence this warning
  235 |                                     Fifty = t|p<3?0:Fifty+1;
      |                                                  ^
      |                                             (    )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:235:50: note: place parentheses around the '?:' expression to evaluate it first
  235 |                                     Fifty = t|p<3?0:Fifty+1;
      |                                                  ^
      |                                               (            )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:244:41: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
  244 |                             if(z&S&&Post&K==I&d>2&v>V&v<l){int *p=ps;char X,Y;
      |                                         ^~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:244:41: note: place parentheses around the '==' expression to silence this warning
  244 |                             if(z&S&&Post&K==I&d>2&v>V&v<l){int *p=ps;char X,Y;
      |                                         ^
      |                                          (   )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:244:41: note: place parentheses around the & expression to evaluate it first
  244 |                             if(z&S&&Post&K==I&d>2&v>V&v<l){int *p=ps;char X,Y;
      |                                         ^
      |                                     (     )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:253:46: warning: '&' within '|' [-Wbitwise-op-parentheses]
  253 |                                 m=v,X=x,Y=y|S&F;                       /* mark non-double with S   */
      |                                            ~~^~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:253:46: note: place parentheses around the '&' expression to silence this warning
  253 |                                 m=v,X=x,Y=y|S&F;                       /* mark non-double with S   */
      |                                              ^
      |                                             (  )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:257:32: warning: '&' within '^' [-Wbitwise-op-parentheses]
  257 |                         if(flag&15^4|u&32||                      /* no double or moved before*/
      |                            ~~~~^~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:257:32: note: place parentheses around the '&' expression to silence this warning
  257 |                         if(flag&15^4|u&32||                      /* no double or moved before*/
      |                                ^
      |                            (      )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:257:35: warning: '^' within '|' [-Wbitwise-op-parentheses]
  257 |                         if(flag&15^4|u&32||                      /* no double or moved before*/
      |                            ~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:257:35: note: place parentheses around the '^' expression to silence this warning
  257 |                         if(flag&15^4|u&32||                      /* no double or moved before*/
      |                                   ^
      |                            (        )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:257:39: warning: '&' within '|' [-Wbitwise-op-parentheses]
  257 |                         if(flag&15^4|u&32||                      /* no double or moved before*/
      |                                     ~~^~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:257:39: note: place parentheses around the '&' expression to silence this warning
  257 |                         if(flag&15^4|u&32||                      /* no double or moved before*/
      |                                       ^
      |                                      (   )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:259:50: warning: '&' within '|' [-Wbitwise-op-parentheses]
  259 |                            ((b[G=r<0?x&~15:BW-1|x&112]^32)<33    /* no virgin R in corner G, */
      |                                                ~~^~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:259:50: note: place parentheses around the '&' expression to silence this warning
  259 |                            ((b[G=r<0?x&~15:BW-1|x&112]^32)<33    /* no virgin R in corner G, */
      |                                                  ^
      |                                                 (    )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:258:31: warning: '&&' within '||' [-Wlogical-op-parentheses]
  257 |                         if(flag&15^4|u&32||                      /* no double or moved before*/
      |                                          ~~
  258 |                            p>2&&                                 /* no P & no lateral K move,*/
      |                            ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  259 |                            ((b[G=r<0?x&~15:BW-1|x&112]^32)<33    /* no virgin R in corner G, */
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  260 |                             ||b[G^1]|b[G^2]|b[FF=y+v-r])          /* no 2 empty sq. next to R */
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:258:31: note: place parentheses around the '&&' expression to silence this warning
  258 |                            p>2&&                                 /* no P & no lateral K move,*/
      |                               ^
      |                            (
  259 |                            ((b[G=r<0?x&~15:BW-1|x&112]^32)<33    /* no virgin R in corner G, */
  260 |                             ||b[G^1]|b[G^2]|b[FF=y+v-r])          /* no 2 empty sq. next to R */
      |                                                         )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:270:18: warning: | has lower precedence than ==; == will be evaluated first [-Wparentheses]
  270 |     C:FMAX( m=m+I|P==I?m:(X=Y=0); )                /* if stalemate, draw-score */
      |                  ^~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:72:21: note: expanded from macro 'FMAX'
   72 | #    define FMAX(x) x
      |                     ^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:270:18: note: place parentheses around the '==' expression to silence this warning
  270 |     C:FMAX( m=m+I|P==I?m:(X=Y=0); )                /* if stalemate, draw-score */
      |                  ^~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:72:21: note: expanded from macro 'FMAX'
   72 | #    define FMAX(x) x
      |                     ^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:270:18: note: place parentheses around the | expression to evaluate it first
  270 |     C:FMAX( m=m+I|P==I?m:(X=Y=0); )                /* if stalemate, draw-score */
      |               ~~~^~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:72:21: note: expanded from macro 'FMAX'
   72 | #    define FMAX(x) x
      |                     ^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:270:23: warning: operator '?:' has lower precedence than '|'; '|' will be evaluated first [-Wbitwise-conditional-parentheses]
  270 |     C:FMAX( m=m+I|P==I?m:(X=Y=0); )                /* if stalemate, draw-score */
      |               ~~~~~~~~^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:72:21: note: expanded from macro 'FMAX'
   72 | #    define FMAX(x) x
      |                     ^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:270:23: note: place parentheses around the '|' expression to silence this warning
  270 |     C:FMAX( m=m+I|P==I?m:(X=Y=0); )                /* if stalemate, draw-score */
      |               ~~~~~~~~^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:72:21: note: expanded from macro 'FMAX'
   72 | #    define FMAX(x) x
      |                     ^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:270:23: note: place parentheses around the '?:' expression to evaluate it first
  270 |     C:FMAX( m=m+I|P==I?m:(X=Y=0); )                /* if stalemate, draw-score */
      |                   ~~~~^~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:72:21: note: expanded from macro 'FMAX'
   72 | #    define FMAX(x) x
      |                     ^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:489:103: warning: '/*' within block comment [-Wcomment]
  489 |         /* engine_printf("# c='%c' i=%d od[i]=%d j=%d (%3d,%8x)\n",c?c:' ',i,od[i],j,o[j-1],of[j-1]); /**/
      |                                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:736:34: warning: operator '>>' has lower precedence than '+'; '+' will be evaluated first [-Wshift-op-parentheses]
  736 |             MovesLeft = -(GamePtr+(Side==WHITE)>>1);
      |                           ~~~~~~~^~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:736:34: note: place parentheses around the '+' expression to silence this warning
  736 |             MovesLeft = -(GamePtr+(Side==WHITE)>>1);
      |                                  ^
      |                           (                    )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:752:40: warning: '&&' within '||' [-Wlogical-op-parentheses]
  752 |         if (!strcmp(command, "undo")   && (nr=1) ||
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ ~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:752:40: note: place parentheses around the '&&' expression to silence this warning
  752 |         if (!strcmp(command, "undo")   && (nr=1) ||
      |                                        ^
      |             (                                   )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:753:40: warning: '&&' within '||' [-Wlogical-op-parentheses]
  752 |         if (!strcmp(command, "undo")   && (nr=1) ||
      |                                                  ~~
  753 |             !strcmp(command, "remove") && (nr=2)   ) {
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:753:40: note: place parentheses around the '&&' expression to silence this warning
  753 |             !strcmp(command, "remove") && (nr=2)   ) {
      |                                        ^
      |             (                                   )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:829:59: warning: '&&' within '||' [-Wlogical-op-parentheses]
  829 |                                 if(color==BLACK && m<0x10 && p==oo[m+16] ||
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ ~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:829:59: note: place parentheses around the '&&' expression to silence this warning
  829 |                                 if(color==BLACK && m<0x10 && p==oo[m+16] ||
      |                                                           ^
      |                                    (                                    )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:830:59: warning: '&&' within '||' [-Wlogical-op-parentheses]
  829 |                                 if(color==BLACK && m<0x10 && p==oo[m+16] ||
      |                                                                          ~~
  830 |                                    color==WHITE && m>0x6F && p==oo[m-0x70]) b[m] -= 32;
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:830:59: note: place parentheses around the '&&' expression to silence this warning
  830 |                                    color==WHITE && m>0x6F && p==oo[m-0x70]) b[m] -= 32;
      |                                                           ^
      |                                    (                                      )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:832:72: warning: '&&' within '||' [-Wlogical-op-parentheses]
  832 |                             if((m==0x00 || m==BW-1   ) && color==BLACK && p==oo[m+16] ||
      |                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ ~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:832:72: note: place parentheses around the '&&' expression to silence this warning
  832 |                             if((m==0x00 || m==BW-1   ) && color==BLACK && p==oo[m+16] ||
      |                                                                        ^
      |                                (                                                     )
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:833:72: warning: '&&' within '||' [-Wlogical-op-parentheses]
  832 |                             if((m==0x00 || m==BW-1   ) && color==BLACK && p==oo[m+16] ||
      |                                                                                       ~~
  833 |                                (m==0x70 || m==0x6F+BW) && color==WHITE && p==oo[m-0x70])
      |                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Sources/CBridge/Fairymax/Fairymax.c:833:72: note: place parentheses around the '&&' expression to silence this warning
  833 |                                (m==0x70 || m==0x6F+BW) && color==WHITE && p==oo[m-0x70])
      |                                                                        ^
      |                                (                                                       )
33 warnings generated.
Build complete.
{
  "c_language_standard" : "gnu17",
  "dependencies" : [
  ],
  "manifest_display_name" : "MicroMaxOnAppleSilicon",
  "name" : "MicroMaxOnAppleSilicon",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    }
  ],
  "products" : [
    {
      "name" : "MicroMaxOnAppleSilicon",
      "targets" : [
        "MicroMaxCBridge",
        "MicroMaxOnAppleSilicon"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MicroMaxOnAppleSiliconTests",
      "module_type" : "SwiftTarget",
      "name" : "MicroMaxOnAppleSiliconTests",
      "path" : "Tests",
      "sources" : [
        "MicroMaxOnAppleSiliconTests.swift",
        "MicroMaxStopRaceTests.swift"
      ],
      "target_dependencies" : [
        "MicroMaxCBridge",
        "MicroMaxOnAppleSilicon"
      ],
      "type" : "test"
    },
    {
      "c99name" : "MicroMaxOnAppleSilicon",
      "module_type" : "SwiftTarget",
      "name" : "MicroMaxOnAppleSilicon",
      "path" : "Sources/SwiftBridge",
      "product_memberships" : [
        "MicroMaxOnAppleSilicon"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/SwiftBridge/Resources/fmax.ini",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "FENParser.swift",
        "Helpers.swift",
        "MicroMaxBridge.swift",
        "Types.swift"
      ],
      "target_dependencies" : [
        "MicroMaxCBridge"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MicroMaxCBridge",
      "module_type" : "ClangTarget",
      "name" : "MicroMaxCBridge",
      "path" : "Sources/CBridge",
      "product_memberships" : [
        "MicroMaxOnAppleSilicon"
      ],
      "sources" : [
        "EngineContext.c",
        "Fairymax/Fairymax.c",
        "MicroMaxEngine.c"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Done.