-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Errore Compilazione OCaml >= 4.04.0 #14
Comments
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 <[email protected]>:
… 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
<#14>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACcZxsVZbl6BSxcZRkdvKkTrSMAHNB0qks5tMPQ6gaJpZM4Rk-kZ>
.
|
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). |
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 <[email protected]>
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
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACcZxthZCzP58OJSGP8D2g5vwO9rL2gMks5tMgwWgaJpZM4Rk-kZ>
.
|
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).
Ottima notizia! 😃
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. |
Grazie della pronta risposta! Anche se la fase è di precoce transizione/riesumazione, intanto se vi può essere utile vi riporto feedback lato Darwin.
|
Grazie mille, sarebbe molto apprezzato.
2018-01-21 7:58 GMT+01:00 iacopy <[email protected]>:
… 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
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACcZxgGnc_m-IvcWwh8QMNS5apO9ie7Xks5tMuAdgaJpZM4Rk-kZ>
.
|
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ò <[email protected]>:
… Grazie mille, sarebbe molto apprezzato.
2018-01-21 7:58 GMT+01:00 iacopy ***@***.***>:
> 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
> <#14 (comment)>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/ACcZxgGnc_m-IvcWwh8QMNS5apO9ie7Xks5tMuAdgaJpZM4Rk-kZ>
> .
>
|
Ottima notizia! Hai anche creato un tag per la release? Converrebbe farlo. Però se vuoi attenerti alla SemVer, 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. |
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 <[email protected]>
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
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACcZxoMl1s7zKofLBoQOHzNBPgS9YosMks5tNfdzgaJpZM4Rk-kZ>
.
|
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. |
Ho pullato il master, quindi la 1.0.6a. Su linux compila e va alla grande.
|
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 <[email protected]> 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
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACcZxpSuo9CBIN0r-_TDm-lKgfWYbfIhks5tNkRygaJpZM4Rk-kZ>
.
|
Ho provato a fare quanto sopra ma per ora ti devo confermare l'errore.
|
Anche io sto avendo problemi a compilare la v1.0.6 di OCaml version 4.04.0, tramite Ubuntu in WSL:
Anche qui sembra piantarsi su Quanto al comando
|
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 <
[email protected]> ha scritto:
… Anche io sto avendo problemi a compilare la v1.0.6 in master.
OCaml version 4.04.0, tramite Ubuntu in WSL:
***@***.***:/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:
***@***.***:/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
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACcZxhAQnveVmR58I4QuuxCXr_7jwBsdks5tN3n4gaJpZM4Rk-kZ>
.
|
Scusa, avevo capito male, stavo compilando la branch Confermo, la versione in master compila bene con OCaml version 4.02.3 (WSL), solo qualche warning:
|
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 <[email protected]>:
… 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:
***@***.***:/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
<#14 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACcZxlNNVelEBvuuRfWhDQOUPuFbxm6Cks5tOD8LgaJpZM4Rk-kZ>
.
|
Perdonami, avevo visto male. |
io invece confermo l'errore su Mac OS X High Sierra, branch master allineato. |
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:
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 |
Ho ricontrollato il thread: gli errori sono sempre legati alla compilazione con Propongo di rinominare questo issue da:
a:
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 per OCaml 4.02.3Mi 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. |
Confermo. |
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 :| |
Dovrebbe compilare ora, fatemi sapere. |
Esatto, funziona, ho compilato per amd64. Si potrebbe taggare come versione funzionante 😃 |
Ciao! Ho provato a lanciare un
make
fallendo miseramente. Dove sbaglio?Vi incollo l'errore. Sapreste indirizzarmi?
The text was updated successfully, but these errors were encountered: