companion_cube changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 5.0 released(!!1!): https://ocaml.org/releases/5.0.0.html | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
rf has joined #ocaml
spip has quit [Quit: Konversation terminated!]
olle has quit [Ping timeout: 268 seconds]
olle has joined #ocaml
azimut_ has joined #ocaml
azimut has quit [Ping timeout: 240 seconds]
chrisz has quit [Ping timeout: 264 seconds]
chrisz has joined #ocaml
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
trillion_exabyte has quit [Ping timeout: 268 seconds]
terrorjack has joined #ocaml
trillion_exabyte has joined #ocaml
waleee has quit [Ping timeout: 256 seconds]
rf has quit [Ping timeout: 240 seconds]
czy has joined #ocaml
Haudegen has joined #ocaml
mbuf has joined #ocaml
ansiwen has quit [Quit: ZNC 1.7.1 - https://znc.in]
ansiwen has joined #ocaml
Everything has quit [Quit: leaving]
azimut_ has quit [Ping timeout: 240 seconds]
Serpent7776 has joined #ocaml
bartholin has joined #ocaml
spip has joined #ocaml
wingsorc__ has quit [Ping timeout: 240 seconds]
bartholin has quit [Quit: Leaving]
trillion_exabyte has quit [Ping timeout: 240 seconds]
trillion_exabyte has joined #ocaml
bartholin has joined #ocaml
xd1le has joined #ocaml
noonien has quit [Ping timeout: 240 seconds]
pandeyan has quit [Quit: ZNC 1.8.2 - https://znc.in]
anpad has joined #ocaml
<discocaml> <Alistair> Is there a way to unbox an existential type if you know its parameters will only be instantiated to non-float values?
<discocaml> <NULL> What do you mean exactly ?
<discocaml> <Alistair> E.g. for the GADT tag ```
<discocaml> <Alistair> type 'a tag =
<discocaml> <Alistair> | Tag1 : t1 tag
<discocaml> <Alistair> | ...
<discocaml> <Alistair> | Tagn : tn tag
<discocaml> <Alistair> ```
<discocaml> <Alistair> This (at runtime) is simply represented as an integer.
<discocaml> <Alistair> However, suppose I was an existential type for this tag:
<discocaml> <Alistair> ```
<discocaml> <Alistair> type ex_tag =
<discocaml> <Alistair> | Ex_tag : 'a tag -> ex_tag
<discocaml> <Alistair> ```
<discocaml> <Alistair> The only way to achieve this is with boxing since OCaml cannot infer whether some instantiation of `'a tag` will be an int / pointer / float -- but statically (regardless of what `'a` is instantiated with) we know `tag` will be represented as an int
olle has left #ocaml [#ocaml]
fcambus has left #ocaml [#ocaml]
SquidDev has quit [Quit: Bye!]
SquidDev has joined #ocaml
<discocaml> <wokalski> What are the recommended tools to use for profiling in OCaml 5? Memtrace doesn’t work ((Failure "Gc.memprof.start: not implemented in multicore")), spacetime is long gone and we have this pretty unhelpful stack trace to look at. Before we start dissecting our codebase to empirically find what the issue is, could you suggest any tooling to find where the issue lies? I am sure that excessive allocations are the issue but I have 4 different ar
azimut has joined #ocaml
Tuplanolla has joined #ocaml
xd1le has quit [Quit: xd1le]
trillion_exabyte has quit [Ping timeout: 264 seconds]
<hannes> wokalski: I'd try landmarks (ppx from lexifi) and instrument first the top-level module, and then going down the callchain.
<hannes> or linux' perf
trillion_exabyte has joined #ocaml
waleee has joined #ocaml
<discocaml> <wokalski> With landmarks I struggled to set it up properly for libraries (I have a setup where I have bin/main.ml and the rest in lib to be able to have inline tests). When I added landmark.ppx to the underlying libs I got a runtime exception from landmark. `failure when closing expecting "ROOT"` in the library code
<discocaml> <wokalski> but you'r eright that the easiest option (althoguh not easy per se) besides the linux perf is manually instrumenting the code with landmark.
<hannes> sorry to hear your struggle with landmarks, for me it worked nicely (but I have not used OCaml 5 yet)
<discocaml> <arbipher> I wonder how can I create an issue (or maybe a PR) for projects hold in gitlab.inria.fr. The registration seems not open to public (or the ocaml community)..
Everything has joined #ocaml
John_Ivan has joined #ocaml
waleee has quit [Ping timeout: 240 seconds]
John_Ivan_ has quit [Ping timeout: 268 seconds]
mbuf has quit [Ping timeout: 240 seconds]
czy has quit [Ping timeout: 240 seconds]
Serpent7776 has quit [Quit: WeeChat 1.9.1]
<reynir> perhaps you can contact the author by email
alexherbo2 has joined #ocaml
waleee has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #ocaml
Tuplanolla has quit [Quit: Leaving.]
<discocaml> <leviroth> @TheBloodlessMan I think you should be able to use the `[@@unboxed]` annotation there, does it not work?
rf has joined #ocaml
<discocaml> <leviroth> Indeed I don’t think it should matter that the contents of the existential type there must be immediate; all that matters is that there’s only one constructor, so you don’t need an extra box to represent this type. It should also work if you had `type t = T : _ option -> t [@@unboxed]`
<discocaml> <octachron> @arbipher , I fear the only option is to send an email (possibly on the project mailing list). The Inria gitlab instance is mostly unusable.
<discocaml> <octachron> (at least for open source projects)
alexherbo2 has quit [Remote host closed the connection]
rf has quit [Remote host closed the connection]
rf has joined #ocaml
wingsorc__ has joined #ocaml
rf has quit [Remote host closed the connection]
trillion_exabyte has quit [Ping timeout: 250 seconds]
trillion_exabyte has joined #ocaml
hannes has quit [Ping timeout: 260 seconds]
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #ocaml
bartholin has quit [Quit: Leaving]
waleee has quit [Ping timeout: 264 seconds]
waleee has joined #ocaml
waleee has quit [Ping timeout: 240 seconds]
waleee has joined #ocaml
slothby has quit [Quit: brb ... maybe]
slothby has joined #ocaml
waleee has quit [Ping timeout: 240 seconds]
rf has joined #ocaml
hannes has joined #ocaml
Haudegen has quit [Ping timeout: 240 seconds]
waleee has joined #ocaml