adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.09 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.09/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
sgnb` has joined #ocaml
raver has quit [Read error: Connection reset by peer]
olle has quit [Ping timeout: 246 seconds]
raver has joined #ocaml
olle has joined #ocaml
yomimono has joined #ocaml
Haudegen has quit [Ping timeout: 264 seconds]
mbuf has joined #ocaml
ygrek has quit [Ping timeout: 260 seconds]
pigeonv has quit [Ping timeout: 240 seconds]
mfp has quit [Ping timeout: 252 seconds]
dborisog has joined #ocaml
jao has quit [Ping timeout: 246 seconds]
hlisp has quit [Remote host closed the connection]
sstc has quit [Quit: WeeChat 2.8]
hlisp has joined #ocaml
hlisp has quit [Ping timeout: 264 seconds]
hlisp has joined #ocaml
narimiran has joined #ocaml
hlisp_ has joined #ocaml
hlisp has quit [Ping timeout: 256 seconds]
hlisp_ has quit [Remote host closed the connection]
hlisp has joined #ocaml
amiloradovsky has joined #ocaml
<dborisog> Are you familiar with any tool that reports on paths/treess from a function to a function within a set of OCaml libraries? A use case for this tool is to find the shortest and alternative connections between a known function to an error message within another function in a different library.
ferd has quit [Ping timeout: 240 seconds]
hlisp has quit [Remote host closed the connection]
vicfred has quit [Quit: Leaving]
hlisp has joined #ocaml
waleee-cl has quit [Quit: Connection closed for inactivity]
hlisp has quit [Remote host closed the connection]
tane has joined #ocaml
olle___ has joined #ocaml
<olle___> test
<olle> 21:50 < olle> question is what changes would be required to the ocaml type system to make session types (or some kind of typestate) idiomatic enough to be included in the standard library
<olle> 21:51 < olle> after all, we finally got List.find_opt
<olle> 21:52 < olle> so in ten years we can get Printf.open_in_st (st for session type)?
amiloradovsky has quit [Remote host closed the connection]
Haudegen has joined #ocaml
amiloradovsky has joined #ocaml
<olle___> OK, asked on discuss.ocaml.org instead ^^
jbrown has quit [Ping timeout: 246 seconds]
jbrown has joined #ocaml
mfp has joined #ocaml
jbrown has quit [Ping timeout: 260 seconds]
nullcone has quit [Quit: Connection closed for inactivity]
jbrown has joined #ocaml
Anarchos has joined #ocaml
sugarwren has joined #ocaml
hlisp has joined #ocaml
pigeonv has joined #ocaml
hlisp has quit [Ping timeout: 246 seconds]
pigeonv has quit [Ping timeout: 244 seconds]
ygrek has joined #ocaml
<olle___> or maybe: how hard would it be to add linearity/linear types to OCaml?
<olle___> Someone did LinOCaml: https://github.com/keigoi/linocaml/
hlisp has joined #ocaml
hlisp has quit [Ping timeout: 240 seconds]
chripell_ has quit [Remote host closed the connection]
chripell_ has joined #ocaml
troydm has quit [Ping timeout: 256 seconds]
troydm has joined #ocaml
pigeonv has joined #ocaml
rople has joined #ocaml
rople has quit [Client Quit]
rople has joined #ocaml
rople has quit [Quit: rople]
aquarel has joined #ocaml
pigeonv has quit [Ping timeout: 260 seconds]
hlisp has joined #ocaml
<flux1> I wonder if it handles exceptions, object, polymorhic variants, gadts, etc.. it could be quite a task to do completely.
<simpson> olle___: Because of the way that linear logic is structured, it likely will be easier to start with a linear-only type system and then add in the ! modality on top.
<companion_cube> y'all are talking about insane amounts of work
<simpson> Well, yeah. I'm not speaking up because I *like* any of what's being discussed, but because it would be unfortunate to see something built from the wrong design principles.
<Drup> simpson: well, except your suggestion doesn't form the right basis for a convenient linear type system
<simpson> Linear logic is inherently *not* classical logic; there's an underlying duality always present with linear terms, and a system really ought to be built from scratch to take advantage of that.
<Drup> linear logic ≠ linear type
<simpson> Drup: I'm okay with that; I don't really like type systems.
<olle___> hm, but linear logic is not enough to make typestate (or such) idiomatic, because you still need to pass it around explicitly.
<Drup> Then ... why do you give advice on building type systems :D
<companion_cube> it's just, don't think of doing linear ocaml; make a new language
<companion_cube> or fork mezzo, or whatever
<simpson> Drup: You're right. I should, instead, build a language with the type system that I want to use, and not worry about whether other languages adopt my ideas.
<olle___> flux1: I'd have to test, only had a quick glance
sagax has joined #ocaml
Anarchos has quit [Remote host closed the connection]
<olle___> making a new language is not a good idea, because it's really really hard to get a traction
<companion_cube> it's not like ocaml has a lot of traction to begin with
Anarchos has joined #ocaml
<olle___> true, and there's already a fork of haskell that has linear functions
<companion_cube> if we can't get simple syntax fixes into OCaml, I doubt you can add linear types
<olle___> which syntax fix?
<Drup> companion_cube: ~~'
<olle___> not not?
<companion_cube> I wanted `end` in all the right places
<Drup> simpson: in any case, if you want to look at a type system based on lolipops+bang, look at Linear Haskell
<companion_cube> but well
<olle___> 16:01 < companion_cube> y'all are talking about insane amounts of work
<olle___> saying the syntax extension in linocaml is not good?
<olle___> or enough? or reasonable?
<Drup> Well, lineocaml also barely does linearity.
<olle___> because of the monad wrapper?
<Drup> It's a cute monad, but it's yet another encoding.
<Drup> but you can use it today if you want, it's not a compiler extension or anything :)
<olle___> yeah, I'll give it a try
<Drup> (and the question about "support feature A B C of the language is moot. It's an encoding, it doesn't extend the type system in any way)
aquarel has quit [Ping timeout: 258 seconds]
<olle___> yes, BUT a language powerful enough to make that type of encoding easy or idiomatic is NOT the same thing as building linearity into the entire system.
<olle___> one could argue that ppx monad extension is enough, or the linocaml thingy
<olle___> ppx monad syntax*
<simpson> Drup: Oh, I'm currently working on my third iteration of an untyped language, a modern flavor of E. I'm already on that path that I outlined, where I build what I want and then watch other folks' reactions to it.
<olle___> untyped?
<olle___> is there such a thing?
<simpson> There's a common meme, "unityped is untyped", and all Turing categories are unityped. So yes?
<simpson> olle___: It is easy enough to build a box which can only hold a single value at a time, and which disallows direct access to the box, but allows fmap to change the contents of the box. What are you trying to do with linear types, exactly?
<olle___> so it's not dynamically typed? oO
<olle___> I'm interesting in typestate, use-case being enforcing the protocol of a module or class.
<olle___> without it looking super-weird in the code
mal`` has quit [Ping timeout: 256 seconds]
mal`` has joined #ocaml
White_Flame has quit [Read error: Connection reset by peer]
White_Flame has joined #ocaml
ferd has joined #ocaml
<olle> test
hlisp_ has joined #ocaml
hlisp has quit [Ping timeout: 256 seconds]
olle___ has quit [Ping timeout: 258 seconds]
<dborisog> tool
hlisp_ has quit [Ping timeout: 272 seconds]
hlisp has joined #ocaml
waleee-cl has joined #ocaml
hlisp has quit [Remote host closed the connection]
hlisp has joined #ocaml
hlisp has quit [Ping timeout: 264 seconds]
hlisp has joined #ocaml
hlisp has quit [Ping timeout: 272 seconds]
hlisp has joined #ocaml
Anarchos has quit [Quit: Vision[0.10.3]: i've been blurred!]
jao has joined #ocaml
jao is now known as Guest87292
dhil has joined #ocaml
hlisp has quit [Ping timeout: 256 seconds]
Guest87292 has quit [Remote host closed the connection]
jao- has joined #ocaml
hlisp has joined #ocaml
hlisp has quit [Ping timeout: 272 seconds]
hlisp has joined #ocaml
hlisp has quit [Ping timeout: 256 seconds]
hlisp has joined #ocaml
hlisp has quit [Ping timeout: 260 seconds]
hlisp has joined #ocaml
nullcone has joined #ocaml
kaun_ has joined #ocaml
kaun_ has left #ocaml ["chalo"]
kaun_ has joined #ocaml
hlisp has quit [Ping timeout: 272 seconds]
muskan has joined #ocaml
dhil has quit [Quit: Leaving]
kaun_ has quit [Ping timeout: 256 seconds]
kaun_ has joined #ocaml
hlisp has joined #ocaml
kaun_ has left #ocaml [#ocaml]
hlisp has quit [Ping timeout: 258 seconds]
hlisp has joined #ocaml
jgkamat_ has joined #ocaml
jgkamat has quit [Ping timeout: 260 seconds]
hlisp has quit [Ping timeout: 272 seconds]
jgkamat_ is now known as jgkamat
hlisp has joined #ocaml
hlisp has quit [Ping timeout: 260 seconds]
vicfred has joined #ocaml
Anarchos has joined #ocaml
mbuf has quit [Quit: Leaving]
sonologico has joined #ocaml
<sonologico> writing a small server on unix datagram with lwt, switching from recv to recvfrom with no other change gives me EAFNOSUPPORT. I must be missing something. I would appreciate any pointers
<sonologico> *unix datagram sockets
dborisog has quit [Ping timeout: 264 seconds]
Anarchos has quit [Quit: Vision[0.10.3]: i've been blurred!]
_habnabit has quit [Ping timeout: 246 seconds]
muskan has quit [Ping timeout: 245 seconds]
tizoc has quit [Ping timeout: 240 seconds]
trn has quit [Ping timeout: 260 seconds]
jerith has quit [Ping timeout: 246 seconds]
<sonologico> it also happens without lwt
tobiasBora has joined #ocaml
<tobiasBora> Hello,
<tobiasBora> I've not used ocaml for a while (like 4 years), and I'm curious to know, what is the current status of ppx? I remember, a few years ago we were moving from one solution (forgot it's name) to ppx, and I'm curious to know if ppx is still a thing or not
<tobiasBora> I'm asking because I'd like to find some syntax like the "do" of haskell to work with monad in ocaml
<tobiasBora> and it seems that ppx was used for that purpose before https://ocsigen.org/lwt/3.2.1/api/Ppx_lwt
<Armael> there's something for that in stock ocaml now
<aecepoglu[m]> there is let%lwt , yeah
<tobiasBora> Armael: interesting, thanks! It builds on top of ppx? So ppx is not dead?
jerith has joined #ocaml
tizoc has joined #ocaml
_habnabit has joined #ocaml
<Armael> it's unrelated to ppx
<Armael> and ppx is still used (for many other things as well)
<waleee-cl> the manul has gotten a facelift
<Armael> but that's just to say that if you just want to have a monad-like syntax for your monad then you don't necessarily need to use ppx
trn has joined #ocaml
<tobiasBora> Armael: I see, thanks. Also, what are the autorized chars after let? I tried let ( let%option ) a f in ... but it does not work
<tobiasBora> oh I guess it has to do with let (core-operator-char ∣ <) { dot-operator-char }
amiloradovsky has quit [Ping timeout: 240 seconds]
<tobiasBora> I'm not sure to understand why they don't allow "character letter", and only *>@...
narimiran has quit [Quit: leaving]
jerith has quit [Ping timeout: 246 seconds]
tizoc has quit [Ping timeout: 246 seconds]
_habnabit has quit [Ping timeout: 256 seconds]
trn has quit [Ping timeout: 256 seconds]
jao- has quit [Remote host closed the connection]
tizoc has joined #ocaml
_habnabit has joined #ocaml
jao has joined #ocaml
trn has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
jerith has joined #ocaml
jao has quit [Remote host closed the connection]
sugarwren has quit [Quit: Leaving]
vicfred has quit [Quit: Leaving]
jao has joined #ocaml
<olle> omg, you decided to to typed algebraic effects instead of untyped? that's awesome news!!
<olle> to do*
tane has quit [Quit: Leaving]
pigeonv has joined #ocaml
<companion_cube> it'll just take 5 more years
hlisp has joined #ocaml
kleisli has quit [Remote host closed the connection]
nullcone has quit [Quit: Connection closed for inactivity]
hlisp has quit [Read error: Connection reset by peer]
hlisp has joined #ocaml
hlisp has quit [Remote host closed the connection]