reasonml / reason

Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems
http://reasonml.github.io
MIT License
10.09k stars 424 forks source link

Reason V4 [Stack 4/n #2619] [Make merlin and rtop respect latest syntax by default] #2619

Open jordwalke opened 3 years ago

jordwalke commented 3 years ago

Reason v4 rtop and merlin support


This is diff 3 in a stack of github PRs: Only examine the most recent commit in this PR to understand what this specific PR accomplishes. The whole stack is:

  1. Reason V4 [Stacked Diff 1/n #2605] [Allow multiple versions of Reason] …
  2. Reason V4 [Stacked Diff 2/n #2599] [String Template Literals] …
  3. Reason V4 [Stacked Diff 3/n #2614] [Parse Hashtags for polymorphic va… …
  4. YOU ARE HERE --> Reason V4 [Stacked Diff 4/n #2619] [Make merlin and rtop respect late… …

Enables the new "v4 syntax" (actually marked v3.8) in merlin, and rtop. This should also make refmterr print the new syntax for types.

This is diff 4 in a stack of github PRs: Only examine the most recent commit in this PR to understand what this specific PR accomplishes. The whole stack is:

  1. Reason V4 [Stacked Diff 1/n #2605] [Allow multiple versions of Reason] …
  2. Reason V4 [Stacked Diff 2/n #2599] [String Template Literals] …
  3. Reason V4 [Stacked Diff 3/n #2614] [Parse Hashtags for polymorphic va… …
  4. YOU ARE HERE --> Reason V4 [Stacked Diff 4/n #2619] [Make merlin and rtop respect late… …
idkjs commented 3 years ago

How does one build this if you wanted to hack on it? I dont know what to do after this error:

mando@mandalarian ~/Github> gh repo clone idkjs/reason
Cloning into 'reason'...
remote: Enumerating objects: 15697, done.
remote: Counting objects: 100% (36/36), done.
remote: Compressing objects: 100% (33/33), done.
remote: Total 15697 (delta 9), reused 3 (delta 0), pack-reused 15661
Receiving objects: 100% (15697/15697), 22.95 MiB | 9.58 MiB/s, done.
Resolving deltas: 100% (10358/10358), done.
Updating upstream
From https://github.com/reasonml/reason
 * [new branch]                master     -> upstream/master
mando@mandalarian ~/Github> cd reason
mando@mandalarian ~/G/reason (master)> gh pr checkout 2619
? Which should be the base repository (used for e.g. querying issues) for this directory? reasonml/reason
remote: Enumerating objects: 206, done.
remote: Counting objects: 100% (162/162), done.
remote: Total 206 (delta 162), reused 162 (delta 162), pack-reused 44
Receiving objects: 100% (206/206), 55.49 KiB | 11.10 MiB/s, done.
Resolving deltas: 100% (172/172), completed with 117 local objects.
From https://github.com/reasonml/reason
 * [new branch]                MerlinRtopNewSyntax -> upstream/MerlinRtopNewSyntax
Switched to a new branch 'MerlinRtopNewSyntax'
mando@mandalarian ~/G/reason (MerlinRtopNewSyntax)> code .
mando@mandalarian ~/G/reason (MerlinRtopNewSyntax)> make install
opam pin add reason . -y
[reason.3.7.0] synchronised from git+file:///Users/mando/Github/reason#MerlinRtopNewSyntax
reason is now pinned to git+file:///Users/mando/Github/reason#MerlinRtopNewSyntax (version 3.7.0)

The following dependencies couldn't be met:
  - reason -> ocaml < 4.12
      base of this switch (use `--unlock-base' to force)

[NOTE] Pinning command successful, but your installed packages may be out of sync.
make: *** [install] Error 20

So I then run ~/G/reason (MerlinRtopNewSyntax)> opam switch create . ocaml-base-compiler.4.11.0 --deps-only

then make install and make build which gets me to:

-> installed utop.2.7.0
Done.
# Run eval (opam env) to update the current shell environment
mando@mandalarian ~/G/reason (MerlinRtopNewSyntax)> eval (opam env)
mando@mandalarian ~/G/reason (MerlinRtopNewSyntax)> make install
opam pin add reason . -y
[reason.3.7.0] synchronised from git+file:///Users/mando/Github/reason#MerlinRtopNewSyntax
reason is now pinned to git+file:///Users/mando/Github/reason#MerlinRtopNewSyntax (version 3.7.0)

The following actions will be performed:
  - install reason 3.7.0*
[reason.3.7.0] synchronised from git+file:///Users/mando/Github/reason#MerlinRtopNewSyntax

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> installed reason.3.7.0
Done.
mando@mandalarian ~/G/reason (MerlinRtopNewSyntax)> code .
mando@mandalarian ~/G/reason (MerlinRtopNewSyntax)> make build
dune build
File "reason_syntax_util.cppo.ml", line 764, characters 8-26:
Error (warning 32): unused value last_index_rec_opt.
File "src/reason-parser/reason_parser.mly", line 2744, characters 19-34:
Error (alert deprecated): Reason_migrate_parsetree.OCaml_408.Ast.Longident.parse
this function may misparse its input,
use "Parse.longident" or "Longident.unflatten"
File "src/reason-parser/reason_pprint_ast.ml", line 1958, characters 9-17:
1958 |     let {stdAttrs; jsxAttrs; stylisticAttrs} = partitionAttributes x.pexp_attributes in
                ^^^^^^^^
Error (warning 27): unused variable stdAttrs.
File "src/reason-parser/reason_pprint_ast.ml", line 1958, characters 19-27:
1958 |     let {stdAttrs; jsxAttrs; stylisticAttrs} = partitionAttributes x.pexp_attributes in
                          ^^^^^^^^
Error (warning 27): unused variable jsxAttrs.
make: *** [build] Error 1

Maybe i should be using a different compiler?

Just to be thorough, I tried building with esy without success:

Details ```sh ~/Github> gh repo clone idkjs/reason reason-esy Cloning into 'reason-esy'... remote: Enumerating objects: 15697, done. remote: Counting objects: 100% (36/36), done. remote: Compressing objects: 100% (33/33), done. remote: Total 15697 (delta 9), reused 3 (delta 0), pack-reused 15661 Receiving objects: 100% (15697/15697), 22.95 MiB | 14.04 MiB/s, done. Resolving deltas: 100% (10358/10358), done. Updating upstream From https://github.com/reasonml/reason * [new branch] master -> upstream/master mando@mandalarian ~/Github> cd reason-esy/ mando@mandalarian ~/G/reason-esy (master)> gh pr checkout 2619 ? Which should be the base repository (used for e.g. querying issues) for this directory? reasonml/reason remote: Enumerating objects: 206, done. remote: Counting objects: 100% (162/162), done. remote: Total 206 (delta 162), reused 162 (delta 162), pack-reused 44 Receiving objects: 100% (206/206), 55.49 KiB | 11.10 MiB/s, done. Resolving deltas: 100% (172/172), completed with 117 local objects. From https://github.com/reasonml/reason * [new branch] MerlinRtopNewSyntax -> upstream/MerlinRtopNewSyntax Switched to a new branch 'MerlinRtopNewSyntax' mando@mandalarian ~/G/reason-esy (MerlinRtopNewSyntax)> esy info esy 0.6.10 (using esy.json) info fetching: done info installing: done info building ocaml@4.6.1000@d41d8cd9 error: build failed with exit code: 1 build log: # esy-build-package: building: ocaml@4.6.1000 # esy-build-package: pwd: /Users/mando/.esy/3/b/ocaml-4.6.1000-a4275564 # esy-build-package: running: './esy-configure' '-no-cfi' '-prefix' '/Users/mando/.esy/3__________________________________________________________________/s/ocaml-4.6.1000-a4275564' [esy-configure] Detected OSX / Linux environment Configuring OCaml version 4.06.1 Configuring for host x86_64-apple-darwin20.4.0 ... Configuring for target x86_64-apple-darwin20.4.0 ... Using compiler gcc. Compiler family and version: clang-12-0. The C compiler is ISO C99 compliant. Checking the sizes of integers and pointers... Wow! A 64 bit architecture! This is a little-endian architecture. Doubles can be word-aligned. 64-bit integers can be word-aligned. ranlib found #! appears to work in shell scripts. Signals have the System V semantics. expm1(), log1p(), hypot(), copysign() found. issetugid() found. socklen_t is defined in stdint.h found. unistd.h found. off_t is defined in dirent.h found. sys/select.h found. stat() supports nanosecond precision. sys/shm.h found. No replay debugger (missing system calls) System stack overflow can be detected. POSIX threads library supported. Options for linking with POSIX threads: -lpthread Bytecode threads library not supported (missing system calls) [WARNING] Cannot compile X11 program. [WARNING] X11 not found, the "graph" library will not be supported. [WARNING] BFD library not found, 'objinfo' will be unable to display info on .cmxs files. CFI support: disabled by command-line option -no-cfi ** Configuration summary ** Directories where OCaml will be installed: binaries.................. /Users/mando/.esy/3__________________________________________________________________/s/ocaml-4.6.1000-a4275564/bin standard library.......... /Users/mando/.esy/3__________________________________________________________________/s/ocaml-4.6.1000-a4275564/lib/ocaml manual pages.............. /Users/mando/.esy/3__________________________________________________________________/s/ocaml-4.6.1000-a4275564/man (with extension .1) Configuration for the bytecode compiler: C compiler used........... gcc options for compiling..... -O2 -fno-strict-aliasing -fwrapv options for linking....... -lpthread shared libraries not supported Configuration for the native-code compiler: hardware architecture..... amd64 OS variant................ macosx C compiler used........... gcc options for compiling..... -O2 -fno-strict-aliasing -fwrapv options for linking....... assembler ................ clang -arch x86_64 -Wno-trigraphs -c preprocessed assembler ... clang -arch x86_64 -Wno-trigraphs -c assembler supports CFI ... no with frame pointers....... no naked pointers forbidden.. no spacetime profiling....... no reserved bits in header... no C plugins................. no compile with -fPIC........ no native dynlink ........... true profiling with gprof ..... supported using flambda middle-end . no force safe strings ............. no (-safe-string is the default per-file option) flat float arrays ........ yes afl-fuzz always enabled .. no Source-level replay debugger: not supported Additional libraries supported: unix str dynlink bigarray raw_spacetime_lib systhreads The "graph" library: not supported ** OCaml configuration completed successfully ** # esy-build-package: running: './esy-build' [esy-build] Detected OSX / Linux environment /Applications/Xcode.app/Contents/Developer/usr/bin/make -C byterun all echo "/Users/mando/.esy/3__________________________________________________________________/s/ocaml-4.6.1000-a4275564/lib/ocaml/stublibs" > ld.conf sed -n -e '/^ /s/ \([A-Z]\)/ \&\&lbl_\1/gp' \ -e '/^}/q' caml/instruct.h > caml/jumptbl.h ../tools/make-version-header.sh ../VERSION > caml/version.h gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE stacks.c echo "/Users/mando/.esy/3__________________________________________________________________/s/ocaml-4.6.1000-a4275564/lib/ocaml" >> ld.conf gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE fix_code.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE startup_aux.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE freelist.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE major_gc.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE minor_gc.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE memory.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE alloc.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE roots.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE globroots.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE fail.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE signals.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE signals_byt.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE printexc.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE backtrace_prim.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE backtrace.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE compare.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE ints.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE floats.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE str.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE array.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE io.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE extern.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE intern.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE hash.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE sys.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE meta.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE parsing.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE gc_ctrl.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE terminfo.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE md5.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE obj.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE lexing.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE callback.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE debugger.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE weak.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE compact.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE finalise.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE custom.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE dynlink.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE spacetime.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE afl.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE unix.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE bigarray.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE main.c sed -n -e "s/CAMLprim value \([a-z0-9_][a-z0-9_]*\).*/\1/p" alloc.c array.c compare.c extern.c floats.c gc_ctrl.c hash.c intern.c interp.c ints.c io.c lexing.c md5.c meta.c obj.c parsing.c signals.c str.c sys.c terminfo.c callback.c weak.c finalise.c stacks.c dynlink.c backtrace_prim.c backtrace.c spacetime.c afl.c \ | LC_ALL=C sort | uniq > primitives gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE interp.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE misc.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE startup.c (echo '#define CAML_INTERNALS'; \ echo '#include "caml/mlvalues.h"'; \ echo '#include "caml/prims.h"'; \ sed -e 's/.*/extern value &();/' primitives; \ echo 'c_primitive caml_builtin_cprim[] = {'; \ sed -e 's/.*/ &,/' primitives; \ echo ' 0 };'; \ echo 'char * caml_names_of_builtin_cprim[] = {'; \ sed -e 's/.*/ "&",/' primitives; \ echo ' 0 };') > prims.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE prims.c ar rc libcamlrun.a interp.o misc.o stacks.o fix_code.o startup_aux.o startup.o freelist.o major_gc.o minor_gc.o memory.o alloc.o roots.o globroots.o fail.o signals.o signals_byt.o printexc.o backtrace_prim.o backtrace.o compare.o ints.o floats.o str.o array.o io.o extern.o intern.o hash.o sys.o meta.o parsing.o gc_ctrl.o terminfo.o md5.o obj.o lexing.o callback.o debugger.o weak.o compact.o finalise.o custom.o dynlink.o spacetime.o afl.o unix.o bigarray.o main.o; ranlib libcamlrun.a gcc -O2 -fno-strict-aliasing -fwrapv -Wall -g -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -Wl,-no_compact_unwind -o ocamlrun prims.o libcamlrun.a -lpthread cp byterun/ocamlrun boot/ocamlrun /Applications/Xcode.app/Contents/Developer/usr/bin/make -C yacc all gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -I../byterun -o closure.o closure.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -I../byterun -o error.o error.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -I../byterun -o lalr.o lalr.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -I../byterun -o lr0.o lr0.c echo "#define OCAML_VERSION \"`sed -e 1q ../VERSION | tr -d '\r'`\"" > version.h gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -I../byterun -o mkpar.o mkpar.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -I../byterun -o output.o output.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -I../byterun -o reader.o reader.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -I../byterun -o skeleton.o skeleton.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -I../byterun -o symtab.o symtab.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -I../byterun -o verbose.o verbose.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -I../byterun -o warshall.o warshall.c gcc -c -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -I../byterun -o main.o main.c gcc -O2 -fno-strict-aliasing -fwrapv -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DCAML_NAME_SPACE -Wl,-no_compact_unwind -o ocamlyacc closure.o error.o lalr.o lr0.o main.o mkpar.o output.o reader.o skeleton.o symtab.o verbose.o warshall.o cp yacc/ocamlyacc boot/ocamlyacc /Applications/Xcode.app/Contents/Developer/usr/bin/make -C stdlib \ COMPILER="../boot/ocamlc -use-prims ../byterun/primitives" all ../boot/ocamlrun ../boot/ocamlc -use-prims ../byterun/primitives -strict-sequence -absname -w +a-4-9-41-42-44-45-48 -g -warn-error A -bin-annot -nostdlib -safe-string -strict-formats `sh ./Compflags camlinternalFormatBasics.cmi` -c camlinternalFormatBasics.mli sed -e "s|%%VERSION%%|`sed -e 1q ../VERSION | tr -d '\r'`|" sys.mlp > sys.ml for suff in '' d i; do \ echo '#!/Users/mando/.esy/3__________________________________________________________________/s/ocaml-4.6.1000-a4275564/bin/ocamlrun'$suff > camlheader$suff && \ echo '#!/Users/mando/.esy/3__________________________________________________________________/s/ocaml-4.6.1000-a4275564/bin/ocamlrun'$suff >target_camlheader$suff; \ done && \ echo '#!' | tr -d '\012' > camlheader_ur; for suff in '' d i; do \ echo '#!/Users/mando/.esy/3__________________________________________________________________/s/ocaml-4.6.1000-a4275564/bin/ocamlrun'$suff > camlheader$suff && \ echo '#!/Users/mando/.esy/3__________________________________________________________________/s/ocaml-4.6.1000-a4275564/bin/ocamlrun'$suff >target_camlheader$suff; \ done && \ echo '#!' | tr -d '\012' > camlheader_ur; for suff in '' d i; do \ echo '#!/Users/mando/.esy/3__________________________________________________________________/s/ocaml-4.6.1000-a4275564/bin/ocamlrun'$suff > camlheader$suff && \ echo '#!/Users/mando/.esy/3__________________________________________________________________/s/ocaml-4.6.1000-a4275564/bin/ocamlrun'$suff >target_camlheader$suff; \ done && \ echo '#!' | tr -d '\012' > camlheader_ur; Fatal error: exception Invalid_argument("Sys.getcwd not implemented") make[1]: *** [camlinternalFormatBasics.cmi] Error 2 make: *** [coldstart] Error 2 error: command failed: './esy-build' (exited with 2) esy-build-package: exiting with errors above... building ocaml@4.6.1000 esy: exiting due to errors above ```


Any guidance will be greatly appreciated.

I'm looking forward to this release and am happy to help in any small way I can.

Thank you.