rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Square has joined #ocaml
<discocaml>
<jobhdez> Thanks
<discocaml>
<jobhdez> What type of projects do you guys make with ocaml?
rgrinberg has joined #ocaml
Serpent7776 has joined #ocaml
czy has quit [Read error: Connection reset by peer]
czy has joined #ocaml
mima has joined #ocaml
olle has joined #ocaml
szkl has joined #ocaml
bartholin has quit [Quit: Leaving]
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
noddy has quit [Ping timeout: 256 seconds]
noddy has joined #ocaml
hiddenman has quit [Read error: Connection reset by peer]
hiddenman has joined #ocaml
hiddenman has quit [Remote host closed the connection]
rak has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bibi_ has joined #ocaml
szkl has quit [Quit: Connection closed for inactivity]
tremon has joined #ocaml
fweht has joined #ocaml
type has joined #ocaml
<type>
hi! i am looking for a thorough description of the OCaml's garbage collector. i am aware of RWO's chapter and OCaml's wiki, but i was wondering if any of you could point me elsewhere.
<olle>
type: source code?
<type>
that would be my last resort
<type>
in the sense that i am essentially trying to find "bugs" in the implementation
<Armael>
could you say a bit more about what you're trying to do?
<discocaml>
<contextfreebeer> the most notable OCaml projects to date have been compilers, proof assistants and SMT solvers, people that are interested in that kind of stuff tend to be drawn to OCaml, the biggest projects I've done personally are a toy compiler, SAT solver and a MIPS emulator (ocaml is not super great for writing emulators IME)
<discocaml>
<contextfreebeer> but people make all kinds of things
a51 has joined #ocaml
<type>
sure. i am basically trying to write formal specifications (temporal properties) of what the GC is supposed to do and check if it is doing the right thing based on its runtime behaviour.
<discocaml>
<contextfreebeer> type: do you mean the new multithreaded GC?
<Armael>
I think Damien Doligez was doing som of that in his PhD? (on top of the original author of the ocaml GC)
<type>
yes, but i'm not focusing on multithreaded programs
<Armael>
he seems a relevant person to talk to
<type>
looks like a good start. thanks a lot for the pointer!
<Armael>
on top of being the original author*
<Armael>
np
waleee has joined #ocaml
<octachron>
There is also Alexandre Moine's work (http://cambium.inria.fr/~amoine) on formal specification of languages with GCs
<type>
many thanks! :)
alexherbo2 has joined #ocaml
<Armael>
(there's also our formalization of (a subset of) the ocaml ffi in https://melocoton-project.github.io/ :p, which needs to account for the effect of the GC to some extent---thought I assume is related but not directly relevant)
<type>
i will take a look at it. thanks!
a51 has quit [Quit: WeeChat 4.2.1]
a51 has joined #ocaml
Square has quit [Ping timeout: 268 seconds]
bibi_ has quit [Ping timeout: 255 seconds]
<discocaml>
<Ada> is ocaml getting more popular for web use?
<olle>
Doubt it
<olle>
Or, percentage or absolute numbers?
type_ has joined #ocaml
type has quit [Ping timeout: 256 seconds]
type_ has quit [Ping timeout: 264 seconds]
type has joined #ocaml
waleee has quit [Quit: WeeChat 4.1.2]
Romanson has joined #ocaml
<discocaml>
<bluddy5> It's difficult to say. Dream seems to be a fairly popular choice, and a solid library can attract people. ReasonML attracted many web developers, and after it imploded, many of those who remained seem to have switched to Melange, which is more closely tied to the OCaml ecosystem.
xd1le has quit [Quit: xd1le]
bartholin has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #ocaml
alexherbo2 has quit [Ping timeout: 250 seconds]
duncan_ is now known as duncan
<discocaml>
<deepspacejohn> to me it feels like it's getting more popular for web use in a technical sense, that more people are using it now then they were in the past. But that's completely anecdotal from my perspective. And it doesn't feel like it's close to competing with the other big web languages (yet?)
olle has quit [Ping timeout: 252 seconds]
average has joined #ocaml
<discocaml>
<noahtheduke> i didn't know reasonml imploded
<discocaml>
<Ada> reasonml always seemed. like a bit of a bad idea to me (not to be rude)
mima has quit [Ping timeout: 260 seconds]
Tuplanolla has joined #ocaml
a51 has quit [Quit: WeeChat 4.2.1]
a51 has joined #ocaml
Romanson has quit [Quit: Connection closed for inactivity]
<discocaml>
<leostera> hi folks, anyone's got a snipper for to generate int32's from Mirage_crypto_rng? i can get a random Cstruct.t but, well, not what i want
<discocaml>
<leostera> hi folks, anyone's got a snippet for/to generate int32's from Mirage_crypto_rng? i can get a random Cstruct.t but, well, not what i want
<discocaml>
<leostera> hi folks, anyone's got a snippet to generate int32's from Mirage_crypto_rng? i can get a random Cstruct.t but, well, not what i want
<reynir>
I think maybe random-conv is what you're looking for. One sec
<reynir>
Sorry it was randomconv: `Randomconv.int32 Mirage_crypto_rng.generate`
<reynir>
@leostera ^
<discocaml>
<leostera> excellent, thanks @reynir!
waleee has joined #ocaml
rgrinberg has joined #ocaml
a51 has quit [Quit: WeeChat 4.2.1]
a51 has joined #ocaml
a51 has quit [Quit: WeeChat 4.2.1]
<discocaml>
<coollcat> I seriously doubt OCaml will ever compete with something like Java or ruby for web use, but that's okay tbh.
<discocaml>
<coollcat> I find this language to be super opinionated - in a good way
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
a51 has joined #ocaml
<discocaml>
<leostera> its really a matter of incentives
<discocaml>
<leostera> there's tons of amazing stuff built in ocaml that just needs proper surfacing, focus on dx, docs – if the incentives aren't aligned to prioritize that kind of work, then it will never happen
<discocaml>
<leostera> ruby in particular is a language that is _extremely_ opinionated – the language is so maleable, its too easy to find yourself writing your own dialect of it (or someone else's, *cough rails cough*)
<discocaml>
<leostera> for ex. @reynir just helped me find a way to get a random int32 out of mirage_crypto, which is afaict _the_ crypto library for ocaml, and its surprisingly unintuitive for someone who doesn't want to care about Fortuna, or what Mirage is, or what a Cstruct is.
<discocaml>
<leostera> so in many respects ocaml is a lot more about configurability than opinionated libs! (and this is great for a lot of use-cases)
tremon has quit [Quit: getting boxed in]
bartholin has quit [Quit: Leaving]
oriba has joined #ocaml
a51 has quit [Quit: WeeChat 4.2.1]
<discocaml>
<Ada> it is a multi paradigm language
a51 has joined #ocaml
average has quit [Quit: Connection closed for inactivity]
Serpent7776 has quit [Ping timeout: 252 seconds]
a51 has quit [Quit: WeeChat 4.2.1]
a51 has joined #ocaml
<remexre>
is there a way to see the code generated by PPX rewriters, for debugging purposes? (I'm using dune and haven't used ppx without it -- sorry if this is obvious!)
<discocaml>
<Et7f3 (@me on reply)> I would run dune in verbose mode, copy the ppx invocation then see what options the ppx driver proposes or use ocamlopt invocation with -dparsetree
<discocaml>
<Et7f3 (@me on reply)> (I haven't used ocaml in a while but it is a general method for everything)
<remexre>
ah, cool, thanks
a51 has quit [Quit: WeeChat 4.2.1]
mima has joined #ocaml
<discocaml>
<deepspacejohn> `dune show pp` will also print the preprocessed output.