<discocaml>
<Chimrod> Hello, I’m using Ocaml with cygwin/mingw with fdopen repo, and I have an error when installing the library ppx_inline_test. Can I report the error in the error directly in the janestreet bug tracker or should I check something in my config before ? (I know that the fdopen repo is deprecated now…)
<discocaml>
<Chimrod> Hello, I’m using Ocaml with cygwin/mingw with fdopen repo, and I have an error when installing the library ppx_inline_test. Can I report the error directly in the janestreet bug tracker or should I check something in my config before ? (I know that the fdopen repo is deprecated now…)
bartholin has joined #ocaml
<adrien>
hard to tell, it's going to depend on the error
<discocaml>
<Chimrod> This an unbound module :
<discocaml>
<Chimrod> ```# File "src/ppx_inline_test.ml", line 85, characters 18-44:
<discocaml>
<Chimrod> # 85 | let filename = File_path.get_default_path loc in
<discocaml>
<Chimrod> # Hint: Did you mean Code_path?
<discocaml>
<Chimrod> ```
<discocaml>
<Chimrod> The line, seems to match the code in the git repo (for the last tagged version), so this looks like a dependancy error, or an update comming from another library, but I can’t figure which one
<discocaml>
<Chimrod> The line seems to match the code in the git repo (for the last tagged version), so this looks like a dependancy error, or an update comming from another library, but I can’t figure which one
<discocaml>
<darrenldl> in angstrom's definition of `many`, it's essentially using explicit closures to move the call stack to heap right?
<discocaml>
<zen> is there a simple way to build statically linked binaries with ocaml? I've seen the OcamlPro blogpost but that approach seems complex and brittle, is that still the 'state of the art'?
wingsorc has quit [Ping timeout: 246 seconds]
<discocaml>
<dinosaure> Currently, for my case, I'm able to compile statically Bob (https://github.com/dinosaure/bob) with my Cosmopolitan toolchain (https://github.com/dinosaure/esperanto). The latter show a full example of how to statically compile a project. Moreover, this is what we do for a long time for MirageOS (because we want to produce a full image which will be an operating system). The real _trick_ is to fetch all dependencies and compile the project wi
neiluj has joined #ocaml
<neiluj>
Hey! would you find it useful to have a SageMath-like library in OCaml?
<neiluj>
I know there is Owl but it isn't as complete as Sagemath
<neiluj>
most of the effort would be to write bindings to the various backends sagemath is using PARI/GP, and reimplementing a lot of Python code to ocaml...
<discocaml>
<zen> That's interesting and I would be fine using that if it's 'fire-and-forget', I'm looking for a solution where I don't have to worry about writing linker flags etc... I also don't mind compiling platform specific binaries, and would like to support windows ideally
<neiluj>
good to hear it! :) it would have a focus on cryptography so mostly algebra (polynomials, finite fields, elliptic curves, matrices, lattices...). It could start as a bindings to a subset of PARI/GP's C API with nice functors for modularity
<neiluj>
because PARI/GP scripting language is awful!
<discocaml>
<dinosaure> in the case that you want a portable binary across platform, `esperanto` is a really good candidate, the binary produced is polyglot for Windows, Mac, Linux and \*BSD 🙂
<neiluj>
lol
troydm has joined #ocaml
<neiluj>
how does the garbage collector run in ocaml? in a separate process?
<adrien>
at the moment: stop-the-world upon allocation
<octachron>
Only for minor collections, major collection is concurrent.
<octachron>
but anyway, it is the domain themselves that are running the garbage collector.
<octachron>
(possibly on a backup thread)
<adrien>
hmm, sorry, I was being dumb and thinking about pre-5 (correct me if that was different even then)
<octachron>
With the runtime lock in OCaml 4, the meaning of stop-the-world is a bit unclear.
<discocaml>
<KW78> Is that correct ? : in ocaml 5, each domain runs its own GC, the minor being totally independent up to a multi-domain synchronisation. Major allocations (either directly or through the minor-major copying ) is done via a multi-threaded memory allocator (hence not related to GC per se, and also does make the independent minor possible). Not sure how major objects are collected and coordinated, I would assume some additional markers in the mark ph
<octachron>
Sure, the GC acquires the global lock when running and is stopping the execution of the "OCaml world" but that is part of the normal concurrency model of OCaml 4.
<octachron>
KW78, no, that sounds like you have the concurrent minor collections variant in mind which was the first prototype.
<octachron>
The current version of the minor collection is a stop-the-world variant where all domains collaborate on minor collections.
<neiluj>
are there tools to automatically generate bindings to C functions? Ctypes has the necessary functionality to do it manually in a simple way so there may be tools built on top of ctypes to do build the bindings automagically?
<neiluj>
thanks by the way for the pointers and explanation on ocaml's GC
<discocaml>
<Chimrod> Found. I’ve downgraded ppxlix into 0.25.1 and it’s fine now