Dear Mike, I was able to successfully load delimcc into the toplevel after applying the tiny patch below. You can give it a try by doing: opam source delimcc cd delimcc.(version) (apply patch) opam pin add . (you have to replace the stuff between parentheses by whatever is correct in your setup.) diff --git a/stacks.c b/stacks.c index fdab2a7..5765710 100644 --- a/stacks.c +++ b/stacks.c @@ -203,13 +203,13 @@ value copy_stack_fragment(const value vek1) #endif if (size < Max_young_wosize) { - block = alloc(size, 0); + block = caml_alloc(size, 0); memcpy(&Field(block, 0), tp2, size * sizeof(value)); } else { - block = alloc_shr(size, 0); + block = caml_alloc_shr(size, 0); mlsize_t i; for (i = 0; i < size; i++) - initialize(&Field(block, i), tp2[i]); + caml_initialize(&Field(block, i), tp2[i]); } /* We check the invariants after the allocation of block, which may @@ -382,4 +382,3 @@ value dbg_note(const value message) fprintf(stderr,"%s\n",String_val(message)); return Val_unit; } Hope it helps, Nicolás On Fri, Feb 23, 2018 at 12:18 AM, Michael C Vanier wrote: > I've been trying to use the delimcc delimited continuation library, but so > far I've been unsuccessful. I'm using OCaml 4.06.1 and I've tried it on > both Mac OS X (High Sierra) and Ubuntu MATE 17.10. I'm fine sticking to > bytecode. The opam package installs correctly but when you try to run it > you get errors from the dynamically-linked libraries. On Mac OS X I get > this: > > # #require "delimcc";; > Cannot load required shared library dlldelimcc. > Reason: /Users/mvanier/.opam/4.06.1/lib/stublibs/dlldelimcc.so: > dlopen(/Users/mvanier/.opam/4.06.1/lib/stublibs/dlldelimcc.so, 10): > Symbol not found: _alloc > Referenced from: /Users/mvanier/.opam/4.06.1/lib/stublibs/dlldelimcc.so > Expected in: flat namespace > in /Users/mvanier/.opam/4.06.1/lib/stublibs/dlldelimcc.so. > > And on Ubuntu I get this: > > # #require "delimcc";; > /home/mvanier/.opam/4.06.1/lib/delimcc: added to search path > /home/mvanier/.opam/4.06.1/lib/delimcc/delimcc.cma: loaded > Cannot load required shared library dlldelimcc. > Reason: /Users/mvanier/.opam/4.06.1/lib/stublibs/dlldelimcc.so: > dlopen(/Users/mvanier/.opam/4.06.1/lib/stublibs/dlldelimcc.so, 10): > Symbol not found: initialize. > > However, in either case I can do: > > # open Delimcc;; > > and it reports no errors, but then if I try e.g.: > > # shift;; > Reference to undefined global `Delimcc` > > so it appears the library isn't there or isn't functional. Compiling from > the delimcc source also appears to work, but gcc warns about implicit > declarations of "alloc", "alloc_shr" and "initialize" when compiling > stacks.c, which makes sense. Compiling any of the test programs also fails. > > So it appears that this library no longer works. Does anyone know any way > to make it work? > > Thanks in advance, > > Mike > > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs >