myst|fon has quit [Quit: Connection closed for inactivity]
<pierpa>
of course the problems of Ocaml are the lack of pretty and modern chat rooms
kakadu has quit [Remote host closed the connection]
<jhaberku>
pierpa: Just because there are big things to do, it doesn't also mean that small things help too.
<jhaberku>
*Don't help too
<jhaberku>
..
<pierpa>
while I'm no irc expert, I believe there must exist clients with dancing icons and big colored buttons, no?
<jhaberku>
pierpa: That's essential, yes.
<pierpa>
but they exist, or not?
pyon has joined #ocaml
<mrvn>
pierpa: do you want to watch dancing camels or get some work done in the chatroom?
<pierpa>
me, I'm satisfied by what I use now. It's other that are not.
<pierpa>
*others
<jhaberku>
pierpa: All your talk of dancing animals could have fooled me. :-)
<mrvn>
Maybe we are better of without those others.
<jhaberku>
Any thoughts on my Lwt question if you're in the mood to be productive.
<pierpa>
<jhaberku>
?
<mrvn>
More users isn't always better.
<Drup>
mrvn: yeah, no, that's bullshit
<mrvn>
Drup: it's not. You want more users that are above the average, not more users that are below the average.
<Drup>
First off, that's extremly elitist, which is a crappy attitude. Secondly, not liking irc doesn't determine your ability as a programmer
erdezde has joined #ocaml
<mrvn>
Drup: call it elitist. Doesn't mean it isn't true. And I never said it's related to liking irc.
erdezde has quit [Client Quit]
<Drup>
(and last: there are sufficiently large holes in the ocaml ecosystem that you can have a lot of hands at work, even if not everyone has a name ending by Roy)
<mrvn>
Drup: a hand doing work would already be above the average.
<mrvn>
Drup: see, we want more above average.
<jhaberku>
mrvn: To attact good people, first one needs to attact people.
<jhaberku>
Sigh. *attract.
<mrvn>
jhaberku: but if you start compromising your product to attrack dumb people, well you end up with a dumber product. Look at gnome for example.
<Drup>
mrvn: This is extremly amusing for you to say all that, and I think very innapropriate for this channel, which contains various beginners. So please just stop now :]
<mrvn>
must have more users, must be easier to use, must remove great feature because people are to dumb to understand it.
<mrvn>
Drup: being a beginner doesn't mean you are below average or dumb. That has pretty much nothing to do with it.
<Drup>
We were talking about making it easy to talk to people via IM. You just leaped to dumbing down OCaml. Nice slippery slope you have there.
<jhaberku>
mrvn: In my experience, leadership is ultimately responsible for establishing conduct and quality standards. But in order to lead people to do good things, you need people who are motivated and encouraged. You're attitude would not encourage me to engage with you.
<jhaberku>
Typos typos typos. *Your
<mrvn>
jhaberku: and my feeling is that if you need to add dancing camels to motivate people to chat with you then you are targeting the wrong people. That's all I'm saying.
<mrvn>
if anyone is offended by that then I'm sorry.
<jhaberku>
mrvn: If you need to construct artifical means by which you're superior to others around you, then this reflects on you more than it does your peers.
<mrvn>
jhaberku: I don't think the ability to use irc makes anyone superior
<ChristopheT>
pierpa: Have you tried KiwiIRC? Not as shiny as Gitter maybe but would it put people off? I see it as click-and-talk and that's what you want from a live chat, don't you?
<pierpa>
no, that's not what I want from a chat
<Drup>
ChristopheT: I think people who want gitter will be satisfied by it
<Drup>
(I tested it before you arrived)
<Drup>
One particular thing I like is that it asks you to chose a name before going on, which is not the case of some other web-based IRC client, and it means we have various Guest426 coming and going, which is inconvenient
<mrvn>
First point against gitter: Can't chat without signing in
ppp has joined #ocaml
<ChristopheT>
As I see it a bridge Gitter ↔ IRC is not possible because Gitter requires that you authenticate with your Github account. What you can have is Gitter → IRC and connect your IRC client to Gitter (with special auth).
seangrove has quit [Remote host closed the connection]
seangrove has joined #ocaml
<pierpa>
so, kiwiirc is just a normal irc client. What's special about it?
<Drup>
pierpa: it's web based and you just need to click on a button ?
<Drup>
it's nothing special
<Drup>
just pretty much what people want from gitter, as far as I understand
<pierpa>
so, they can have what they want, if it's only this
nicholasf has quit [Remote host closed the connection]
<jhaberku>
pierpa: Very generous of you.
<pierpa>
I did nothing
<pierpa>
only, if what people wants is kiwiirc, then they have it. There's no need to do anything.
<waterdrop>
Hi, I'm trying to decide between learning OCaml and F#, and the main reason I'm thinking about going with F# at this point is because I've heard that OCaml's documentation can be pretty poor / spotty. But OCaml seems like a nicer language, and I mostly plan to use the language for personal projects that involve coding math stuff / machine learning stuff on my own. So I don't really need .NET libraries.
<waterdrop>
Is there enough good documentation / books for me to learn OCaml on my own?
<jhaberku>
waterdrop: "Real World OCaml" is pretty great.
<Drup>
Book, yes, clearly
<Drup>
library documentation is pretty hit or miss :/
<jhaberku>
From there, you'll probably know enough to find things on your own.
<jhaberku>
waterdrop: F# tooling and documentation is better, but OCaml is a better language IMO.
<waterdrop>
Drup: How problematic is the lack of library documentation?
<waterdrop>
jhaberku: Hmm, in what ways is OCaml better?
<Drup>
depends of the library. quite often, you can just roll with types
<waterdrop>
I just want to use the language for writing math projects / machine learning projects, which means I'll be writing all the hard parts on my own
<jhaberku>
waterdrop: Mostly in ways that will be more clear once you've understood the language a bit better, but the biggest thing for me is the module system.
<waterdrop>
I see
<waterdrop>
I just need enough libraries to be able to get basic stuff done. I don't care about using it for web dev or anything like that.
<waterdrop>
I'm also planning to only use Linux..so not sure how F# would be on Linux anyway
<pierpa>
there's the Ocaml MOOC starting in September, if you are interested
<waterdrop>
Well I'd rather read a book / documentation if that's an option. I don't like online courses
<waterdrop>
I guess it's easy enough to go from one of F# / OCaml to the other, so I guess this isn't a huge decision. Just trying to decide what to start with.
<waterdrop>
Are there enough libraries that I could do basic reading / parsing data when working on math or machine learning stuff?
<waterdrop>
I plan to use the language to learn concepts / do research, but need to be able to at least read in data and parse data easily
<waterdrop>
Also..looks like there's no F# channel on IRC. That's surprising.
<ubertaco>
waterdrop: As far as libraries/documentation, speaking as a fellow beginner, one helpful hint I've found is that OCaml libs tend to write documentation by putting comments in their .mli files
nicholasf has quit [Read error: Connection reset by peer]
<ubertaco>
(.ml = source files, .mli = "header" files with a list of function signatures)
<waterdrop>
I see
<ubertaco>
Real World Ocaml is pretty good, although it makes opinionated choices on libraries (mostly out of necessity)
yegods has quit [Read error: Connection reset by peer]
<waterdrop>
hmm I see
yegods has joined #ocaml
<ubertaco>
The standard library in OCaml is pretty sparse, because the philosophy is more generally "keep a small core that's maintainable/essential, and let libraries fill the gaps"
<ubertaco>
so most people use a supplemental "standard library". There are a few options out there, Core and Batteries both being the popular one. Real World Ocaml picks Core, but you may later find you'd rather use Batteries (or simply use neither for *very* small projects)
<waterdrop>
hmm okay
<ubertaco>
If you decide to go to the F# side of the fence as a start point instead, "F# For Fun and Profit" is a good site to check out, though I find it sometimes assumes you're a C# guy who's trying to go over to F#
seangrove has joined #ocaml
<waterdrop>
yeah I'm not a C# guy
<waterdrop>
do you know F# at all?
<waterdrop>
or are you just starting with OCaml
nicholasf has joined #ocaml
<ubertaco>
and another factor is ecosystem. F# outside of Visual Studio (and on Linux or OSX) is doable, but you're "coloring outside the lines". The Ionide project pieces together a few open-source tools to make it a more pleasant experience, but I've found that merlin+vim (or merlin+emacs) is nicer
<ubertaco>
I know F# by way of knowing OCaml, and I'm a beginner at OCaml, if that tells you anything. :)
<waterdrop>
got it
<waterdrop>
Err do I need to be invited to sign onto that Slack channel?
<ubertaco>
Generally, I find OCaml vs F# is kinda like Java vs C#, although in this case OCaml is the more advanced one
<waterdrop>
I see
<ubertaco>
waterdrop: I don't remember how I got in there, but I'm asking around for ya
<ubertaco>
stick your email address in the box, it'll mail you an invite
<waterdrop>
great, thanks
<ubertaco>
No problem!
seangrove has quit [Ping timeout: 240 seconds]
<waterdrop>
So if I decided to use F# on Linux or OSX, would I still have access to a lot of libraries for F#?
<waterdrop>
I definitely don't plan to use Windows
<ubertaco>
waterdrop: in general, yes. But going the F# route, I would *strongly* suggest grabbing Visual Studio Code (the cross-platform text editor, not the big giant IDE), installing the Ionide plugin for it, and rolling with that
<waterdrop>
I see
<ubertaco>
it is also opinionated (chooses Forge as a project system management tool, chooses Paket as the dependency manager), but the opinions it has are "choose the options that actually *work* outside of Windows+VisualStudio"
<waterdrop>
I see
<waterdrop>
Does OCaml have more options though?
<ubertaco>
OCaml options I'm aware of are really anything that Merlin plugs into nicely (vim, emacs) and a recent VSCode extension that's very nice
<waterdrop>
I see
jhaberku has quit [Remote host closed the connection]
fraggle_ has quit [Ping timeout: 260 seconds]
<rgrinberg>
l/quit
rgrinberg has quit [Quit: WeeChat 1.5]
rgrinberg has joined #ocaml
pyon has quit [Quit: Goddammit, Emacs.]
pyon has joined #ocaml
Nahra has quit [Read error: Connection reset by peer]
Nahra has joined #ocaml
sdothum has joined #ocaml
bwar has quit [Remote host closed the connection]
ygrek_ has quit [Ping timeout: 265 seconds]
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
sdothum has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
sdothum has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
sdothum has joined #ocaml
frankpf has joined #ocaml
frankpf has left #ocaml [#ocaml]
govg has quit [Ping timeout: 258 seconds]
yegods has quit [Remote host closed the connection]
waterdrop has left #ocaml [#ocaml]
tvynr has joined #ocaml
yegods has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
frankpf has joined #ocaml
tmtwd has joined #ocaml
sdothum has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
pierpa has quit [Ping timeout: 244 seconds]
mcc has joined #ocaml
rgrinberg has quit [Ping timeout: 252 seconds]
sdothum has joined #ocaml
sdothum has quit [Client Quit]
sdothum has joined #ocaml
frankpf has quit [Ping timeout: 260 seconds]
manizzle has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
sdothum has joined #ocaml
SilverKey has joined #ocaml
sh0t has quit [Remote host closed the connection]
sdothum has quit [Client Quit]
sdothum has joined #ocaml
sdothum has quit [Read error: Connection reset by peer]
sdothum has joined #ocaml
frankpf has joined #ocaml
yegods has quit [Remote host closed the connection]
tmtwd has quit [Ping timeout: 265 seconds]
govg has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
MercurialAlchemi has joined #ocaml
tmtwd has joined #ocaml
sdothum has joined #ocaml
sdothum has quit [Client Quit]
sdothum has joined #ocaml
tane has joined #ocaml
sdothum has quit [Client Quit]
sdothum has joined #ocaml
sh0t has joined #ocaml
copy` has quit [Quit: Connection closed for inactivity]
sh0t has quit [Ping timeout: 260 seconds]
sh0t has joined #ocaml
Nahra has quit [Remote host closed the connection]
johnf_ has quit [Read error: Connection reset by peer]
johnf_ has joined #ocaml
tmtwd has quit [Ping timeout: 252 seconds]
SilverKey has quit [Quit: Halted.]
govg has quit [Ping timeout: 250 seconds]
govg has joined #ocaml
Mercuria1Alchemi has joined #ocaml
Nahra has joined #ocaml
tmtwd has joined #ocaml
sh0t has quit [Remote host closed the connection]
frankpf has quit [Ping timeout: 260 seconds]
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
jimt has quit [Quit: leaving]
SilverKey has joined #ocaml
Nahra has quit [Read error: Connection reset by peer]
Nahra` has joined #ocaml
jimt has joined #ocaml
nous1024 has joined #ocaml
johnf__ has joined #ocaml
mcc has quit [Quit: Connection closed for inactivity]
johnf_ has quit [Ping timeout: 244 seconds]
tmtwd has quit [Ping timeout: 276 seconds]
ygrek_ has joined #ocaml
govg has quit [Ping timeout: 240 seconds]
Simn has joined #ocaml
zpe has joined #ocaml
SilverKey has quit [Quit: Halted.]
zpe has quit [Ping timeout: 276 seconds]
ontologiae has joined #ocaml
orbifx has joined #ocaml
AltGr has joined #ocaml
ontologiae has quit [Ping timeout: 258 seconds]
dexterph has joined #ocaml
ggole has joined #ocaml
zpe has joined #ocaml
zpe has quit [Ping timeout: 252 seconds]
pyon has quit [Quit: fix config]
lol-icon has joined #ocaml
johnelse has joined #ocaml
nous1024 has quit [Quit: Leaving]
<companion_cube>
grr, why doesn't opam come with a decent solver
<companion_cube>
it's incredible how bad opam is for people who are not experienced OCaml programmers (namely, my colleagues)
dhil has joined #ocaml
tane has quit [Quit: Leaving]
<AltGr>
companion_cube, can you be more explicit ? Constructive criticism welcome...
<companion_cube>
well, the builtin solver is unusable
<companion_cube>
and all 3rd party are annoying to install on many distributions
<AltGr>
That's indeed an issue; but I don't see the link with being an experienced OCaml programmer, so I thought you had something else in mind.
<companion_cube>
well, I'm used to opam, and I took time to install aspcud because I know it's critical
tane has joined #ocaml
ygrek_ has quit [Ping timeout: 265 seconds]
<AltGr>
Yes, this is two-fold: we must improve availability of at least one solver on every platform, and make sure it gets available on the install/init path of opam
<flux>
how about just bunding aspcud with opam?
<flux>
+l
<AltGr>
either through depends in the distribution package, or during the `opam init` steps
kev has joined #ocaml
<AltGr>
companion_cube: aspcud, packup, mccs are all as much trouble to install ?
<AltGr>
(also, I don't remember if this was in opam 1.2 yet, but there is a heuristic detecting suspicious solutions from the internal solver and advising to install an external one)
<flux>
well, if that works, then great :), but I feel like the internal resolver should just always say "please install (ie. aspcud)" without heuristics..
<companion_cube>
AltGr: apparently
<AltGr>
that might be the better option, yes
<companion_cube>
even on arch, which I use: packup,aspcud are only AUR packages (i.e. unsupported); mccs is not packaged
<AltGr>
If you have a JVM you could use p2cudf, although relying on a Java solver is not a nice feeling...
orbifx has quit [Ping timeout: 244 seconds]
<companion_cube>
but I think opam should come with, say, packup (if license permits)
<gasche>
companion_cube: could you push for packup or aspcud to be packaged then?
<companion_cube>
aspcud has too many dependencies and is quite ugly
<gasche>
I mean it's your distribution, you should contribute to it :-)
<companion_cube>
ah, well
<companion_cube>
but of course it wouldn't solve my colleagues' issue: they use mac OS and fedora
<flux>
but going this in a logical fashion, there are super many distributions, there is only one opam.. :)
<companion_cube>
opam already ships ocamlgraph and other stuff, why not a decent solver?
<gasche>
I'm not opposed to bundling but long-term we want opam packaged in end-user distributions, and for that we need its dependencies packaged
<gasche>
so people contacting their distro packagers does help a great deal
<companion_cube>
well, packaging opam is much simpler than packaging aspcud, isn't it?
<companion_cube>
it comes with no dependency but OCaml and is compiled easily
<companion_cube>
aspcud has sth like 3 or 4 recursive deps, if memory serves
<gasche>
I don't understand your comment
<flux>
though, when might get opam packaged in macosx or windows?-) and macosx isn't not an insignificant platform I think.
<gasche>
there are package managers on MacOS that technical users use
<companion_cube>
an alternative would be to code a decent solver in OCaml and ship it with opam ,but it takes work (obviously)
<gasche>
for all practical purposes, a good CUDF solver *is* a dependency of opam
<gasche>
so you should try to get it packaged
<gasche>
(because pacagkers are not going to like a bundled solution anyway)
govg has joined #ocaml
<companion_cube>
it's an optional dependency of opam
ontologiae has joined #ocaml
orbifx has joined #ocaml
<gasche>
hm
<companion_cube>
but there is no reason opam couldn't be packaged with a simpler CUDF solver
<companion_cube>
simple*
<gasche>
I offered a concrete step you can take to improve the situation
<companion_cube>
(e.g. packup + minisat, or something like this)
<gasche>
that is, contact Archlinux packagers and ask them for a packup/aspcud package
<companion_cube>
I'm fine, it's more on t he macOS/fedora side
<gasche>
I don't see the point of discussing other plans that nobody has any intentions to act on
<gasche>
I just re-sent an email to the Fedora packagers that has a COPR package for aspcud (plus opam-devel) to get them to move
<gasche>
hopefully the fedora side should be covered soon
<companion_cube>
on the arch side it's ok to have AUR packages (thanks vbmithr)
<gasche>
hm
<gasche>
isn't all the information I just gave (OpenSuse, Homebrew) already available on Install.html?
<companion_cube>
it's not exactly the same, afaict
<companion_cube>
the per-distribution links for aspcud, in particular, are only on the wiki
<gasche>
maybe you could open an issue on ocaml.org to ask for what's best?
<companion_cube>
I was trying to find how to PR the change ^^
<gasche>
(I have a shitty internet connection right now so it's hard to follows links or even pull repos)
<companion_cube>
I'll open an issue
orbifx has quit [Ping timeout: 244 seconds]
pierpa has joined #ocaml
tane has quit [Remote host closed the connection]
kev has quit [Ping timeout: 258 seconds]
<companion_cube>
gasche: as a side note, I'm wondering how to package research software that has several other research software dependencies (none of which, of course, is packaged on distributions)
<companion_cube>
it's quite annoyin
<companion_cube>
g
Nahra` has quit [Read error: Connection reset by peer]
Nahra` has joined #ocaml
orbifx has joined #ocaml
djellemah_ is now known as djellemah
kev has joined #ocaml
silver has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 250 seconds]
<gasche>
companion_cube: well one answer is to package the dependencies first
<gasche>
another is to not use distribution packages :p
zpe has joined #ocaml
<gasche>
packaging makes sense for end-user distribution; if you have no end-user it's probably not worth the effort
<gasche>
(that is, if all users can pay a higher entrance cost)
<gasche>
for example, if you want to provide a research artifact along with a submission, a source bundle can be enough
<gasche>
or a dedicated opam repository
<gasche>
(some people go for a virtual machine image but I think that's both inflexible and overkill)
<Drup>
some conferences explitely advice to provide more than simply a source bundle.
<Drup>
(PLDI was like that)
zpe has quit [Ping timeout: 250 seconds]
yegods has joined #ocaml
<gasche>
well one reason for that is that a lot of research software is unportable
<gasche>
but, for example, an OCaml artifact should be buildable reasonably easily, given that you can specify an opam switch and dependencies
<gasche>
(that's not necessarily the case of, say, a C+CUDA algorithm to evaluate)
<Drup>
(given some research-grade ocaml software I have seen, I wouldn't be so sure :p)
<Drup>
AltGr: does the internal solver even capable of working with opam 2.0 ?
<Drup>
(given the perf issues with aspcud ...)
tane has joined #ocaml
kev has quit [Ping timeout: 276 seconds]
lol-icon has quit [Ping timeout: 250 seconds]
lol-icon has joined #ocaml
sdothum has joined #ocaml
lol-icon has quit [Client Quit]
Nahra` has quit [Read error: Connection reset by peer]
Nahra` has joined #ocaml
freusque has quit [Quit: WeeChat 1.4]
nicholasf has quit [Remote host closed the connection]
shum has joined #ocaml
sdothum has quit [Ping timeout: 252 seconds]
shum has quit [Client Quit]
sdothum has joined #ocaml
johnelse has quit [Ping timeout: 252 seconds]
fluter has left #ocaml [#ocaml]
larhat has joined #ocaml
larhat has quit [Client Quit]
johnelse has joined #ocaml
nicholasf has joined #ocaml
kev has joined #ocaml
nicholasf has quit [Remote host closed the connection]
<Algebr`>
has anyone done anything with OCaml + mesh networks
<Algebr`>
like wireless mesh networks
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
sdothum has joined #ocaml
<companion_cube>
Drup: s/some/most/ ?
<AltGr>
companion_cube, the Install page is hosted within the opam git repo, in doc/pages/Install.md
<companion_cube>
ohhhh
tvynr has quit [Ping timeout: 250 seconds]
<AltGr>
PR welcome -- be aware that the currently visible pages are taken from the 1.2 branch though
<AltGr>
Drup: well, it doesn't seem to change a lot with 2.0, it can still mostly handle an initial installation
<AltGr>
but I haven't tested a lot TBH
<AltGr>
(about the Install page, there is a tiny link at the bottom of the page)
nicholasf has quit [Ping timeout: 252 seconds]
<AltGr>
(... which points to master...)
nicholasf has joined #ocaml
dhil has quit [Ping timeout: 240 seconds]
<gasche>
AltGr: thanks!
rgrinberg has joined #ocaml
<Algebr`>
would prefer OCaml to nodejs for this networking coding I plan on..
<flux>
algebr`, well why don't you?-)
<flux>
in particular networking code would preferably be robust, something ocaml is very appropriate for!
<Algebr`>
well I don't know anything about wireless mesh networks and like most things ocaml, I assume such libraries don't exist
<Algebr`>
and kinda prefer actually shipping something rather than writing libraries...
<Algebr`>
hence asking if anyone happened to have ever had anything with such network coding
<Algebr`>
or if any is even needed?
<flux>
you probably first want to pick some wireless mesh stack, and they probably have C interfaces
<flux>
one name I recall (for some reason...) is BATMAN, but there are probably others :)
kaustuv has joined #ocaml
<kaustuv>
What is the bytecode version of the foo.p.native target for ocamlbuild? Alternatively what is the right way to tell ocamlbuild to use ocamlcp?
<flux>
hmm, batman seems to be like a routing daemon..
<Algebr`>
lol, batman
<flux>
"better approach to mobile ad-hoc networking"
<flux>
I bet they came up with that first and then may have noticed how its initials become BATMAN
<gasche>
kaustuv: I'm not sure ocamlcp is supported by the default rules
nicholasf has quit [Remote host closed the connection]
<gasche>
isn't that a matter of using something like "-ocamlc ocamlcp" though?
<gasche>
(I didn't know people actually use ocamlcp)
<flux>
maybe batman isn't what you're looking. it seems like it creates a big local network for you, using ip on it is your choice then.
<flux>
(pretty cool though, I guess one could deploy it as-is to a bunch of computers as long as there is a dhcp server and dns available)
<Algebr`>
what is ocamlcp
<kaustuv>
gasche: I tried -ocamlc ocamlcp but that gives me all kinds of compiler exceptions that I don't want to track down
<gasche>
Algebr`: it's a compiler that instruments OCaml source with profiling probes
<Algebr`>
gasche: thanks
<gasche>
it's rather crude and not very useful for profiling, but it gives you call counts for various source locations which can be useful
<kaustuv>
I basically want to answer the following questions about my program: which lines are executed the most often
<kaustuv>
How can I do this without ocamlcp?
tane has quit [Quit: Verlassend]
ChristopheT has joined #ocaml
<gasche>
profilers will typically tell you which lines you are spending the most time on, which is not the same thing
<Algebr`>
flux: I basically want to drop little router like things around town so that I can upload big videos with high speed and without the government being able to shut it down or purposefully slow it down
<Algebr`>
I think wireless mesh networks are good for that?
<kaustuv>
For C there is gcov, but I don't think that works with OCaml source
<flux>
perhaps, but shutting them down is a matter of jamming 2.4 and 5 GHz
<Algebr`>
is there such a thing as resilent mesh networks or maybe anti jammers
<Algebr`>
I kind of assume so since such networks are used in military zones
<gasche>
hm
<gasche>
kaustuv: I just tried on a small project and (-ocamlc ocamlcp) worked well
agarwal1975 has joined #ocaml
<kaustuv>
gasche: hmm, you're right, it works. Maybe I did something wrong earlier.
<gasche>
(so one preprocessing-based coverage tool is "bisect" (for camlp4) and "bisect_ppx" (for ppx), but they are designed for testsuite coverage rather than occurence counting, I don't know if they also provide this information)
kaustuv has left #ocaml ["ERC (IRC client for Emacs 24.5.1)"]
<Algebr`>
hmm, so has anyone implemented the Signal Protocol in OCaml yet? :)
al-damiri has joined #ocaml
Algebr` has quit [Remote host closed the connection]
Algebr` has joined #ocaml
tvynr has joined #ocaml
yegods has quit [Remote host closed the connection]
yegods has joined #ocaml
<Algebr`>
its actually ridiculous how much power and how fast you can get an amazing product out with nodejs
<Algebr`>
I wish more OCamlers would try the nodejs ecosystem and see how awful our web programming story is
<Algebr`>
for example, I have to build a web app now, quickly and ship it. Can't use OCaml
<adrien>
I don't like risking my life because sys admins would have to deal with npm
<gasche>
Algebr`: it takes a lot of effort to get a good web programming story, and people are working on it pieces by pieces
<gasche>
js_of_ocaml, for example, is a part of the puzzle
<companion_cube>
Algebr`: just curiosity, what do you think of typescript?
Algebr` has quit [Ping timeout: 250 seconds]
vincentll has joined #ocaml
copy` has joined #ocaml
tvynr has quit [Ping timeout: 260 seconds]
tvynrylan has joined #ocaml
<mrvn>
Algebr: NaCl
<mrvn>
dmiller: in configure scripts you can provide sensible defaults for cross compiling
<mrvn>
ups, ewin
vincentll has quit [Quit: Leaving]
infinity0 has quit [Ping timeout: 244 seconds]
vincentll has joined #ocaml
infinity0 has joined #ocaml
paratox_ has joined #ocaml
yegods has quit [Remote host closed the connection]
paratox_ has left #ocaml [#ocaml]
infinity0 has quit [Remote host closed the connection]
dhil has joined #ocaml
Mercuria1Alchemi has quit [Ping timeout: 265 seconds]
infinity0 has joined #ocaml
<gasche>
ChristopheT: thanks for your work on ocaml.org
Nahra` has quit [Remote host closed the connection]
infinity0 has quit [Remote host closed the connection]
Nahra has joined #ocaml
infinity0 has joined #ocaml
vincentll has quit [Ping timeout: 252 seconds]
shinnya has joined #ocaml
darkf has quit [Ping timeout: 258 seconds]
Algebr` has joined #ocaml
zpe has joined #ocaml
<Algebr`>
adrien: yea, npm is pretty flaky, so is package.json. That said would your life be any safer with opam than something with millions of users?
vincentll has joined #ocaml
<ChristopheT>
gasche: Thanks for your encouragements! :-)
zpe has quit [Ping timeout: 276 seconds]
<adrien>
Algebr`: I advocate binaries in the native format of the underlying OS distribution
<adrien>
for system administration it is much better
<Algebr`>
also true
<Algebr`>
ChristopheT: Thank you for so much help on usbmux
<Algebr`>
I'm a little backlogged with other things
<Leonidas>
is it possible to pin opam switches? I would like to have a --with-instrumented-runtime switch, but opam repository does not have one
<gasche>
(Java's GC latency is not very good, I was surprised)
<Leonidas>
gasche: I'll let them know, thanks :)
<Algebr`>
gasche: that is super surprising, would have expected it to be top notch
<Algebr`>
gasche: are you moving to gitlab for all things now? Any other OCamlers doing that as well?
<gasche>
hm
<ggole>
Java implementations have more than one GC: the default is tuned for throughput at the expense of latency aiui
<gasche>
Erlang's GC was not incremental last time I checked, they relied on the fact that it is per-heap to go fast
<gasche>
so you may need to use several actors to get good latencies, but I'm not sure how to formulate the benchmark in this way
<gasche>
ggole: I think the benchmark I was sent uses the best known Hotspot settings (no Azul stuff obviously))
<Leonidas>
Algebr`: how so? Typical FP workloads are very different to typical imperative workloads so I would fully expect the JVMs GC to be optimized for dealing with longer-lived, larger objects.
<gasche>
Algebr`: for the projects that I start myself, I'm currently using gitlab unless I want very low contribution cost
<Algebr`>
Leonidas: I meant suprisingly in the fact of how many billions of dollars have gone into the jvm
<gasche>
because gitlab uses more free software than github, and github's monopoly could be a danger in the long run
<gasche>
that said, I'm only moderately satisfied by gitlab
<gasche>
(I don't know about others, and I respect the hosting choices of existing projects that I contribute to)
slash^ has joined #ocaml
<ggole>
gasche: hmm, interesting. I would also expect Hotspot to do well.
<Leonidas>
Algebr`: it's like tuning a racecar vs a long-haul truck. you can dump billions onto improving each but the results will be different: a faster car vs a larger storage truck.
<Algebr`>
right
<gasche>
so the setting used is -XX:+UseG1GC
<gasche>
I should make a README with times
<gasche>
(Java G1's worst pause is 58ms on my machine)
<gasche>
(about the same as GHC's)
<ggole>
gasche: my understanding is that G1 is the current low-pause offering on Hotspot, so that seems correct
<gasche>
(without the option, the pause is 200ms)
<Algebr`>
will multi-core improve the ocaml gc in general as well?
<Algebr`>
or rather provide foundation for improvements?
tvynrylan has joined #ocaml
<gasche>
Algebrit
<gasche>
Algebr`: multicore will make the GC slower (hopefully not much)
<Algebr`>
oh
<Algebr`>
even if you're just using single threaded code?
tvynrylan has quit [Ping timeout: 240 seconds]
zpe has joined #ocaml
<gasche>
even
SilverKey has joined #ocaml
<gasche>
but hopefully the overhead is small
<Drup>
KC showed various benchmarks that were quite good
slash^ has quit [Read error: Connection reset by peer]
ChristopheT has left #ocaml ["ERC (IRC client for Emacs 24.5.1)"]
ChristopheT has joined #ocaml
zpe has quit [Ping timeout: 240 seconds]
al-damiri has quit [Quit: Connection closed for inactivity]
<Algebr`>
I guess the GC can't the 'swapped' out?
<Algebr`>
like --with-multicore-gc
<Drup>
iirc, actually yes, that was the plan
<Algebr`>
+1 for that
<gasche>
the issue is whether it is possible, from an implementation point of view, to ./configure all the overhead away, and it's not clear to me
<Algebr`>
gasche: like in terms of coding it up hassle?
<Algebr`>
or in principle
<gasche>
(you could also maintain two runtimes in parallel but...)
<gasche>
I'd say maintenance cost
<gasche>
hopefully with a good set of C macros you can make it work
<gasche>
and again, a compromise with just a few percent overhead could be acceptable to users
yegods has quit [Remote host closed the connection]
<Algebr`>
most users
yegods has joined #ocaml
govg has quit [Ping timeout: 240 seconds]
<Algebr`>
could the ocaml runtime be written in rust instead, in principle
<mrvn>
Algebr`: sure
<Algebr`>
mrvn: any idea what parts of src would need to be redone
<Algebr`>
byte?
<Drup>
proving things with the lifetime system of rust might be an interesting exercise
<Algebr`>
rather, i guess all the .c but what I don't understand is how OCaml itself in the compiler interacts with the C code, at which point do they intersect
<Algebr`>
just in the generated code which assume the C object format?
<Algebr`>
i mean, OCaml made the first rust compiler, would be fun to have it goes backwards as well, have a Rust runtime.
<mrvn>
There are a lot of C stubs that should be easy to replace. Not sure how the %identifier primitives play into the compiler though.
<Algebr`>
and using a rust FFI would be so much more fun than C
<companion_cube>
you wouldn't gain much by rewriting the GC in rust, it would be 100% unsafe blocs
<mrvn>
or the parts that interact with the GC like modifying a mutable.
<gasche>
a good first step would be to experiment with a Rust FFI
<Algebr`>
companion_cube: but the runtime is like a superset of the runtime right, you could make a runtime with no gc right
<Algebr`>
err, *but the gc
<gasche>
implementing a small library with, say, ctypes on one side and Rust on the other
<companion_cube>
a runtime without GC? it wouldn't work very well :D
<mrvn>
It would be nice to separate the GC from ocaml with a defined API so you could swap it easier.
<Algebr`>
companion_cube: I mean, keep the GC as C and the rest of runtime as rust
<companion_cube>
the GC also relies heavily on the OCaml value representation
<companion_cube>
Algebr`: ah! you mean like builtin functions
<gasche>
you would learn how to reason about the mOCaml memory model from the Rust side
<companion_cube>
maybe so
<Algebr`>
is everyone's runtime/GC so tightly coupled
<companion_cube>
gasche: unsafe{} :D
<gasche>
well that wouldn't provide much benefits over C
<mrvn>
Algebr`: likely. you don't want X layers between them
<gasche>
if Rust is not expressive enough to encode OCaml's invariants, there is not much point
<ggole>
Typesafe GC has been done
<ggole>
Dunno if the Rust type system would be enough to cover it though
<companion_cube>
gasche: I think it would not be expressive enough
<Drup>
gasche: why did you move the list of files to HACKING.adoc in your version ?
<Algebr`>
companion_cube: why would it all be unsafe blocs
<companion_cube>
rust is mostly based on scoped lifetimes, but in OCaml values can live for arbitrarily long
<companion_cube>
Algebr`: because the GC manipulates memory as a large array of bytes, with no explicit lifetimes; it's very low-level C
<gasche>
Drup: I felt it wasn't very useful in a README
<companion_cube>
and very low level rust is unsafe{}-party
<gasche>
but feel free to do whatever
<gasche>
hm
AltGr has left #ocaml [#ocaml]
<gasche>
before Rust, I would like to play with Fram-C for the OCaml runtime
<gasche>
but that requires time
<companion_cube>
yeah, that would be very interesting
<companion_cube>
especially since it can live in comments, so the migration path would be void :D
<gasche>
if you are looking for another post-doc...
<ggole>
I've dug through a few parts but aren't really familiar.
<Drup>
gasche: on one hand, it starts by inference rules, which is a bit violent. On the other hand, if you can't understand that, you are probably Not Yet Ready
<gasche>
hm
<gasche>
don't overdo it, a good document is a good first step
<Drup>
Sure
<Drup>
But it would be nice to have a reading list "Path to understand^W having a slight idea of what's happening in the OCaml typechecker"
<Drup>
(and Oleg's blog post would be towards the end of that list)
zpe has joined #ocaml
orbifx has quit [Ping timeout: 250 seconds]
rgrinberg has quit [Ping timeout: 276 seconds]
zpe has quit [Ping timeout: 265 seconds]
nicholas_ has joined #ocaml
nicholasf has quit [Ping timeout: 264 seconds]
infinity0 has quit [Remote host closed the connection]
tvynrylan has joined #ocaml
infinity0 has joined #ocaml
Algebr` has quit [Ping timeout: 252 seconds]
ontologiae has quit [Ping timeout: 244 seconds]
tvynrylan has quit [Quit: Leaving]
tvynrylan has joined #ocaml
tvynrylan has quit [Ping timeout: 240 seconds]
ygrek_ has joined #ocaml
yegods has quit [Remote host closed the connection]
yegods has joined #ocaml
zozozo has quit [Ping timeout: 260 seconds]
StatelessCat has quit [Ping timeout: 260 seconds]
zozozo has joined #ocaml
StatelessCat has joined #ocaml
rgrinberg has joined #ocaml
Fleurety has quit [Ping timeout: 240 seconds]
tvynrylan has joined #ocaml
Fleurety has joined #ocaml
soupault has joined #ocaml
ontologiae has joined #ocaml
zpe has joined #ocaml
soupault has quit [Remote host closed the connection]
zpe has quit [Ping timeout: 244 seconds]
yegods has quit [Remote host closed the connection]
yegods has joined #ocaml
soupault has joined #ocaml
kev has joined #ocaml
ChristopheT has quit [Ping timeout: 244 seconds]
soupault has quit [Remote host closed the connection]
soupault has joined #ocaml
soupault has quit [Remote host closed the connection]
soupault has joined #ocaml
yegods has quit [Remote host closed the connection]
dexterph has quit [Ping timeout: 264 seconds]
Nahra has quit [Remote host closed the connection]
ontologiae has quit [Ping timeout: 244 seconds]
Ravana has quit [Quit: Goodbye for now!]
zpe has joined #ocaml
shinnya has quit [Ping timeout: 244 seconds]
kev has quit [Ping timeout: 258 seconds]
zpe has quit [Ping timeout: 276 seconds]
rgsam has joined #ocaml
rgsam has quit [Quit: Leaving.]
yegods has joined #ocaml
yegods has quit [Remote host closed the connection]
yegods has joined #ocaml
Ravana has joined #ocaml
al-damiri has joined #ocaml
nicholasf has joined #ocaml
nicholas_ has quit [Ping timeout: 265 seconds]
nicholas_ has joined #ocaml
nicholasf has quit [Ping timeout: 240 seconds]
rgrinberg has quit [Ping timeout: 244 seconds]
orbifx has joined #ocaml
AlexRussia has joined #ocaml
nicholas_ has quit [Remote host closed the connection]
rgrinberg has joined #ocaml
zpe has joined #ocaml
zpe has quit [Ping timeout: 276 seconds]
kev has joined #ocaml
sh0t has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
demonimin has joined #ocaml
AlexRussia has quit [Ping timeout: 258 seconds]
dexterph has joined #ocaml
sdothum has joined #ocaml
kakadu has joined #ocaml
ggole has quit [Ping timeout: 276 seconds]
ontologiae has joined #ocaml
sh0t has quit [Remote host closed the connection]
ollehar has joined #ocaml
<ollehar>
pin local package, try to opam reinstall it, but it's dirty?
ontologiae has quit [Ping timeout: 276 seconds]
SpiceGuid has joined #ocaml
sh0t has joined #ocaml
<ollehar>
Your request can't be satisfied:
<ollehar>
- malfunction.<unavailable version> is not available because the package is pinned to /home/olle/kod/malfunction, version f4d02bb-dirty.
Nahra has joined #ocaml
zpe has joined #ocaml
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
nicoo has quit [Remote host closed the connection]
zpe has quit [Ping timeout: 240 seconds]
nicoo has joined #ocaml
sdothum has joined #ocaml
SpiceGuid has quit [Ping timeout: 258 seconds]
SpiceGuid has joined #ocaml
SpiceGuid has quit [Client Quit]
MercurialAlchemi has quit [Ping timeout: 244 seconds]
Nahra has quit [Read error: Connection reset by peer]
Nahra has joined #ocaml
pierpa has joined #ocaml
orbifx1 has joined #ocaml
<ollehar>
heh. solved by remove and install. :P
orbifx has quit [Ping timeout: 264 seconds]
yegods has quit [Remote host closed the connection]
LiamGoodacre has joined #ocaml
yegods has joined #ocaml
Simn has quit [Quit: Leaving]
zpe has joined #ocaml
zpe has quit [Ping timeout: 258 seconds]
orbifx1 has quit [Ping timeout: 250 seconds]
LiamGoodacre has quit [Quit: Leaving]
mehdid has left #ocaml [#ocaml]
ollehar has quit [Quit: ollehar]
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
nicholasf has joined #ocaml
jmiven has quit [Quit: co'o]
jmiven has joined #ocaml
soupault has quit [Ping timeout: 265 seconds]
yegods has quit []
tvynrylan has quit [Ping timeout: 244 seconds]
nicholasf has quit [Remote host closed the connection]
aconz2 has joined #ocaml
nicholasf has joined #ocaml
ontologiae has joined #ocaml
sdothum has joined #ocaml
breitenj has quit [Ping timeout: 258 seconds]
ontologiae has quit [Ping timeout: 260 seconds]
sdothum has quit [Client Quit]
<aconz2>
if there's any algebraic effects lovers out there, I'm trying grok it. the best I've got is: raising an "exception" with some data you want to pass along with the current cotinuation. and the current implementation is unchecked so functions aren't typed with what effects they could raise
breitenj has joined #ocaml
zpe has joined #ocaml
tvynrylan has joined #ocaml
zpe has quit [Ping timeout: 250 seconds]
<Bluddy[m]>
aconz2: Think about it like python co-routines, except with strong PL theory behind it. It's a way to do the same things monads do, but without the associated complexity and without the type safety provided by monads. As in python, you 'yield' (throw an effect), perform specialized behavior at the catch site, then return to either the same context or another context.
sh0t has quit [Remote host closed the connection]
ygrek_ has quit [Ping timeout: 252 seconds]
sdothum has joined #ocaml
<aconz2>
and so there's nothing special about having tagged effects like Read, Write b/c it's equivalent to just sending that as an extra piece of data when yielding (continuing along the python analogy)?
<aconz2>
it just bakes in a datatype in a nice way
<aconz2>
Bluddy[m]: so then you can regain type safety if you annotate functions with effects?
d0nn1e has quit [Ping timeout: 240 seconds]
sdothum has quit [Quit: ZNC - 1.6.0 - http://znc.in]
dexterph` has joined #ocaml
al-damiri has quit [Quit: Connection closed for inactivity]
d0nn1e has joined #ocaml
dexterph has quit [Ping timeout: 258 seconds]
nicholasf has quit [Remote host closed the connection]