hamilto-nyan has quit [Quit: F...ix you, Emacs!!!]
moei has joined #ocaml
echo-area has joined #ocaml
jonludlam has quit [Ping timeout: 246 seconds]
rgrinberg1 has quit [Ping timeout: 265 seconds]
rgrinberg1 has joined #ocaml
<dmbaturin>
Turns out if I store a ref inside a record I have to write !(r.myfield) rather than !r.myfield
<Drup>
why would you store a ref in a record instead of using a mutable field ?
damason has quit [Ping timeout: 265 seconds]
damason has joined #ocaml
swgillespie has joined #ocaml
<enjolras_>
can be convenient, let's say you have a "incr_counter" function which takes a ref
<dmbaturin>
Drup: I have a bad feeling about that too. The ref in question comes from some global state and then I store it in records associated with particular user session.
<dmbaturin>
To avoid having to pass all the pieces of that global state to every function. I wonder if that global state itself should be a record rather than a bunch of refs. Maybe it should.
<Drup>
:]
<dmbaturin>
Drup: Does assigning something to a field create a copy of it?
<Drup>
No, it's like a ref, it's a pointer
<enjolras_>
(unless something is an integer)
<dmbaturin>
No, that something is itself a record with no mutable fields.
<Drup>
Enjolras_: copying is not observable for integers, so it doesn't matter ;)
palomer has joined #ocaml
<palomer>
hey guys
<dmbaturin>
Hi palomer!
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
rgrinberg1 has quit [Ping timeout: 240 seconds]
<palomer>
how’s it doing dmbaturin
<struk|desk2>
hiya
rgrinberg1 has joined #ocaml
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
nullcatxxx_ has joined #ocaml
nullcatxxx_ has quit [Client Quit]
<palomer>
what’s going on in ocaml world?
<struk|desk2>
wish I knew..too behind..but the cufp attendees know
tennix has joined #ocaml
damason has quit [Ping timeout: 244 seconds]
damason has joined #ocaml
The_Mad_Pirate has joined #ocaml
swgillespie has joined #ocaml
<palomer>
ocamlfind ocamlc -package lwt test.ml # Reference to undefined global `Lwt_io' <— anyone know how to fix this?
<palomer>
trying to follow the hello world example
<dmbaturin>
palomer: -linkpkg
<palomer>
ahhh
<palomer>
or I just found out I can use ocamlbuild
<palomer>
is that recommended?
<dmbaturin>
Using ocamlbuild may simplify things like that.
palomer has quit [Ping timeout: 260 seconds]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
palomer has joined #ocaml
c74d3 has quit [Remote host closed the connection]
mal`` has quit [K-Lined]
mac10688 has quit [Ping timeout: 240 seconds]
c74d3 has joined #ocaml
mal`` has joined #ocaml
psy_ has joined #ocaml
marsam has joined #ocaml
swgillespie has joined #ocaml
obadz has quit [Ping timeout: 250 seconds]
obadz has joined #ocaml
igoroliveira has quit [Quit: Connection closed for inactivity]
darkf has joined #ocaml
marsam has quit [Remote host closed the connection]
cdidd has quit [Ping timeout: 255 seconds]
MercurialAlchemi has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 264 seconds]
contempt has quit [Remote host closed the connection]
contempt has joined #ocaml
cdidd has joined #ocaml
palomer has quit [Quit: palomer]
palomer has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 250 seconds]
kushal has joined #ocaml
ineol has joined #ocaml
shinnya has quit [Ping timeout: 265 seconds]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
swgillespie has joined #ocaml
ontologiae has joined #ocaml
ontologiae has quit [Ping timeout: 260 seconds]
ineol has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
tmtwd has quit [Ping timeout: 252 seconds]
contempt has quit [Remote host closed the connection]
contempt has joined #ocaml
palomer has quit [Quit: palomer]
c74d3 has quit [Remote host closed the connection]
c74d3 has joined #ocaml
shinnya has joined #ocaml
The_Mad_Pirate has quit [Read error: Connection reset by peer]
palomer has joined #ocaml
<palomer>
this channel is a lot quieter than it used to be :(
<palomer>
I wonder why
<mrvn>
because it's bloody 8 in the morning *jawn*
mort___ has joined #ocaml
rgrinberg1 has quit [Ping timeout: 260 seconds]
keen____ has joined #ocaml
keen___ has quit [Ping timeout: 268 seconds]
ygrek_ has joined #ocaml
ontologiae has joined #ocaml
Haudegen has quit [Ping timeout: 264 seconds]
obadz has quit [Ping timeout: 272 seconds]
obadz has joined #ocaml
<palomer>
oh hey mrvn
<palomer>
long time no see
Haudegen has joined #ocaml
ygrek_ has quit [Ping timeout: 240 seconds]
oscar_toro has quit [Ping timeout: 260 seconds]
Lis has quit [Read error: Connection reset by peer]
ely-se has joined #ocaml
KDr2 has joined #ocaml
mort___ has quit [Quit: Leaving.]
rgrinberg1 has joined #ocaml
psy_ has quit [Ping timeout: 240 seconds]
ibor has joined #ocaml
rgrinberg1 has quit [Ping timeout: 250 seconds]
palomer has quit [Quit: palomer]
oscar_toro has joined #ocaml
keen_____ has joined #ocaml
oscar_toro has left #ocaml [#ocaml]
keen____ has quit [Ping timeout: 260 seconds]
mort___ has joined #ocaml
antkong has quit [Quit: antkong]
zpe has joined #ocaml
sh0t has joined #ocaml
Lastpixl has joined #ocaml
rgrinberg1 has joined #ocaml
ely-se has quit [Quit: leaving]
ibor has quit [Ping timeout: 246 seconds]
ely-se has joined #ocaml
rgrinberg1 has quit [Ping timeout: 240 seconds]
c74d3 has quit [Remote host closed the connection]
kushal has quit [Remote host closed the connection]
c74d3 has joined #ocaml
sh0t has quit [Ping timeout: 240 seconds]
kushal has joined #ocaml
kushal has quit [Ping timeout: 240 seconds]
dhil has joined #ocaml
sepp2k has joined #ocaml
octachron has joined #ocaml
mort___ has quit [Quit: Leaving.]
rgrinberg1 has joined #ocaml
rgrinberg1 has quit [Ping timeout: 268 seconds]
ollehar has joined #ocaml
obadz has quit [Ping timeout: 240 seconds]
antkong has joined #ocaml
obadz has joined #ocaml
KDr2 has quit [Remote host closed the connection]
ely-se has quit [Quit: leaving]
Kakadu has joined #ocaml
ely-se has joined #ocaml
ely-se has quit [Client Quit]
zaquest has quit [Quit: Leaving]
Haudegen has quit [Ping timeout: 240 seconds]
ibor has joined #ocaml
ontologiae has quit [Ping timeout: 240 seconds]
rgrinberg1 has joined #ocaml
rgrinberg1 has quit [Ping timeout: 264 seconds]
Haudegen has joined #ocaml
libertas has joined #ocaml
zaquest has joined #ocaml
quater-nyon is now known as hamilto-nyan
xet7_ has quit [Ping timeout: 268 seconds]
xet7_ has joined #ocaml
xet7_ has quit [Ping timeout: 264 seconds]
xet7_ has joined #ocaml
ibor has quit [Ping timeout: 265 seconds]
igoroliveira has joined #ocaml
obadz has quit [Ping timeout: 240 seconds]
obadz has joined #ocaml
ibor has joined #ocaml
kushal has joined #ocaml
_andre has joined #ocaml
antkong has quit [Quit: antkong]
kushal has quit [Ping timeout: 246 seconds]
clockish has quit [Remote host closed the connection]
tane has joined #ocaml
ely-se has joined #ocaml
kushal has joined #ocaml
Lastpixl has quit [Quit: Lastpixl]
* Kakadu
slaps Kakadu around a bit with a large fishbot
echo-area has quit [Remote host closed the connection]
ontologiae has joined #ocaml
ollehar has quit [Quit: ollehar]
ollehar has joined #ocaml
rgrinberg1 has joined #ocaml
ely-se has quit [Quit: leaving]
boegel has quit [Remote host closed the connection]
rgrinberg1 has quit [Ping timeout: 240 seconds]
ely-se has joined #ocaml
tg has quit [Ping timeout: 256 seconds]
ely-se has quit [Client Quit]
ely-se has joined #ocaml
tg has joined #ocaml
jonludlam has joined #ocaml
ggole has joined #ocaml
boegel|quassel has joined #ocaml
boegel|quassel has quit [Client Quit]
boegel has joined #ocaml
tennix has quit [Ping timeout: 272 seconds]
ely-se has quit [Quit: leaving]
shane_ has joined #ocaml
ely-se has joined #ocaml
ygrek has joined #ocaml
ibor has quit [Ping timeout: 252 seconds]
yomimono has joined #ocaml
yomimono has quit [Client Quit]
rgrinberg1 has joined #ocaml
rgrinberg1 has quit [Ping timeout: 255 seconds]
tane has quit [Quit: Verlassend]
mort___ has joined #ocaml
mort___ has quit [Read error: Connection reset by peer]
ely-se has quit [Quit: leaving]
mort___ has joined #ocaml
mort___ has quit [Client Quit]
ely-se has joined #ocaml
mort___ has joined #ocaml
struk|work has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
lagrangi-wan has joined #ocaml
hamilto-nyan has quit [Quit: F...ix you, Emacs!]
BitPuffin has joined #ocaml
mort___ has quit [Quit: Leaving.]
mort___ has joined #ocaml
ollehar has quit [Ping timeout: 264 seconds]
igoroliveira has quit [Quit: Connection closed for inactivity]
beginner has joined #ocaml
<beginner>
has someone here used arrows to design distributed systems?
<MasseR>
As in categorical sense or diagram shape?
tane has joined #ocaml
rgrinberg1 has joined #ocaml
<flux>
:)
<beginner>
As described in the opis paper
<beginner>
Opis: Reliable Distributed Systems in OCaml
<beginner>
I have read it and was curious if someone outside the academic world has used this approach
meiji11 has joined #ocaml
tennix has joined #ocaml
ely-se has quit [Quit: leaving]
tennix has quit [Ping timeout: 240 seconds]
mort___ has quit [Quit: Leaving.]
<shane_>
Does OCaml also use ideas from Category theory like in Haskell? Is it convenient with the module system?
ely-se has joined #ocaml
<MasseR>
shane_: no, not really. Some monad-like constructs, but that seems to be it
<MasseR>
(lwt, cmdliner, etc)
<shane_>
MasseR: is that because it is awkward without typeclasses?
<MasseR>
I don't know for sure, but that's probably a good reason
ibor has joined #ocaml
<MasseR>
And also community itself is a bit adverse to algebraic ideas
ely-se has quit [Client Quit]
<shane_>
MasseR: Averse to them because the focus is more on practicality and straightforward code?
struk|work has quit [Ping timeout: 246 seconds]
<MasseR>
Something like that
<tane>
monads where monads make sense..
ely-se has joined #ocaml
<tane>
the module system allows for abstractions over monads, as for everything else, so one could use it :)
<ely-se>
once you know what type class dictionaries are and how they work, the similarity with functors should become visible
tnguyen has quit [Quit: tnguyen]
<shane_>
yeah it seems that with functors one can get the same effect in most cases...but I guess it is a lot more awkward and so not really something most people use
<ely-se>
the main difference is that functors are module-level and type class dictionaries are function-level, and type class dictionaries are passed around implicitly
<shane_>
By "passed around implicitly" you mean as opposed to an ML module where one has to put the modulename.functionname?
<ely-se>
no, more like, the compiler inserts the argument for you
<shane_>
how would you mimic that in ML?
<ely-se>
can't
Kakadu has quit [Quit: Page closed]
ollehar has joined #ocaml
<shane_>
So let's say I have a class which defines some polymorphic functions...and then I have some functions which are defined in terms of those polymorphic functions....like the way sequenceM would be defined in terms of bind...
<shane_>
in that case in ML would I not be able to achieve the latter by using a Functor?
<ely-se>
yes, then the compiler transforms sequenceM to expect a type class dictionary for Monad as its first argument
<shane_>
right...but in ML you would get the same effect by putting sequenceM in a functor which will use the basic definitions of a monad right?
<ely-se>
yes
<shane_>
so when you say "you can't" which examples do you have in mind where I can do things easily with a typeclass but which becomes a major headache with modules?
browncodes has quit [Read error: Connection reset by peer]
<ely-se>
well, I was referring to having them implicitly passed
<ely-se>
you have to pass the modules explicitly in OCaml, whereas type class dictionaries are passed implicitly in Haskell
browncodes has joined #ocaml
<shane_>
I see
<ely-se>
so in OCaml you'd have to do something like
<ely-se>
module A (Mnd : Monad) = struct let myBind a b = Mnd.bind a b end
<ely-se>
in Haskell you can say: "module A where myBind a b = a >>= b", and it will figure out that myBind takes a TC dict, and that it has to be passed to >>=
<shane_>
Although this explicit passing appears to be only a minor headache, slightly increasing the verbosity.
<shane_>
But it does not really increase the complexity does it?
tennix has joined #ocaml
<ely-se>
no, I think it's simpler
<ely-se>
the inference algorithm need not take into account type classes
<shane_>
simpler in the implementation you mean?
<shane_>
But I mean for the programmer
<ely-se>
you just have to type a little more :p
<shane_>
yeah
<shane_>
:)
<ely-se>
Haskell automates the task of finding out which monad implementation to pass
<shane_>
But the programmer still has to mentally keep in which one to use...
<shane_>
and that is inferred by the type
<shane_>
so it really just boils down to a bit of extra typing?
<ely-se>
there's a paper about this whole subject actually
<shane_>
In practice how often are functors used in OCaml/ML code? I mean like in Haskell typeclasses tend to be used a lot.
<shane_>
You mean the constructive comparison paper?
<ely-se>
yeah
<tane>
shane_, go to github and have a look at some projects :)
<ely-se>
more fun: in Scala you can choose whether you want to have the type class dictionaries passed implicitly or not
<ely-se>
per call
<shane_>
tane: sure....but I will only be able to check a few at time so I was wondering if someone who has used OCaml a lot could share their experience
<tane>
shane_, it just depends on the problem at hand
<companion_cube>
it varies: there are functor-free code bases, and there is ocamlgraph/mirage :)
<tane>
you can even use a functor to embed "global state" into a set of functions
<tane>
so, there's a variety of use cases
<shane_>
Or let me put it another way, how often do you come across or use abstractions in OCaml code...particularly very experienced OCaml programmers...for instance in Haskell people tend to use abstractions all over the place
<ely-se>
Here's an abstraction in OCaml:
ollehar has quit [Ping timeout: 240 seconds]
<ely-se>
let add1 x = x + 1
<shane_>
I mean the really high level abtractions like monads (I know they are used sometimes in OCaml too), applicative functors, categories, traversable, foldable, arrows, co-monads etc
BitPuffin has quit [Ping timeout: 255 seconds]
BitPuffin has joined #ocaml
<tane>
shane_, ocaml code uses a lot of abstractions, just not so many in the sense of mathmatical concepts
<tane>
look at some code, see for yourself :)
<shane_>
I see
<shane_>
I have tried looking at some code
<shane_>
but I guess I am not yet experienced enough
ontologiae has quit [Ping timeout: 272 seconds]
<icicled>
there aren't too many abstractions to learn about in ocaml as there are in haskell
<icicled>
that's been my experience anyway
obadz- has joined #ocaml
BitPuffin has quit [Ping timeout: 268 seconds]
<shane_>
what would be a good book in OCaml / SML which goes beyond an introduction?
<ely-se>
Haskell has to work around the lack of side-effects :p
<icicled>
real world ocaml is pretty good
<tane>
shane_, "real world ocaml" is a nice book regarding general code sturcture
<icicled>
it covers a lot
<tane>
it uses a different "standard library" though
<shane_>
ely-se: indeed but it also has a lot of abstractions that are not just to work around lack of side effects
marsam has joined #ocaml
marsam has quit [Remote host closed the connection]
obadz has quit [Ping timeout: 255 seconds]
marsam has joined #ocaml
<shane_>
and what are some very useful libraries in OCaml? Useful in the sense of having quite a diverse set of applications and libraries that really teach you something about the style of the language?
echo-area has joined #ocaml
<tane>
shane_, there are two standard library overlays
<tane>
Core, Batteries
<tane>
+ the usual Standard library, you can have a look at all of them and see different styles of ocaml
<tane>
otherwise you could scroll through the opam package list and see what's interesting to what you do
<companion_cube>
you can also look at Bünzli libraries, and yojson
<tane>
and then there's the object system.. haha, another way of doing things
<shane_>
Right
<icicled>
just ignore the object system in the beginning :P
<tane>
(as used for example in the lambda-term library)
<shane_>
I do actually :)
<icicled>
companion_cube, Bünzli?
<shane_>
I skip over that section whenever I am reading about OCaml
<shane_>
Thanks for all your help and suggestions :)
<Drup>
I'm still wondering why this was linked, it's not even a very good blog post
ocaml_user has joined #ocaml
rand__ has joined #ocaml
marsam has joined #ocaml
<flux>
drup, so I guess you can point to those other blog posts comparing C++ with OCaml.. :)
<Drup>
not really, because I'm personally not very interested by C++ ^^'
palomer has quit [Quit: palomer]
<octachron>
so rust vs Ocaml benchmark?
<^elyse^>
But C++ is such a nice little language
xet7_ has quit [Read error: Connection reset by peer]
xet7_ has joined #ocaml
swgillespie has joined #ocaml
<octachron>
giving your compiler the ability to play tetris by itself sure is amazing, isn't it?
systmkor has joined #ocaml
Kakadu has joined #ocaml
cthuluh has quit [Ping timeout: 250 seconds]
tennix has joined #ocaml
ygrek has joined #ocaml
palomer has joined #ocaml
<ocaml_user>
Hello guys, i had a question.
<ocaml_user>
Should i use ocaml or haskell or rust?
<icicled>
use whatever floats your boat
shinnya has quit [Ping timeout: 265 seconds]
<ocaml_user>
I don't have a boat
<icicled>
well, use whatever you want
<ocaml_user>
:/
tennix has quit [Ping timeout: 240 seconds]
<smondet>
use ocaml :)
<ocaml_user>
why?
<icicled>
pick one, fiddle with it, see if you like it
<dmbaturin>
Asking what you should use is just futile as trying to talk people into using it. :)
<dsturb>
Hi folks
willy_ has joined #ocaml
<ocaml_user>
tell me guys, why should i use a language which doesn't have a reentrant runtime in *2015*?
zpe has quit [Remote host closed the connection]
<icicled>
why should I tell you anything :P
<ocaml_user>
why should you not?
^elyse^ has quit [Quit: Leaving...]
<Drup>
ocaml_user: your question lack context ...
<dmbaturin>
So how many languages have fully reentrant runtime in 2015?
wwilly has quit [Ping timeout: 252 seconds]
kushal has quit [Quit: Leaving]
<thizanne>
ocaml_user: you shouldn't
<thizanne>
you can try #rust or #haskell now
<dmbaturin>
Among those, how many made it as fast as single-threaded version?
Kakadu has quit []
Kakadu has joined #ocaml
^elyse^ has joined #ocaml
ocaml_user has quit [Ping timeout: 246 seconds]
<dmbaturin>
Bonus question: how many languages have multitheaded GC in 2015?
<dmbaturin>
* multithreaded
<dsturb>
Is anyone aware of online resources demonstrating the use of algebraic effects over domains in multicore ocaml?
<dsturb>
I've read kcsrk's posts on algebraic effects but they don't touch on parallelism
ocaml_user has joined #ocaml
<ocaml_user>
what editor you guys use?
<Drup>
ocaml_user: I'm wondering what you were expecting coming here, asking this question without any context at all and clearly without looking at the very numerous thread trying to answer it :]
<smondet>
ocaml_user: Rust could have been a good idea in the 90's for extremely low level code, about Haskell I usually carry this around: http://wr.mondet.org/smondet/wip20150916/#/29
<Drup>
hum, I'm wondering if "ocaml_user" is not a default name for some on line irc thing
<ocaml_user>
no, i am legitimate ocaml user.
<ocaml_user>
ocaml user because of cil.
<Drup>
oh, nevermind then :3
<ocaml_user>
smondet: are you serious?
slash^ has quit [Read error: Connection reset by peer]
<ocaml_user>
"extreme low level code"?
<profan>
any time someone asks about what language to pick, anyones advice should always be taken with a bathtub of salt
<smondet>
smondet: yes, mostly. Also, I use emacs with evil-mode (used to use vim)
<profan>
especially from users of which one of the languages you are asking about :P
<rks`>
smondet: talking to yourself much?
<smondet>
rks`: :D
<smondet>
was meant ocaml_user :)
<rks`>
:)
<profan>
ocaml_user: what language you should pick obviously depends on what you're going to be doing as well
<ocaml_user>
You should not use rust because it's useful only for "extreme low level code". -- smondet 2015.
<profan>
but really, just try them out yourself and see which one you'd want to work with
noob229 has joined #ocaml
<smondet>
rks`: Happy Birthday over IRC BTW
<rks`>
I'm speechless.
<rks`>
(but thanks again :D)
<ocaml_user>
smondet: i tried using haskell, but my hello world program takes 1gb ram.
<dmbaturin>
Drup: If an ocsigen-based IRC web client is ever written, it should use ocaml_user as default name. ;)
<ocaml_user>
and when i tried to compile the compiler it required took 8 hours and 16gb memory.
zpe has joined #ocaml
<Drup>
dmbaturin: I propose twareg
<smondet>
ocaml_user: It's OK you're ready to write a "Monad Tutorial" blog post now :)
<dmbaturin>
smondet: Have you seen the "fast and loose reasoning is morally correct" paper?
<ocaml_user>
Okay, imma go argue about how monads are not "side-effects" on reddit.
<Drup>
dmbaturin: or some less known camlidae
<dmbaturin>
Drup: An extinct camlidae!
<dmbaturin>
There were some fun ones in pre-ice age South America.
<Drup>
the issue with extinct camlidae is that they usually don't have humps
<ocaml_user>
can anyone tell me who is this interesting person on reddit named jdh30?
<dmbaturin>
Issue #1: default camlidae doesn't have humps
<dmbaturin>
Drup: That's what CAML 3.0 should be retroactively renamed to.
<ocaml_user>
can anyone tell me why the people behind ocp-memprof trying to sell it for single user 700euro?
<ocaml_user>
Nice business model, i am sure lots of users will buy it.
palomer has quit [Quit: palomer]
<^elyse^>
It's not a nice business model until it's written in a common business-oriented language such as COBOL.
<ocaml_user>
COBOL > ocaml
<Drup>
"Floridatragulus Early Miocene A bizarre species of camel with a long snout"
<Drup>
Floridatragulus <3
ollehar has joined #ocaml
<dmbaturin>
hamilto-nyan: Hi pyon, do you represent the total enyargy of some system today?
<^elyse^>
ocaml_user: OCAML
<ocaml_user>
*OCaml
<^elyse^>
not sure what language feature to implement next in my COBOL compiler
<^elyse^>
maybe loops
MercurialAlchemi has quit [Ping timeout: 240 seconds]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
ocaml_user has quit [Quit: Page closed]
Lis has joined #ocaml
systmkor has joined #ocaml
swgillespie has joined #ocaml
Haudegen has quit [Ping timeout: 240 seconds]
sh0t has joined #ocaml
bitemyapp has joined #ocaml
ollehar has quit [Ping timeout: 272 seconds]
Haudegen has joined #ocaml
<profan>
^elyse^: still tormenting yourself?
marsam has quit [Ping timeout: 240 seconds]
<^elyse^>
:)
<companion_cube>
such pain
<^elyse^>
hey at least there is an open-source COBOL compiler that's being maintained!
<companion_cube>
let's create COBOCaml
<companion_cube>
common business-oriented Caml
<^elyse^>
calling COBOL from OCaml and vice versa should be trivial
<dmbaturin>
^elyse^: GNU BOCOL is unmaintained?
<dmbaturin>
* COBOL
<companion_cube>
why don't you write a series of compilers for esoteric languages, where compiler n+1 is written with compiler n ?
<^elyse^>
dmbaturin: it's still missing lots of features from COBOL 2002
<dmbaturin>
^elyse^: Are you going to add z/Arch backend?
<^elyse^>
companion_cube: because writing compilers for existing languages that are capable enough of reasonably writing compilers in is a shitload of work
<^elyse^>
dmbaturin: I generate JavaScript code.
<companion_cube>
cobol to JS ? genius
<companion_cube>
now all the web developers will learn COBOL!
<companion_cube>
just package your thing in npm and voilà :)
<profan>
companion_cube: dont forget to spread it out over at least 20 packages first
<companion_cube>
gosh, this is so ugly
<^elyse^>
My compiler doesn't yet support free form mode, so you have to indent your code with at least seven spaces.
<^elyse^>
well, the first six characters can be anything since they are discarded
<profan>
im amazed people writing cobol didnt quickly succumb to the bureucracy of writing things in it and become stamping machines
<companion_cube>
how do you think Clippy was born?
<profan>
bureaucracy, augh that word
<profan>
companion_cube: oh, its starting to make sense
ollehar has joined #ocaml
<^elyse^>
companion_cube: came out of the womb of his mother
marsam has joined #ocaml
<companion_cube>
his mother was a COBOL mainframe tainted with the souls of a thousand desperate programmers
<profan>
not sure desperation is an emotion they would feel at that point, just an unfeeling droning and consistent keyboard-tapping in the distance
<^elyse^>
"Corporate accounts payable, Nina speaking. Just a moment. Corporate accounts payable, Nina speaking. Just a moment. Corporate accounts payable, Nina speaking. Just a moment. Corporate accounts payable, Nina speaking. Just a moment."
<^elyse^>
in a sea of cubicles
<dmbaturin>
companion_cube: His mother named him IEFBR14, Clippy is just a nickname.
jonludlam has joined #ocaml
<companion_cube>
FROM 'Mainframe' GIVE BIRTH IEFBR14 WITH NICKNAME 'Clippy'.
<dmbaturin>
//STEP00 EXEC PGM=IEBGVBRTH
noob229 has quit [Ping timeout: 246 seconds]
<dmbaturin>
If you think I know too much about mainframes, you are probably right.
sh0t has quit [Ping timeout: 256 seconds]
<dmbaturin>
Regardless, the hardware is amazing.
<companion_cube>
the hardware is amazing, but can only be programmed in COBOL?
<dmbaturin>
You can use anything really. GCC supports it.
<dmbaturin>
Someone on the mailing list said they are going to add z/Arch backend to ocaml.
<companion_cube>
oh ok
<dmbaturin>
Linux supports it, but the only distros that make binaries for it are Debian and RHEL AFAIR.
<companion_cube>
hmm, opam-repo maintainers are busy today :(
<dmbaturin>
IBM even sells linux-only mainframes at a lower price, specially for those who don't want COBOL. From another point of view, they are ripping off those who do want the legacy of course. ;)
<dmbaturin>
Linux-only as in CPU lacks a couple of instructions that z/OS wants, but linux can live without them.
rgrinberg1 has quit [Ping timeout: 240 seconds]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<octachron>
Drup, I agree that a lot of the translated comments are not very useful to say the least; but a blind translation patch seemed to be a better starting point
BitPuffin|osx has joined #ocaml
<Drup>
octachron: especially fond of the @todo one in odoc.ml
<octachron>
I prefer the perilous translation in lex/lexer.mll: What "A dieu va!" is even supposed to mean as a comment ???
ineol has joined #ocaml
tmtwd has joined #ocaml
Kakadu has quit [Remote host closed the connection]
<Maelan>
I just realised that ‘let x = a in b’ is not equivalent to ‘(fun x -> b) a’
<Maelan>
because ‘let x = (fun y -> y) in x x’ works whereas ‘(fun x -> x x) (fun y -> y)’ does not typecheck.
adrien___ is now known as adrien
<octachron>
Maelan, you can also note that in "let f = let x = (fun y -> y) in x x" f is already not polymorphic anymore
<Maelan>
yes
<Maelan>
but even if the expression with λx.xx would typecheck, the result would also be monomorphic because of the application
<Maelan>
so i didn’t get your point, octachron?
steshaw has joined #ocaml
<dmbaturin>
Maelan: Is there a typed lambda calculus flavor where it would typecheck?
<octachron>
Maelan, right I was more making a sidenote
octachron has quit [Quit: Leaving]
<Maelan>
dmbaturin, i’m not an expert, but i hope no since accepting λx.xx gives up the normalizing property of the calculus
marsam has quit [Remote host closed the connection]
<Maelan>
of course it depends on what you call “a typed λ-calculus”; one might say the simple λ-calculus as a particular case of a typed λ-calculus, with the grossest type system :->
jonludlam has quit [Ping timeout: 240 seconds]
antkong has joined #ocaml
higgs has joined #ocaml
<dmbaturin>
Maelan: Perhaps it can be proven that any typed LC where it typechecks is equivalent to the untyped one. :)
ollehar has quit [Remote host closed the connection]
tnguyen has quit [Read error: Connection reset by peer]
ineol has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tnguyen has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<dmbaturin>
Is there a library that implementats a wire protocol for reading/writing variable length messages that would work with any channel?
madroach has quit [Ping timeout: 264 seconds]
swgillespie has joined #ocaml
madroach has joined #ocaml
<Maelan>
dmbaturin, now i think, λx.xx is actually typable with intersection types
<dmbaturin>
Maelan: Hhm, I don't think I've heard of intersection types. Going to take a look.
<Drup>
If I may
<Drup>
# let f x = x x ;;
<Drup>
val f : ('a -> 'b as 'a) -> 'b = <fun>
<Drup>
I present to you, -rectypes
<Maelan>
and the simply typed λ-calculus with intersection types is strongly normalizing, they say
<Maelan>
dmbaturin, with intersection types you can say that λx.xx : a ∧ (a → b) which means that the term has both types
<Maelan>
oops
<Maelan>
λx.xx : (a ∧ (a → b)) → b
<Maelan>
better
<Drup>
(termination is for the weak anyway, real programmers are productives)
<Maelan>
not me
<Maelan>
i’m improductive by essence
<Maelan>
you might argue i’m not a real programmer, though
Algebr has joined #ocaml
Algebr has left #ocaml [#ocaml]
<dmbaturin>
Maelan: Got a reference to a good survey article?