<d_bot>
<dj charlie> Pretty sure ocaml doesn’t have a sound typesystem btw
<d_bot>
<dj charlie> Trying to dig up something I ran once as an example lol
<oni-on-ion>
wat
steenuil has quit [Read error: Connection reset by peer]
mbuf has joined #ocaml
vicfred has joined #ocaml
<d_bot>
<Drup> @dj charlie If you really have a un-sound example, I *strongly* suggest you report it 🙂
<d_bot>
<dj charlie> There’s definitely an email I’m struggling to find rn
<d_bot>
<dj charlie> From way back in the 2000s
<d_bot>
<dj charlie> With a type that if you try to define it’ll cause things to hang up
<d_bot>
<dj charlie> I found it through an article I read ages back that criticised the importance of soundness and had a list of examples for a bunch of languages
<d_bot>
<Drup> yeah, that has probably been fixed since then
<d_bot>
<dj charlie> Nah it definitely worked for me the time I tried it
<d_bot>
<dj charlie> Btw not type unsoundness I misremembered, “undecidability”
<d_bot>
<dj charlie> 2 secs
<d_bot>
<Drup> ah, well, that's *very* different
<d_bot>
<Drup> yes, you can make the type checker loop with a very weird pattern of module code
<d_bot>
<dj charlie> ah here we go
<d_bot>
<dj charlie> ``` module type I =
<d_bot>
<dj charlie> sig
<d_bot>
<dj charlie> module type A
<d_bot>
<dj charlie> module F :
<d_bot>
<dj charlie> functor(X :
<d_bot>
<dj charlie> sig
<d_bot>
<dj charlie> module type A = A
<d_bot>
<dj charlie> module F : functor(X : A) -> sig end
<d_bot>
<dj charlie> end) -> sig end
<d_bot>
<dj charlie> end
<d_bot>
<dj charlie> module type J =
<d_bot>
<dj charlie> sig
<d_bot>
<dj charlie> module type A = I
<d_bot>
<dj charlie> module F : functor(X : I) -> sig end
<d_bot>
<Drup> it's known, it's ... honestly not a problem in practice
<d_bot>
<dj charlie> yeah lol
<d_bot>
<Drup> undecidability of type checking can be a problem in practice if it hits on code that people actually write, fortunately that's not the case here
wingsorc has joined #ocaml
<companion_cube>
undecidability or semi decidability?
<d_bot>
<dj charlie> 🤔
<d_bot>
<Drup> what does semi-decidability means for type checking exactly ?
<d_bot>
<Drup> because if it's "it always terminate when saying no" or something like that, then it's strictly useless 😄
<d_bot>
<Drup> (and in the case of scala and C++, there is far more practical solution: recursion is bounded. We could do the same if it mattered, but it doesn't. This kind of code is never really written)
mxns has joined #ocaml
<companion_cube>
Drup: I'd say "always terminate when fully annotated"
<companion_cube>
but maybe that's a useless discussion
<companion_cube>
I feel like we actually discussed this notion recently
<companion_cube>
(fully annotated = all binders annotated)
aaaaaa has quit [Quit: leaving]
<Drup>
well, the binders in modules are always annotated, so that's not the issue :)
<companion_cube>
right, right
mbuf has quit [Ping timeout: 246 seconds]
<companion_cube>
I didn't even know about this corner case of OCaml
oautho has joined #ocaml
<oautho>
hi! I'm using the ocaml and reason extension, and sometimes when I want to see where a function is defined, it tells me there are no references
<oautho>
how can i get help with this?
<oni-on-ion>
this may depend on editor
<oautho>
ah i'm on vscode
mfp has quit [Ping timeout: 272 seconds]
mxns has quit [Ping timeout: 256 seconds]
mxns has joined #ocaml
oautho has quit [Ping timeout: 245 seconds]
mxns has quit [Ping timeout: 264 seconds]
sm2n has quit [Read error: Connection reset by peer]
sm2n has joined #ocaml
mxns has joined #ocaml
mxns has quit [Ping timeout: 264 seconds]
oni-on-ion has quit [Remote host closed the connection]
vicfred has quit [Quit: Leaving]
ggole has joined #ocaml
wingsorc_ has joined #ocaml
wingsorc has quit [Ping timeout: 260 seconds]
wingsorc_ has quit [Quit: Leaving]
mxns has joined #ocaml
narimiran has joined #ocaml
amiloradovsky has joined #ocaml
mbuf has joined #ocaml
mbuf has quit [Ping timeout: 240 seconds]
mbuf has joined #ocaml
waleee-cl has quit [Quit: Connection closed for inactivity]
decentpenguin has quit [Read error: Connection reset by peer]
decentpenguin has joined #ocaml
shawnw has joined #ocaml
amiloradovsky has quit [Remote host closed the connection]
<d_bot>
<Eric J Morey> Why are so many people lableled with "bot" here?
<Armael>
beep boop
<d_bot>
<Splingush> it's from the IRC bridge. When they write there, their messages get posted here by the bot.
<d_bot>
<Eric J Morey> Oh. Nice!
<d_bot>
<Eric J Morey> The limitations of IRC with asynchronous communication always bothered me.
<d_bot>
<Eric J Morey> Is that bot written using OCaml?
<companion_cube>
No, it's a go thing iirc
<companion_cube>
Off the shelf
<zozozo>
and then there are a few people who are here both on irc and discord, hiding incognito... :p
<companion_cube>
😇
<d_bot>
<zozozo> that way we can confuse people by writing message with the same nick but with or without the "bot" annotation
<d_bot>
<Eric J Morey> Fun!
<d_bot>
<Eric J Morey> Has anyone here used Dis.ml from https://gitlab.com/Mishio595/disml to make a Discord bot? I want to get started on a new project using OCaml.
<companion_cube>
I just write irc bots, sorry :p
<d_bot>
<Eric J Morey> Well, I guess I will give it a try and see what happens.
amiloradovsky has joined #ocaml
Haudegen has joined #ocaml
neiluj has joined #ocaml
neiluj has joined #ocaml
mxns has quit [Ping timeout: 240 seconds]
borne has quit [Ping timeout: 272 seconds]
berberman has quit [Ping timeout: 264 seconds]
berberman_ has joined #ocaml
amiloradovsky has quit [Remote host closed the connection]
amiloradovsky has joined #ocaml
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
gareppa has joined #ocaml
<steenuil>
I actually wanted to try and port disml to Lwt a few days ago but then figured I don't want to make a discord bot *that* badly.
<companion_cube>
😂
<Armael>
:D
ggole has quit [Quit: Leaving]
mxns has joined #ocaml
<jerith>
I started writing a discord bot in OCaml from scratch a few years ago (when discord's API was new), but gave up when I reached the limits of the documentation.
<d_bot>
<psteckler> what's the best way to check whether a (Linux) process exists, from standard lib or Jane St libs?
<jerith>
... how does it have 12 stars? How does it have any stars at all?
<d_bot>
<copy> @psteckler Read the relevant files in /proc/\d+. JST had a library for reading from procfs, I believe in core_extended, not sure if that still exists.
<reynir>
@psteckler do you have the pid of the process?
<hannes>
psteckler: I use Unix.waitpid / Lwt_unix.waitpid for this (it is a blocking system call, but you can pass in a flag to avoid blocking). it returns you the exit code of the process (you need to pid of the process you'd like to observe)
vicfred_ has joined #ocaml
vicfred has quit [Ping timeout: 264 seconds]
vicfred_ has quit [Max SendQ exceeded]
vicfred_ has joined #ocaml
vicfred_ has quit [Max SendQ exceeded]
vicfred_ has joined #ocaml
<reynir>
You can also do Unix.kill pid 0 and then catch exceptions /o\
<reynir>
^ if it's not a child process
Haudegen has quit [Quit: Bin weg.]
amiloradovsky has quit [Ping timeout: 260 seconds]
amiloradovsky has joined #ocaml
Hrundi_V_Bakshi has joined #ocaml
<d_bot>
<psteckler> I ended up using `Signal.(send zero) (`Pid pid)`
<d_bot>
<psteckler> which works great
narimiran has quit [Ping timeout: 272 seconds]
olle_ has joined #ocaml
Hrundi_V_Bakshi has quit [Quit: No Ping reply in 180 seconds.]
Hrundi_V_Bakshi has joined #ocaml
amiloradovsky has quit [Remote host closed the connection]
raver has quit [Read error: Connection reset by peer]
xenu_ has joined #ocaml
serpent has joined #ocaml
xenu has quit [Read error: Connection reset by peer]
Serpent7776 has quit [Read error: Connection reset by peer]
olle_ has quit [Ping timeout: 240 seconds]
<d_bot>
<ocaml.bro.69> I was looking at Jane Street's `Incr_dom` library. Is it possible to compose multiple `Component` types together? It seems like you can't.
<d_bot>
<ocaml.bro.69> I would like to compose my different views together, but it seems like it is a bit difficult to do that with Jane Street's `Incr_dom`. You have to create one giant view for the entire app
<d_bot>
<beheddard> I don't have much real experience with it yet, but JaneStreet `Bonsai` is where to look for that
<d_bot>
<beheddard> It's an evolution of incr_dom with composing in mind
borne has joined #ocaml
Jesin has quit [Quit: Leaving]
gareppa has quit [Quit: Leaving]
Jesin has joined #ocaml
mxns has quit [Ping timeout: 265 seconds]
terrorjack has quit [Ping timeout: 264 seconds]
Tuplanolla has quit [Quit: Leaving.]
Hrundi_V_Bakshi has quit [Ping timeout: 256 seconds]