Search code examples
dependencieschatsampleopa

opa: can't compile hello chat demo (another error)


I know that there's another post about this but, I've a different error than Opa won't compile hello_web.opa.

When trying to compile the hello_chat.opa sample 3. Hello, chat, I get the following error:

In hello_chat.opa [1:29-1:29 | global chars=29-29]
Syntax error at line 1, column 29
The error may be in the following citation, usually in the red part (starting at ?) or just before:
<<type message = {string author?,string text}

room = Network.network(message) (Network.cloud("room"))

do function start() {
 >>
Hint: expected "'" or "..." or ":" or ";" or "_" or "}" or "~" or '_' or <spacing> or <value identifier> or ['0'-'9'] or ['A'-'Z'] or ['a'-'z']
(while parsing <record type fields> starting at line 1, column 16)
Error
Syntax error

I'm running Ubuntu 64 (v11.04) and installed ALL dependencies (following documentation). I've installed opa from .deb package (opa_1.0s3.5+build687_amd64.stable.deb).

I've also tried to build it from source, the configure step complains that some deps is missing. May be that this is the key to solve the problem?

giacomo@linuxlap:~/src/opalang$ ./configure
Checking your OS... Linux
Checking your architecture... x86_64
Checking ocamlopt... /usr/local/bin/ocamlopt
Checking ocamlbuild... /usr/local/bin/ocamlbuild
Checking ocamldir... /usr/local/lib/ocaml
Checking ocaml version... 3.12.1
Checking your ocaml setup... 3.12.1, Unix 64bit
Checking for camlp4... /usr/local/bin/camlp4o
Checking for perl 5... found
Checking for java... found
Checking for camlidl... Disabled
Checking for ocamlfind... Not found (but optional)
Checking for ssl... Not found
Checking for cryptokit... Not found
Checking for camlzip... Not found
Checking for graph... Not found
Checking for ulex... Not found

Not configured. You need the following libraries installed:
  - ocaml_ssl (might be found in package libssl-ocaml-dev)
  - cryptokit (might be found in package libcryptokit-ocaml-dev)
  - camlzip (might be found in package libzip-ocaml-dev)
  - ocamlgraph (might be found in package libocamlgraph-ocaml-dev)
  - ulex (might be found in package ocaml-ulex)

The packages that configure script claims missing are ALL installed in my system.


Solution

  • Giacomo, the example you are referring to comes from the documentation of the upcoming Opa S4 release. It's using Opa's new syntax that will be introduced in that release. If you want to compile it then you will need to use a preview of S4, that is, follow the instructions here (i.e. you need Opa build 1024 or higher and compile with --parser js-like option). Hope that helps.

    P.S. the version you have installed (S3.5 built 687 does not include a preview of S4).