Sono davvero interessato all'apprendimento ocaml, è veloce (hanno detto che potrebbe essere compilato in codice nativo) ed è funzionale. Così ho provato a programmare qualcosa di semplice come abilitare lo scheduler di eventi mysql.Come compilare ocaml al codice nativo
#load "unix.cma";;
#directory "+mysql";;
#load "mysql.cma";;
let db = Mysql.quick_connect
~user:"username"
~password:"userpassword"
~database:"databasename"();;
let sql =
"SET GLOBAL EVENT_SCHEDULER=1;"
in
(Mysql.exec db sql);;
Funziona bene su interprete OCaml, ma quando stavo cercando di compilarlo a nativa (sto usando ubuntu karmico), nessuno di questi comandi lavorato
ocamlopt -o mysqleventon mysqleventon.ml unix.cmxa mysql.cmxa
ocamlopt -o mysqleventon mysqleventon.ml unix.cma mysql.cma
Ho anche provato
ocamlc -c mysqleventon.ml unix.cma mysql.cma
tutti loro risultante stesso messaggio
File "mysqleventon.ml", line 1, characters 0-1:
Error: Syntax error
poi ho cercato di rimuovere il "# carico", in modo che il codice va come questo
let db = Mysql.quick_connect
~user:"username"
~password:"userpassword"
~database:"databasename"();;
let sql =
"SET GLOBAL EVENT_SCHEDULER=1;"
in
(Mysql.exec db sql);;
L'ocamlopt risultante messaggio
File "mysqleventon.ml", line 1, characters 9-28:
Error: Unbound value Mysql.quick_connect
spero che qualcuno potrebbe dirmi, dove ho sto facendo sbagliato.
Solo un commento: non è necessario il Printf.sprintf nel codice si mostra. –
L'ho modificato dalla rete (ho dimenticato l'indirizzo) come primo tentativo di database. Ho provato la tua congestione e hai ragione, quindi rimuovo la parte "Printf.sprintf" dal codice. Grazie. –