[erlang-questions] erl_interface shared libraries
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.
More information about the erlang-questions