nullcone has quit [Quit: Connection closed for inactivity]
aubian has quit [Ping timeout: 272 seconds]
vicfred has quit [Quit: Leaving]
vicfred has joined #ocaml
vicfred_ has joined #ocaml
vicfred has quit [Ping timeout: 260 seconds]
Haudegen has quit [Ping timeout: 258 seconds]
amiloradovsky has quit [Ping timeout: 265 seconds]
mfp has quit [Ping timeout: 256 seconds]
jwillia3 has joined #ocaml
c4rc4s has quit [Quit: Adios]
c4rc4s has joined #ocaml
GeoffK has joined #ocaml
<GeoffK>
Merlin giving "Not in environment ’<symbol>’" - other things like C-c C-t work.
<GeoffK>
+ from within emacs.
GeoffK has quit [Quit: Leaving]
mbuf has joined #ocaml
narimiran has joined #ocaml
chripell has joined #ocaml
tane has joined #ocaml
dborisog has joined #ocaml
nicooo has quit [Remote host closed the connection]
nicooo has joined #ocaml
amiloradovsky has joined #ocaml
mbuf has quit [Quit: Leaving]
inkbottle has quit [Ping timeout: 260 seconds]
Haudegen has joined #ocaml
mfp has joined #ocaml
narimiran has quit [Ping timeout: 260 seconds]
chripell has quit [Ping timeout: 264 seconds]
inkbottle has joined #ocaml
wingsorc has joined #ocaml
<hannes>
hmm, does the OCaml runtime use the same calling semantics as C (I guess the answer is yes)? or, is there a custom "C stack" and "OCaml stack" (I guess the answer is no)?
<Armael>
I think there is indeed a C stack separate from the ocaml stack
Anarchos has joined #ocaml
<def>
hannes: yes in bytecode, no in native non multicore
<Armael>
oh.
<hannes>
oh interesting, thanks
<def>
in bytecode: the ocaml stack is basically a value array, ocaml calls appear in the C stack as calls to caml_interprete functions.
<def>
so to unroll the stack 1) you unroll C calls until you reach an instance of caml_interprete, then you unroll until you reach a marker that goes back to C function, etc.
<def>
in native non multicore, you can have a mix of C and OCaml frames on the callstack.
<def>
calls to C externals with noalloc flag appear directly on the stack and are leaves, as far as the OCaml runtime is concerned (you cannot go back to OCaml code inside a call to a noalloc external).
<def>
the compiler generates the code to switch from the OCaml calling convention to the C one
<def>
for non-noalloc calls, calls to the caml_c_call primitive are inserted between OCaml and C frames in the stack.
<def>
caml_c_call acts as a bridge between C and OCaml calling convention.
<hannes>
ah
<def>
in multicore world, the situation was more complex last time I checked. You have one C stack per domain (~ pthread managed by the runtime, rougly mapping to one logical CPU core), that is managed like the native stack from singlecore OCaml.
<def>
But once you start using effect handlers, stacks are allocated in the OCaml heap and are regular OCaml values. Therefore calls to C have to go back to the system stack so the trampoline is a bit more complex.
<hannes>
def: the effect handlers -- sth i'm interested in since years (even with a single-core runtime) -- are still in the process of getting upstreamed to ocaml-trunk (as in: they're not part of the 4.10/4.11 runtime)?
theglass has joined #ocaml
<def>
no, effects will come later. The type system has not been figured out yet. The runtime is in a better shape but right now the focus is on multicore GC afaik.
raver has quit [Read error: Connection reset by peer]
narimiran has joined #ocaml
ygrek has joined #ocaml
<Anarchos>
i converted my project to dune instead of handcrafted makefile. How should i generate the .merlin files ?
<companion_cube>
dune will do it automatically
<Anarchos>
companion_cube in _build ?
TC01_ has quit [Ping timeout: 260 seconds]
sagax has quit [Ping timeout: 258 seconds]
<companion_cube>
no, in the source tree
<reynir>
I think dune build @check will generate .merlin for you (or just dune build, but that does more)
<Anarchos>
reynir thanks
TheLemonMan has joined #ocaml
TC01 has joined #ocaml
<Anarchos>
companion_cube it didn't (i use dune 2.4.0)
<companion_cube>
did you build your project?
<Anarchos>
yes with dune build @all
<companion_cube>
works for me 🤷
amiloradovsky has quit [Remote host closed the connection]
amiloradovsky has joined #ocaml
<reynir>
^
sagax has joined #ocaml
<Anarchos>
companion_cube i pushed my dune config files on my github repos, if you would be kind enough to look at
<companion_cube>
does dune build anything?
<companion_cube>
like, libraries, binaries, etc.?
<Anarchos>
companion_cube yes it builds
<companion_cube>
are you sure the merlin files are not there? they're hidden files
<Anarchos>
companion_cube i amsure (ls -a)
<companion_cube>
try to clone another project that uses dune, and do the same command
<companion_cube>
for example I know it works for containers