waleee-cl has quit [Quit: Connection closed for inactivity]
decentpenguin has quit [Read error: Connection reset by peer]
decentpenguin has joined #ocaml
arecaceae has quit [Remote host closed the connection]
arecaceae has joined #ocaml
<d_bot>
<ulrikstrid> Is there some way to use deriving ppx as code generator?
osa1 has joined #ocaml
azot has quit [Remote host closed the connection]
<d_bot>
<Kakadu> I'm not entirely understand the question..
azot has joined #ocaml
<d_bot>
<ulrikstrid> I want to use ppx_deriving_X to generate code so that I don't have a dependency in the actual library
penguwin4 has joined #ocaml
jimt[m] has quit [*.net *.split]
avsm[m] has quit [*.net *.split]
RalfJ has quit [*.net *.split]
penguwin has quit [*.net *.split]
penguwin4 is now known as penguwin
decentpenguin has quit [*.net *.split]
madroach has quit [*.net *.split]
raver has quit [*.net *.split]
ewd has quit [*.net *.split]
_ks has quit [*.net *.split]
Jesin has quit [*.net *.split]
steenuil has quit [*.net *.split]
JSharp has quit [*.net *.split]
reynir has quit [*.net *.split]
seliopou has quit [*.net *.split]
schlaftier has quit [*.net *.split]
noonien has quit [*.net *.split]
chimay[m] has quit [*.net *.split]
octachron has quit [*.net *.split]
stux|RC-only has quit [*.net *.split]
Enjolras has quit [*.net *.split]
troydm has quit [*.net *.split]
infinity0 has quit [*.net *.split]
ec has quit [*.net *.split]
hannes has quit [*.net *.split]
motherfsck has quit [*.net *.split]
dinosaure has quit [*.net *.split]
Ekho has quit [*.net *.split]
Duns_Scrotus has quit [*.net *.split]
rak has quit [*.net *.split]
daimrod has quit [*.net *.split]
jca has quit [*.net *.split]
wagle has quit [*.net *.split]
webshinra has quit [*.net *.split]
labor[m] has quit [*.net *.split]
aspiwack[m] has quit [*.net *.split]
dash has quit [*.net *.split]
aecepoglu[m] has quit [*.net *.split]
artart78 has quit [*.net *.split]
breitenj has quit [*.net *.split]
mastensg has quit [*.net *.split]
brettgilio has quit [*.net *.split]
ocabot has quit [*.net *.split]
_habnabit has quit [*.net *.split]
avsm[m] has joined #ocaml
RalfJ has joined #ocaml
jimt[m] has joined #ocaml
Enjolras has joined #ocaml
ec has joined #ocaml
daimrod has joined #ocaml
troydm has joined #ocaml
infinity0 has joined #ocaml
Ekho has joined #ocaml
rak has joined #ocaml
dinosaure has joined #ocaml
jca has joined #ocaml
Duns_Scrotus has joined #ocaml
motherfsck has joined #ocaml
hannes has joined #ocaml
wagle has joined #ocaml
samoht[m] has quit [Ping timeout: 240 seconds]
flux has quit [Ping timeout: 240 seconds]
peddie has quit [Ping timeout: 244 seconds]
lnxw37d4 has quit [Ping timeout: 244 seconds]
decentpenguin has joined #ocaml
raver has joined #ocaml
ewd has joined #ocaml
JSharp has joined #ocaml
Jesin has joined #ocaml
schlaftier has joined #ocaml
steenuil has joined #ocaml
reynir has joined #ocaml
_ks has joined #ocaml
noonien has joined #ocaml
seliopou has joined #ocaml
jimt[m] has quit [Ping timeout: 258 seconds]
mxns has quit [Ping timeout: 242 seconds]
stux|RC-only has joined #ocaml
avsm[m] has quit [Ping timeout: 258 seconds]
Ekho has quit [Max SendQ exceeded]
smondet[m] has quit [Ping timeout: 240 seconds]
BitPuffin has quit [Ping timeout: 268 seconds]
pqwy[m] has quit [Ping timeout: 240 seconds]
<d_bot>
<Kakadu> You can compile PPX rewriter as standalone executable and use it as external preprocessor. But this executable will still be dependent on actual library...
webshinra has joined #ocaml
breitenj has joined #ocaml
artart78 has joined #ocaml
mastensg has joined #ocaml
ocabot has joined #ocaml
brettgilio has joined #ocaml
_habnabit has joined #ocaml
madroach has joined #ocaml
JSharp has quit [Ping timeout: 250 seconds]
breitenj has quit [Max SendQ exceeded]
brettgilio has quit [Max SendQ exceeded]
brettgilio has joined #ocaml
breitenj has joined #ocaml
JSharp has joined #ocaml
octachron has joined #ocaml
<zozozo>
some ppx used with dune support the [@derive_inline ***] annotation, which makes dune able to promote a version of the source file that has the derived code, and thus does not need to depend on the lib after that initial generation
rpcope has quit [Ping timeout: 246 seconds]
<d_bot>
<Lupus> @octachron @Drup when is `%closure` emitted into OCaml bytecode? And what it means?
<d_bot>
<Lupus> I'm reading through js_of_ocaml generate.ml and trying to figure out what primitives are JS specific, those that start with `%caml_js` are kind of selx-explanatory, but this `%closure` thing seems to be referencing other primitives? π€
<d_bot>
<Lupus> *self-explanatory
rpcope has joined #ocaml
<d_bot>
<Lupus> I wonder if there is any documentation on OCaml primitives that can appear in bytecode
Ekho has joined #ocaml
<d_bot>
<ggole> There's a pdf floating around with documentation for each instruction, although I'm not sure how up-to-date it is. `closure` should be in there though.
<d_bot>
<ggole> AFAICT it simply constructs a (nonrecursive) closure, the first argument being the code pointer and the second the number of fields to pull off the stack for the closed-over variables.
<d_bot>
<ggole> That's based on squinting at some output of `-dinstr`.
azot has quit [Remote host closed the connection]
mxns has joined #ocaml
azot has joined #ocaml
samoht[m] has joined #ocaml
smondet[m] has joined #ocaml
flux has joined #ocaml
avsm[m] has joined #ocaml
<d_bot>
<Lupus> Any chance to get a link to that pdf? π
lnxw37d4 has joined #ocaml
dash has joined #ocaml
aspiwack[m] has joined #ocaml
<d_bot>
<Lupus> glancing at the code in generate.ml `%closure` is taking one string constant argument
<d_bot>
<gar> My understanding is that bytecode compilation is favored during development, for faster builds. Is that the way folks do things in practice? On the other hand, if you have a lot of PPXes, using them would be faster if they were native compiled. How much of a difference would this make in the real world? (I've got bazel code that supports such mixed-mode compilation, just wondering how useful it would be in practice.)
Haudegen has joined #ocaml
mxns has joined #ocaml
mxns has quit [Ping timeout: 272 seconds]
mfp_ has joined #ocaml
<d_bot>
<mseri> I looked into that when I worked on xapi-project, with jbuilder and then dune it was so fast both in native and bytecode (and I talk about a couple of minutes for a fresh build) that we just went directly with the native
<d_bot>
<mseri> I donβt know if this has changed recently but otherwise that was not a bottleneck for us
<d_bot>
<ggole> If you want to use the toplevel then bytecode compilation is pretty much necessary
borne has quit [Ping timeout: 272 seconds]
neiluj has joined #ocaml
neiluj has joined #ocaml
tjammer has joined #ocaml
olle_ has quit [Ping timeout: 240 seconds]
<d_bot>
<hhugo> @Lupus %closure is a jsoo hack/optimization to optimize await functions that directly alias primitives / externals
azot has quit [Remote host closed the connection]
azot has joined #ocaml
arecaceae has quit [Remote host closed the connection]
arecaceae has joined #ocaml
tjammer[m] has joined #ocaml
tjammer has quit [Quit: terminated!]
mxns has joined #ocaml
<d_bot>
<gar> @mseri That's sorta what I would expect with today's hardward. I guess it might make a difference to a fresh build of a huge project, but then with build caching for ongoing rebuilds it probably would not make a noticeable difference. Still it's kinda cool to have both compilation modes at once. π
arecaceae has quit [Remote host closed the connection]
arecaceae has joined #ocaml
sleepydog has joined #ocaml
mbuf has quit [Quit: Leaving]
<pkl>
test
<pkl>
In a project, I have a mix of multicore and standard OCaml code.
<pkl>
Is it possible to configure dune so that it does not build the multicore parts unless I am using the multicore opam switch?
waleee-cl has joined #ocaml
gareppa has joined #ocaml
gareppa has quit [Remote host closed the connection]
mxns has joined #ocaml
mxns has quit [Ping timeout: 264 seconds]
olle_ has joined #ocaml
mxns has joined #ocaml
mxns has quit [Ping timeout: 256 seconds]
neiluj has joined #ocaml
neiluj has joined #ocaml
ewd has quit [Ping timeout: 240 seconds]
<sadiq>
pkl, out of interest, which bits of multicore are you using that don't work on standard?
decentpe- has joined #ocaml
decentpenguin has quit [Ping timeout: 240 seconds]
decentpe- is now known as decentpenguin
<d_bot>
<EduardoRFS> pkl, actually yes, you can get if it's multicore from the `ocaml --version` string, then build it conditionally in dune
olle_ has quit [Ping timeout: 264 seconds]
mxns has joined #ocaml
olle_ has joined #ocaml
indicator has joined #ocaml
<indicator>
Very basic issue I thought I'd got over before: I've opam install'ed ptime, how do I load and use it in utop? I can do that via dune, but if I just run utop direct (because I have a compilation error, that's why I want to experiment in utop), I can't figure out how to do anything with ptime
<d_bot>
<rgrinberg> `#require "ptime";;`
<indicator>
ah that's it, thanks
borne has joined #ocaml
mxns has quit [Ping timeout: 246 seconds]
sm2n has quit [Quit: Leaving]
olle_ has quit [Ping timeout: 240 seconds]
mxns has joined #ocaml
indicator has left #ocaml ["ERC (IRC client for Emacs 27.1)"]
Jesin has quit [Quit: Leaving]
Jesin has joined #ocaml
Yagotzirck has joined #ocaml
Yagotzirck has quit [Quit: Leaving]
neiluj has quit [Quit: leaving]
borne has quit [Ping timeout: 264 seconds]
borne has joined #ocaml
sagax has quit [Quit: Konversation terminated!]
neiluj has joined #ocaml
neiluj has joined #ocaml
<d_bot>
<mseri> Nice! Before we ported it to jbuilder (and then dune), it took over 10 minutes to build xen-api π it was life changing