alvisespano / Polygen

The famous random sentence generator.
Other
39 stars 9 forks source link

Errore Compilazione OCaml >= 4.04.0 #14

Open iacopy opened 6 years ago

iacopy commented 6 years ago

Ciao! Ho provato a lanciare un make fallendo miseramente. Dove sbaglio? Vi incollo l'errore. Sapreste indirizzarmi?

$ ocaml --version
The OCaml toplevel, version 4.06.0
$ ocamlopt --version
4.06.0
$ make
ocamlopt.opt -c -inline 23 -unsafe ver.ml -o ver.cmx
ocamlopt.opt -c -inline 23 -unsafe prelude.ml -o prelude.cmx
ocamlopt.opt -c -inline 23 -unsafe err.ml -o err.cmx
ocamlopt.opt -c -inline 23 -unsafe absyn.ml -o absyn.cmx
ocamlopt.opt -c -inline 23 -unsafe env.ml -o env.cmx
ocamlopt.opt -c -inline 23 -unsafe check.ml -o check.cmx
File "check.ml", line 40, characters 59-62:
Error: This expression has type elt -> Prelude.Prelude.symbol
       but an expression was expected of type elt -> elt
       Type Prelude.Prelude.symbol = string is not compatible with type
         elt = Prelude.Prelude.symbol * Err.loc option
make: *** [check.cmx] Error 2
alvisespano commented 6 years ago

Scusa tu, non abbiamo ancora sistemato la versione del repo, che tecnicamente sarebbe una dev e non una master :P Se vuoi compilare la vecchia versione stabile, la trovi nello zip: c'è uno zip dentrolo zip, che contiene i sorgenti della 1.0.6. Dovresti poterla compilare con make.

2018-01-19 20:59 GMT+01:00 iacopy notifications@github.com:

Ciao! Ho provato a lanciare un make fallendo miseramente. Dove sbaglio? Vi incollo l'errore. Sapreste indirizzarmi?

$ ocaml --version The OCaml toplevel, version 4.06.0 $ ocamlopt --version 4.06.0 $ make ocamlopt.opt -c -inline 23 -unsafe ver.ml -o ver.cmx ocamlopt.opt -c -inline 23 -unsafe prelude.ml -o prelude.cmx ocamlopt.opt -c -inline 23 -unsafe err.ml -o err.cmx ocamlopt.opt -c -inline 23 -unsafe absyn.ml -o absyn.cmx ocamlopt.opt -c -inline 23 -unsafe env.ml -o env.cmx ocamlopt.opt -c -inline 23 -unsafe check.ml -o check.cmx File "check.ml", line 40, characters 59-62: Error: This expression has type elt -> Prelude.Prelude.symbol but an expression was expected of type elt -> elt Type Prelude.Prelude.symbol = string is not compatible with type elt = Prelude.Prelude.symbol * Err.loc option make: *** [check.cmx] Error 2

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/alvisespano/Polygen/issues/14, or mute the thread https://github.com/notifications/unsubscribe-auth/ACcZxsVZbl6BSxcZRkdvKkTrSMAHNB0qks5tMPQ6gaJpZM4Rk-kZ .

tajmone commented 6 years ago

Riguardo a questo punto, secondo me varrebbe la pena creare un TAG per la 1.0.6, così che i codici sorgenti dell'ultima release ufficiale siano reperibili sul repo.

Basterebbe far sparire i sorgenti attuali, buttare dentro quelli vecchi e committare, e poi creare un tag; dopidiché ributtare quelli attuali e ricommittare. Questo rendrebbe disponibile il commit legato al tag della v1.0.6 anche nella pagina delle release (GitHub associa le release ai tag, automaticamente), e dipanerebbe la confusione riguardo lo stato attuale: chi volesse provare a compilare andrebbe quasi sicuramente a cercare tra i tag (via Git o via browser) o nella pagina delle release (per download manuale tramite zippato).

alvisespano commented 6 years ago

oppure possiamo fare un branch dev con la nuova versione che non compila ancora e nel master la versione stabile. Ma in realtà tra qualche giorno riesco a mettermi e farò intanto la 1.0.7 con unicode. È che ho perso tempo con vscode e tutti i casini di cygwin ecc.

Il giorno sab 20 gen 2018 alle 16:53 Tristano Ajmone notifications@amc.com ha scritto:

Riguardo a questo punto, secondo me varrebbe la pena creare un TAG per la 1.0.6, così che i codici sorgenti dell'ultima release ufficiale siano reperibili sul repo.

Basterebbe far sparire i sorgenti attuali, buttare dentro quelli vecchi e committare, e poi creare un tag; dopidiché ributtare quelli attuali e ricommittare. Questo rendrebbe disponibile il commit legato al tag della v1.0.6 anche nella pagina delle release (GitHub associa le release ai tag, automaticamente), e dipanerebbe la confusione riguardo lo stato attuale: chi volesse provare a compilare andrebbe quasi sicuramente a cercare tra i tag (via Git o via browser) o nella pagina delle release (per download manuale tramite zippato).

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/alvisespano/Polygen/issues/14#issuecomment-359180925, or mute the thread https://github.com/notifications/unsubscribe-auth/ACcZxthZCzP58OJSGP8D2g5vwO9rL2gMks5tMgwWgaJpZM4Rk-kZ .

tajmone commented 6 years ago

Come preferisci. Che il tag lo si crei in una branch o un'altra non cambia, alla fine in Git un tag è un ref preciso ed è indipendente dalle branch. Il vantaggio su GitHub è che per ogni repository viene offrerto un dropdown per scegliere la branch o il tag di release (in realtà il tag e basta, ma in genere li si usa solo per released qui).

Ma in realtà tra qualche giorno riesco a mettermi e farò intanto la 1.0.7 con unicode.

Ottima notizia! 😃

È che ho perso tempo con vscode e tutti i casini di cygwin ecc.

hai fatto bene, vale la pena organizzare un buon ambiente di lavoro, sul lungo termine (ho scoperto a mie spese) si risparmia un sacco di tempo.

iacopy commented 6 years ago

Grazie della pronta risposta! Anche se la fase è di precoce transizione/riesumazione, intanto se vi può essere utile vi riporto feedback lato Darwin. Con la 1.0.6 l'errore che ho è questo:

$ make
ocamllex lexer.mll
67 states, 1471 transitions, table size 6286 bytes
ocamlyacc parser.mly
3 rules never reduced
1 shift/reduce conflict, 12 reduce/reduce conflicts.
ocamldep -native ver.ml prelude.ml err.ml absyn.ml env.ml check.ml pre.ml gen.ml fake.ml parser.ml lexer.ml io.ml main.ml parser.mli >.depend
File "parser.mli", line 1, characters 0-1:
Error: Syntax error
make: *** [.depend] Error 2
alvisespano commented 6 years ago

Grazie mille, sarebbe molto apprezzato.

2018-01-21 7:58 GMT+01:00 iacopy notifications@github.com:

Grazie della pronta risposta! Anche se la fase è di precoce transizione/riesumazione, intanto se vi può essere utile vi riporto feedback lato Darwin con la 1.0.6.

$ make ocamllex lexer.mll 67 states, 1471 transitions, table size 6286 bytes ocamlyacc parser.mly 3 rules never reduced 1 shift/reduce conflict, 12 reduce/reduce conflicts. ocamldep -native ver.ml prelude.ml err.ml absyn.ml env.ml check.ml pre.ml gen.ml fake.ml parser.ml lexer.ml io.ml main.ml parser.mli >.depend File "parser.mli", line 1, characters 0-1: Error: Syntax error make: *** [.depend] Error 2

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/alvisespano/Polygen/issues/14#issuecomment-359228377, or mute the thread https://github.com/notifications/unsubscribe-auth/ACcZxgGnc_m-IvcWwh8QMNS5apO9ie7Xks5tMuAdgaJpZM4Rk-kZ .

alvisespano commented 6 years ago

Ho committato la 1.0.6a nel master branch, cioè la versione "storica" semplicemente ripulita e compilante col compilatore OCaml di oggi. Si builda con "make all", come in passato; è sufficiente avere ocaml installato.

2018-01-21 10:58 GMT+01:00 Alvise Spanò spano.alvise@gmail.com:

Grazie mille, sarebbe molto apprezzato.

2018-01-21 7:58 GMT+01:00 iacopy notifications@github.com:

Grazie della pronta risposta! Anche se la fase è di precoce transizione/riesumazione, intanto se vi può essere utile vi riporto feedback lato Darwin con la 1.0.6.

$ make ocamllex lexer.mll 67 states, 1471 transitions, table size 6286 bytes ocamlyacc parser.mly 3 rules never reduced 1 shift/reduce conflict, 12 reduce/reduce conflicts. ocamldep -native ver.ml prelude.ml err.ml absyn.ml env.ml check.ml pre.ml gen.ml fake.ml parser.ml lexer.ml io.ml main.ml parser.mli >.depend File "parser.mli", line 1, characters 0-1: Error: Syntax error make: *** [.depend] Error 2

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/alvisespano/Polygen/issues/14#issuecomment-359228377, or mute the thread https://github.com/notifications/unsubscribe-auth/ACcZxgGnc_m-IvcWwh8QMNS5apO9ie7Xks5tMuAdgaJpZM4Rk-kZ .

tajmone commented 6 years ago

Ottima notizia! Hai anche creato un tag per la release? Converrebbe farlo.

Però se vuoi attenerti alla SemVer, 1.0.6a non è una versione valida (1.0.6 sì).

Scusa il silenzio, non sono sparito! ... anzi, sto lavorando a un tool per PolyGen che è quasi pronto. Funziona già, ma voglio ripulirlo bene prima di pubblicarlo.

Alla fine come hai installato OCaml su Windows? Mi interesserebbe capire qual'è il modo migliore, senza intoppi. Magari, visti i problemi attuali con OCaml, varrebbe la pena buttare giù due appunti sul README di Win riguardo a OCaml su Win10.

alvisespano commented 6 years ago

Tranquillo, anche io ho avuto tante cose da fare di lavoro. Come si fanno i tag? Non ho mai provato. E' la stessa cosa che su SVN? (cioè in pratica un freeze del repo committato dentro la dir tags nella root del repo)

Alvise

Il giorno 23 gennaio 2018 16:14, Tristano Ajmone notifications@github.com ha scritto:

Ottima notizia! Hai anche creato un tag per la release? Converrebbe farlo.

Però se vuoi attenerti alla SemVer, 1.0.6a non è una versione valida ( 1.0.6 sì).

Scusa il silenzio, non sono sparito! ... anzi, sto lavorando a un tool per PolyGen che è quasi pronto. Funziona già, ma voglio ripulirlo bene prima di pubblicarlo.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/alvisespano/Polygen/issues/14#issuecomment-359821576, or mute the thread https://github.com/notifications/unsubscribe-auth/ACcZxoMl1s7zKofLBoQOHzNBPgS9YosMks5tNfdzgaJpZM4Rk-kZ .

tajmone commented 6 years ago

Non so come funzioni con SVN, ma in questo caso ti consiglio ti crearlo direttamente sul sito di GitHub dato che GitHub crea automaticamente anche una release, e puoi aggiungere del testo descrittivo e (volendo) anche allegare degli zippati con precompilati binari. Fatto ciò, sul repository verrà creato anche un tag di Git (avremmo potuto farlo da Git, ma c'è di mezzo la release GitHub).

È abbastanza intuitivo dato che il sito ti guida nel processo:

https://help.github.com/articles/creating-releases/

e non è una cosa irreversibile (lo si può modificare, cancellare, ecc.). Ovviamente è meglio non cancellare mai una release, ma piuttosto crearne una di rettifica.

iacopy commented 6 years ago

Ho pullato il master, quindi la 1.0.6a. Su linux compila e va alla grande. Su Mac ancora non arriva in fondo:

$ make all
ocamlopt -c -inline 23 -unsafe ver.ml -o ver.cmx
ocamlopt -c -inline 23 -unsafe prelude.ml -o prelude.cmx
ocamlopt -c -inline 23 -unsafe err.ml -o err.cmx
ocamlopt -c -inline 23 -unsafe absyn.ml -o absyn.cmx
ocamlopt -c -inline 23 -unsafe env.ml -o env.cmx
ocamlopt -c -inline 23 -unsafe check.ml -o check.cmx
File "check.ml", line 40, characters 59-62:
Error: This expression has type elt -> Prelude.Prelude.symbol
       but an expression was expected of type elt -> elt
       Type Prelude.Prelude.symbol = string is not compatible with type
         elt = Prelude.Prelude.symbol * Err.loc option
make: *** [check.cmx] Error 2
alvisespano commented 6 years ago

Non è possibile. Assicurati che: non stai compilando il branch dev; hai un compilatore ocaml recente; fai un make clean prima di rebuildare/buildare. Anche un make distclean puoi provare prima di make all.

Il giorno mar 23 gen 2018 alle 21:43 iacopy notifications@github.com ha scritto:

Ho pullato il master, quindi la 1.0.6a. Su linux compila e va alla grande. Su Mac ancora non arriva in fondo:

$ make all ocamlopt -c -inline 23 -unsafe ver.ml -o ver.cmx ocamlopt -c -inline 23 -unsafe prelude.ml -o prelude.cmx ocamlopt -c -inline 23 -unsafe err.ml -o err.cmx ocamlopt -c -inline 23 -unsafe absyn.ml -o absyn.cmx ocamlopt -c -inline 23 -unsafe env.ml -o env.cmx ocamlopt -c -inline 23 -unsafe check.ml -o check.cmx File "check.ml", line 40, characters 59-62: Error: This expression has type elt -> Prelude.Prelude.symbol but an expression was expected of type elt -> elt Type Prelude.Prelude.symbol = string is not compatible with type elt = Prelude.Prelude.symbol * Err.loc option make: *** [check.cmx] Error 2

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/alvisespano/Polygen/issues/14#issuecomment-359923998, or mute the thread https://github.com/notifications/unsubscribe-auth/ACcZxpSuo9CBIN0r-_TDm-lKgfWYbfIhks5tNkRygaJpZM4Rk-kZ .

iacopy commented 6 years ago

Ho provato a fare quanto sopra ma per ora ti devo confermare l'errore.

$ git show --stat
(HEAD -> master, origin/master, origin/HEAD)
Author: tajmone <tajmone@libero.it>
Date:   Wed Jan 24 11:45:11 2018 +0100

    Add PolyTools for Windows

    First release of PolyTools (currently,  only for Windows):
    - PolyEscapist v1.0.0: tool to convert Unicode strings to Polygen escape sequences

 PolyTools-windows_2018-01-24.zip | Bin 0 -> 39973 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

$ make clean
ocamllex lexer.mll
67 states, 1471 transitions, table size 6286 bytes
ocamlyacc parser.mly
3 rules never reduced
1 shift/reduce conflict, 12 reduce/reduce conflicts.
ocamldep -native ver.ml prelude.ml err.ml absyn.ml env.ml check.ml pre.ml gen.ml fake.ml parser.ml lexer.ml io.ml main.ml parser.mli >.depend
rm -f *.o *.cm* a.out *.bak *.obj *~ *.annot *.stackdump parser.ml lexer.ml parser.mli ver.ml
cat </dev/null >.depend
$ make cleandist
ocamllex lexer.mll
67 states, 1471 transitions, table size 6286 bytes
ocamlyacc parser.mly
3 rules never reduced
1 shift/reduce conflict, 12 reduce/reduce conflicts.
ocamldep -native ver.ml prelude.ml err.ml absyn.ml env.ml check.ml pre.ml gen.ml fake.ml parser.ml lexer.ml io.ml main.ml parser.mli >.depend
make: *** No rule to make target `cleandist'.  Stop.

$ make all
date +'%Y%m%d' >DATE
sed -e "s/%VERSION%/1.0.6a/" -e "s/%DATE%/20180124/" ver.ml.template >ver.ml
ocamlopt -c -inline 23 -unsafe ver.ml -o ver.cmx
ocamlopt -c -inline 23 -unsafe prelude.ml -o prelude.cmx
ocamlopt -c -inline 23 -unsafe err.ml -o err.cmx
ocamlopt -c -inline 23 -unsafe absyn.ml -o absyn.cmx
ocamlopt -c -inline 23 -unsafe env.ml -o env.cmx
ocamlopt -c -inline 23 -unsafe check.ml -o check.cmx
File "check.ml", line 40, characters 59-62:
Error: This expression has type elt -> Prelude.Prelude.symbol
       but an expression was expected of type elt -> elt
       Type Prelude.Prelude.symbol = string is not compatible with type
         elt = Prelude.Prelude.symbol * Err.loc option
make: *** [check.cmx] Error 2
 ~  github  Polygen  src  master  5✎  $  ocamlopt --version
4.06.0
tajmone commented 6 years ago

Anche io sto avendo problemi a compilare la v1.0.6 dimaster, su Windows WSL.

OCaml version 4.04.0, tramite Ubuntu in WSL:

tajmone@PKDick-HP:/mnt/d/GitHub/Polygen/Polygen/src$ make
ocamlbuild -use-ocamlfind main.native
Finished, 1 target (0 cached) in 00:00:00.
+ /home/tajmone/.opam/4.04.0/bin/ocamlyacc parser.mly
4 rules never reduced
1 shift/reduce conflict, 16 reduce/reduce conflicts.
+ ocamlfind ocamlc -c -o check.cmo check.ml
File "check.ml", line 40, characters 59-62:
Error: This expression has type elt -> Prelude.Prelude.symbol
       but an expression was expected of type elt -> elt
       Type Prelude.Prelude.symbol = string is not compatible with type
         elt = Prelude.Prelude.symbol * Err.loc option
Command exited with code 2.
Compilation unsuccessful after building 24 targets (0 cached) in 00:00:00.
makefile:9: recipe for target 'build' failed
make: *** [build] Error 10

Anche qui sembra piantarsi su type elt -> Prelude.Prelude.symbol, come per @iacopy.

Quanto al comando make all, mi da questo errore:

tajmone@PKDick-HP:/mnt/d/GitHub/Polygen/Polygen/src$ make all
make: *** No rule to make target 'all'.  Stop.
alvisespano commented 6 years ago

Siete sicuri di avere la 1.0.6a del branch master? Chiedo perché quell'errore capitava PRIMA della 1.0.6a, cioè quando c'erano in master i sorgenti che ora sono in dev

Il giorno mer 24 gen 2018 alle 19:44 Tristano Ajmone < notifications@github.com> ha scritto:

Anche io sto avendo problemi a compilare la v1.0.6 in master.

OCaml version 4.04.0, tramite Ubuntu in WSL:

tajmone@PKDick-HP:/mnt/d/GitHub/Polygen/Polygen/src$ make ocamlbuild -use-ocamlfind main.native Finished, 1 target (0 cached) in 00:00:00.

  • /home/tajmone/.opam/4.04.0/bin/ocamlyacc parser.mly 4 rules never reduced 1 shift/reduce conflict, 16 reduce/reduce conflicts.
  • ocamlfind ocamlc -c -o check.cmo check.ml File "check.ml", line 40, characters 59-62: Error: This expression has type elt -> Prelude.Prelude.symbol but an expression was expected of type elt -> elt Type Prelude.Prelude.symbol = string is not compatible with type elt = Prelude.Prelude.symbol * Err.loc option Command exited with code 2. Compilation unsuccessful after building 24 targets (0 cached) in 00:00:00. makefile:9: recipe for target 'build' failed make: *** [build] Error 10

Anche qui sembra piantarsi su type elt -> Prelude.Prelude.symbol, come per @iacopy https://github.com/iacopy.

Quanto al comando make all, mi da questo errore:

tajmone@PKDick-HP:/mnt/d/GitHub/Polygen/Polygen/src$ make all make: *** No rule to make target 'all'. Stop.

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/alvisespano/Polygen/issues/14#issuecomment-360233288, or mute the thread https://github.com/notifications/unsubscribe-auth/ACcZxhAQnveVmR58I4QuuxCXr_7jwBsdks5tN3n4gaJpZM4Rk-kZ .

tajmone commented 6 years ago

Scusa, avevo capito male, stavo compilando la branch dev perché avevo visto i file di configurazione di VSCode.

Confermo, la versione in master compila bene con OCaml version 4.02.3 (WSL), solo qualche warning:

tajmone@PKDick-HP:/mnt/d/ocaml/polygen-master/src$ make all
ocamlopt -c -inline 23 -unsafe ver.ml -o ver.cmx
ocamlopt -c -inline 23 -unsafe prelude.ml -o prelude.cmx
ocamlopt -c -inline 23 -unsafe err.ml -o err.cmx
ocamlopt -c -inline 23 -unsafe absyn.ml -o absyn.cmx
ocamlopt -c -inline 23 -unsafe env.ml -o env.cmx
ocamlopt -c -inline 23 -unsafe check.ml -o check.cmx
ocamlopt -c -inline 23 -unsafe pre.ml -o pre.cmx
ocamlopt -c -inline 23 -unsafe gen.ml -o gen.cmx
ocamlopt -c -inline 23 -unsafe fake.ml -o fake.cmx
ocamlopt -c -inline 23 -unsafe parser.mli -o parser.cmi
ocamlopt -c -inline 23 -unsafe parser.ml -o parser.cmx
ocamlopt -c -inline 23 -unsafe lexer.ml -o lexer.cmx
ocamlopt -c -inline 23 -unsafe io.ml -o io.cmx
ocamlopt -c -inline 23 -unsafe main.ml -o main.cmx
ocamlopt unix.cmxa ver.cmx prelude.cmx err.cmx absyn.cmx env.cmx check.cmx pre.cmx gen.cmx fake.cmx parser.cmx lexer.cmx io.cmx main.cmx -o polygen
alvisespano commented 6 years ago

Warning? Io non ho nessun warning. E nemmeno nel tuo log ci sono warning: sono solo invocazioni al compilatore; l'ultima riga invece è il linking.

2018-01-25 9:44 GMT+01:00 Tristano Ajmone notifications@github.com:

Scusa, avevo capito male, stavo compilando la branch dev perché avevo visto i file di configurazione di VSCode.

Confermo, la versione in master compila bene con OCaml version 4.02.3 (WSL), solo qualche warning:

tajmone@PKDick-HP:/mnt/d/ocaml/polygen-master/src$ make all ocamlopt -c -inline 23 -unsafe ver.ml -o ver.cmx ocamlopt -c -inline 23 -unsafe prelude.ml -o prelude.cmx ocamlopt -c -inline 23 -unsafe err.ml -o err.cmx ocamlopt -c -inline 23 -unsafe absyn.ml -o absyn.cmx ocamlopt -c -inline 23 -unsafe env.ml -o env.cmx ocamlopt -c -inline 23 -unsafe check.ml -o check.cmx ocamlopt -c -inline 23 -unsafe pre.ml -o pre.cmx ocamlopt -c -inline 23 -unsafe gen.ml -o gen.cmx ocamlopt -c -inline 23 -unsafe fake.ml -o fake.cmx ocamlopt -c -inline 23 -unsafe parser.mli -o parser.cmi ocamlopt -c -inline 23 -unsafe parser.ml -o parser.cmx ocamlopt -c -inline 23 -unsafe lexer.ml -o lexer.cmx ocamlopt -c -inline 23 -unsafe io.ml -o io.cmx ocamlopt -c -inline 23 -unsafe main.ml -o main.cmx ocamlopt unix.cmxa ver.cmx prelude.cmx err.cmx absyn.cmx env.cmx check.cmx pre.cmx gen.cmx fake.cmx parser.cmx lexer.cmx io.cmx main.cmx -o polygen

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/alvisespano/Polygen/issues/14#issuecomment-360399327, or mute the thread https://github.com/notifications/unsubscribe-auth/ACcZxlNNVelEBvuuRfWhDQOUPuFbxm6Cks5tOD8LgaJpZM4Rk-kZ .

tajmone commented 6 years ago

Perdonami, avevo visto male.

iacopy commented 6 years ago

io invece confermo l'errore su Mac OS X High Sierra, branch master allineato.

tajmone commented 6 years ago

Su Ubuntu 16.10 x64 (non tramite WSL) la v1.0.6a (master) compila bene.

Però ora sto cercando di crosscompilare a Win32. Il cross compilatore funziona, ho già compilato un piccolo esempio di helloworld da OCaml a eseguibile Win32, e l'ho poi testato su Win 10, tutto ok.

Però quando cerco di cross-compilare Polygen 1.0.6a mi imbatto nell'errore:

File "check.ml", line 40, characters 59-62:
Error: This expression has type elt -> Prelude.Prelude.symbol
       but an expression was expected of type elt -> elt
       Type Prelude.Prelude.symbol = string is not compatible with type
         elt = Prelude.Prelude.symbol * Err.loc option 
makefile:51: recipe for target 'check.cmx' failed
make: *** [check.cmx] Error 2

Ed è sempre lo stesso errore che ricompare più volte in questo thread.

Sto usando OCaml 4.04.0+32bit per cross compilare. Forse è un problema legato alla versione dato che anche qui nel thread si evince che i successi e gli insuccessi sono legati a versioni inferiori e superiori alla 4.04.0, rispettivamente.

Qualche idea di cosa causi questo errore con la 4.04.0?

Con OCaml 4.02.3 sembra non avere problemi. Il problema è che il cross compilatore che sto usando supporta solo la v4.04.0 (dev'essere nuovo, e non ci sono versioni precedenti).

A parte questo intoppo, sono riuscito a mettere su un ambiente di cross compilazione che funzionerebbe sia per Win 32/64 che Android e iOS.

Non sono però sicuro che possa funzionare con versioni inferiori. Però appena la tua nuova versione sarà pronta potrò compilarla per Windows (32 bit direi), direttamente su Ubuntu, e non avrà bisogno della cygwin.dll (o altre DLL) per funzionare, ma sarà completamente standalone.

tajmone commented 6 years ago

Ho ricontrollato il thread: gli errori sono sempre legati alla compilazione con OCaml >= 4.04.

Propongo di rinominare questo issue da:

Compilazione su OSX

a:

Errore Compilazione con OCaml >= 4.04

dato che il problema non è OSX ma la versione recente di OCaml, e l'issue è ancora utile dato che riguarda l'uso del cross compilatore opam-cross-windows:

tajmone commented 6 years ago

opam-cross-windows per OCaml 4.02.3

Mi sono informato, è disponibile opam-cross-windows per OCaml 4.02.3, in una branch:

https://github.com/ocaml-cross/opam-cross-windows/tree/ocaml-4.02.3

(vedi ocaml-cross/opam-cross-windows/issues/65)

cerco di capire come installarlo al posto della versione attuale e prova a cross-compilare Polygen 1.0.6a per Windows.

iacopy commented 6 years ago

Confermo. 4.03.0 👍
4.04.2 👎 (stesso errore)

tassoman commented 6 years ago

Come faccio a pullare la 1.0.6a che non è taggata nel branch master? Non riesco a compilare nemmeno io per amd64 su ubuntu bionic 18.4 :|

alvisespano commented 6 years ago

Dovrebbe compilare ora, fatemi sapere.

tassoman commented 5 years ago

Esatto, funziona, ho compilato per amd64. Si potrebbe taggare come versione funzionante :smiley: