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/
waleee has quit [Ping timeout: 260 seconds]
xd1le has quit [Quit: xd1le]
<h0rror> hi folks, should one use merlin or ocaml-lsp these days? what's the consensus? also, does anyone have an nvim config with OCaml-specific bells and whistles to check out? :)
<companion_cube> just ocaml-lsp for me, and lunarvim knows about it
<h0rror> companion_cube: thanks, checking out lunarvim
wingsorc__ has joined #ocaml
wingsorc has quit [Remote host closed the connection]
<loopspace> I started with merlin but am trying to switch to lsp in emacs
<h0rror> getting lsp to work with 5.0.0 on arm64 is proving non-trivial unfortunately
<discocaml> <Kali> i currently use merlin+nvim, but i've never used ocaml-lsp. does it offer any particular advantages to merlin?
<h0rror> visual studio code magically works without any configuration though
chrisz has quit [Ping timeout: 265 seconds]
chrisz has joined #ocaml
<companion_cube> lsp is just the standard now
<companion_cube> merlin works, but really, if you use multiple languages, using lsp is a no brainer
spip has quit [Quit: Konversation terminated!]
<loopspace> Is there something else I need to install? *lsp-log* keeps spewing the same error message in emacs https://www.irccloud.com/pastebin/X3szNvuZ/
<loopspace> (Things appear to be working to some extent, but I'm new to this setup, so I haven't tried much so far)
czy has joined #ocaml
czy has quit [Remote host closed the connection]
Tuplanolla has joined #ocaml
bartholin has joined #ocaml
Serpent7776 has joined #ocaml
olle has joined #ocaml
czy has joined #ocaml
Haudegen has joined #ocaml
xd1le has joined #ocaml
azimut_ has quit [Ping timeout: 255 seconds]
spip has joined #ocaml
<discocaml> <dumbpotato> could anybody please answer my question in the beginners channel ☹️ i’ve been stuck on it for over 5 hours
xd1le has quit [Quit: xd1le]
alexherbo2 has joined #ocaml
Haudegen has quit [Ping timeout: 240 seconds]
Anarchos has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
Haudegen has joined #ocaml
Techcable has quit [Ping timeout: 250 seconds]
alexherbo2 has joined #ocaml
Techcable has joined #ocaml
olle has quit [Ping timeout: 240 seconds]
azimut has joined #ocaml
u92n has joined #ocaml
Anarchos has quit [Quit: Vision[]: i've been blurred!]
Anarchos has joined #ocaml
Stumpfenstiel has joined #ocaml
Anarchos has quit [Quit: Vision[]: i've been blurred!]
oriba has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #ocaml
kakadu has quit [Remote host closed the connection]
Haudegen has quit [Quit: No Ping reply in 180 seconds.]
Haudegen has joined #ocaml
Anarchos has joined #ocaml
u92n has quit [Quit: Client closed]
Anarchos has quit [Ping timeout: 240 seconds]
alexherbo2 has quit [Ping timeout: 260 seconds]
Anarchos has joined #ocaml
<Anarchos> hello
alexherbo2 has joined #ocaml
olle has joined #ocaml
<adrien> so... packing my values didn't help much I think; or at least not noticeably enough at the moment; I think the interval map itself uses quite a lot of memory; intervals are only 2 bytes on average
<olle> Can't you fork?
<olle> Hm that wouldn't reduce the total mem usage
<olle> adrien: what about distributed computing?
<adrien> but I was able to run this on my larger dataset by calling Gc.compact regularly; it still used 44GB
<adrien> I don't think it can be distributed easily but I might be able to turn the tree into an array
<olle> adrien: How big is the code eating the memory? In LOC
<adrien> another option is to turn the tree (the map) into a set of trees instead so that they can be freed as the rest of the program continues
<adrien> batteri's batimap
<adrien> basically
<olle> adrien: Would arenas help? Or pools or whatever.
<adrien> hard to tell; I have a few things to try before such things
<olle> Splitting it up sounds like a good idea.
<olle> If possible.
<olle> We have a PHP script that takes 15 min to run to export a data set, but didn't look into it yet. It's more about SQL opt, I'd assume. Still, customer was annoyed.
<adrien> I'm trying to optimize my type first but overall the boxing and use of large ints everywhere kind of hurts
<olle> That shouldn't be a problem if you can split it? Divide and conquer.
<adrien> the issue is that the data at any point can use anything that appeared previously
Anarchos has quit [Quit: Vision[]: i've been blurred!]
alexherbo2 has quit [Ping timeout: 260 seconds]
<adrien> I had type t = Padding | Literal | Match of int * int * int, and I was actually able to remove Padding now (it was useful when the code was still in flux) and then I was able to use only int * int * int because that second int being equal to 0 can be use to mean Literal
<adrien> and if I pack that type, I save around 1GB out of 11.5GB
alexherbo2 has joined #ocaml
<adrien> but it's also a bit surprising that the simpler type saved nothing by itself and I'm wondering if I'm leaking; which is going to force me to be kinda scientific and actually use memprofstat
bartholin has quit [Quit: Leaving]
wingsorc__ has quit [Quit: Leaving]
wingsorc has joined #ocaml
<octachron> int * int * int is still "header + 3 fields".
<adrien> since the memory usage is slightly lower in practice when packing, I'm probably missing something else, which is why I'm thinking of some kind of leak
<olle> adrien: write old data to disk and remove it from RAM_
<olle> ?
<olle> What does "at any point" mean?
<olle> Like, statistically?
Serpent7776 has quit [Ping timeout: 255 seconds]
tjnhxmzhmqgytuwt has joined #ocaml
Tuplanolla has quit [Quit: Leaving.]
olle has quit [Ping timeout: 240 seconds]
wingsorc has quit [Remote host closed the connection]
wingsorc has joined #ocaml
jmiven has quit [Quit: reboot]
jmiven has joined #ocaml
John_Ivan has quit [Quit: Phantom of the future.]