silver has quit [Read error: Connection reset by peer]
shinnya has quit [Ping timeout: 256 seconds]
zolk3ri has quit [Quit: leaving]
ctrlsbstr has joined #ocaml
kleimkuhler has joined #ocaml
ctrlsbstr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
yaewa has joined #ocaml
moei has quit [Ping timeout: 252 seconds]
yaewa has quit [Quit: Leaving...]
moei has joined #ocaml
kleimkuhler has quit [Quit: kleimkuhler]
mfp has quit [Ping timeout: 245 seconds]
jimmyrcom_ has quit [Ping timeout: 260 seconds]
kleimkuhler has joined #ocaml
kleimkuhler has quit [Client Quit]
kleimkuhler has joined #ocaml
kleimkuhler has quit [Quit: kleimkuhler]
Soni has quit [Read error: Connection reset by peer]
tormen_ has joined #ocaml
kleimkuhler has joined #ocaml
kleimkuhler has quit [Client Quit]
tormen has quit [Ping timeout: 245 seconds]
Soni has joined #ocaml
pierpa has quit [Quit: Page closed]
pierpal has joined #ocaml
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #ocaml
hdon has quit [Ping timeout: 252 seconds]
hdon has joined #ocaml
hdon has quit [Ping timeout: 252 seconds]
loli has quit [Quit: WeeChat 2.1]
pierpal has quit [Read error: Connection reset by peer]
xvilka has joined #ocaml
pierpal has joined #ocaml
pierpal has quit [Ping timeout: 245 seconds]
mbuf has joined #ocaml
hdon has joined #ocaml
hdon has quit [Changing host]
hdon has joined #ocaml
marxS has joined #ocaml
<marxS>
hi
FreeBirdLjj has joined #ocaml
malina has quit [Ping timeout: 260 seconds]
FreeBirdLjj has quit [Client Quit]
jimmyrcom_ has joined #ocaml
jimmyrcom_ has quit [Quit: Leaving]
jimmyrcom_ has joined #ocaml
jimmyrcom_ has quit [Remote host closed the connection]
jimmyrcom_ has joined #ocaml
<marxS>
is the ocaml community dead?
jimmyrcom_ has quit [Client Quit]
jimmyrcom_ has joined #ocaml
<discord2>
<Christophe> No it's not, I'd say it's quite lively actually ! (maybe just asleep or at work 😃 )
jimmyrcom_ has quit [Remote host closed the connection]
<marxS>
hmm, I saw the reddit and it was quite empty
<marxS>
and I saw there aren't many libraries for ocaml either
<discord2>
<Christophe> There's a decent amount as you could see in OPAM. It's clearly not as active as more "trendy" languages like Javascript or Python, but it evolves. It is also a language that evolves more slowly I'd say because it is much more mature and stable already, so it does not need as much buzzing 😃
<discord2>
<Christophe> Reddit might not be the main channel either compared to other language, you might want to check https://ocaml.org/ and for forums: https://discuss.ocaml.org/
<marxS>
ah okay
<marxS>
still, I think compared to haskell or something, there is lack of activity
noitakomentaja has quit [Ping timeout: 250 seconds]
<marxS>
I think Jane Street using Ocaml has encouraged a lot of other people to
<marxS>
you have a generation of young CS people coming through wanting to land jobs at quants
<discord2>
<Christophe> Someone more in the community than me might correct me (I have joined not long ago) but I feel that Haskell has more, let's say, theoretical adoption, academic for instance, and OCaml has more real world adoption
<discord2>
<Christophe> So though Haskell would have a larger or at least more active community, if you restrict to industrial use, OCaml would be more active but it might be just me 😃
<discord2>
<Christophe> Jane Street, Facebook also, Citrix, ...
<marxS>
discord2, would you mind helping me with a simple question? I'll screenshot it now
<marxS>
since, if sep is not None, then won't we get x = sep, so we get sep ^ sep ^ y at the end?
<discord2>
<Christophe> The ?sep parameter is optional, meaning that it's type will be a 'a option, here a string option
<discord2>
<Christophe> the `'a option' type is a variant that can be either None (no value) or Some x (a value: x)
<marxS>
yeah, I get that, I just don't understand the repeated use of x in the definition
<marxS>
x in "Some x" and x as an argument to the function
<discord2>
<Christophe> the x is shadowed in the pattern matching
<discord2>
<Christophe> but just in that part 😃
<marxS>
oooh
<marxS>
ok I see
<marxS>
thanks
<discord2>
<Christophe> You could replace "Some x -> x" by "Some whatever -> whatever"
<marxS>
yeah
<discord2>
<Christophe> though this function would be simpler with an optional parameter with a default value: let concat ?(sep="") x y = x ^ sep ^ y
<marxS>
yeah that's the next example in the book
<marxS>
also, are you relaying from discord?
<discord2>
<Christophe> Yes 😃
<marxS>
why?
<marxS>
is there an ocaml discord? lol
<discord2>
<Christophe> I don't know, the Discord channel is more recent than the IRC one, like very recent, and I joind the community when it was created 😃
<discord2>
<Christophe> Yes there is 😄
<discord2>
<Galwoah> Oh, I found it 😛
<discord2>
<Christophe> 😃
muelleme has joined #ocaml
<discord2>
<Galwoah> Does label of arguments only work if function definition has label or a ?
Haudegen has joined #ocaml
<discord2>
<Galwoah> I read that back and realized it doesn't make much sense lol, it's difficult to articulate what I mean
<reynir>
marxS: that example is a bit tricky wrt. scoping and shadowing heh
<discord2>
<Christophe> yes, arguments without ~ or ? in the definition are positional only, unlike Python for instance 😃
<reynir>
marxS: Where did you find that snippet?
<marxS>
reynir in Real World OCaml
<reynir>
marxS: Do you remember where? What chapter? :)
<marxS>
page 43
<discord2>
<Christophe> Sounds like the chapter about functions
<marxS>
under chapter "Optional arguments"
<marxS>
in functions
noitakomentaja has joined #ocaml
<discord2>
<Christophe> Are you reading the dev version ? I guess not
<marxS>
I don't think so
<reynir>
marxS: Are you OK if I reference your comments here on IRC? I will open an issue about that snippet :-)
<discord2>
<Christophe> Well anyway it's still the same in the dev version 😃
sz0 has quit [Quit: Connection closed for inactivity]
<marxS>
reynir, of course, although I'm not sure if it's too much of an issue though (it may have been to reinforce the earlier-learned concepts of shadowing)?
<reynir>
Christophe, since marxS referenced the page number I'm assuming they're reading the "printed" book :)
<discord2>
<Christophe> Yes, indeed, but the code could have been changed since then for the new version 😃
mk9 has joined #ocaml
<reynir>
marxS: That's a good point. I'll open one anyway and mention this as well :-)
<marxS>
do you guys/girls use ocaml for most of your dev? or do you delegate it to specific types of tasks?
<Leonidas>
marxS: I use it for everything
mk9 has joined #ocaml
<Leonidas>
Christophe: actually Python functions are not always labeled. Some built-in functions have names like `a` and `b` and you can't use them as labels.
<Leonidas>
I find that very inconsistent, because it is not obvious in any way whether they are labeled or positional
mk9 has quit [Client Quit]
<Leonidas>
Christophe: take, for example `divmod(x, y) -> (quotient, remainder)` and call `divmod(x=1, y=2)`
muelleme has quit [Ping timeout: 245 seconds]
<Leonidas>
which is very annoying if you think you can use `partial` with it, but it turns out that you actually can't.
<discord2>
<Christophe> Indeed, I had not run into this, how annoying ...
<discord2>
<Christophe> "(it may have been to reinforce the earlier-learned concepts of shadowing)" as a (former) teacher I can say that it is not recommended to use several concepts when introducing a new one, so if that was the goal anyway, it's a bad idea 😃
<discord2>
<Christophe> "do you guys/girls use ocaml for most of your dev? or do you delegate it to specific types of tasks?" > not using it yet unfortunately but I want to try pushing it at work 😄
<discord2>
<Christophe> still need to find and study the libraries I would need for that
pierpal has joined #ocaml
pierpal has quit [Client Quit]
pierpal has joined #ocaml
pierpal has quit [Ping timeout: 252 seconds]
<marxS>
I wonder why JS choose to be 100% with Ocaml given that, at least at first glance, OCaml doesn't seem a great language for ML stuff
<marxS>
an imperative counterpart seems much more suitable
<Leonidas>
mathsm: I don't think the reason for using ML at JS is to do ML in ML
<Leonidas>
*marxS
<Leonidas>
meh
shw has quit [Quit: shw]
shw has joined #ocaml
<reynir>
"ML in ML" :D
dkrm has joined #ocaml
<xvilka>
marxS: for basic stuff there is always a tensorflow which has ocaml bindings (haven't tried them though)
<dmbaturin>
reynir: ML in JS of ML at JS. ;)
<Enjolras>
they are not here anymore ><
<reynir>
dmbaturin: ;D
<Enjolras>
there is also oml and cie. But imo there are two things in ML : training and production. Usually you can always train in python and export model to use in prod with ocaml/whatever
<xvilka>
Enjolras: also Owl library, though NNs are ETOOBASIC in this one
<Enjolras>
train and experiment in python because it's easier and more convenient, production in ocaml because it's your production language
<dmbaturin>
The funniest thing about the discord bridge is that if it can insert <message clipped>, it has already done all the calculations requires to split a message.
<Enjolras>
yeah
<dmbaturin>
I see nothing inherently wrong with using python where it makes sense.
<Leonidas>
why would it clip messages? If there is a limit on the length of a line in IRC it is pretty high?
<steenuil>
it's not that high
<dmbaturin>
It's 500 characters AFAIR.
<steenuil>
but I think most servers accept it anyway and split it server-side
<dmbaturin>
Most clients just can do the splitting by themselves.
<Leonidas>
oh, 512 - 2. I stand corrected
<Enjolras>
dmbaturin: of course no, but sometimes the cost of having two languages is higher than the cost of writing a bit more code to execute your model in ocaml
<dmbaturin>
* 512 octets, to be precise. Unicode makes the issue worse.
<Enjolras>
else you mostly need grpc/rest
<Enjolras>
to make it easy. Which is fine for low volumes of data
<steenuil>
anyway I've seen the discord bot's messages split over a few different messages already, it seems weird that it does that
<Enjolras>
now if you're going to need to execute your model on several billions of data records... well
<reynir>
Ah yes, I used an irc library for node.js that calculated length using character length instead of octet length. It was a mess and no one fixed it :|
<xvilka>
many people still unaware of Unicode existence
<steenuil>
I think I've only realized how painful it is when I tried Rust, because it makes a huge deal about unicode
<dmbaturin>
Separating bytes and string types at the language level is a huge step forward in this regard.
picolino has joined #ocaml
<steenuil>
by the way, a few days/weeks ago I asked something about getting opam to compute the minimum possible version of all packages for a given set of dependencies, and I've read the page about solver preferences (https://opam.ocaml.org/doc/Specifying_Solver_Preferences.html) and the pages linked from there, but I can't figure it out.
<steenuil>
I think my use case in particular would be helpful for some other people to test the lower version bounds on their opam packages
<steenuil>
so I was wondering if somebody could give me some help with that and maybe it could be added to opam's documentation
noitakomentaja has quit [Ping timeout: 250 seconds]
noitakomentaja has joined #ocaml
mfp has quit [Remote host closed the connection]
grayswandyr has joined #ocaml
grayswandyr_ has joined #ocaml
grayswandyr has quit [Client Quit]
<grayswandyr_>
hi I'm using Containers's CCUnix.call to execute a command. It seems that when the calling process is killed, the child is not. As call doesn't return a pid, I can't even handle this by myself, unless I go back to lower-level programming (call is cool 'cause I get the child's eror code and stdout and stderr easily) Does anyone have a gist or piece
<grayswandyr_>
of code to point me to, where this situation is handled?
<Leonidas>
companion_cube: --^
weird_error has joined #ocaml
_andre has joined #ocaml
<grayswandyr_>
yeah I know. But I'm open to using a FOSS piece of code written by someone else as long as it does the job. I'm lazy :-)
<flux[m]>
grayswandyr_, have you tried Unix.setsid (); ?
<flux[m]>
not really sure if that's a solution, but if it is/isn't, I would be interested in hearing that.. :-)
<flux[m]>
I suppose actually that part where it says "detach the session from its contrlling terminal" might be a bit too much compared to what you're trying to achieve
grayswandyr_ has joined #ocaml
<Leonidas>
grayswandyr_: I did not mean to imply anything, I just think pinging the author of containers might yield the best answer :-)
monstasat has joined #ocaml
demonimin has quit [Remote host closed the connection]
mbuf has quit [Quit: Leaving]
<monstasat>
Hello! I have a question about extending a module with inner modules inside which I also want to extend. Here is the example: https://pastebin.com/vBae6VVt. The problem is that if I include top module like in the example, there is an error raised because module name is not unique. Is there any handy way to bypass this problem?
<monstasat>
*to be more clear, inner module names are not unique
spew has joined #ocaml
freyr has joined #ocaml
<octachron>
monstasat, you could use destructive substitution on the include statement: "include (Outer: signature with Inner1 := Outer.Inner1 and Inner2 := Outer.Inner2)"
<monstasat>
octachron, thanks, seems that it is what I've looked for!
<octachron>
if you don't have a signature at hand you can use "module type of Outer" (or "module type of struct include Outer end")
tarptaeya has joined #ocaml
jack5638 has quit [Ping timeout: 260 seconds]
jack5638 has joined #ocaml
dhil has quit [Ping timeout: 248 seconds]
noitakomentaja has quit [Quit: WeeChat 2.0.1]
<grayswandyr_>
@flux[m] sorry I was AFK. Yeah it might be a too much :) anyway that's nice, I didn't know this function
aciniglio has quit [Remote host closed the connection]
<companion_cube>
surely it's an unbiased opinion if it's on gitlab's site :]
<dmbaturin>
Does gitlab.com allow to export _all_ data from it for migration to a self-hosted gitlab?
<companion_cube>
(I have nothing against gitlab tho)
<dmbaturin>
I.e. issues, comments etc.
<companion_cube>
it's funny how everyone puts the line at a different place for closedness/openness of solutions for every topic
<companion_cube>
like, I'm fine with github, but I don't like slack or discord; some are the opposite
<dmbaturin>
companion_cube: My criterion for systems that are not open source (or SaaS versions of open source systems) is quite simple: can I automatically take my data back in a documented format.
<companion_cube>
yeah, that's a reasonable criterion
<companion_cube>
(I'm not sure about github issues actually)
<dmbaturin>
Github is sort of fine, I can run with my git repos at least if I don't like it anymore. Slack/Discord are absolutely not.
FreeBirdLjj has quit [Remote host closed the connection]
<companion_cube>
slack is terrible
<companion_cube>
in all respects
<dmbaturin>
That's why I'm asking about gitlab.com: if you cannot export gitlab-specific stuff, it doesn't really matter if gitlab itself is open source.
<discord2>
<Bluddy> companion_cube: why is slack so terrible?
<companion_cube>
the client is electron shit, and it's as far from openness (of your own logs) as possible
<Drup>
they also shut down all the bridges
<discord2>
<Bluddy> oh right they have the deal where you have to pay to get back old messages
<discord2>
<Bluddy> they did?
<Drup>
yes, all of them
<discord2>
<Bluddy> wow
<Drup>
As you say
<companion_cube>
bait and switch, textbook edition
<dmbaturin>
In ctypes, is there an easy way to convert something** -> 'a list and back?
<discord2>
<Bluddy> they do warn you when you're about to hit the 10,000 message limit, but private messages count, so you hit that limit without any way to slow down
aciniglio has joined #ocaml
pierpal has joined #ocaml
pierpal has quit [Ping timeout: 268 seconds]
tane has joined #ocaml
<discord2>
<Perry> I hate Slack. The idea, though, is nice. The electron app and the total lack of security are terrible. Having been using Discord for a while now (another electron app, yuck), the ability to do markdown in the client has been really key to having productive discussions about ocaml (nicely formatted and indented code snippets in conversations!) The other advantage has been automatically catching up with the discussion, because unlike IRC, when I
<discord2>
log back in, I see what was going on.
<discord2>
<Perry> My ideal is now an open protocol, markdown or something similar (and back edits, reacts, etc.), and being able to see at least recent history when you rejoin.
<companion_cube>
I have a server with email and web on it, and I also have an IRC client running in a screen there
<companion_cube>
which is why IRC is fine by me
<discord2>
<Perry> IRC's protocol is almost good enough, but not quite good enough.
<adrien>
mattermost is free software
<discord2>
<Perry> Mattermost is more electron crap on the front end, and the back end is a giant node.js mess
<companion_cube>
eek
<discord2>
<Perry> The server takes gigs of memory to do almost nothing.
<companion_cube>
and matrix seems… shaky, too
<discord2>
<Perry> Matrix is way too shakey.
<companion_cube>
there's no clear winner sadly
<adrien>
as for gitlab vs. github, I started with it because I wanted an easy way to try a gitlab instance with all the features enabled (gitlab is opencore)
<adrien>
I use mattermost in a browser
<adrien>
so no electron
<discord2>
<Perry> yah, the thing that irritates me about gitlab is it's open core, not really open source.
<adrien>
but not a desktop app either
<discord2>
<Perry> You can run discord and slack in a browser, too.
<adrien>
the opencore is large though
<discord2>
<Perry> It's not really better that way...
<companion_cube>
a chat client in the browser? that sucks, most edition shortcuts will do bad things (lie closing the tab)
<adrien>
and only gets larger
<discord2>
<Perry> what only gets larger?
<dmbaturin>
companion_cube: Oh, yeah. ^w in browser.
<adrien>
companion_cube: considering that github hijacks "/", I guess that C-w can be hijacked too
<adrien>
or comments saved at least
<adrien>
the opencore stuff in gitlab only expands
<adrien>
and let's face it
<companion_cube>
I'm not sure it can hijack browser shortcuts.
<adrien>
gitlab has no competition
<adrien>
companion_cube: '/' is a browser shortcut
<companion_cube>
is it?
<adrien>
yup
<adrien>
and you can prompt for confirmation before closing a tab
<companion_cube>
what does it do? on my firefox it's taken over by whatever vim stuff I use
<adrien>
and you can save and restore contents
<companion_cube>
(still mourning vimperator)
Haudegen has quit [Remote host closed the connection]
<companion_cube>
anyway I've never seen a web app remap ctrl-w not to close the ta
<companion_cube>
b
<discord2>
<Perry> I really want a browser inside emacs. But that's another story.
mk9 has joined #ocaml
<discord2>
<Perry> I'm on a mac, so command-w is what closes tabs, not control...
pierpal has joined #ocaml
<discord2>
<Bluddy> so you guys are saying it's more efficient to run stuff in the browser than as electron desktop apps?
<copy`>
companion_cube: They can't (the browser won't led JS remap certain shortcuts)
<copy`>
*let
<companion_cube>
yeah, that's what I would expect
<companion_cube>
Bluddy: I'd say both are horribly inefficient, but well
<copy`>
Bluddy: Well, electron would be a second browser instance beside the one I already have open anyway
<discord2>
<Bluddy> But on chrome and recent firefox, every tab is pretty much a new instance
<discord2>
<Bluddy> that's partially why they take up so much ram
<adrien>
not every
<adrien>
it tops at 4 for me afaict
<discord2>
<Bluddy> 4 tabs? I highly doubt that
<discord2>
<Bluddy> Look at your browser's memory manager
<companion_cube>
I guess the positive thing about running these in a browser is that there's less chance they will look at my files
<companion_cube>
yay
<copy`>
inb4 html filesystem API (just kidding, it already exists but it can't see your files)
<companion_cube>
I'd love a reasonably simple, yet modern, chat protocole with multiple clients
<companion_cube>
it's horribly fragmented, I think that's the issue
<dmbaturin>
SIP or XMPP?
<companion_cube>
XMPP
<companion_cube>
I don't know about SIP
<dmbaturin>
SIP as a _chat_ protocol is a strange, but not exactly unworkable idea.
<companion_cube>
I think most protocoles are too ambitious, that's a pitfall XMPP certainly fell it
<companion_cube>
in
<companion_cube>
matrix, too, has poor design choices due to overtly ambitious goals
<dmbaturin>
...I'm seriously thinking of passing JSON-encoded string lists between python and ocaml through the C interface to avoid the issue with transforming them to char** on the way.
ctrlsbstr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Anarchos has joined #ocaml
marxS has joined #ocaml
muelleme has quit [Ping timeout: 240 seconds]
zozozo has quit [Ping timeout: 256 seconds]
jimmyrcom_ has joined #ocaml
zozozo has joined #ocaml
kakadu has joined #ocaml
Haudegen has joined #ocaml
Joao_ has quit [Ping timeout: 260 seconds]
<discord2>
<Perry> SIP was proposed seriously as a chat protocol by the SIPists in the IETF.
_andre has quit [Quit: leaving]
Anarchos has quit [Quit: Vision[0.10.2]: i've been blurred!]
<discord2>
<Bluddy> I don't know if matrix's weaknesses are due to design goals. It seems to me more due to lack of funding, but I could be wrong.
<discord2>
<Bluddy> I really wish discord would copy 2 slack features I really like: 1. threaded conversations and 2. private bookmarks
tane has quit [Quit: Leaving]
<companion_cube>
for me, the fact that you're supposed to be able to backlog anywhere in the past implies you need a database and that storage grows indefinitely, that's a first problem in design
<companion_cube>
and apparently you need to check a lot of signatures when you join a channel
jnavila has quit [Remote host closed the connection]
<discord2>
<Bluddy> re the 1st part, that's sort of true... on the other hand, consider the fact that youtube is backing up gigabytes of videos per second
<discord2>
<Bluddy> text is cheap
<discord2>
<Bluddy> by signatures, do you mean end-user agreements?
<companion_cube>
text is not cheap, I'm sorry
<companion_cube>
a federated protocol shouldn't assume all participants are google sized
<companion_cube>
nor that they should dedicated a server with lots of ram and a database just for chat
<companion_cube>
(even more so for clients, of course)
BitPuffin has quit [Remote host closed the connection]
<discord2>
<Bluddy> well, ok I guess. but it's one of the expected features nowadays
<discord2>
<Bluddy> so everyone should run their own server to log the channel?
<companion_cube>
well what's the point of having a federated protocol if people don't federate? :/
<companion_cube>
I'm pretty glad email doesn't require this kind of things to work
<companion_cube>
(even though email servers are a PITA to administrate in my experience)
<discord2>
<Bluddy> I don't know about federated. I stepped in to the wrong part of the discussion.
<discord2>
<Bluddy> Just comparing solutions.
<companion_cube>
ah, right
<companion_cube>
storing logs is fine, it just should be a thing clients or instances do, not a part of the protocol, I think (or at least not a mandatory part)
<companion_cube>
otherwise you just assume infinitely growing storage, and it's as stupid as a blockchain
<discord2>
<Bluddy> well i'm not going to argue with you about blockchain, that's for sure 😃
<companion_cube>
:D
<companion_cube>
probably for the best
<discord2>
<Perry> I run my own email servers. Basically no maintenance involved.
<discord2>
<Perry> I like federation. Federation is good.
cobbal has joined #ocaml
<companion_cube>
+1
<discord2>
<Perry> these things are all now services when they should be protocols.
<companion_cube>
well, protocols don't pay the bills
<discord2>
<Perry> protocols don’t fit VC business models.
<companion_cube>
exactly
pierpal has quit [Quit: Poof]
pierpal has joined #ocaml
tarptaeya has quit [Quit: Konversation terminated!]
jimmyrcom_ has quit [Ping timeout: 252 seconds]
pierpa has joined #ocaml
pierpal has quit [Ping timeout: 260 seconds]
aciniglio has quit [Ping timeout: 240 seconds]
sz0 has joined #ocaml
rtb has joined #ocaml
marxS has quit [Quit: Leaving]
rtb has quit [Ping timeout: 252 seconds]
argent_smith has quit [Quit: Leaving.]
mk9 has quit [Quit: mk9]
letoh has quit [Ping timeout: 256 seconds]
Haudegen has quit [Remote host closed the connection]
shinnya has joined #ocaml
malina has joined #ocaml
ctrlsbstr has joined #ocaml
larhat has quit [Quit: Leaving.]
objmagic has joined #ocaml
ctrlsbstr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
objmagic has quit [Client Quit]
ctrlsbstr has joined #ocaml
objmagic has joined #ocaml
ctrlsbstr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
kakadu has quit [Remote host closed the connection]
bramford has joined #ocaml
objmagic_ has joined #ocaml
objmagic has quit [Read error: Connection reset by peer]
objmagic_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
objmagic has joined #ocaml
objmagic has quit [Client Quit]
picolino has quit [Ping timeout: 260 seconds]
ziyourenxiang has joined #ocaml
muelleme has joined #ocaml
pierpal has joined #ocaml
pierpal has quit [Read error: Connection reset by peer]