Re: FFI callback is broken in last git version
Kostirya <[email protected]> Wed, 28 Sep 2016 17:56:34 +0300
| Newsgroups | gmane.comp.lang.ml.mlton.user |
|---|---|
| Message-ID | <CAG+QnTcsyPs1FB9+9VfRz7hVn67mgjnaOVmnx-a3_Mer9fiY3g@mail.gmail.com> |
Wow. Speed callback increased 6 times (compared with MLton 20130715)! 2016-09-28 11:36 GMT+03:00 Florian Weimer <[email protected]>: > > I updated MLton from git repository and detect what FFI callback is > broken. > > I think it was merely changed in a backwards-incompatible way. > > >> mlton > > MLton gd201ca9-dirty (built Tue Sep 27 15:21:50 EEST 2016 on thinkpad) > > > > > >> cat callback.c > > void foo ( int n, void (*fn) (int) ) { > > int i = 1; > > while (n--) { > > (*fn)(i++); > > } > > return; > > } > > > > > >> cat cb-mlton.sml > > val foo = _import "foo" public: int * MLton.Pointer.t -> unit; > > val () = (_export "cb" : (int -> unit) -> unit;) (fn v => print > > ((Int.toString v) ^ "\n")) > > val cb = _address "cb" public: MLton.Pointer.t; > > val _ = foo(3, cb) > > You need to import foo with the “reentrant“ attribute, like this > (untested): > > val foo = _import "foo" public reentrant: int * MLton.Pointer.t -> unit; > > -- > You received this message because you are subscribed to the Google Groups > "MLton-user" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > > > ------------------------------------------------------------ > ------------------ > _______________________________________________ > MLton-user mailing list > [email protected]; [email protected] > https://lists.sourceforge.net/lists/listinfo/mlton-user > -- You received this message because you are subscribed to the Google Groups "MLton-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. ------------------------------------------------------------------------------ _______________________________________________ MLton-user mailing list [email protected]; [email protected] https://lists.sourceforge.net/lists/listinfo/mlton-user