# [opam-devel] [Caml-list] [ANN] IOCaml v0.3

Fri Feb 14 10:49:34 GMT 2014

The too-new library is almost certainly the case -- although unfortunately I don't have the 3.2.4 version in my Homebrew anymore and so the switch doesn't work (they don't keep older versions around like OPAM does, I believe).

\$ brew switch zmq 3.2.4
Error: zmq does not have a version "3.2.4" in the Cellar.
Versions available: 4.0.3

Are the interfaces very different between the versions to support both, or does this require a big rev to your bindings?

-anil

On 14 Feb 2014, at 10:40, Anders Fugmann <anders at fugmann.net> wrote:

> Hi,
>
> I would love to have the Issuu fork of ocaml-zmq in Opam official package repository. I already have a Opam package description for it [1], if it helps.
>
> Could it be that the compilation problems are related to having a too up to date version of the zmq C library?. We saw simmilar compilation erros when compiling against version 4.0.x of the zmq C library. Downgragind to version 3.2.x help in that case.
>
> If you are using brew, you can downgrade to zmq 3.2.4 using the command:
> > brew switch zmq 3.2.4
>
> Regards
> Anders Fugmann
>
> [1]: https://github.com/andersfugmann/opam-repository-extra/tree/master/packages/ocaml-zmq.3.2.0
>
> On 02/14/2014 11:05 AM, Anil Madhavapeddy wrote:
>> Having said that, the Issuu branch seems to fail on MacOS X 10.9 (which uses clang).  Needs more investigation...
>>
>> --
>>                                                 ~~~~~ ^
>> /usr/local/lib/ocaml/caml/memory.h:235:27: note: expanded from macro 'Store_field'
>>   value caml__temp_val = (val); \
>>                           ^
>> src/caml_zmq_stubs.c:538:45: error: no member named 'data' in 'zmq_event_t'
>>         Store_field(result, 1, Val_fd(event.data.connected.fd));
>>                                       ~~~~~ ^
>> src/caml_zmq_stubs.c:27:29: note: expanded from macro 'Val_fd'
>> #  define Val_fd(x) Val_int(x)
>>                             ^
>> /usr/local/lib/ocaml/caml/mlvalues.h:75:29: note: expanded from macro 'Val_int'
>> #define Val_int(x) Val_long(x)
>>                             ^
>> /usr/local/lib/ocaml/caml/mlvalues.h:71:36: note: expanded from macro 'Val_long'
>> #define Val_long(x)     (((intnat)(x) << 1) + 1)
>>                                    ^
>> /usr/local/lib/ocaml/caml/memory.h:235:27: note: expanded from macro 'Store_field'
>>   value caml__temp_val = (val); \
>>                           ^
>> src/caml_zmq_stubs.c:542:55: error: no member named 'data' in 'zmq_event_t'
>>                                                 ~~~~~ ^
>> /usr/local/lib/ocaml/caml/memory.h:235:27: note: expanded from macro 'Store_field'
>>   value caml__temp_val = (val); \
>>                           ^
>> src/caml_zmq_stubs.c:543:46: error: no member named 'data' in 'zmq_event_t'
>>         Store_field(result, 1, Val_int(event.data.connect_delayed.err));
>>                                        ~~~~~ ^
>>
>> -anil
>>
>> On 14 Feb 2014, at 09:57, Anil Madhavapeddy <anil at recoil.org> wrote:
>>
>>> This is great! (CCing opam-devel)
>>>
>>> I'd like to resolve the zmq situation, since the current "ocaml-zmq" package in opam-stable has no maintainer, and is pointing to an unstable tarball.
>>>
>>> We could add a new zmq package to OPAM that does not clash with "ocaml-zmq" , based off the Issuu branch which appears maintained.  I'm CCing Anders Fugmann for his opinion on this.  After a while, we could remove the ocaml-zmq package if the upstream cannot be contacted.
>>>
>>> That should hopefully unblock getting iocaml into OPAM mainline too...
>>>
>>> -anil
>>>
>>> On 14 Feb 2014, at 00:34, Andy Ray <andy.ray at ujamjar.com> wrote:
>>>
>>>> *** I announced this to the list through google groups a few days ago but I don't think it worked properly so hopefully this time ... ***
>>>>
>>>> https://github.com/andrewray/iocaml
>>>>
>>>> IOCaml is an OCaml kernel for the IPython notebook (http://ipython.org/notebook.html).  This provides a REPL within a web browser with a nice user interface including markdown based comments/documentation, mathjax formula and the possibility of generating all manner of HTML based output media from your code.  Here are a few features I think are particularly interesting;
>>>>
>>>> * Uses ocp-index.lib to provide code completion and types (includes documentation if .cmt files exist).  Only works with installed libraries at the moment.  Very new, a wee bit buggy, but I love it.
>>>>
>>>> * I copy/pasted the OCaml core language documentation page into a notebook.  Now you can learn interactively! [1]
>>>>
>>>> * Play with TyXML in the notebook and render typed HTML interactively.
>>>>
>>>> Installation is reasonably painless through opam, though you currently need to add my remote repository [2] and require a >=4.00.1 compiler.  Installation of IPython is a touch more involved as you will have to update (using 'pip') some python components [3].  Instructions for Ubuntu 13.10 are on the github page and I have also tested Fedora 20 which was, apart from some slightly different package names, very similar.
>>>>
>>>> Cheers,
>>>> Andy
>>>>
>>>>
>>>> [1] I am not sure if, according to the license terms, I should be providing this.  The documentation has not been changed in any way apart from one inserted paragraph at the start explaining the difference between a normal toplevel and the notebook interface.  I hope it's OK to provide this.
>>>>
>>>> [2] I'd love to push this to opam proper but require ocaml-zmq >=3.2.  There was a recent discussion on the list about this (indeed reading about ZeroMQ led me to IPython) so hopefully this will happen before too long.
>>>>
>>>> [3] I haven't tested this release with 0.13.2 which the distros provide.  Maybe it works anyway.
>>>
>>> _______________________________________________
>>> opam-devel mailing list
>>> opam-devel at lists.ocaml.org
>>> http://lists.ocaml.org/listinfo/opam-devel
>>>
>>
>