[erlang-questions] erl_interface shared libraries

Bob Ippolito <>
Sat Sep 8 22:41:16 CEST 2007


On 9/8/07, Taavi Talvik <> wrote:
>
> On Sep 8, 2007, at 8:00 PM, Mike Hales wrote:
>
> > I am interested in using the erl_interface libraries to make a
> > Smalltalk virtual machine act as a C-node, for communicating with
> > other erlang processes.  The libraries generated when building
> > erlang are static libraries (ei.a and friends).  Has anybody out
> > there sucessfully compiled the erl_interface code as shared
> > libraries? It seems like it shouldn't be too difficult, but my
> > skills with gcc and make are only recently developing, maybe
> > someone else has a makefile to do this already?
> >
> > It would be easy to share a Smalltalk bridge if the erl_interface
> > could be linked dynamically to the Smalltalk virtual machine.
> > While linking statically is a possibility, compiling the Smalltalk
> > virtual machine from source is a much more difficult task and would
> > be a barrier to entry for many.  Any help, experience or pointers
> > would be greatly appreciated.  Initially I want to do this on
> > Linux, then eventually Windows and OSX too.
>
> If you are well versed in Smalltalk, then probably one possibility is to
> write naitive Smalltalk interface for Erlang.
>
> Basicly there are only fiew tasks:
>         1) encode/decode Erlang data types in external format
>                 (atom big bignum binary boolean char double
>                 fun intlist list_header long longlong pid port ref trace
>                 tuple_header  ulong ulonglong version)
>
>         2) Create nodes, connections, communication with the other node etc.
>         handle connection setup and authorization.
>
>         3) Handle communication with epmd
>
>         4) some higher level concepts like tracing, mapping processes, links
>         to Smalltalk model.
>
> If you start from 1) you are able to communicate to erlang with
> via Port mechanisms over file descriptor.

The point of a shared library is probably to load erl_interface and
use it via some kind of FFI, rather than bothering to write all of
that code in C.

-bob



More information about the erlang-questions mailing list