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
kvda has joined #ocaml
brettgilio has quit [Ping timeout: 250 seconds]
oni-on-ion has quit [Ping timeout: 264 seconds]
smazga has quit [Quit: leaving]
brettgilio has joined #ocaml
ravenousmoose has joined #ocaml
ravenousmoose has quit [Ping timeout: 276 seconds]
dedgrant has joined #ocaml
dedgrant has quit [Quit: Leaving]
ravenousmoose has joined #ocaml
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ravenousmoose has quit [Ping timeout: 252 seconds]
wyn44 has joined #ocaml
wyn44 has quit [Ping timeout: 268 seconds]
EmeraldMoon has joined #ocaml
kvda has joined #ocaml
kvda has quit [Client Quit]
kvda has joined #ocaml
amiloradovsky has joined #ocaml
sgnb has quit [Remote host closed the connection]
sgnb has joined #ocaml
wyn44 has joined #ocaml
wyn44 has quit [Ping timeout: 240 seconds]
freeside_ has joined #ocaml
freeside has quit [Ping timeout: 244 seconds]
tormen_ has joined #ocaml
tormen has quit [Ping timeout: 276 seconds]
runawayfive has quit [Ping timeout: 245 seconds]
freeside_ is now known as freeside
runawayfive has joined #ocaml
amiloradovsky1 has joined #ocaml
amiloradovsky has quit [Ping timeout: 240 seconds]
amiloradovsky1 is now known as amiloradovsky
mfp has quit [Ping timeout: 265 seconds]
amiloradovsky has quit [Ping timeout: 264 seconds]
ravenousmoose has joined #ocaml
EmeraldMoon has quit [Remote host closed the connection]
retropikzel has joined #ocaml
oni-on-ion has joined #ocaml
wyn44 has joined #ocaml
wyn44 has quit [Ping timeout: 245 seconds]
nullifidian_ has joined #ocaml
nullifidian has quit [Ping timeout: 276 seconds]
retropikzel has quit [Remote host closed the connection]
gravicappa has joined #ocaml
ravenousmoose has quit [Ping timeout: 264 seconds]
jao has quit [Ping timeout: 245 seconds]
bartholin has joined #ocaml
bartholin has quit [Remote host closed the connection]
narimiran has joined #ocaml
mbuf has joined #ocaml
unyu has quit [Ping timeout: 240 seconds]
ravenousmoose has joined #ocaml
ravenousmoose has quit [Client Quit]
rgherdt has joined #ocaml
_whitelogger has joined #ocaml
wyn44 has joined #ocaml
wyn44 has quit [Ping timeout: 276 seconds]
sgnb has quit [Remote host closed the connection]
Serpent7776 has joined #ocaml
ggole has joined #ocaml
Haudegen has joined #ocaml
dmiles has quit [Read error: Connection reset by peer]
rgherdt has quit [Ping timeout: 252 seconds]
lbart has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
lbartoletti has joined #ocaml
lbartoletti has left #ocaml [#ocaml]
dmiles has joined #ocaml
nullifidian_ is now known as nullifidian
ollehar has joined #ocaml
wyn44 has joined #ocaml
wyn44 has quit [Ping timeout: 240 seconds]
mfp has joined #ocaml
nicoo has quit [Ping timeout: 260 seconds]
nicoo has joined #ocaml
dckc has quit [Ping timeout: 240 seconds]
dckc has joined #ocaml
nullifidian_ has joined #ocaml
nullifidian has quit [Read error: Connection reset by peer]
wyn44 has joined #ocaml
silver has joined #ocaml
malina has quit [Ping timeout: 276 seconds]
wyn44 has quit [Quit: Lost terminal]
unyu has joined #ocaml
kvda has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nullifidian__ has joined #ocaml
nullifidian_ has quit [Read error: Connection reset by peer]
barockobamo has joined #ocaml
jao has joined #ocaml
mbuf has quit [Quit: Leaving]
rgherdt has joined #ocaml
andreas31 has quit [Remote host closed the connection]
andreas31 has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
oni-on-ion has quit [Remote host closed the connection]
oni-on-ion has joined #ocaml
Haudegen has joined #ocaml
mfp has quit [Ping timeout: 264 seconds]
rgherdt has quit [Ping timeout: 276 seconds]
ziyourenxiang has quit [Ping timeout: 240 seconds]
gareppa has joined #ocaml
gareppa has quit [Remote host closed the connection]
<companion_cube> another day, another dependency on ppx removed \o/
rgherdt has joined #ocaml
Serpent7776 has quit [Quit: Leaving]
smazga has joined #ocaml
narimiran_ has joined #ocaml
narimiran has quit [Ping timeout: 250 seconds]
webshinra has quit [Read error: Connection reset by peer]
rgherdt has quit [Read error: Connection reset by peer]
webshinra has joined #ocaml
rgherdt has joined #ocaml
nullifidian_ has joined #ocaml
<oni-on-ion> =)
nullifidian__ has quit [Ping timeout: 240 seconds]
narimiran_ is now known as narimiran
<DanC> I'm looking for an equivalent to `npm init` or `cargo new` for ocaml. It's not clear where to go from https://ocaml.org to find it ... https://opam.ocaml.org is my first guess, but I'm not winning there...
nullifidian_ is now known as nullifidian
<DanC> "Given that most of the OCaml ecosystem is now built with dune, nixpkgs includes a convenience build support function called buildDunePackage ..."
<DanC> hm. no mention of dune on https://ocaml.org
<DanC> ok... https://dune.build seems to have the sort of hello-world I'm after
retropikzel has joined #ocaml
<octachron> DanC, there is also https://dev.realworldocaml.org/install.html
<octachron> with the nuance that I would advise to install merlin without question (except if you are only planning to hack on the OCaml compiler itself)
<DanC> "Building from source"? hm.
<companion_cube> ocaml.org doesn't mention dune? damn :/
<DanC> no mention of realworldocaml on https://ocaml.org either
<octachron> DanC, the opam page is more exhaustive in term of supported systems: https://opam.ocaml.org/doc/Install.html
<narimiran> DanC: i'm also newcomer to ocaml, and i found some useful links on https://ocamlverse.github.io/
<DanC> I hope I don't need some sort of exhaustive thingy. I hope I'm within the 80% case that can be documented on the front side of one page.
<DanC> `dune init` is a little buried, but the 3 line dune file on https://dune.build is not much of a burden
<narimiran> don't let me start how long it took me to find in dune docs that there is also `executables` (plural) :D
<narimiran> (yeah, now it is easy to search for it, once you know it exists)
<DanC> has anyone taken responsibility for the ocaml newcomer experience?
<companion_cube> ocamlverse is probably the best we have right now :(
Serpent7776 has joined #ocaml
<Leonidas> DanC: `dune init`?
<Leonidas> ah, you found that
<Leonidas> generating nix packages from dune / opam would be neat
* Leonidas is hoping to replace Dockerfiles with Nix derivations
<DanC> ocamlverse and ocaml.org are different sites because... ?
<DanC> and I don't see much connection between ocaml.org and https://ocaml-sf.org
<Leonidas> the latter is very new, so it is not surprising
<Leonidas> DanC: but I think it would be better if you post your observations on the discuss, they are very likely to get burried on IRC
ollehar has quit [Ping timeout: 276 seconds]
barockobamo has quit [Remote host closed the connection]
<DanC> who runs discuss.ocaml.org ? https://ocaml.org/about.html has one or two names I recognize...
<DanC> re merlin... yes, I like merlin a lot... it was a pain when a collaborator upgraded a project to ocaml 4.09 and merlin wasn't compatible. Do those folks talk to each other?
<narimiran> DanC: why so negative?
<companion_cube> because it's a mess compared to other languages, I suppose?
<narimiran> companion_cube: there's a mess in every language i have tried
<companion_cube> have you tried rust? 🙃
<narimiran> but every language has its own mess
<narimiran> companion_cube: briefly, until i couldn't comprehend it anymore :D
<companion_cube> I mean, tooling wise, it's just so much easier to set up
<narimiran> "do i need this 'rust' package, or 'rustup', or 'cargo', or ....?"
<companion_cube> still infinitely easier than opam
<Armael> what's the point of whining on irc though?
<companion_cube> soothe one's nerves
<DanC> google for "rust language" ... big "get started" button... curl rustup ... cargo build / cargo run. pretty straightforward path. Now granted, rust doesn't have a pre-web legacy, but yes, that is the sort of thing I'd like to see.
<DanC> whining? negative? really? I'm asking for information. This is considered negative behavior?
<narimiran> i'm sure ocaml stuff would be better if only some mozilla-like company would continuously invest in it. (this goes for other languages i mentioned earlier too)
<companion_cube> maybe not, you also have to have a will to move tooling forward :P
<narimiran> on the other hand, F# has microsoft, and their documentation/introduction is also a mess
<Armael> sorry if I came through as a bit agressive DanC ; what I mean is that noone is thinking "ah yes we will have a really bad user experience for ocaml users that's going to be great", it's mostly historical reasons and the result of limited people-power
<narimiran> and lots of F# tutorials just assume you're coming from C# and your familiar with the whole .net thingy
<DanC> it's entirely reasonable if things are fragmented... 2nd law of thermodynamics being what it is. I'm just trying to learn what the landscape is.
<Armael> and afaik no one is getting paid to maintain websites and docs
<Armael> and companion_cube has no excuses since he knows that but stills complains in a frustrating fashion :p
<companion_cube> what's the point of whining about me on IRC, Armael ? :)
<DanC> the OCaml software foundation seems to fund some documentation efforts. (ironically, they seem to have two different web sites...)
gareppa has joined #ocaml
<DanC> I wonder how much money flows thru the python software foundation... ah... $2.9M in 2015.
<DanC> vs. "Our current objective is to reach a funding level of $200K per year, to be split between actions directed at "teaching OCaml"² and general OCaml actions."
<DanC> I suppose somebody is getting paid to maintain reasonml docs. (odd choice of name... googling for reason doesn't work.)
<companion_cube> I imagine someone at facebook is, yeah
<narimiran> i just wanted to mention reasonml to you
<narimiran> basically, you want https://reasonml.github.io/ for ocaml :)
<simpson> narimiran: FWIW there are several different perspectives to software. For example, I think that all software is bad and that humans have no idea how to write code. This isn't a popular opinion, and you'd probably find it "negative" too, but I find it immensely useful in day-to-day life.
<narimiran> simpson: are you the author of https://www.stilldrinking.org/programming-sucks ? :)
<narimiran> i would say that that's quite a popular opinion ;)
<DanC> _all_ software? interesting. Surely Sturgeon's law applies... 80% of everything is drek. Depending on experience some folks turn that knob to 90% or 95%... but... 100%?
<simpson> DanC: I have, for example, a very nice category of compilers, for which I have been unable to write down a single non-identity program. I'm sure that such compilers *exist*, but I have no idea how humans could possibly reach them.
<simpson> narimiran: Nope, but they sound like a reasonable and balanced person with a useful perspective.
<narimiran> :)
jbrown has quit [Quit: Leaving]
<DanC> in what way is seL4 bad, simpson?
<narimiran> btw, DanC, about "lol two websites" etc., wait until you find out about several versions of stdlib :D :D
<companion_cube> several philosphies of stdlibs, even
<companion_cube> (o/ Armael)
<DanC> several stdlibs is a straightforward consequence of the 2nd law of thermodynamics...
<DanC> but for one organization, whose raison de etre is to bring a community together, to split their web presence is something else
<DanC> fwiw... ocaml is among my list of "beyond python" candidates. simpson is the one who actually got me using it lately. :) https://docs.google.com/spreadsheets/d/1Oa_xFd_xX2dnrPG45zO7BLdHfd7RJ1a3T7D0yGRqTf8/edit#gid=1711978539
<narimiran> glad to see nim there too :)
jbrown has joined #ocaml
<narimiran> what's the difference between 3 and 2 for static typing?
<oni-on-ion> subtraction =)
<narimiran> oni-on-ion: :D
<DanC> yeah... why only 2 for static typing for ocaml? fixed.
ravenousmoose has joined #ocaml
ravenousmoose has quit [Client Quit]
* DanC demotes python to 1
<narimiran> you should give nim a 3 then too
<narimiran> and i still don't understand what would 2 represent?
ravenousmoose has joined #ocaml
<companion_cube> java-level types? :D
<companion_cube> (or, Go-level types)
<DanC> 2 for static typing would be something like Java... yes, java has static typing, but lots of folks cast to Object and back, and there are nulls... not much of a curry howard feel
<DanC> does nim have full sum-of-products types?
<DanC> https://nim-lang.org/docs/manual.html#types lists ordinal, floating, string, structured, reference, procedure, and generic. hm.
jnavila has joined #ocaml
<narimiran> yeah, not quite. there are some libs/attempts, but it is more clunky than in ocaml/F#
retropikzel has quit [Remote host closed the connection]
<DanC> maybe 3 should mean: a sound type system
<narimiran> :)
<DanC> and somewhat expressive; i.e. not unityped
<narimiran> btw, what's the point of this table? in the end you will choose your next lang based on the points received?
<DanC> I think maybe I gave ocaml a 2 because the type often doesn't tell you what *cannot* happen the way it does in haskell. a function that returns unit might launch the missiles, etc.
<DanC> the table is a tool for reflection
<simpson> narimiran: FWIW I used similar rubrics when I was leaving Python and shopping for a new language. I wanted to be *really* sure that it would be worth the effort of creating something new and not using what had already been built by others.
<narimiran> simpson: and what did you choose? :)
<simpson> narimiran: I helped break ground on Monte. For our first reference interpreter, we used the RPython JIT toolkit; we've started on a new interpreter in OCaml.
<DanC> first following the 0th, which was in ordinary python, yes?
retropikzel has joined #ocaml
<simpson> Very technically, yeah. Each time around, the interpreter's responsibilities shrink. The first bootstrap was 100% Python, then RPython with a Monte prelude, and now OCaml with a Monte compiler and linker, not just a frontend.
<DanC> nim does seem to have recursive-sum-of-product types, with a few wrinkles: https://nim-lang.org/docs/manual.html#types-object-variants
retropikzel has quit [Remote host closed the connection]
zolk3ri has joined #ocaml
retropikzel has joined #ocaml
retropikzel has quit [Client Quit]
retropikzel has joined #ocaml
gareppa has quit [Quit: Leaving]
ggole has quit [Quit: Leaving]
amiloradovsky has joined #ocaml
retropikzel has quit [Quit: Konversation terminated!]
retropikzel has joined #ocaml
jnavila has quit [Ping timeout: 246 seconds]
<Leonidas> simpson: heh, yeah, I sort of migrated to that opinion as well.
ahf has quit [Ping timeout: 246 seconds]
<Leonidas> DanC: That reminds me of 0install where they investigated what to port to and checked out a lot of alternatives and landed at… ocaml. curious.
mfp has joined #ocaml
<Leonidas> DanC: what does `ocap` mean?
<Leonidas> I have to admit that I pretty much disagree on your assesment of (at least) flow and possibly typescript
<Leonidas> every time I looked at some JS code with odd types people started to explain me in very complex terms all the issues that Flow has
<simpson> "ocap" is short for "object-capability". Capability-aware systems where bundles of capabilities are managed by objects.
ahf has joined #ocaml
tane has joined #ocaml
<DanC> flow matches the way I like to write JavaScript. not sure what to tell you.
ravenousmoose has quit [Ping timeout: 252 seconds]
jnavila has joined #ocaml
kakadu has joined #ocaml
<companion_cube> I thought it was more or less dead and that TS had won?
ravenousmoose has joined #ocaml
<Leonidas> DanC: Maybe the difference is different when you write your own code, but plumbing together existing code always ended up a mess in my experience.
<Leonidas> companion_cube: yes, at work our frontenders seem to have migrated away from Flow
ravenousmoose has quit [Ping timeout: 246 seconds]
silver has quit [Quit: rakede]
gareppa has joined #ocaml
jbrown has quit [Ping timeout: 252 seconds]
vicfred has quit [Quit: Leaving]
jbrown has joined #ocaml
ygrek_ has joined #ocaml
gareppa has quit [Quit: Leaving]
gravicappa has quit [Ping timeout: 240 seconds]
jnavila has quit [Remote host closed the connection]
<DanC> yes, flow more or less lost the war. I'm forever choosing betamax over VHS.
<DanC> plumbing together existing code is a mess, true enough, but in my experience, flow just exposes the mess; it's not the cause
<DanC> so... I want to port a PEG parser to ocaml. what library should I use?
brettgilio has quit [Ping timeout: 250 seconds]
brettgilio has joined #ocaml
<companion_cube> I have no idea, but can it fit with angstrom?
<DanC> nothing called PEG parser in https://opam.ocaml.org/packages/
<companion_cube> or menhir
<DanC> angstrom is the one without line numbers... I think I want/need those
* DanC wishes for hello-world menhir example on its homepage
<companion_cube> erf, yeah, ok
<companion_cube> menhir is awesome, but old-ish when it comes to docs
<companion_cube> it's yacc, but on steroids
<DanC> hmm... I kinda like combinator libraries, but maybe I'll press on here...
<DanC> I see a reference manual... but... I have a typically small attention span; isn't there just an example I can copy somewhere to get started?
<DanC> hm. Makefile; no dune.
<companion_cube> it works with dune :)
<DanC> hmm... nix builds menhir from source. that always makes me a little nervous... like I'm on my own out somewhere that nobody else hangs out
<DanC> dune build calc.exe
<DanC>
<DanC> Compilation finished at Thu Nov 7 15:08:24
<DanC> \o/
<companion_cube> what kind of thing are you parsing?
<DanC> a subset of javascript: https://github.com/Agoric/Jessie
<companion_cube> hmm ok, menhir might be pretty cool for taht
Serpent7776 has quit [Quit: leaving]
<DanC> do we usually check in .merlin?
jao has quit [Remote host closed the connection]
jao has joined #ocaml
<companion_cube> not these days
<companion_cube> (not with dune)
jao has quit [Remote host closed the connection]
jao has joined #ocaml
nullifidian_ has joined #ocaml
nullifidian has quit [Ping timeout: 265 seconds]
narimiran has quit [Ping timeout: 265 seconds]
<DanC> the .mll syntax is not part of menhir?
<companion_cube> it's ocamllex
<companion_cube> it's the lexer, based on regex
<DanC> is https://www.cs.cornell.edu/ down for the rest of you too?
<companion_cube> doesn't seem to load
tane has quit [Quit: Leaving]
lizzin has left #ocaml [#ocaml]
live2live has joined #ocaml
live2live has left #ocaml [#ocaml]
jao has quit [Remote host closed the connection]
jao has joined #ocaml
malina has joined #ocaml
<DanC> does ocaml have a syntax for putting arbitrary characters in identifiers? something like `_W#W`
<DanC> doesn't look like it
<companion_cube> no, it doesn't
<DanC> the upstream grammar uses literals for tokens: https://github.com/Agoric/Jessie/blob/master/src/tinyses.js
<DanC> it's a little annoying to have to write LT rather than "<"
<DanC> but oh well
rgherdt has quit [Ping timeout: 246 seconds]
<companion_cube> tbh it's quite a minor annoyance compared to writing a parser
<DanC> right; hence "little"
kakadu has quit [Remote host closed the connection]
kvda has joined #ocaml
ziyourenxiang has joined #ocaml
<DanC> well, I got a tiny bit of this grammar compiling