adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org and http://caml.inria.fr | http://ocaml.org/releases/4.02.0.html | Public channel logs at http://irclog.whitequark.org/ocaml
msaegesser has joined #ocaml
malo has joined #ocaml
jabesed has quit [Remote host closed the connection]
zpe has joined #ocaml
badkins has quit [Remote host closed the connection]
zpe has quit [Ping timeout: 244 seconds]
malo has quit [Remote host closed the connection]
Simn has quit [Quit: Leaving]
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
lordkryss has quit [Quit: Connection closed for inactivity]
ontologiae_ has quit [Ping timeout: 246 seconds]
shinnya has joined #ocaml
malo has joined #ocaml
q66 has quit [Quit: Leaving]
manizzle has quit [Ping timeout: 245 seconds]
manizzle has joined #ocaml
taion809 has quit [Ping timeout: 240 seconds]
taion809 has joined #ocaml
zpe has joined #ocaml
zpe has quit [Ping timeout: 245 seconds]
troutwine_away is now known as troutwine
girrig has quit [Ping timeout: 245 seconds]
girrig has joined #ocaml
troutwine is now known as troutwine_away
shinnya has quit [Ping timeout: 240 seconds]
shinnya has joined #ocaml
englishm_away is now known as englishm
malo has quit [Ping timeout: 272 seconds]
zpe has joined #ocaml
zpe has quit [Ping timeout: 240 seconds]
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
malo has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
hugomg has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
troutwine_away is now known as troutwine
zpe has joined #ocaml
zpe has quit [Ping timeout: 272 seconds]
malo has quit [Remote host closed the connection]
BitPuffin has joined #ocaml
samrat has joined #ocaml
shinnya has quit [Ping timeout: 240 seconds]
bytbox has joined #ocaml
mcclurmc has joined #ocaml
zpe has joined #ocaml
zpe has quit [Ping timeout: 272 seconds]
rgrinberg has quit [Quit: Leaving.]
BitPuffin has quit [Ping timeout: 260 seconds]
siddhart1v_away is now known as siddharthv
ygrek has joined #ocaml
NoNNaN has joined #ocaml
samrat has quit [Quit: Computer has gone to sleep.]
taion809 has quit [Remote host closed the connection]
mcclurmc has quit [Remote host closed the connection]
oscar_toro has joined #ocaml
tac-tics has quit [Read error: Connection reset by peer]
englishm is now known as englishm_away
englishm_away is now known as englishm
zpe has joined #ocaml
axiles has joined #ocaml
englishm is now known as englishm_away
MercurialAlchemi has joined #ocaml
zpe has quit [Ping timeout: 245 seconds]
englishm_away is now known as englishm
jao has quit [Ping timeout: 272 seconds]
samrat has joined #ocaml
englishm is now known as englishm_away
keen__ has quit [Ping timeout: 246 seconds]
troutwine is now known as troutwine_away
ygrek has quit [Ping timeout: 260 seconds]
hugomg has quit [Quit: Page closed]
Valdo has quit [Ping timeout: 240 seconds]
zpe has joined #ocaml
oscar_toro has quit [Ping timeout: 245 seconds]
Valdo has joined #ocaml
zpe has quit [Ping timeout: 246 seconds]
Submarine has quit [Remote host closed the connection]
MercurialAlchemi has quit [Remote host closed the connection]
rand000 has joined #ocaml
pgomes has joined #ocaml
MercurialAlchemi has joined #ocaml
ygrek has joined #ocaml
Hannibal_Smith has joined #ocaml
Cyanure has joined #ocaml
pgomes has quit [Quit: Leaving]
cago has joined #ocaml
AltGr has joined #ocaml
zpe has joined #ocaml
zpe has quit [Ping timeout: 244 seconds]
avsm has joined #ocaml
samrat has quit [Quit: Computer has gone to sleep.]
jonludlam has quit [Quit: Coyote finally caught me]
Simn has joined #ocaml
samrat has joined #ocaml
ollehar has joined #ocaml
thomasga has joined #ocaml
bezirg has joined #ocaml
tane has joined #ocaml
zpe has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 245 seconds]
MercurialAlchemi has joined #ocaml
iorivur has joined #ocaml
octachron has joined #ocaml
zpe has quit [Ping timeout: 245 seconds]
tani has joined #ocaml
bezirg has quit [Ping timeout: 260 seconds]
tane has quit [Killed (wolfe.freenode.net (Nickname regained by services))]
tani is now known as tane
Kakadu has joined #ocaml
jonludlam has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 272 seconds]
ontologiae_ has joined #ocaml
MercurialAlchemi has joined #ocaml
Thooms has joined #ocaml
hhugo has joined #ocaml
AltGr has left #ocaml [#ocaml]
avsm has quit [Quit: Leaving.]
siddharthv is now known as siddharthv_away
<tobiasBora> Bonjour !
<companion_cube> o
<companion_cube> o/
iorivur has quit [Ping timeout: 240 seconds]
<tobiasBora> Je voulais savoir, est-ce qu'il existe des optimisations quand on fait des calculs facilement parallélisables sur des tableaux ? (addition de deux tableaux...)
<companion_cube> ici c'est anglophone, viens sur #ocaml-fr si tu veux parler français :)
<tobiasBora> sorry
ontologiae_ has quit [Ping timeout: 246 seconds]
siddharthv_away is now known as siddharthv
<tobiasBora> I would like to know, does some optimisations exists when one do computations that are easy to parallelise ? (for example a sum on two arrays ?)
<companion_cube> I'm not sure it's possible in Ocaml
<companion_cube> unless you can fit it into parmap, functory or something similar
<companion_cube> (spawning multiple processes)
<dmbaturin> Now I know the french word for array. :)
<tobiasBora> usually it's possible to optimise it with only one processor ?
<tobiasBora> (I mean not in ocaml)
<companion_cube> if you're thinking about SIMD or similar things (i'm not very knowledgable on that), then the answer is: Ocaml can't
<tobiasBora> ok thank you. I may give a try to parmap. Thank you !
<companion_cube> there are several alternatives on opam :)
<dmbaturin> I'm having a problem with my context-free grammar based string generator. Since I used random selection for rules with alternation, rules for sequences (as in <foo> ::= <foo> <bar> | <bar>) hit the base case too often and terminate before they can produce anything fun.
<dmbaturin> Should I modify the BNF to include some "weight" specified, or add an option to prefer recursive cases?
<dmbaturin> * specifier
<companion_cube> dmbaturin: look at "fueled generators" in https://gasche.github.io/random-generator/doc/Generator.html
<companion_cube> you can specify a kind of "weight" for your subtrees (sub-expressions)
<dmbaturin> Interesting, let me see.
zpe has joined #ocaml
Hannibal_Smith has quit [Quit: Sto andando via]
<ebzzry> is it just me, or tuareg mode really indents that far with |>?
ggole has joined #ocaml
<mrvn> add a linebreak before |>
<def`> did ypubconsoder using ocp-indent over tuareg?
<def`> wow... did you consider*
mbac has quit [Ping timeout: 260 seconds]
<ebzzry> mrvn: how do i do it?
<ebzzry> def`: no, i haven't. where can i get it?
<ebzzry> def`: i'm trying it now.
<mrvn> ebzzry: what? add a linebreak?
<ebzzry> mrvn: yup.
<mrvn> you put your finger on the return key and press
octachron has quit [Ping timeout: 245 seconds]
mbac has joined #ocaml
<ebzzry> mrvn: uh O.o? in the String.split of RWO at http://goo.gl/fI0O1G, I can't seem to indent properly with the |> lines
ygrek has quit [Ping timeout: 260 seconds]
<mrvn> works fine here
eizodo has joined #ocaml
<dmbaturin> companion_cube: Is it possible to use the fueled generator module with a list of tuples/records of weight and "content"?
<dmbaturin> Or you need to know the options from which you choose beforehand?
<ebzzry> mrvn: i, however, get this when i indent the whole buffer: http://pastebin.com/4i8UZVCh
George__ has joined #ocaml
<mrvn> ebzzry: Line 5 is wrong, did you indent that?
<mrvn> ebzzry: and "...." is not a function, you can't apply stuff to it
<mrvn> Note: the |> are indented to the = in line 3.
thomasga has quit [Quit: Leaving.]
George__ has quit [Ping timeout: 246 seconds]
_andre has joined #ocaml
demonimin_ has quit [Ping timeout: 260 seconds]
vanila has quit [Quit: Leaving]
madroach_ has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
<companion_cube> dmbaturin: I think the point is that the amount of fuel is also chosen randomly
<companion_cube> but the most important operation is "split" (iirc) that divides your amount of fuel for when you have several subcases
<ebzzry> mrvn: emacs did
<ebzzry> mrvn: what do you mean by "...."?
<ebzzry> mrvn: does that mean i really need to put ;; at the end of the let line?
akhilo has joined #ocaml
siddharthv is now known as siddharthv_away
yacks has quit [Ping timeout: 245 seconds]
octachron has joined #ocaml
ontologiae_ has joined #ocaml
demonimin has joined #ocaml
msaegesser has quit [Ping timeout: 272 seconds]
<akhilo> Hello. Can someone help me with regexps? I figured out that Str module functionality is not enough for my purposes. So I try to use module Re from OPAM. For test purposes I use utop, so I run 'utop -require re' When I run "#list" in utop I see: re (version: 1.2.1) re.perl (version: 1.2.1) But I can't reference not not Re_perl not Re.Re_perl not Re.Perl from utop. Sorry for my english.
<companion_cube> you're right about Str, it's not a good idea to use it
Hannibal_Smith has joined #ocaml
<companion_cube> akhilo: you should also #require "re.perl"
<akhilo> Thank you
akhilo has quit [Ping timeout: 246 seconds]
bytbox has quit [Ping timeout: 260 seconds]
<MercurialAlchemi> companion_cube: what's the issue with Str apart from its regexp system not being very advanced?
<companion_cube> it's full of global state
lordkryss has joined #ocaml
troutwine_away is now known as troutwine
troutwine is now known as troutwine_away
samrat has quit [Quit: Computer has gone to sleep.]
MercurialAlchemi has quit [Ping timeout: 272 seconds]
MercurialAlchemi has joined #ocaml
yacks has joined #ocaml
<whitequark> companion_cube: "oh my god! it's full of spiders!" except for global state, am i right
bezirg has joined #ocaml
George__ has joined #ocaml
dsheets has joined #ocaml
<MercurialAlchemi> companion_cube: uh
<MercurialAlchemi> companion_cube: even regexps?
<flux> even Str.split uses global state, even if it looks that it doesn't
<MercurialAlchemi> god
<flux> if you add two threads and both call Str.split, random happiness occurs
<MercurialAlchemi> so is re.perl the goto solution?
madroach_ has left #ocaml [#ocaml]
<flux> I've personally used the ocaml pcre bindings, but Re sounds a very good choice, given it's written in OCaml
<MercurialAlchemi> I was cleaning the toml writer before sending it upstream it the other day, and I was using Str to escape things
englishm_away is now known as englishm
<MercurialAlchemi> sounds like a newbie mistake
madroach has joined #ocaml
<MercurialAlchemi> :D
<MercurialAlchemi> Would it be uncharitable to describe the stdlib as full of fail, or is this limited to Str?
<adrien> 1994
<flux> I think Str is the only real failure of the libraries that come with OCaml distribution
<flux> another thing I would have liked would be extensible formatting (not that important) and in particular in-memory streams
<flux> but other than that, it only misses stuff, and libraries such as Batteries and Core mostly cover the rest of the ground
ygrek has joined #ocaml
mort___ has joined #ocaml
<MercurialAlchemi> right
<MercurialAlchemi> so if your needs are modest, it is possible to ship a lib without dependencies, as long as you avoid Str?
<flux> I would say yes
<flux> given the number of libraries depending on batteries/extlib/core on opam
<flux> (my guess zero libraries depend on those, haven't checked)
rgrinberg has joined #ocaml
<ebzzry> mrvn: sorry about earlier. i know now why it is incorrect.
<MercurialAlchemi> flux: right
<MercurialAlchemi> well, thanks for the pointers
bytbox has joined #ocaml
<flux> mercurialalchemi, good luck :)
<MercurialAlchemi> I find that it often takes more time to understand the ecosystem of a new language rather than the language itself
<George__> I would like to write a function, which an int32 or int64 can be passed to as argument. Then based on the type, calls Int64.shift_right_logical or Int32.shift_right_logical
<flux> mercurialalchemi, that is exactly correct
<MercurialAlchemi> fortunately or unfortunately OCaml's is not that big
<George__> how I can write such a function?
<flux> george__, the basic answer is that you cannot.
<George__> thanks, I thought maybe it is possible
<flux> you can write a module that is parametrized by the integer type
<flux> well, a functor that is
<George__> can you explain it a bit more?
dwoos has quit [Ping timeout: 245 seconds]
<madroach> George__: Is Nativeint what you want?
bytbox has quit [Ping timeout: 260 seconds]
<MercurialAlchemi> (sounds like "you can write a module" is the unofficial OCaml motto :) )
<flux> well, let's say there is: module type Integral = sig type t val shift_right_logical : t -> int -> t end
<flux> and the modules Int32 and Int64 implement that
dwoos has joined #ocaml
<flux> then you can write: module Foo(I:Integral) = struct let foo x = I.shift_right_logical x 3 end
sheijk has joined #ocaml
<flux> you would instantiate a version of the module with: module Int32Algorithm = Foo(Int32)
<George__> That looks interesting
<flux> not sure if batteries already comes with such a module type..
cthuluh has quit [Ping timeout: 260 seconds]
thomasga has joined #ocaml
darkf has quit [Quit: Leaving]
englishm is now known as englishm_away
englishm_away is now known as englishm
rgrinberg has quit [Quit: Leaving.]
ontologiae_ has quit [Ping timeout: 246 seconds]
rgrinberg has joined #ocaml
ontologiae_ has joined #ocaml
msaegesser has joined #ocaml
<companion_cube> flux: Format is pretty flexible
oriba has joined #ocaml
<ebzzry> is there a way to make opam install binaries to ~/?
<sheijk> use opam switch to not use system
<flux> companion_cube, but that is then only intended for text. one cannot create his own in/out_channel
<ebzzry> sheijk: ok
ontologiae_ has quit [Ping timeout: 272 seconds]
Cyanure has quit [Remote host closed the connection]
<companion_cube> flux: there is Buffer.t and string
<companion_cube> look at Format, not Printf, in this case
samrat has joined #ocaml
<companion_cube> (although I agree the in_channel type is a bit annoying)
badkins has joined #ocaml
ontologiae_ has joined #ocaml
<ebzzry> sheijk: i did the switch, but opam still complains about it: http://pastebin.com/dzyn4gQc
mort___ has quit [Quit: Leaving.]
<ebzzry> it still wants to install stuff to /bin
oscar_toro has joined #ocaml
<sheijk> ebzzry: hm, looks like opam is using ~/.opam/4.02.0/... but biniou's makefile insists on using /bin to me. why doesn't it find /bin/sh etc.?
<sheijk> did you update your env after switching? (the eval `opam --...` opam switch tells you about). also does "which ocamlopt" report the right location inside ~/.opam/..?
waneck_ has joined #ocaml
<dmbaturin> http://popl-obt-2014.cs.brown.edu/papers/random.pdf I find this type of academic papers really weird. It's cool you wrote a nice piece of software, but what's the point of telling about it if there's no link to the source or at least binaries.
waneck has quit [Ping timeout: 246 seconds]
<ebzzry> which ocamlopt returns /home/rmm/.opam/4.02.0/bin/ocamlopt
<ebzzry> 'opam switch' does confirm that i'm using 4.02.0
badkins_ has joined #ocaml
<ebzzry> sheijk: yes, i did update my env
oscar_toro has left #ocaml [#ocaml]
badkins has quit [Ping timeout: 260 seconds]
oscar_toro has joined #ocaml
oscar_toro has left #ocaml [#ocaml]
oscar_toro has joined #ocaml
<ebzzry> sheijk: what made you say that it couldn't find /bin/sh?
avsm has joined #ocaml
ontologiae_ has quit [Ping timeout: 240 seconds]
parcs has quit [Read error: Connection reset by peer]
parcs has joined #ocaml
oriba has quit [Quit: oriba]
mcclurmc has joined #ocaml
IbnFirnas has joined #ocaml
<sheijk> ebzzry: says so in the ..stderr output. oh, it's actually not finding which, the error just gets reported by /bin/sh
mort___ has joined #ocaml
<ebzzry> sheijk: yup. but i do have which.
englishm is now known as englishm_away
<dsheets> https://forge.ocamlcore.org seems down
englishm_away is now known as englishm
koderok has joined #ocaml
slash^ has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
cago has left #ocaml [#ocaml]
Denommus has quit [Changing host]
Denommus has joined #ocaml
slash^1 has joined #ocaml
ontologiae_ has joined #ocaml
keen_ has joined #ocaml
slash^ has quit [Ping timeout: 272 seconds]
avsm has quit [Quit: Leaving.]
avsm has joined #ocaml
ollehar has quit [Ping timeout: 245 seconds]
koderok has quit [Ping timeout: 244 seconds]
ontologiae_ has quit [Ping timeout: 240 seconds]
morphles has joined #ocaml
rgrinberg has joined #ocaml
_obad_ has joined #ocaml
<_obad_> hi there. is ocamlcore.org down for everyone?
<ggole> Looks that way.
<_obad_> does anyone know how to create a toplevel from _oasis?
morphles has quit [Ping timeout: 245 seconds]
eizodo has quit [Ping timeout: 246 seconds]
sheijk has quit [Quit: .]
cthuluh has joined #ocaml
<Drup> MercurialAlchemi: there is another huge fail in the stdlib : Stream
<Drup> don't ever use it
<MercurialAlchemi> no?
<companion_cube> also, Num ;)
<Drup> Num is different
<companion_cube> it's better, but the interface is quite ugly
<Drup> Num is a good non-gmp implementation of big int
<Drup> but compared to gmp, is very slow
<companion_cube> this is not necessarily a problem
<companion_cube> my grief is about the interface and the obnoxiously long names
<companion_cube> (also, I don't want Num, I want integers and rationals separated)
<Drup> (and it has the same problem as the rest of the sdb lib, lack of updates)
<Drup> flux: there are libraries depending on batteries/extlib
<_obad_> stream is cool IMHO. I was sad when they removed the stream parsers from the standard parser
<Drup> _obad_: the syntax extension is nice
<Drup> the library is not
<_obad_> drup: I see what you mean. I rarely used the Stream module directly, besides what's necessary to write parses (e.g. Stream.of_string, Stream.eof etc.)
<companion_cube> _obad_: streams are a nice concept, but the standard implementation is a bit... weird
<Drup> it's badly documented, the implementation is monstrously complicated and it's slow.
<adrien> you're only saying that to promote your libraries!
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
Thooms has quit [Quit: WeeChat 0.4.3]
<Drup> flux: pgocaml depends on batteries, to take an example you probably used :p
badkins_ has quit [Read error: Connection reset by peer]
<companion_cube> adrien: what's wrong with it? ^^
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
avsm has quit [Quit: Leaving.]
<adrien> ;-)
bytbox has joined #ocaml
zpe has quit [Ping timeout: 272 seconds]
englishm is now known as englishm_away
englishm_away is now known as englishm
bezirg has quit [Ping timeout: 245 seconds]
Anarchos has joined #ocaml
octachron has quit [Quit: Leaving]
ollehar has joined #ocaml
morphles has joined #ocaml
braibant has joined #ocaml
<braibant> Hi. I just tried to compile the latest Lwt on Windows, unsuccesfully. Has anyone success stories about that to share?
dsheets has quit [Ping timeout: 260 seconds]
<_obad_> braibant: last I checked (a few months ago) there were some issues with the C compiled being used as a linker
<_obad_> but I think they have been fixed. I remember successfully building a lwt + lablgtk app under windows.
<_obad_> but it was just to check that it's possible.
<_obad_> s/C compiled/C compiler/
samrat has quit [Quit: Computer has gone to sleep.]
<braibant> _obad_ I think Unison is using Lwt on windows so that seems plausible.
<flux> drup, probably it wasn't when I last used it :)
<Drup> it was using extlib before
Kakadu_ has joined #ocaml
badkins has joined #ocaml
jonludlam has quit [Ping timeout: 260 seconds]
Anarchos has quit [Ping timeout: 246 seconds]
ollehar has quit [Ping timeout: 272 seconds]
ygrek has quit [Ping timeout: 260 seconds]
q66 has joined #ocaml
fold has joined #ocaml
yomimono has joined #ocaml
Hannibal_Smith has quit [Quit: Sto andando via]
zpe has joined #ocaml
Kakadu_ has quit [Quit: Page closed]
Kakadu has quit [Quit: Page closed]
jonludlam has joined #ocaml
tane has quit [Quit: Verlassend]
samrat has joined #ocaml
malo has joined #ocaml
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
zpe has quit [Ping timeout: 260 seconds]
ontologiae_ has joined #ocaml
ontologiae_ has quit [Ping timeout: 246 seconds]
chris2 has quit [Ping timeout: 260 seconds]
rand000 has quit [Ping timeout: 260 seconds]
Anarchos has joined #ocaml
fold has quit [Ping timeout: 260 seconds]
manizzle has quit [Ping timeout: 240 seconds]
ollehar has joined #ocaml
George__ has quit [Ping timeout: 246 seconds]
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
Anarchos has joined #ocaml
mort___ has quit [Ping timeout: 245 seconds]
mort___ has joined #ocaml
chris2 has joined #ocaml
seangrove has quit [Ping timeout: 245 seconds]
Thooms has joined #ocaml
avsm has joined #ocaml
ollehar has quit [Quit: ollehar]
manizzle has joined #ocaml
Kakadu has joined #ocaml
ontologiae_ has joined #ocaml
zpe has joined #ocaml
zpe has quit [Ping timeout: 240 seconds]
claudiuc has joined #ocaml
claudiuc has quit [Remote host closed the connection]
claudiuc has joined #ocaml
WraithM has quit [Ping timeout: 245 seconds]
hhugo has quit [Quit: Leaving.]
slash^1 has quit [Read error: Connection reset by peer]
mort___ has quit [Quit: Leaving.]
rgrinberg has quit [Quit: Leaving.]
avsm has quit [Quit: Leaving.]
maurer has joined #ocaml
hhugo has joined #ocaml
rgrinberg has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
morphles has quit [Ping timeout: 272 seconds]
alex-abreu has quit [Remote host closed the connection]
pyon has joined #ocaml
mcclurmc has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 245 seconds]
eizodo has joined #ocaml
Thooms has quit [Ping timeout: 260 seconds]
mort___ has joined #ocaml
emmanueloga_ is now known as emmanueloga
rand000 has joined #ocaml
Thooms has joined #ocaml
samrat has quit [Quit: Computer has gone to sleep.]
hhugo has quit [Quit: Leaving.]
hhugo has joined #ocaml
WraithM has joined #ocaml
_andre has quit [Quit: leaving]
badkins has quit [Read error: Connection reset by peer]
isomorphismes has quit [Ping timeout: 260 seconds]
isomorphismes has joined #ocaml
axiles has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
Submarine has quit [Quit: Leaving]
claudiuc has quit [Remote host closed the connection]
fold has joined #ocaml
oscar_toro has quit [Ping timeout: 246 seconds]
seangrove has joined #ocaml
badkins has joined #ocaml
fold has quit [Ping timeout: 260 seconds]
erikwr has joined #ocaml
shinnya has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
claudiuc has joined #ocaml
yacks has quit [Ping timeout: 272 seconds]
mcclurmc has joined #ocaml
ggole has quit []
mort___ has quit [Remote host closed the connection]
mort___ has joined #ocaml
lordkryss has quit [Quit: Connection closed for inactivity]
eizodo has quit [Ping timeout: 246 seconds]
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 258 seconds]
avsm has joined #ocaml
englishm is now known as englishm_away
englishm_away is now known as englishm
jao has quit [Ping timeout: 258 seconds]
rgrinberg has joined #ocaml
Kakadu has quit [Remote host closed the connection]
englishm is now known as englishm_away
philtom has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
CaptainRant has joined #ocaml
rand000 has quit [Quit: leaving]
rgrinberg has quit [Client Quit]
fraggle_ has quit [Ping timeout: 260 seconds]
rgrinberg has joined #ocaml
fraggle_ has joined #ocaml
rgrinberg has quit [Client Quit]
shinnya has quit [Ping timeout: 250 seconds]
Thooms has quit [Quit: WeeChat 0.4.3]
avsm has quit [Quit: Leaving.]
msaegesser has quit [Ping timeout: 272 seconds]
jonludlam has quit [Quit: Coyote finally caught me]
thomasga has quit [Quit: Leaving.]
<CaptainRant> How do i know if OCaml is the right for me ?
<Drup> You try it.
<CaptainRant> This is time costly. Ive tried out tons of languages the last weeks, and each had some major flaw.
<CaptainRant> Despite OCaml looking very promising, tons of people are arguing against, in favor of other functional languages.
<companion_cube> CaptainRant: you might be interested in the series of posts that start at http://roscidus.com/blog/blog/2013/06/09/choosing-a-python-replacement-for-0install/
<companion_cube> someone who re-wrote his python software into ocaml, and blogs about his experience
<mrvn> CaptainRant: an idiot can always find a second
<CaptainRant> Maybe i should screw the academic purity fanboys and just jump into ocaml :D
<companion_cube> many users of OCaml are academics ;)
<Drup> " tons of people are arguing against" <- can you develop ? :p
<companion_cube> translation: "many haskell fanboys criticize impure, strict languages"
<Drup> I've heard people arguing for something else, but the only one I heard *against* ocaml were mostly idiots.
<Drup> (mostly, of course. You can always find some bad aspect in every langages, ocaml is no exception)
<CaptainRant> I could sort languages out just by reading their descriptions
<companion_cube> Drup: so Jon Harrop is an idiot? ;)
<Drup> err, I'm gonna call a joker on Jon Harrop
<Drup> CaptainRant: that would be really terrible sorting
<CaptainRant> /sort/sort out/
* CaptainRant damn typos, i should sleep already.
mcclurmc has quit [Remote host closed the connection]
<Drup> that would still be quite terrible, I think
<Leonidas> companion_cube: well, truth be told, sometimes I am annoyed by something that just works in Haskell
<Leonidas> latest example was using type constructors with @@ ;)
<companion_cube> ah, yes, ocaml has some warts
<Drup> Leonidas: me too. And the reverse when I'm doing some Haskell
<Drup> (Haskell's module system, oh god, I can't bear it)
<Leonidas> Drup: yeah, sometimes :-)
<companion_cube> the fact that type constructors aren't functions, aren't curried, and the postfix notation for types
<Leonidas> Haskell has a module system? ;)
<Drup> they try
<CaptainRant> Has ocaml a module system ? This was another hotspot people ranting about
<pippijn> at least they have . in their module system
<pippijn> ocaml doesn't really have that
<pippijn> packs don't count
<Drup> they have . ?
<companion_cube> CaptainRant: it does have a good module system
<Drup> what do you mean ?
<Leonidas> Cohttp_lwt_unix.foobar ;)
<pippijn> Drup: module namespaces
<companion_cube> pippijn: in ocaml too, just nest modules
<pippijn> companion_cube: packs
<Leonidas> but 4.02 has module aliases now
<companion_cube> pippijn: never mind packs
<Drup> pippijn: that's not packing and yes, that's solved in 4.02
<pippijn> companion_cube: I can make a Control.Monad module, and you can make a Control.Parallel module
mcclurmc has joined #ocaml
<Drup> pippijn: yeah, that's fabulously broken in lot's of respect
<pippijn> does ocaml 4.02 allow that?
<Drup> aspects*
<Drup> first one being signatures
<companion_cube> I'm not sure it's a good idea either
<companion_cube> if I could change one single thing in ocaml module system, I'd remove "open" :]
<pippijn> namespaces are generally a good idea, in my opinion
<Drup> pippijn: what's the issue with module as namespaces ?
<pippijn> apart from the implementation detail that is "pull one submodule, get all of them"
<Drup> that's solved in 4.02, as I said
<pippijn> not much, except that no two authors can have the same module name
<pippijn> Drup: ok, that's nice
<pippijn> I don't know 4.02 yet
<Drup> that's a bad idea :p
<pippijn> ok, maybe it's just aesthetics
<Drup> ^^
<pippijn> having a . in the middle of a name instead of just camel case
<pippijn> ControlMonad vs. Control.Monad
<pippijn> not much of a difference, except aesthetics
<pippijn> I don't like haskell's module system
<pippijn> but I do like the . :)
<companion_cube> but then, in which library do you find Foo.Bar?
<companion_cube> it gets more complicated
<pippijn> maybe.. there should be a separate repository for interfaces and implementations
<pippijn> anybody can claim an interface namespace (versioned)
<companion_cube> but modules can contain both
<pippijn> and then any number of people can write implementations
<pippijn> you can choose whichever you like
<companion_cube> what's the difference with using a module type and several implementations?
<pippijn> seems kind of nice, except that you may want to use a different implementation in different modules
<pippijn> companion_cube: I don't know what you mean
<pippijn> you mean functors?
<companion_cube> you could use a functor over the module type, yes
<companion_cube> or first-class modules?
<pippijn> not pretty
<Drup> why ?
<Drup> that's exactly what you are describing
<Drup> you're abstracting over an interface
<pippijn> with the thing I have in mind, you'd have to functorise your module over everything
<pippijn> Drup: yes
<pippijn> but more automatically, and statically
<Drup> mirage people do that, they have a nice dsl for it
<companion_cube> pippijn: you'd like something at link time?
<pippijn> at compile time you choose which implementation to use
<Drup> you mean, like a functor ? :p
<pippijn> or link time, whatever
<pippijn> Drup: essentially yes, but not at runtime
<companion_cube> well just link with the library that provides the good implementation?
<pippijn> yep :)
<companion_cube> so you can do it
<Drup> pippijn: why ? There are no runtime overhead for functors
<pippijn> I'm thinking about having a centralised interface repository
<pippijn> Drup: I want to see proof of that, but not now, because I'm going to sleep
<companion_cube> making compilation depend on a central remote repository is a deal breaker for me
<pippijn> if I can be bothered, I'll either prove myself or you wrong
<Drup> (well, it disable some optimization, but it's implementation detail due to the way the compiler works. your way would be the same)
<pippijn> companion_cube: has advantages and disadvantages
<Drup> pippijn: I actually mesured it ...
<Drup> let me find the logs
rgrinberg has joined #ocaml
<companion_cube> pippijn: I must be able to compile without the internet
<pippijn> companion_cube: internet is not necessary
<pippijn> internet would just be one source of information
<companion_cube> btw, how would you do your thing in haskell?
<pippijn> you can have your local subset of the repository in the form of installed packages
<companion_cube> that is the job of opam, not of the compiler
<pippijn> *shrug*
<pippijn> opam doesn't have to exist
<Drup> no runtime overhead.
Denommus has quit [Quit: ZNC - http://znc.in]
<Drup> it disables inlining, but as I said, implementation details of the compiler, and someone is working on it
<Drup> (and it would probably be the same with your way)
<CaptainRant> Merlin is nice :O
Denommus has joined #ocaml
<Drup> CaptainRant: oh yes :)
<companion_cube> pippijn: opam wouldn't exist if it was bolted into the compiler, that's what you mean?
<companion_cube> yes it is
<pippijn> there are pros and cons to having separate systems that all don't know about each other
<companion_cube> well, first, ocamlc is 20 years old, opam is 2 years old ;)
<pippijn> it's all hypothetical
<pippijn> and I can't write ocaml code anymore :(
<pippijn> at least not publicly, for now
<companion_cube> why?
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
mort___ has quit [Quit: Leaving.]
darkf has joined #ocaml
nickmeha1ry is now known as nickmeharry
<CaptainRant> >.> "[ERROR] "merlin" is not available for your compiler or your OS."
<Drup> which compiler and OS ?
<CaptainRant> ocaml 3.12.1, Gentoo x64
madroach has quit [Ping timeout: 250 seconds]
yomimono has quit [Ping timeout: 272 seconds]
<Drup> upgrade to a more recent version
<CaptainRant> Should i rebuild opam then ?
<Drup> no
<Drup> "opam switch 4.02.0"
madroach has joined #ocaml
Simn has quit [Quit: Leaving]
NoNNaN has quit [Remote host closed the connection]
NoNNaN has joined #ocaml
mcclurmc has quit [Remote host closed the connection]