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?
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