One of these days soon I need to learn erlang. :-) Maybe I'll tackle an erlang native port same as I did for go. (I am completely enamored of Go, but I recognize that its not appropriate for all situations. :-) On Tue, Oct 7, 2014 at 9:11 PM, Jihyun Yu <yjh0502@xxxxxxxxx> wrote: > You're right, I already encountered problems with NIF. There was no > erlang nanomsg driver when I needed one, and I used NIF because > I had an experience on it. > > On Tue, Oct 07, 2014 at 11:31:43PM -0400, Steve Vinoski wrote: > > Not sure why you would choose to use a NIF and dirty schedulers for this, > > as 1) the Erlang driver facility was designed specifically for this kind > of > > problem, and 2) I'm the person who wrote the dirty schedulers for the > > Erlang VM, and so I feel pretty confident saying they're the wrong > approach > > for this problem because you end up having to reimplement what the driver > > API already gives you. > > > > --steve > > > > > > On Tue, Oct 7, 2014 at 10:58 PM, Jihyun Yu <yjh0502@xxxxxxxxx> wrote: > > > > > Just FYI, I also made erlang nanomsg bindings with erlang NIF & dirty > > > schedulars. > > > > > > https://github.com/yjh0502/nanomsg-erlang > > > > > > Biggest issue I encountered while implementing binding is abort() from > > > nanomsg library. Nanomsg library calls abort() when it detects invalid > or > > > unexpected state [1], and It will kill erlang VM without giving chance > to > > > recover error. > > > > > > [1] https://github.com/nanomsg/nanomsg/issues/307 > > > > > > > > > > > > On Wed, Oct 8, 2014 at 11:41 AM, Steve Vinoski <vinoski@xxxxxxxx> > wrote: > > > > > >> I've built an Erlang port driver around the nanomsg C library, > available > > >> here: > > >> > > >> https://github.com/basho/enm > > >> > > >> It's new and so it still lacks some features, may still undergo API > > >> changes, etc. It's currently based on a recent commit of nanomsg > (742e46d). > > >> > > >> Of course it would also be possible to reimplement nanomsg > capabilities > > >> and semantics in pure Erlang, and this effort does not preclude that, > but I > > >> figured wrapping the C library was a faster and more easily > maintainable > > >> way to let Erlang applications use nanomsg. > > >> > > >> Feedback, issues, and pull requests welcomed. > > >> > > >> --steve > > >> > > > > > > > >