jlongster has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Simn has quit [Read error: Connection reset by peer]
simon3 has quit [Ping timeout: 240 seconds]
trapz has quit [Quit: trapz]
Muzer has joined #ocaml
silver_ has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 260 seconds]
silver has quit [Ping timeout: 260 seconds]
yomimono has quit [Ping timeout: 268 seconds]
jao has joined #ocaml
nomicflux has joined #ocaml
nomicflux has quit [Quit: nomicflux]
shinnya has joined #ocaml
snhmib has quit [Ping timeout: 260 seconds]
octachron has quit [Quit: Leaving]
trapz has joined #ocaml
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 260 seconds]
silver_ has quit [Read error: Connection reset by peer]
nomicflux has joined #ocaml
newbie has joined #ocaml
newbie has quit [Client Quit]
whisperedcigar has joined #ocaml
newbie has joined #ocaml
newbie is now known as lolisa
lolisa has quit [Client Quit]
whisperedcigar has quit [Ping timeout: 240 seconds]
FreeBirdLjj has joined #ocaml
simon3 has joined #ocaml
jabroney1 has quit [Quit: Leaving.]
wtetzner has joined #ocaml
copy` has quit [Quit: Connection closed for inactivity]
Muzer has quit [Ping timeout: 256 seconds]
marsam has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
Muzer has joined #ocaml
SpiceGuid has quit [Quit: ChatZilla 0.9.93 [SeaMonkey 2.46/20161213183751]]
mfp_ has quit [Ping timeout: 260 seconds]
trapz has quit [Quit: trapz]
FreeBirdLjj has joined #ocaml
trapz has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
whisperedcigar has joined #ocaml
troydm has quit [Ping timeout: 258 seconds]
trapz has quit [Quit: trapz]
whisperedcigar has quit [Ping timeout: 240 seconds]
jlongster has joined #ocaml
nomicflux has quit [Quit: nomicflux]
FreeBird_ has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 240 seconds]
<simon3>
I run the example logger from ocaml-irc-client, everything is ok except that the bot dropped after about 1 minutes. Don't know why. The irc-client seems already pong back any ping.
<simon3>
Exactly 60 seconds.
<simon3>
if no people chats so no messages received
marsam has quit [Remote host closed the connection]
nomicflux has joined #ocaml
nomicflux has quit [Client Quit]
mengu has quit [Remote host closed the connection]
sgronblo has joined #ocaml
<sgronblo>
Anyone here that is experienced in both Clojure and Ocaml and would like to give their opinions on which is "better"?
jlongster has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
wtetzner has quit [Remote host closed the connection]
<simon3>
never mind. There is a parameter keepalive with default 60 seconds.
jack5638 has joined #ocaml
whisperedcigar has joined #ocaml
mengu has joined #ocaml
jack5638 has quit [Remote host closed the connection]
whisperedcigar has quit [Ping timeout: 240 seconds]
jack5638 has joined #ocaml
mengu has quit [Ping timeout: 268 seconds]
simon3 has left #ocaml ["ERC (IRC client for Emacs 26.0.50)"]
after____ has joined #ocaml
after___ has quit [Ping timeout: 258 seconds]
jack5638 has quit [Ping timeout: 240 seconds]
pilne has quit [Quit: Quitting!]
after___ has joined #ocaml
after____ has quit [Ping timeout: 260 seconds]
FreeBird_ has quit [Remote host closed the connection]
whisperedcigar has joined #ocaml
jack5638 has joined #ocaml
spew has quit [Quit: foobar]
whisperedcigar has quit [Ping timeout: 240 seconds]
FreeBirdLjj has joined #ocaml
MercurialAlchemi has joined #ocaml
Muzer has quit [Ping timeout: 256 seconds]
Soni has quit [Ping timeout: 240 seconds]
rpg_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<apache3_>
reynir: I did :)
Soni has joined #ocaml
mrnugget has joined #ocaml
whisperedcigar has joined #ocaml
jao has quit [Ping timeout: 268 seconds]
whisperedcigar has quit [Ping timeout: 240 seconds]
Muzer has joined #ocaml
mrnugget has quit [Ping timeout: 240 seconds]
MercurialAlchemi has quit [Ping timeout: 256 seconds]
Exagone313 has quit [Ping timeout: 245 seconds]
rks` has quit [Ping timeout: 264 seconds]
nicoo has quit [Ping timeout: 240 seconds]
govg_ has joined #ocaml
haesbaer1 has joined #ocaml
dinosaure1 has joined #ocaml
Khady_ has joined #ocaml
nicoo has joined #ocaml
companion_square has joined #ocaml
BitPuffin|osx has joined #ocaml
rks` has joined #ocaml
fedruantine has joined #ocaml
dinosaure has quit [Ping timeout: 240 seconds]
Khady has quit [Ping timeout: 240 seconds]
fedruantine_ has quit [Ping timeout: 240 seconds]
govg has quit [Ping timeout: 240 seconds]
haesbaert has quit [Ping timeout: 240 seconds]
companion_cube has quit [Ping timeout: 240 seconds]
rseymour has quit [Ping timeout: 240 seconds]
rseymour has joined #ocaml
Exagone313 has joined #ocaml
john51 has quit [Read error: Connection reset by peer]
john51 has joined #ocaml
whisperedcigar has joined #ocaml
whisperedcigar has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Read error: Connection reset by peer]
FreeBirdLjj has joined #ocaml
nicoo has quit [Ping timeout: 240 seconds]
rks` has quit [Ping timeout: 264 seconds]
rks` has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 256 seconds]
FreeBirdLjj has joined #ocaml
nicoo has joined #ocaml
<reynir>
\o/
whisperedcigar has joined #ocaml
whisperedcigar has quit [Ping timeout: 240 seconds]
argent_smith has joined #ocaml
alfredo has joined #ocaml
argent_smith has quit [Ping timeout: 240 seconds]
Simn has joined #ocaml
companion_square is now known as companion_cube
jnavila has joined #ocaml
whisperedcigar has joined #ocaml
whisperedcigar has quit [Ping timeout: 240 seconds]
whisperedcigar has joined #ocaml
kakadu has joined #ocaml
jrslepak has quit [Ping timeout: 246 seconds]
Madars_ has quit [Ping timeout: 246 seconds]
jrslepak has joined #ocaml
Madars_ has joined #ocaml
mengu has joined #ocaml
AltGr has joined #ocaml
<Leonidas>
sgronblo: i do :D
<Leonidas>
sgronblo: switching from an Clojure job to an OCaml job, I guess you can imagine my conclusion
<Leonidas>
sgronblo: in all seriousness, they kinda fill different niches and feel quite different
<kakadu>
Folks, do you know map implementations with integer keys where we do comparison using lexicographical order of bits?
<def`>
kakadu: not sure I understand what you mean :)
<def`>
what would be the point? having a different ordering? You can just instantiate Map.Make then.
<kakadu>
not exactly instantiate
<Leonidas>
clojure is convenient to a fault, everything is quite easy (except currying) but the code feels fragile and clojurians love maps so the input is a map and the output is another map so you never really know what goes in where
<kakadu>
Comparison should be like this: if current bit is 0 we put it into left subtree, 1 -- to the right subtree. And when we will do comparison in the subtrees we will check _next_ bit of the key that is being inserted
<sgronblo>
Leonidas: yeah that to me sounds like it can only be marginally better than python, ruby, php, javascript (mainly because of the FP approach)
<kakadu>
So, if we insert 1..n without gaps we should get balanced tree
<kakadu>
def`: ^
<Leonidas>
sgronblo: ocaml is more methodical and needs a bit more up-front planning instead of mashing things together to make sure signatures match. but it can be quite pedantic
<Leonidas>
sgronblo: i was using python for 10 years before and switched to clojure because I was doing FP in Python which is doable but not really idiomatic
<sgronblo>
Leonidas: I used to love Python before too, after being mostly exposed to Java at uni.
<sgronblo>
But now that I have experienced quite a bit more languages I just feel like there is no point in using any of that dynamic crap any more.
<companion_cube>
well this is an implementation of a patricia tree, which is better than a naive bit-by-bit binary tree, because you don't have useless intermediate nodes
<companion_cube>
(there's also an implementation by J-C Filliatre)
mengu has quit [Remote host closed the connection]
<kakadu>
I'm so glad that I asked here. Thanks, guys
maattdd has joined #ocaml
<Leonidas>
sgronblo: it still has its uses. Clojurescript with reagent is pretty nice
<Leonidas>
sgronblo: I quite dislike the fact that Clojure runs on the JVM. It is nice for deployment, but I'd prefer to have something with faster startup time. The fact that the Clojure compiler is horribly slow does not help
<Leonidas>
and the java ecosystem is vast but APIs are terrible
argent_smith has joined #ocaml
larhat has joined #ocaml
mengu has joined #ocaml
jack5638 has quit [Ping timeout: 264 seconds]
larhat has quit [Client Quit]
mengu has quit [Read error: Connection reset by peer]
mengu_ has joined #ocaml
jack5638 has joined #ocaml
mengu_ has quit [Ping timeout: 268 seconds]
ocalm has quit [Quit: Leaving]
mengu has joined #ocaml
mengu has quit [Read error: Connection reset by peer]
zv has quit [Quit: WeeChat 1.6]
<sgronblo>
Leonidas: Whats great about reagent_
FreeBirdLjj has quit [Remote host closed the connection]
<Leonidas>
sgronblo: it feels like a very nice way to implement SPAs, it automatically reloads on changes. The amount of boilerplate is low, every function can be used as React component which makes composing UIs using them quite nice.
whisperedcigar has quit [Ping timeout: 240 seconds]
whisperedcigar has joined #ocaml
mfp_ has joined #ocaml
snhmib has joined #ocaml
andreas__ has quit [Quit: Connection closed for inactivity]
snowcrshd has joined #ocaml
SpaceSheep has joined #ocaml
trapz has joined #ocaml
maattdd has quit [Ping timeout: 260 seconds]
trapz has quit [Client Quit]
mfp_ has quit [Remote host closed the connection]
silver has joined #ocaml
trapz has joined #ocaml
trapz has quit [Client Quit]
SpaceSheep has quit [Quit: WeeChat 1.0.1]
SpaceSheep has joined #ocaml
SpaceSheep has quit [Quit: WeeChat 1.0.1]
Muzer has quit [Ping timeout: 256 seconds]
jstolare1 is now known as jstolarek
trapz has joined #ocaml
dinosaure1 is now known as dinosaure
rpg_ has joined #ocaml
nomicflux has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 240 seconds]
whisperedcigar has quit [Ping timeout: 240 seconds]
Muzer has joined #ocaml
_andre has joined #ocaml
nomicflux has quit [Quit: nomicflux]
agarwal1975 has quit [Quit: agarwal1975]
yomimono has joined #ocaml
djellemah has quit [Remote host closed the connection]
spew has joined #ocaml
freusque has quit [Ping timeout: 256 seconds]
djellemah has joined #ocaml
freusque has joined #ocaml
mengu has joined #ocaml
agarwal1975 has joined #ocaml
jlongster has joined #ocaml
argent_smith has quit [Quit: Leaving.]
freusque has quit [Ping timeout: 240 seconds]
Muzer has quit [Ping timeout: 256 seconds]
laserpants has joined #ocaml
<trapz>
Anyone know why “open Lacaml.D;;” fails with “Error: Unbound Module Lacaml” inside the interpreter, but “ocamlfind ocamlc -o lasample -linkpkg -package lacaml lasample.ml” compiles just fine? I’m sure it’s a newbie error…
nopf has joined #ocaml
<kakadu>
try #require "lacaml";;
<kakadu>
and #use "topfind";; before that
freusque has joined #ocaml
<n4323>
if you are in utop, no need for #use "topfind";;
freusque has quit [Client Quit]
freusque has joined #ocaml
Muzer has joined #ocaml
jao has joined #ocaml
<trapz>
so, inside the ocaml interpreter, type in ‘#require “lacaml”;;’ ?
<n4323>
in the pure ocaml interpreter you need first topfind then require lacaml
<trapz>
ah...
<trapz>
got it
<trapz>
cool - thanks!
<trapz>
do most folks use utop?
mengu has quit [Remote host closed the connection]
<trapz>
is that just loading everything instead of what you need?
<n4323>
no, only the findlib which provides #require
<n4323>
and it has nice autocompletion suggestiosn
<trapz>
so how does utop find lacaml (or whatever package I’m trying to use)?
<gasche>
sgronblo, Leonidas: Clojure is dynamically typed and I fell that this makes it inconvenient for software develpoment -- it is surely a reason not to pick it as one's language of choice
<gasche>
on the other hand, the sentence "dynamic crap" cannot possibly apply to this language
<gasche>
it is one of the most innovative languages and communities we have around these days, and they have produced and will keep producing beautiful ideas that we all benefit from
MercurialAlchemi has quit [Ping timeout: 240 seconds]
Muzer has joined #ocaml
<Leonidas>
gasche: I do agree
<gasche>
Clojure is a friend of language-aware programmers, just as Haskell, Factor, Oz/Mozart, Erlang, etc. (although these last three may have stopped growing as languages)
<Leonidas>
Still, the implementation leaves a lot to be desired in many places and the issues are not getting addressed :(
<Leonidas>
Lately I have seen much more development focus in Racket to be honest, they seem to be experimenting a lot on making the language better
<companion_cube>
there's clojure.spec which looks intriguing
<gasche>
I think Racket and Clojure are fairly different as languages
<gasche>
and I wouldn't think of using them for the same use-cases
<gasche>
what they have in common is probably something like "a good modern Lisp-family language"
<Leonidas>
companion_cube: I still haven't understood why people go so crazy about clojure.spec
<companion_cube>
because they don't want to accept that they actually need static types? :D
<Leonidas>
companion_cube: no, I mean clojure.spec specifically. There was prismatic (now plumatic) schema, which we have used a lot and it works reasonably well.
<companion_cube>
ah sorry, didn't know there were decent predecessors
<Leonidas>
to me, as someone with experience in statically typed languages it feels rather weird and at the same time also not Clojure-ish.
<Leonidas>
admittedly, that's not a popular opinion in the community
<Drup>
I always had a similarly ambivalent opinion about typed racket: On one hand, it's typed and it's cool, and they can do fancy static analysis on contracts. On the other hand, it's not such a great type system compared to something designed to be statically typed
snowcrshd has quit [Ping timeout: 260 seconds]
<gasche>
I think the matter is a bit more complex than that; for example, Typed Racket is more powerful than a core ML language (occurrence typing provides flow-sensitivity), and the reason why this is required comes from what code is idiomatic in the community
sepp2k has joined #ocaml
<Drup>
Sure, I agree, just like Flow has a sort of dependent-y pattern matching and if statements
<gasche>
you can't really judge a type system in isolation from the term language and the use-case it is designed for -- and that makes it delicate to compare, say, Typed Racket with ML
<gasche>
but of course, if you expect to write typed code (and I personally believe this is the right choice), I would recommend ML over Typed Racket
<gasche>
(and I still don't understand why the Racket community does not use algebraic datatypes, it's just better than foo? predicates)
<gasche>
s/write typed code/write all your code with types/
<gasche>
but a good thing with programming language and communities is that good ideas can emerge from anywhere -- including languages that I wouldn't see being my first choice for anything
<tobiasBora>
Hello,
<tobiasBora>
I'd like to know, is there any progress on the Ocaml multithreading?
<tobiasBora>
(in a multicore task point of view)
<gasche>
yes, there is progress
<gasche>
(I hope that you will find joy in this answer)
<tobiasBora>
Great thank you!
* tobiasBora
is happy
<tobiasBora>
gasche: Do you know what time is it?
<tobiasBora>
No seriously, what is the current state of a multicore Ocaml ?
<Drup>
tobiasBora: when multicore will be merge, everyone will know
<Leonidas>
also, i expect the earth to shake and a voice talking out of the sky
<Drup>
there will be celebration in the streets, fireworks, and r/programming will be flooded
<Leonidas>
(in a french accent)
<Drup>
so, don't worry
<Drup>
you won't miss it
<tobiasBora>
Ahah
<tobiasBora>
And in term of... hum... progress, what is the current progress of ocaml-multicore? 3% 30% 70% 90% 99% ?
<gasche>
I have not worked on the multicore memory model
<gasche>
(I did a quick typo fix on the wiki) to my knowledge this is stedolan's work
<gasche>
also, I believe that we have already merged multicore-ocaml-related PRs in 4.05
<gasche>
and finally, it was a mistake by Damien to mention multicore-ocaml in 4.03, I don't think anybody expected that
<Drup>
tobiasBora: Ω%
whisperedcigar has joined #ocaml
<n4323>
talking about the future: will flambda become the default? or will we have +flambda+multicore, +flambda and +multicore ?
<gasche>
(the fact that multicore was not in 4.03 is not the sign of a problem on anyone's side)
<gasche>
n4323: it would have to become reliably clearly a better choice than the non-flambda backend
<gasche>
which requires more work on the part of the people working on flambda
<gasche>
(feel free to contribute if you are interested)
<gasche>
right now the optimization capabilities are better, but still more limited than people might expect in various way, and the compile time increase is important, so it's not always clearly worth it
<n4323>
i see.
<gasche>
(of course, there is active work on flambda ongoing, and things have been slowly improving)
<companion_cube>
can't wait for opam2, so I can easily compile some projects with flambda and some without
<gasche>
well
<tobiasBora>
gasche: What kind of multicore PR did you merged? Something kind of usable, or thing to prepare a migration?
<gasche>
another way to get that capability would be to implement linking of compiled objects using the two backends
<gasche>
things to prepare a migration
whisperedcigar has quit [Ping timeout: 240 seconds]
<gasche>
some have also been submitted and are in discussion/review/etc.; there are some delicate issues around the evolution of the C-FFI API in particular
ryanartecona has joined #ocaml
snowcrshd has joined #ocaml
<gasche>
tobiasBora: if you are willing to invest effort in multicore-ocaml, to my knowledge the people working on it have proposed only one clear way in which other people can contribute (besides "coming to Cambridge to hack with us", of course), which is explained in their reagents blog post : http://kcsrk.info/ocaml/multicore/2016/06/11/lock-free/
<tobiasBora>
Ahah it looks like Haskell..
<tobiasBora>
(but documented)
<gasche>
namely, they are asking for people to write lock-free datastructures on top of reagents or help optimize existing ones
<companion_cube>
but reagent doesn't seem to be on opam :/
<companion_cube>
I assume it could work with normal threads?
<tobiasBora>
gasche: Ok, I may give it a look
<tobiasBora>
And just a question: if I use the fork function in the system library...
<tobiasBora>
What will happened?
octachron has joined #ocaml
<tobiasBora>
It will be like if two programs of Ocaml will be running at the same time without sharing any memory?
jnavila has joined #ocaml
<technomancy>
a while back when I was using OCaml I found that using Jane Street Core meant that the minimum executable size ballooned up to ~10MB or so, and folks told me that soon it would be possible to slim that down by shedding the parts of Core you don't use. is that possible nowadays?
MercurialAlchemi has joined #ocaml
<companion_cube>
you can use `Base` for this, I believe (although it's not stable yet)
<companion_cube>
or another stdlib
<technomancy>
drat
<technomancy>
oh well, thanks
<tobiasBora>
companion_cube: Is it possible in battery ? I remember having the same problem
<companion_cube>
hum, not sure
trapz has quit [Quit: trapz]
<companion_cube>
well "open Batteries" links almost all modules afaik
<gasche>
I think the short answer is that there hasn't been much work on globally eliminating dead code that has been put in wide use since you last looked
copy` has joined #ocaml
SpaceSheep has joined #ocaml
<tobiasBora>
companion_cube: ok thank you
<gasche>
Pierre Chambart had a prototype at some point, and if I remember correctly someone at Ocamlpro may be working on it
<gasche>
but that's not a standard tool of the community (yet)
<gasche>
if you care about executable size, the current work-around is to use code from people that have been careful in minimizing cross-module dependencies ( companion_cube's containers library may have this property )
<tobiasBora>
And by the way, I would like to know: what is the efficiency difference between full multicore & memory sharing, and forking & then using message passing by using sockets ?
<technomancy>
gasche: right now I care more about being able to just do what's in the book without getting clever than I do about executable size; I was just curious =)
<gasche>
it depends on the communication needs of your application
<tobiasBora>
gasche: what do you mean?
<gasche>
tobiasBora: if you need to share a lot of writeable memory (eg. you are parallelizing a large matrix multiplication), the difference is huge
<tobiasBora>
oh yes sure
<gasche>
if you don't need to communicate a lot (embarrassingly parallel problems), fork is about fine
<def`>
(well, large matrix multiplication can works quite well with shm)
<tobiasBora>
gasche: Ok thank you
<gasche>
def`: good point, I guess there is not much concurrency there
<def`>
(it's complex & shared datastructures which will hugely benefit from multicore)
SpaceSheep has quit [Client Quit]
<companion_cube>
or very, very cheap parallelism
<companion_cube>
like this fork primitive in rust's Rayon, that might decide to run both computations in sequential if it's cheaper
<mami>
could not find anything about it, did anyone else encounter it too?
espinoza has joined #ocaml
<espinoza>
hey! had a q for mac (and maybe linux?) people. I've got a program that uses the Graphics package, and I'd like to be able to run it from outside of the xterm that comes with XQuartz (mac's x11). is it possible to build in some way that would do that? thanks!!
<def`>
try export DISPLAY=/private/tmp/com.apple.launchd.exN95fJoCC/org.macosforge.xquartz:0 from iterm
<def`>
and run your ocaml program from there
whisperedcigar has joined #ocaml
<espinoza>
hm ok. was hoping to send a binary to a nontechnical person who probably wouldn't know how to set an environment variable, but can probably figure something out
<espinoza>
thanks!
whisperedcigar has quit [Ping timeout: 240 seconds]
<espinoza>
would something like Gtk be able to run with no X session?
marsam has quit [Remote host closed the connection]
whisperedcigar has joined #ocaml
espinoza has quit [Quit: Page closed]
marsam has joined #ocaml
freusque has quit [Quit: WeeChat 1.7]
jnavila has quit [Quit: It was time]
whisperedcigar has quit [Ping timeout: 240 seconds]
larhat has joined #ocaml
whisperedcigar has joined #ocaml
mengu has joined #ocaml
mengu has quit [Ping timeout: 246 seconds]
tobast1 has joined #ocaml
SpaceSheep has quit [Quit: WeeChat 1.0.1]
SpaceSheep has joined #ocaml
marsam has quit [Remote host closed the connection]
SpaceSheep has quit [Quit: WeeChat 1.0.1]
marsam has joined #ocaml
trapz has joined #ocaml
whisperedcigar has quit [Ping timeout: 240 seconds]
whisperedcigar has joined #ocaml
<mami>
ok, the problem was: i did not have bash installed. solution: use sh
kakadu has quit [Quit: Konversation terminated!]
<mami>
why do so many things depend on sexplib <= 113.33.03
<mami>
were there any breaking changes after that?
larhat has quit [Quit: Leaving.]
marsam has quit [Remote host closed the connection]