gildor changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 3.12.1 http://bit.ly/nNVIVH
struktured has joined #ocaml
sebz has quit [Ping timeout: 260 seconds]
EmmanuelOga has joined #ocaml
theratking862 has quit [Quit: Leaving.]
ulfdoz has quit [Ping timeout: 260 seconds]
emmanuelux has quit [Remote host closed the connection]
ulfdoz has joined #ocaml
Cyanure has quit [Ping timeout: 255 seconds]
EmmanuelOga has quit [Quit: WeeChat 0.3.6-rc2]
zzz_ has quit [Remote host closed the connection]
everyonemines has joined #ocaml
sebz has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
sebz has joined #ocaml
arubin has quit [Quit: arubin]
sebz has quit [Quit: Computer has gone to sleep.]
sebz has joined #ocaml
zzz_ has joined #ocaml
sebz has quit [Client Quit]
dnolen has quit [Quit: dnolen]
alxbl has quit [Ping timeout: 245 seconds]
alxbl has joined #ocaml
sebz has joined #ocaml
alxbl has quit [Changing host]
alxbl has joined #ocaml
bobry has quit [Ping timeout: 260 seconds]
sebz has quit [Quit: Computer has gone to sleep.]
probst has joined #ocaml
Axioplase_ has joined #ocaml
bobry has joined #ocaml
probst has quit [Read error: Operation timed out]
everyonemines has quit [Quit: Leaving.]
sebz has joined #ocaml
sebz has quit [Client Quit]
sepp2k has quit [Remote host closed the connection]
sebz has joined #ocaml
zorun has quit [Read error: Connection reset by peer]
sebz has quit [Client Quit]
zorun has joined #ocaml
edwin has joined #ocaml
ygrek has joined #ocaml
hto has quit [Quit: Lost terminal]
hto has joined #ocaml
sebz has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
sebz has joined #ocaml
ttamttam has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
larhat has joined #ocaml
sebz has joined #ocaml
Cyanure has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
sebz has joined #ocaml
probst has joined #ocaml
ygrek has quit [Ping timeout: 248 seconds]
raichoo has joined #ocaml
probst has quit [Ping timeout: 260 seconds]
f[x] has joined #ocaml
ikaros has joined #ocaml
ikaros has quit [Quit: Ex-Chat]
kerneis has joined #ocaml
kerneis has left #ocaml []
Boscop has quit [Ping timeout: 244 seconds]
probst has joined #ocaml
ikaros has joined #ocaml
_andre has joined #ocaml
ankit9 has joined #ocaml
thomasga has joined #ocaml
sebz has quit [Remote host closed the connection]
sebz has joined #ocaml
yezariaely has joined #ocaml
ikaros has quit [Remote host closed the connection]
<yezariaely> what is the switch -dtypes needed for?
Associat0r has joined #ocaml
Associat0r has quit [Changing host]
Associat0r has joined #ocaml
<flux> yezariaely, it produces .annot-files that are nice in emacs (and vim with some tool). they allow you to retrieve the type of a value under cursor by pressing C-c C-t
<yezariaely> flux: hmm and what is the difference to -annot, then>
<yezariaely> ?
<flux> yezariaely, nothing
<yezariaely> ah ok, thank you!
<flux> -dtypes camer first, but as -d -switches were created for debugging etc, I guess that particular switch got promoted into a 'regular' switch for everyone to use
sebz has quit [Quit: Computer has gone to sleep.]
ttamttam has quit [Quit: Leaving.]
ttamttam has joined #ocaml
<yezariaely> flux: I expected something like that, however, as I could not find any docs in the official manpages and stuff, I was still confused. Maybe this could be written down somewhere (as deprecated)?
<flux> well, maybe it's a hint that it's not documented :)
<flux> I don't think any of the -d -switches are documented
<flux> beyond a single line perhaps
<yezariaely> my first guess for dtypes was dependant types …
<flux> wishful thinking rather :)
<yezariaely> hehe
<flux> actually ocamlc -help says -dtypes (deprecated) same as -annot
<yezariaely> oh?
<flux> (3.11.2)
<yezariaely> I was just looking in the man page :/
<flux> should be fixed then perhaps
<flux> file a bug :)
<flux> my manual page doesn't even mention dtypes
<flux> I guess that was your point
<flux> but the 'only' place to learn about -dtypes is the ocamlc -help output, right?-)
<flux> (..and old Makefiles..)
musically_ut has joined #ocaml
ikaros has joined #ocaml
avsm has joined #ocaml
avsm has quit [Client Quit]
avsm has joined #ocaml
ikaros has quit [*.net *.split]
_andre has quit [*.net *.split]
edwin has quit [*.net *.split]
agust1n has quit [*.net *.split]
Tianon has quit [*.net *.split]
dcolish has quit [*.net *.split]
rby has quit [*.net *.split]
shachaf has quit [*.net *.split]
diml has quit [*.net *.split]
bitbckt has quit [*.net *.split]
noj has quit [*.net *.split]
bitbckt has joined #ocaml
_andre has joined #ocaml
sgnb has quit [Read error: Connection reset by peer]
agust1n has joined #ocaml
rby has joined #ocaml
sgnb has joined #ocaml
shachaf has joined #ocaml
noj has joined #ocaml
ikaros has joined #ocaml
diml has joined #ocaml
edwin has joined #ocaml
<gildor> is it me or forge.ocamlcore.org is down ?
Tianon has joined #ocaml
Tianon has quit [Changing host]
Tianon has joined #ocaml
<bnwr> gildor: doesn't work here either
<bnwr> says it's down too
<gildor> I can ping it, but seems dead otherwise
<gildor> time for a reboot
<gildor> probably a disk crash, the RAID is resyncinf
<gildor> resyncing
<gildor> (and it makes sense to get high loads when a RAID disk crash)
maufred has joined #ocaml
ikaros has quit [Quit: Ex-Chat]
<yezariaely> flux: yes, that was my point, and I filed a bug
milosn has quit [Ping timeout: 276 seconds]
hto has quit [Quit: Lost terminal]
hto has joined #ocaml
fabjan has joined #ocaml
hto has quit [Client Quit]
hto has joined #ocaml
oriba has joined #ocaml
ikaros has joined #ocaml
milosn has joined #ocaml
bitbckt has quit [Ping timeout: 240 seconds]
bitbckt has joined #ocaml
emmanuelux has joined #ocaml
milosn has quit [Ping timeout: 258 seconds]
_andre has quit [Quit: leaving]
thelema has quit [Remote host closed the connection]
_andre has joined #ocaml
bitbckt has quit [*.net *.split]
oriba has quit [*.net *.split]
Tianon has quit [*.net *.split]
sgnb has quit [*.net *.split]
rossberg has quit [*.net *.split]
Tobu has quit [*.net *.split]
fraggle_ has quit [*.net *.split]
pheredhel has quit [*.net *.split]
jlouis has quit [*.net *.split]
tlockney has quit [*.net *.split]
_habnabit has quit [*.net *.split]
rixed has quit [*.net *.split]
deavid has quit [*.net *.split]
peddie has quit [*.net *.split]
bnwr has quit [*.net *.split]
malouin has quit [*.net *.split]
zmoazeni has quit [Read error: Operation timed out]
george_z0rwell has joined #ocaml
joewilliams has quit [Excess Flood]
joewilliams has joined #ocaml
tlockney has joined #ocaml
haelix has quit [Read error: Operation timed out]
Pepe_ has quit [Read error: Operation timed out]
shachaf has quit [Read error: Connection reset by peer]
Qrntzz has quit [Ping timeout: 240 seconds]
nimred has quit [Ping timeout: 255 seconds]
ankit9 has quit [Ping timeout: 248 seconds]
wtetzner has quit [Ping timeout: 240 seconds]
shachaf_ has joined #ocaml
Qrntzz_ has joined #ocaml
The_third_bug has quit [Ping timeout: 260 seconds]
Qrntzz_ has quit [Changing host]
Qrntzz_ has joined #ocaml
Reaganomicon has quit [Read error: Connection reset by peer]
nimred has joined #ocaml
struktured has quit [Ping timeout: 258 seconds]
rgrinberg has quit [Ping timeout: 260 seconds]
ankit9 has joined #ocaml
g0dmoney- has quit [Ping timeout: 260 seconds]
Reaganomicon has joined #ocaml
zmoazeni has joined #ocaml
explodus has quit [Ping timeout: 260 seconds]
haelix has joined #ocaml
Pepe_ has joined #ocaml
g0dmoney- has joined #ocaml
pheredhel has joined #ocaml
george_z0rwell has quit [Read error: Connection reset by peer]
thelema has joined #ocaml
malouin has joined #ocaml
explodus has joined #ocaml
The_third_man has joined #ocaml
wtetzner has joined #ocaml
bitbckt has joined #ocaml
oriba has joined #ocaml
Tianon has joined #ocaml
sgnb has joined #ocaml
rossberg has joined #ocaml
peddie has joined #ocaml
Tobu has joined #ocaml
fraggle_ has joined #ocaml
jlouis has joined #ocaml
_habnabit has joined #ocaml
rixed has joined #ocaml
deavid has joined #ocaml
bnwr has joined #ocaml
caligula_ has joined #ocaml
caligula__ has quit [Ping timeout: 258 seconds]
bitbckt has quit [Ping timeout: 254 seconds]
struktured has joined #ocaml
g0dmoney- has quit [Changing host]
g0dmoney- has joined #ocaml
flux has quit [Read error: Connection reset by peer]
bitbckt has joined #ocaml
bitbckt has quit [Changing host]
bitbckt has joined #ocaml
flx has joined #ocaml
flx is now known as flux
sgnb has quit [Remote host closed the connection]
sgnb has joined #ocaml
Associ8or has joined #ocaml
Associ8or has quit [Changing host]
Associ8or has joined #ocaml
rwmjones has quit [Ping timeout: 252 seconds]
Associat0r has quit [Ping timeout: 260 seconds]
milosn has joined #ocaml
ikaros has quit [Quit: Ex-Chat]
dnolen has joined #ocaml
dnolen has quit [Client Quit]
sebz has joined #ocaml
larhat has quit [Quit: Leaving.]
munga has joined #ocaml
<munga> how can I convince ocmalbuild to generated the .dot dependency file of my library via ocamldoc ? I see an extension:dot flag in the ocamlbuild -documentation output but I can't figure out how to use it ... help ?
<thelema> munga: ocmalbuild foo.dot?
<munga> thelema, atm I generate my doc with ocamlbuild project.docdir/index.html ... what is foo for you ?
<munga> I mean, I want a target to generate the .dot of all the modules in my odocl file ...
<thelema> what's the odocl file called?
<thelema> foo.odocl -> foo.dot, probably
sebz has quit [Quit: Computer has gone to sleep.]
<munga> my odocl file is project.odocl and has Foo Bar Baz as listed modules . if I want to generate the html documentation my ocamlbuild target is project.docdir/index.html
<munga> using project.dot does not work ...
<thelema> project.docdir/index.dot?
<munga> nope :)
<munga> I've tried few targets along this line... maybe I've to write a specific target to generate ALL dot files at once ... anybody has tried this ?
<munga> I've tried few targets along these lines... maybe I've to write a specific target to generate ALL dot files at once ... anybody has tried this ?
oriba has quit [Quit: oriba]
<f[x]> munga, if you have q.odocl with modules in it then ocamlbuild q.docdir/anything.dot will produce _build/q.docdir/anything.dot
sepp2k has joined #ocaml
<f[x]> with diagram for modules listed in the odocl
rwmjones has joined #ocaml
ftrvxmtrx has joined #ocaml
<munga> Ahhh thanks ! it works !
<munga> thelema, thanks as well ! your suggestion was indeed correct
ygrek has joined #ocaml
raichoo has quit [Quit: leaving]
Tianon has quit [Ping timeout: 240 seconds]
bzzbzz has joined #ocaml
Tianon has joined #ocaml
Tianon has quit [Changing host]
Tianon has joined #ocaml
tomprince has quit [Ping timeout: 240 seconds]
yezariaely has quit [Quit: Leaving.]
tomprince has joined #ocaml
ttamttam has quit [Ping timeout: 255 seconds]
metasyntax|work has joined #ocaml
bobry has quit [Ping timeout: 248 seconds]
struktured has quit [Quit: Konversation terminated!]
Boscop has joined #ocaml
struktured has joined #ocaml
bobry has joined #ocaml
ikaros has joined #ocaml
probst has quit [Quit: probst]
jonludlam_home has joined #ocaml
Cyanure has quit [Read error: Connection reset by peer]
_andre has quit [Quit: leaving]
ttamttam has joined #ocaml
ttamttam has quit [Client Quit]
ulfdoz has quit [Ping timeout: 260 seconds]
ulfdoz has joined #ocaml
shachaf_ is now known as shachaf
Cyanure has joined #ocaml
leoncamel has joined #ocaml
avsm has quit [Ping timeout: 276 seconds]
maufred has quit [Quit: leaving]
thomasga has quit [Quit: Leaving.]
Cyanure has quit [Ping timeout: 255 seconds]
dcolish has joined #ocaml
<adrien> pycaml.sf.net might be quite old
ttamttam has joined #ocaml
<tomprince> I suspect the other two are just different groups unaware of each other
ikaros has quit [Quit: Ex-Chat]
avsm has joined #ocaml
avsm has quit [Client Quit]
ikaros has joined #ocaml
munga has quit [Ping timeout: 255 seconds]
Cyanure has joined #ocaml
Qrntzz_ is now known as Qrntzz
Qrntzz has quit [Changing host]
Qrntzz has joined #ocaml
Qrntzz has quit [Changing host]
Qrntzz has joined #ocaml
sepp2k1 has joined #ocaml
sepp2k has quit [Ping timeout: 248 seconds]
avsm has joined #ocaml
avsm has quit [Remote host closed the connection]
avsm has joined #ocaml
yezariaely has joined #ocaml
dgbaley27 has joined #ocaml
redfire has joined #ocaml
dgbaley27 has left #ocaml []
ttamttam has quit [Quit: Leaving.]
ttamttam has joined #ocaml
Cyanure has quit [Read error: Connection reset by peer]
rgrinberg has joined #ocaml
albacker has joined #ocaml
<albacker> Hello, where can i see some Event. examples?
<adrien> iirc someone told me that lwt was using it
<albacker> i'd like some simple examples as well.
<albacker> one two threads communicating etc.
<albacker> :)
<adrien> simple, oh :P
<_habnabit> you lose 'simple' as soon as you involve more than one thread
<albacker> haha
<albacker> you're totally right.
<albacker> i'll just see the book
<flux> Event is great
<flux> but the only accessible documentation for it for the Concurrent ML
yezariaely has quit [Quit: Leaving.]
<flux> also Event isn't as great as CML because its threads aren't garbage collected
<flux> also Event doesn't support activation based on timeouts or file descriptor readability/writability/etc
<flux> so basically, it's a toy :(
<flux> whoa, this page is crazy helpful.. http://cml.cs.uchicago.edu/general.html
<albacker> werd
ftrvxmtrx has quit [Quit: Leaving]
<flux> albacker, maybe this can be helpful in getting the idea behind the Event module: http://www.cs.cmu.edu/~dgovinda/pdf/tut.pdf
<flux> what that oreilly book doesn't cover is how to structure programs with Event
<albacker> one of the writers is a prof in my university
<albacker> s/one/two/
<flux> the thing is that you can have loops like: let rec loop () = match Event.sync [Event.wrap (fun a -> `A a) (Event.receive a); Event.wrap (fun b -> `B b) (Event.receive b); Event.wrap (fun () -> `Stop) (Event.receive c)] with .. (* handle, recurse *)
Cyanure has joined #ocaml
<flux> and creating new events based on other events is something you may want to do
<flux> (albeit it's not that great given what the Event module has to offer)
<albacker> so why are events useful?
<albacker> comunication between threads?
<flux> that's their main, and only, purpose
<flux> actually Event is sort of annoying in that it's fully asynchronous
<flux> and that's another problem that doesn't seem to have a clean solution when you don't have garbage collected threads
<flux> but, if you like the style, you can use Lwt and my Lwtmsgqueue (or somesuch) which implements the ~same api for Lwt but in asynchronous manner. should publish it a little bit more than just having it as part of some git repository :)
ztfw has joined #ocaml
<albacker> flux, Condition
<albacker> can't that be a replacement for Event?
<albacker> or am i missing something
<flux> well, condition dosen't really pass any message
<flux> so you need to have perhaps a mutable variable where you hold the data
<flux> then you have a mutex protecting it
<albacker> yes
<flux> and then you have a condition signaling that there is more data
<albacker> mutex + condition ~= event?
<flux> well, nope
<flux> with that kind of approach, how would you first implement a queue? (simple)
<flux> then, how would you implement the operation of pulling the first arriving message from n queues?
<flux> what I showed there was that a loop is retrieving messages from three channels that all have different type
<flux> and one was actually a 'unit channel', which would simply indicate that if there is a message, the operation needs to stop
<albacker> i didn't understand your example
thomasga has joined #ocaml
<flux> how about http://www.modeemi.fi/~flux/software/mio/daemon/session.ml beginning from line 326?
<flux> here's for reference the basic part:
<flux> Lwt_msgqueue.select [Lwt_msgqueue.wrap (EventLb.line lb) (fun line -> `Line line);
<flux> Lwt_msgqueue.receive responses] >>= function | `Line None -> ..
<flux> so what it does it has a function to select the first available message from the following events
<flux> the first is the event that indicates that the line buffer event module has received a new line
thomasga has quit [Client Quit]
<flux> if it has, it converts it into `Line (line contents)
<flux> the second is that it simply receives other responses. in this case the type of responses is local, so it is something like [Line of string | Response of response]
<flux> then after it has received any message and it has mapped the message into something the rest of the code can handle in a uniform manner, it uses the Lwt's monadic binding operator >>= to decide what to do next
<albacker> the .select is like a match for events?
<flux> if it's a `Line None (oops, the type was actually `Line of (string option)), it exists
<flux> well, not quite
<flux> the match part is the 'function' keyword
<flux> so it passes the rest of the code as a continuation to Lwt_msgqueue.select, or at least that's one way to think of it
<albacker> val select : 'a event list -> 'a
<albacker> ``Synchronize'' on an alternative of events. select evl is shorthand for sync(choose evl).
<albacker> I still don't get the ''synchronize'' part
<albacker> i'll have to code something to really understand this.
<flux> well, it converts an Event into a value
<flux> so it needs to wait for something to be activateable
<flux> note that with Event's synchronized approach writes are Events as well
<flux> (or sends)
<flux> so the message is only actually sent when the event is synchronized
<flux> what is cool about the synchronous (this is the word I intended to use previously) is that you can have code like: Event.select [Event.receive incoming; Event.send outgoing "hello"]
<flux> so it only does -one- of those
<flux> if there's no messsage to be received and the outgoing buffer is not busy, a message will be sent
<flux> btw, in the asynchronous version there is the chance that messages queued up into places and that can become something that looks like a memory leak. simply having one thread produce messages that are never consumed.
<flux> in any case, I suggest playing around with it and building your own intuition on how it works. and then perhaps deciding if it's cool or not :)
<flux> but I'll be going off to sleep at this point. happy hacking :).
avsm has quit [Quit: Leaving.]
<albacker> thanks, i just fired up emacs :)
<albacker> > deciding if it's cool or not
<albacker> my professor already did
avsm has joined #ocaml
Cyanure has quit [Read error: Operation timed out]
fschwidom has joined #ocaml
ztfw has quit [Remote host closed the connection]
redfire has quit [Quit: leaving]
oriba has joined #ocaml
ttamttam has quit [Quit: Leaving.]
albacker has quit [Ping timeout: 248 seconds]
oriba has quit [Quit: oriba]
edwin has quit [Remote host closed the connection]
fschwidom has quit [Ping timeout: 276 seconds]
avsm has quit [Quit: Leaving.]
ulfdoz has quit [Ping timeout: 276 seconds]
ulfdoz has joined #ocaml
g0dmoney- has quit [Ping timeout: 255 seconds]
g0dmoney- has joined #ocaml
ikaros has quit [Quit: Ex-Chat]
ikaros has joined #ocaml
ygrek has quit [Ping timeout: 248 seconds]
dgbaley27 has joined #ocaml
<dgbaley27> I find myself doing "let _ = x in ..." a lot where x is really just (), for things like iterators. Is there a shortcut for this (probably looking a little more imperative)
Amorphous has quit [Ping timeout: 260 seconds]
ankit9 is now known as ankit9|zzz
g0dmoney- has quit [Read error: Operation timed out]
g0dmoney- has joined #ocaml
emmanuelux has quit [Quit: Ex-Chat]
g0dmoney- has quit [Changing host]
g0dmoney- has joined #ocaml
mjonsson has joined #ocaml
Amorphous has joined #ocaml
ulfdoz has quit [Ping timeout: 255 seconds]
ulfdoz has joined #ocaml
lopex has quit [Excess Flood]
lopex has joined #ocaml
jonludlam_home has quit [Remote host closed the connection]
ftrvxmtrx has joined #ocaml
Associ8or has quit [Quit: Associ8or]
mdelaney has joined #ocaml
dnolen has joined #ocaml
gnuvince has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
mdelaney has quit [Quit: mdelaney]
ikaros has quit [Quit: Ex-Chat]
destrius has joined #ocaml