Banana changed the topic of #ocaml to: OCaml 3.08.1 available! | Archive of Caml Weekly News: http://sardes.inrialpes.fr/~aschmitt/cwn/ | A tutorial: http://merjis.com/richj/computers/ocaml/tutorial/ | A free book: http://cristal.inria.fr/~remy/cours/appsem/ | Mailing List: http://caml.inria.fr/bin/wilma/caml-list/ | Cookbook: http://pleac.sourceforge.net/
eugos has quit ["Leaving"]
mlh has joined #ocaml
kinners has joined #ocaml
GreyLensman has joined #ocaml
det has joined #ocaml
mattam_ has joined #ocaml
mattam has quit [Read error: 110 (Connection timed out)]
GreyLensman has quit ["I'm ready for some football."]
mrsolo has joined #ocaml
mrsolo has quit [Client Quit]
mfurr has joined #ocaml
CLxyz has quit [Remote closed the connection]
mrsolo has joined #ocaml
monochrom has quit ["Don't talk to those who talk to themselves."]
cjohnson has quit ["The main attraction: distraction"]
mfurr has quit ["Leaving"]
malte has quit [Read error: 110 (Connection timed out)]
mof has joined #ocaml
mof is now known as malte
kinners has quit ["leaving"]
clog has joined #ocaml
jave has joined #ocaml
<jave> hello
<jave> total lamer newbie question: Can i modify a running ocaml system like with a lisp system?
mattam_ is now known as mattam
<mattam> redefining functions won't work if that's what you're asking for
pango has quit ["Client exiting"]
pango has joined #ocaml
<jave> mattam: yes that was my question
<jave> ok, so its edit-compile-debug then
childe has joined #ocaml
<childe> Hello world.
<jave> world says hello
childe has left #ocaml []
Herrchen has joined #ocaml
srv_ has joined #ocaml
srv has quit [Read error: 104 (Connection reset by peer)]
mlh has quit [Client Quit]
haelix has joined #ocaml
m3ga has joined #ocaml
m3ga has quit [Client Quit]
<Walnutssh> jave, there's an interactive loop.
gpciceri has joined #ocaml
<jave> Walnutssh: thanks, im running it in emacs now
Walnutssh is now known as Nutssh
gpciceri has quit ["Ciao, sono un virus dei messaggi di quit. Sostituisci la tua vecchia linea di quit con questa cosi potro continuare a moltipl]
mayhem has joined #ocaml
mlh has joined #ocaml
malte has quit [niven.freenode.net irc.freenode.net]
mof has joined #ocaml
<karryall> xb
<karryall> oops
mlh has quit [Client Quit]
mof is now known as malte
jave has quit [Remote closed the connection]
cjohnson has joined #ocaml
malte has quit [Read error: 54 (Connection reset by peer)]
malte has joined #ocaml
menace has joined #ocaml
menace has left #ocaml []
mrsolo has quit [Read error: 110 (Connection timed out)]
mrsolo has joined #ocaml
mayhem has quit ["Fermeture du client"]
mrsolo has quit [Read error: 110 (Connection timed out)]
mrsolo has joined #ocaml
mrsolo_ has joined #ocaml
mrsolo has quit [Read error: 104 (Connection reset by peer)]
monochrom has joined #ocaml
pango has quit ["Leaving"]
CosmicRay has joined #ocaml
pango has joined #ocaml
malte has quit ["Lämnar"]
malte has joined #ocaml
m3ga has joined #ocaml
m3ga has left #ocaml []
monochrom has quit ["Don't talk to those who talk to themselves."]
Herrchen has quit ["bye"]
Tristram has joined #ocaml
<Tristram> hello
gpciceri has joined #ocaml
Zaius has joined #ocaml
vezenchio has quit ["Look at you, hacker - a pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you]
skylan has quit [Client Quit]
gpciceri has quit ["Ciao, sono un virus dei messaggi di quit. Sostituisci la tua vecchia linea di quit con questa cosi potro continuare a moltipl]
clog has quit [Leaving]
clog has joined #ocaml
mrsolo_ has quit [Read error: 113 (No route to host)]
jason__ has joined #ocaml
<jason__> Is there a "sleep" function anywhere in the Ocaml standard libraries?
<jason__> Ah, I found it, sorry guys.
<jason__> Thanks anyways.
<jason__> Hm, is there any way to use the 'Thread' module from the ocaml toplevel?
Zaius has quit [Read error: 110 (Connection timed out)]
monochrom has joined #ocaml
<pango> $ ocaml -I +threads unix.cma threads.cma
<pango> # let rec loop () =
<pango> print_endline "ping";
<pango> Unix.sleep 5;
<pango> loop () ;;
<pango> val loop : unit -> 'a = <fun>
<pango> # Thread.create loop () ;;
<jason__> Ah.
<jason__> Thanks :)
<jason__> How did you know you could do +threads?
<pango> threads.cma is stored in /usr/lib/ocaml/#.##/threads/
<jason__> Okay.
<jason__> Cool.
mrsolo_ has joined #ocaml
<jason__> So, is the majority of the Ocaml standard library not thread safe in 3.08.1?
mrsolo_ has quit [Read error: 104 (Connection reset by peer)]
mrsolo_ has joined #ocaml
mrsolo_ has quit [Read error: 104 (Connection reset by peer)]
mrsolo_ has joined #ocaml
<karryall> pango: that's not correct, you have to use the -thread compiler switch
<karryall> I'm pretty sure this switch does more than a -I +threads
<pango> karryall: that's possible, I'm not a threads guru
<pango> karryall: yet it's not accepted by the toplevel, nor documented. I guess it's only required by compilers
<karryall> neither am I
<karryall> of course it's documented !
<pango> jason__: from what I understand, running ocaml code requires to acquire a "big lock"; So it should be safe, but not take advantage of SMP, for example
CosmicRay has quit ["Client exiting"]
<pango> isn't that strange (and ironic), since Xavier Leroy was also involved in Linux threads support ?
<pango> http://sardes.inrialpes.fr/~aschmitt/cwn/2004.04.13.html, "Threading: Using and Building"
<karryall> ar, that's the same one
<jason__> Do they plan to ever update the VM to be threadsafe?
<jason__> Without a global lock, I mean.
<karryall> I don't think so
<karryall> they used to have a concurrent GC in a previous version of caml
<karryall> but they simplified it to make ocaml GC
<jason__> Hm, that's too bad.
<jason__> I think Ocaml would be more applicable to buisiness logic/web server types of things if this weren't so.
<Nutssh> It would also be nice if we didn't pay the abstraction penalty for functors, and the cocmpiler did some sort of redundancy elimination pass. :)
<karryall> see Xavier's rationale for the decision http://caml.inria.fr/archives/200211/msg00274.html
<karryall> concurrent GC have a cost
<Nutssh> TTYL.
kinners has joined #ocaml
<jason__> I suppose. Do you really need to take a one or another aproach? Perhaps a compiler flag to say "Concurrent GC" or "Non-Concurrent GC"
<jason__> I'm not sure.
<karryall> jason__: yeah ! two vm to maintain !
<karryall> ;)
<kinners> you can have C code running concurrently (enter/leave_blocking_section() in the caml API I think)
<jason__> Hm.
<karryall> one reason the concurrent GC was dropped was that it was too complex IIRC
<jason__> So, the problem is the GC is too integrated with the underlying VM? Not a plug-in type of thing?
<karryall> not just the VM, the native code compiler directly calls the GC API
<jason__> Hm, yeah, I'm reading more. Sounds like a very large and difficult job.
<jason__> I'm surprised they had the first concurrent GC working.
<kinners> jason__: if you used a plugin GC you'd probably make everything slower anyway, which negates the point :)
<karryall> it had one minor heap per thread and a global major heap
<jason__> kinners: I'm not exactly sure if that's true :P
<jason__> You 'could' definitely make things slower.
<karryall> jason__: I can find the webpage with the paper if you're interested
<jason__> karryall: I am :)
<jason__> I think the majority of the efficiency of a GC is the semantics of the GC itself.
<jason__> By far.
<karryall> A concurrent, generational garbage collector for a multithreaded implementation of ML
<karryall> POPL93
<jason__> This is in English right? Eh? Hehe.
<jason__> Cool.
<karryall> yep (but he also has papers in french)
<jason__> I'm an idiot American, our xenophoabic society decided not to educate me on any foreign languages until I was too old :P
mrsolo_ has quit [Read error: 60 (Operation timed out)]
<kinners> jason__: for a plug-in GC system, you'd have to limit the types of GC used to what the layout and access of data could support
<karryall> yep, that would be quite restrictive I guess
malte has quit [Read error: 104 (Connection reset by peer)]
mrsolo_ has joined #ocaml
<jason__> It seems for a non-plug in one you restrict the types of GC used to one.
<jason__> Unless you make a completely new implementation.
mrsolo_ has quit [Connection reset by peer]
mrsolo_ has joined #ocaml
monochrom has quit ["Don't talk to those who talk to themselves."]
monochrom has joined #ocaml
mrsolo_ has quit [Read error: 113 (No route to host)]
mlh has joined #ocaml