flux changed the topic of #ocaml to: Yes, inria.fr is back up! | Discussions about the OCaml programming language | http://caml.inria.fr/ | 3.11.0beta1 available from http://caml.inria.fr/pub/distrib/ocaml-3.11/ | Or grab OCaml 3.10.2 from http://caml.inria.fr/ocaml/release.html
willb has joined #ocaml
dabd has quit [Client Quit]
code17 has quit ["Leaving."]
raistlinmaje7 has joined #ocaml
raistlinmaje7 has left #ocaml []
struktured_ is now known as struktured
bynari has quit [Remote closed the connection]
struktured has quit [Read error: 54 (Connection reset by peer)]
struktured_ has joined #ocaml
Camarade_Tux has quit ["Leaving"]
threeve has joined #ocaml
<sscj> how come it takes so long to build the docs for batteries?
jeddhaberstro has joined #ocaml
tomh has quit ["http://www.mibbit.com ajax IRC Client"]
Demitar has quit ["Ex-Chat"]
psnively has quit []
struktured_ has quit [Read error: 145 (Connection timed out)]
struktured_ has joined #ocaml
Demitar has joined #ocaml
Demitar has quit ["Ex-Chat"]
Amorphous has quit [Read error: 110 (Connection timed out)]
Amorphous has joined #ocaml
jeddhaberstro has quit []
netx has joined #ocaml
jeddhaberstro has joined #ocaml
pango has quit [Remote closed the connection]
pango has joined #ocaml
tvn1981_0 has joined #ocaml
tvn1981_0 has quit [Connection reset by peer]
tvn1981_0 has joined #ocaml
tvn1981_0 has quit [Read error: 131 (Connection reset by peer)]
tvn1981_0 has joined #ocaml
struktured_ has quit [Read error: 110 (Connection timed out)]
netx has quit [Read error: 60 (Operation timed out)]
netx has joined #ocaml
apples` has quit ["Leaving"]
<sscj> the auto_register function creates the wrong docpath
struktured_ has joined #ocaml
threeve has quit []
mishok13 has joined #ocaml
det has quit [Remote closed the connection]
Demitar has joined #ocaml
det has joined #ocaml
netx has quit ["This computer has gone to sleep"]
tvn1981_0 has quit ["Leaving"]
filp has joined #ocaml
gaja has joined #ocaml
jdev has quit [kornbluth.freenode.net irc.freenode.net]
jdev has joined #ocaml
Camarade_Tux has joined #ocaml
Camarade_Tux has quit ["Leaving"]
code17 has joined #ocaml
Yoric[DT] has joined #ocaml
<Yoric[DT]> hi
<gildor> Yoric[DT]: hi
<Yoric[DT]> How do you do?
<gildor> fine
<gildor> working like a madman
<gildor> (go to bed 4am, awake 8am)
* Yoric[DT] sympathizes.
* Yoric[DT] has a few deadlines these days, too.
filp has quit [kornbluth.freenode.net irc.freenode.net]
det has quit [kornbluth.freenode.net irc.freenode.net]
struktured_ has quit [kornbluth.freenode.net irc.freenode.net]
tab has quit [kornbluth.freenode.net irc.freenode.net]
tsuyoshi has quit [kornbluth.freenode.net irc.freenode.net]
filp has joined #ocaml
det has joined #ocaml
struktured_ has joined #ocaml
tsuyoshi has joined #ocaml
tab has joined #ocaml
* Yoric[DT] notes that Batteries has passed the mark of 800 total downloads.
_zack has joined #ocaml
snhmib has joined #ocaml
Snark has joined #ocaml
<gildor> using thread in ocaml is insane
<gildor> I have tried 2 times in the last week and the result was always the same: program is slower
<gildor> anyone know good scheme for using thread in OCaml, where you can "win" time
<tsuyoshi> what are you trying to do?
<gildor> (I was trying to use thread to use blocking IO and standard ocaml process)
<gildor> I read data on a channel, put it into a queue and empty the queue in another thread
<gildor> I use input_value for channel
<gildor> I use mutex + condition
<tsuyoshi> and you want to take advantage of multiple cpus?
<gildor> and I have tried to implement 2 queue: one lockfree and one with mutex
<gildor> no multiple CPU, I know it won't work, OCaml doesn't support it
<tsuyoshi> threads in ocaml are not concurrent
<gildor> I just want to take advantage to give time to IO when it is possible
<gildor> i.e. have IO run when data arrived
<gildor> and fill the queue in // with processing data
<gildor> the lockfree queue was made to reduce synchronization need
<tsuyoshi> well, input_value directly from a channel is going to be a bit slower
<gildor> (i.e. when the lockfree queue is empty, you acquire mutex and transfer data from the locked queue)
<gildor> tsuyoshi: how can I make thing quicker with input_value ?
<tsuyoshi> it's probably better if you read in the values and only perform the unmarshalling when you have an entire value read in
<tsuyoshi> see the Marshal module
<gildor> this implies to output string size (output_binary_int) + string (marshalled value)
<gildor> and then unmarshalled it
<tsuyoshi> no, the size is already in the marshalled value
<tsuyoshi> so you don't need an additional size
<tsuyoshi> see the documentation for Marshal.header_size
<gildor> hume external from_channel: in_channel -> 'a = "caml_input_value"
<gildor> external input_value : in_channel -> 'a = "caml_input_value"
<gildor> seems that input_value and Marshal.from_channel means the same thing
<gildor> tsuyoshi: am I missing some step in what you propose to me
<gildor> (lines are from ocaml 3.10.2 source)
<tsuyoshi> well.. if you call input_value, but only a partial value is available to read, I think it blocks everything until there is an entire value
<tsuyoshi> I could be wrong
<gildor> if it blocks, it enter blocking_section and release OCaml global mutex
<gildor> and the program can continue in other thread
<tsuyoshi> oh I was mistaken
<tsuyoshi> I just looked at the source and it does the buffering for you..
<tsuyoshi> are you reading from a pipe or a socket or what?
<gildor> stdin/stdout of a child
marmotine has joined #ocaml
<tsuyoshi> so a pipe.. how big are the values?
<gildor> 350kB per data
<gildor> 250MB total
<tsuyoshi> ohh very big
<gildor> this is serious application ;-)
<gildor> ok, i checked the "big part" of the data send over a channel is either read in the caml channel buffer or enter caml_do_read which has a caml_enter_blocking_section
<tsuyoshi> ok, ocaml only read 4096 bytes at a time normally
<tsuyoshi> that is likely going to be your bottleneck
Associat0r has joined #ocaml
<tsuyoshi> since if your values are 350k, you need to read the whole 350k before a value can be unmarshalled
<gildor> humm
<gildor> indeed
<gildor> so i need to enter to Thread.yield 88 times or enter other blocking section 88 times
<gildor> for a single block read
<gildor> that explains why my application goes faster when there is a lot of debugging output
<gildor> (which is something very surprising)
<gildor> what to do next ?
<tsuyoshi> if you create a 350k buffer and then use Unix.read (doing your own buffering) there should be an improvement
<gildor> indeed this is a good idea
<gildor> this will require a lot less Thread.yield
<gildor> I will try to apply it, thanks tsuyoshi
filp has quit [Read error: 60 (Operation timed out)]
hkBst has joined #ocaml
jknick has quit ["Lost terminal"]
filp has joined #ocaml
urlwolf has joined #ocaml
bzzbzz has joined #ocaml
* Yoric[DT] 's boss is impressive.
<Yoric[DT]> We're attempting to work with another research team.
<Yoric[DT]> My boss is now trying to cancel the scientific meeting and replace it with a political meeting.
<Yoric[DT]> Let me rephrase: my boss is trying to cancel *my* scientific meeting and replace it with a political meeting *without me*.
<Yoric[DT]> I need a new job.
<mattam> :)
marmotine has quit [Read error: 60 (Operation timed out)]
velco has joined #ocaml
jdev has quit [Read error: 110 (Connection timed out)]
mbac has quit [Read error: 110 (Connection timed out)]
<Yoric[DT]> _zack: ping
<_zack> Yoric[DT]: EBUSY
<Yoric[DT]> ok
<Yoric[DT]> Unrelated stuff.
<Yoric[DT]> A long time ago, I used to have an Emacs set up so that 'a was displayed as greek character alpha, 'b as beta, etc., in addition to -> as a nice arrow, etc.
<Yoric[DT]> Does anyone know how I can make this happen again?
<Yoric[DT]> I'm using emacs 22
<det> Yoric[DT], Have you tried Eclipse + OcaIDE ?
<Yoric[DT]> That was too slow for me.
<Yoric[DT]> emacs is fine for the moment
<Yoric[DT]> I just want my pretty display back :)
Spiwack has joined #ocaml
<_zack> Yoric[DT]: wasn't that just proofgeneral?
<Yoric[DT]> _zack: what do you mean?
<_zack> btw, I'm here now, even though I'm not paying much attention to this channel, go ahead if you've question
<Yoric[DT]> No, just saying that I might drop by around pps next week.
<Yoric[DT]> Not quite sure which day, though.
<_zack> you know "proofgeneral", was an emacs-based (now eclipse-based I believe) general front-end for various proof checkers
<_zack> it used to perform the translation you mention
<Spiwack> well the emacs-based is (fortunately) still maintained
<_zack> for PPS cool, I wont be there mon/tue though
<_zack> I'm going back to italy, and I come back to Paris only wed
<_zack> Yoric[DT]: from wed to fri I'll in my office as usual
<Yoric[DT]> Well, I have proofgeneral installed.
<Yoric[DT]> ( Smerdyakov's fault :))
<Yoric[DT]> But there doesn't seem to be any translation in my OCaml files.
<_zack> I was just suggesting that you might remember something which was not ocaml-related
<_zack> but if you are sure it was ocaml related never mind
<Yoric[DT]> I'm sure it was OCaml-related.
<Yoric[DT]> I haven't used Proofgeneral often enough to make that mistake.
<_zack> let me know when you come to PPS, hoping it will be compatible with my absence
<_zack> if I can, are you coming to work with whom?
<mattam> x-symbol is enough I think.
<Yoric[DT]> _zack: well, I'd be coming to talk to Roberto.
<Yoric[DT]> I also need to talk to Michele at some point (he's in PPS, isn't he?)
<_zack> Yoric[DT]: ah, well, he knows very well where my office is then :)
<Yoric[DT]> :)
<_zack> Yoric[DT]: Michele who?
<Yoric[DT]> Pugliese
<Spiwack> he's got a postdoc position in Italy, doesn't he?
<_zack> yup, I think so, but I don't know him
<Spiwack> maybe he's left already...
* _zack will mob Roberto to invite David on wed or later
<Yoric[DT]> I'm not invited yet :)
* Yoric[DT] was planning to drop by uninvited :)
* _zack will mob Roberto to non-invite David on wed or later
<Yoric[DT]> Oh, and I'm mixing my researchers, I actually needed to talk to Giuseppe Castagna :)
* Yoric[DT] should get out more often.
<_zack> also, dropping by chez Roberto uninvited as a quite high likelihood of not finding him ;)
<Yoric[DT]> :)
<_zack> so, it will be your italian tour: Roberto, Beppe, Daniele (which shares Beppe office), myself :-P
<Spiwack> you've got something for Italian David, that's for sure
<Yoric[DT]> :)
<Yoric[DT]> Well, anyway, for the moment, I need to finish my paper.
<_zack> enjoy !
<Yoric[DT]> Thanks
code171 has joined #ocaml
threeve has joined #ocaml
code17 has quit [Remote closed the connection]
marmotine has joined #ocaml
mbac has joined #ocaml
<mbac> ocaml makes me feel guilty
<mbac> it's like a disapproving mother
<mbac> it fulfills my idealistic functional programming fantasies most of the time but every so often in the rush to get something done i'll switch to imperative style
<Yoric[DT]> :)
<mbac> and ocaml passive-aggressively complies
<mbac> reflecting my shame back at me
<Kerris4> haha I read complies as compiles
<Spiwack> mixing effects and functional programming is largely underunderstood
<Spiwack> there are two bad solutions to the problem
<Spiwack> one is OCaml
<Spiwack> the other is Haskell
<Spiwack> as they are bad solution, they are an extremely good subject for flamewar
<Spiwack> and shame
<Spiwack> (my personnal point of view on this whole question)
<Yoric[DT]> Okay, and now my boss is hijacking the students who are supposed to work on my project.
<Spiwack> your boss loves you
<Yoric[DT]> And he's sending them to work on something which just cannot possibly succeed.
<Spiwack> he just doesn't know how to show his affection
<Kerris4> proving that P = NP ? :V
<Spiwack> oh that's easy !
<Spiwack> there are more than 30 proofs out there
<Yoric[DT]> hint: the task he has for them requires good skills of OCaml hackery
<Spiwack> (of either that or the negation or it's independence from set theory)
<Yoric[DT]> hint 2: the task he has for them requires a PhD in proof theory and/or type systems and/or semantics
<Spiwack> does he pay much :D ?
<Yoric[DT]> hint 3: in their complete career, they have studied OCaml for 2 hours and semantics for 5 hours.
<mbac> ahahha
<Spiwack> well, according to industrial standards
<Spiwack> they are overqualified
<mbac> definitely
<mbac> is he asking them to write fizzbuzz?
<Yoric[DT]> hint 4: using students from that École for anything more complex than a GUI and a little scripting has repeatedly proved a good recipe for catastrophic fumbles
<Yoric[DT]> No, he's asking them to do my job.
<Yoric[DT]> Essentially.
* rwmjones wishes someone would help build a cross-compiler
<mbac> awesome, sounds like you can go home
<Yoric[DT]> rwmjones: that would be nice.
<Yoric[DT]> mbac: well, no, he's sending these students as cannon fodder to put another research team in debt of him.
jeremiah has quit [Read error: 104 (Connection reset by peer)]
<mbac> lame
<Yoric[DT]> I don't want to put my name on that.
jdev has joined #ocaml
<Yoric[DT]> Ideally, I'd want the students to do something else, but I can't specially overrule his decisions.
<Yoric[DT]> Ah, gotta go.
<Yoric[DT]> Cheers.
<mattam> This Federer/Murray game is crazy.
<mattam> 7th match point in a single game.
<mattam> And 2nd ace against match point.
<Spiwack> gotta find it somewhere probably then :p
willb has quit [No route to host]
jeremiah has joined #ocaml
struktured_ has quit [Read error: 60 (Operation timed out)]
willb has joined #ocaml
gim has joined #ocaml
ecc has joined #ocaml
<Yoric[DT]> Well...
<Yoric[DT]> guess what?
<Yoric[DT]> He succeeded.
<Yoric[DT]> My meeting is now officially cancelled.
marmotine has quit [Read error: 113 (No route to host)]
marmotine has joined #ocaml
ecc_ has quit [Read error: 110 (Connection timed out)]
pango has quit [Remote closed the connection]
<_zack> I'm puzzled: a built-in module like List has no module type corresponding to it?
<_zack> hence, I cannot use "include List" in a module signature, is that correct?
<Yoric[DT]> correct
<Yoric[DT]> I seem to remember there has been a feature request for this in Mantis for ages.
<_zack> indeed is quite weird as a behaviour
<_zack> what's the common way out?
<_zack> should I define a module type, using another file, and than include it
<_zack> ?
<Yoric[DT]> I can't think of any better solution.
<_zack> how annoying
<Spiwack> well, there might be some solutions
<Spiwack> you make a .ml which includes list
<Spiwack> compile it with -i
<Spiwack> dump the result in a file.ml which has "Module Type" around the dump
mishok13 has quit [Read error: 110 (Connection timed out)]
<Spiwack> and that should work in most cases
<Spiwack> I'm not sure how clean it might be considered though...
<_zack> Spiwack: how is this a solution?
<_zack> or, otherwise stated, how is that different then the solution mentioned above? :)
pango has joined #ocaml
<Yoric[DT]> You can do that in your Makefile :)
<Spiwack> well, there is little copy/paste
<Spiwack> exactly
<Spiwack> this was the point
<_zack> good point
<_zack> thanks
rwmjones_ has joined #ocaml
filp has quit ["Bye"]
munga_ has joined #ocaml
itewsh has joined #ocaml
Camarade_Tux has joined #ocaml
marmotine has quit [Read error: 113 (No route to host)]
marmotine has joined #ocaml
_zack has quit ["Leaving."]
velco has quit ["Went wasting time elsewhere ..."]
mishok13 has joined #ocaml
jeremiah has quit [Read error: 104 (Connection reset by peer)]
marmotine has quit [Read error: 60 (Operation timed out)]
jeremiah has joined #ocaml
vixey has joined #ocaml
marmotine has joined #ocaml
jeremiah has quit [Read error: 104 (Connection reset by peer)]
smimram has joined #ocaml
smimou has quit [Read error: 110 (Connection timed out)]
Spiwack has quit ["Leaving"]
jeremiah has joined #ocaml
ygrek has joined #ocaml
marmotine has quit [Excess Flood]
marmotine has joined #ocaml
rwmjones_ has quit [Read error: 110 (Connection timed out)]
rwmjones has quit [Read error: 110 (Connection timed out)]
<hcarty> ertai: ping
mishok13 has quit [Remote closed the connection]
marmotine has quit [Read error: 60 (Operation timed out)]
tsuyoshi has quit [Read error: 60 (Operation timed out)]
tsuyoshi has joined #ocaml
marmotine has joined #ocaml
mishok13 has joined #ocaml
<Camarade_Tux> I have a question about compression in Batteries : I find the (de)compression interface not fit for solid archives, have I missed something ?
<flux> solid archive = tar?
<flux> targz?
ozzloy_ has joined #ocaml
<Camarade_Tux> in fact, not even solid, just multi-files archives
<Camarade_Tux> flux, solid is compressing everything as a single-file
ozzloy_ is now known as ozG1
Yoric[DT] has quit [Read error: 60 (Operation timed out)]
<hcarty> Camarade_Tux: That would probably be through a separate interface ... my understanding is that gzip is inherently single-file oriented
Yoric[DT] has joined #ocaml
itewsh has quit ["KTHXBYE"]
<Camarade_Tux> hcarty, separate interface will need more work =/
<Camarade_Tux> (I don't even know if that's documented actually)
<hcarty> You would need a different interface though, I would think
<Camarade_Tux> Yoric[DT], hi, quick question :)
marmotine has quit [Excess Flood]
marmotine has joined #ocaml
<hcarty> How would you indicate that a new file starts at the given position without adding tar (or similar) support?
<Camarade_Tux> is the compression interface meant for mulit-files archives ?
ozG1 has quit ["leaving"]
<Camarade_Tux> hcarty, well, that'd mean the output of decompression will be a bit meaningless when using the general interface and having a multi-files archives
<Camarade_Tux> after all the common interface is very small and it's clearly stated interfaces can have more things, but I'd like to be sure I haven't missed something
<Yoric[DT]> Camarade_Tux: ask _zack :)
* Yoric[DT] obviously has network problems.
<Yoric[DT]> Camarade_Tux: if you can read me, the one in charge of compression is _zack.
<Yoric[DT]> As far as I know, nothing is planned for multi-file archives yet.
<Camarade_Tux> Yoric[DT], but he's not there :D
balleyne has joined #ocaml
<Yoric[DT]> I'd say that's yet to be done.
<Yoric[DT]> If you have interface suggestions, he's probably interested.
<Camarade_Tux> anyway, I'll hack on the single-file interface for the moment, that's something I simply had not planned
<Camarade_Tux> Yoric[DT], ok, I'll work on interface too
<Camarade_Tux> (I thought that by conforming to an already made interface, I could avoid that task actualy ;p )
<Camarade_Tux> api design has alway been funny :p
<balleyne> is this the right place to ask about problems compiling the OCaml compiler? I'm getting "Unbound value opEQ" on the file bytecomp/emitcode.ml...
<hcarty> Camarade_Tux: camlzip does support zip files and has an API for handling multiple files in a zip archive
mbishop has quit [Read error: 110 (Connection timed out)]
<Camarade_Tux> hcarty, right, good idea
<hcarty> I think camlzip is used for the existing (de)compression gzip support in Batteries so it doesn't add any new requirements
<Camarade_Tux> hcarty, I know batteries depends on camlzip so that's really likely :)
<Camarade_Tux> balleyne, I don't know everything in the compiler but have some idea : how did you started compilation ? (which commands)
<hcarty> Camarade_Tux: Then everybody wins
<balleyne> Camarade_Tuz: `./configure`, then `make world opt` (which returned the error).
<Camarade_Tux> balleyne, try 'make world bootstrap opt', that could solve your problem
<balleyne> Camarade_Tux: Thanks, but same error. Should I run a 'make clean' or something?
<Camarade_Tux> somehow I had imagined you'd get that during the 'opt' phase which was completely silly, make bootstrap won't help
* Camarade_Tux really wonders how somebody can hit an error now
marmotine has quit [Read error: 60 (Operation timed out)]
<balleyne> Camarade_Tuz: hmm, alright, well, thanks for trying. I must be off, I'll see if I can figure it out later... =\
balleyne has quit ["Leaving"]
<Camarade_Tux> it seems nothing defines the value he needed and that nothing uses the function using opEQ
<Camarade_Tux> weird
code171 has quit [Remote closed the connection]
rwmjones has joined #ocaml
Jedai has joined #ocaml
itewsh has joined #ocaml
marmotine has joined #ocaml
bzzbzz has quit ["leaving"]
|Jedai| has quit [Read error: 110 (Connection timed out)]
bzzbzz has joined #ocaml
bzzbzz has quit ["leaving"]
bzzbzz has joined #ocaml
mishok13 has quit [Remote closed the connection]
apples` has joined #ocaml
<palomer> is it possible to crash the program?
<palomer> like exit(0) style?
ygrek has quit [Remote closed the connection]
velco has joined #ocaml
marmotine has quit [Read error: 148 (No route to host)]
mbishop has joined #ocaml
<hcarty> palomer: exit 0?
<palomer> good call!
<palomer> :o
<hcarty> Or raise an uncaught exception or assert false
<palomer> gtk always catches my exceptions
<hcarty> Ah
<hcarty> Does exit 0 work? I haven't used it in a gtk app
<palomer> lemme test...
marmotine has joined #ocaml
<palomer> yup
<palomer> tuareg-mode recognizes exit as a keyword!
<palomer> weird
<hcarty> It may be in Pervasives...
<hcarty> Yes, it is
<palomer> hrmph
<palomer> I'm planning on releasing what I've been working on for the past 9 months
<hcarty> Is anyone here using some version of OCaml 3.11? In particular, I'm wondering if ocamlbuild has support for building libraries as .cmxs
<palomer> the only glitch is...how do I set the path for the data files?
<palomer> forcing my user to set the environment variables themselves:O?
<hcarty> palomer: configure script? Or a dot-file in their home directory?
<palomer> also options
<hcarty> Make them select it every time the app starts :-)
<palomer> IF the environment variable isn't set
<palomer> that's an idea
<gildor> tsuyoshi: this is a nightmare
<gildor> tsuyoshi: I have implemented big buffer with Unix.read to allow better parallelization with other Thread
<palomer> or have it default to the current working directory if the environment variable isn't set!
<hcarty> palomer: or ./data/ or similar
<gildor> tsuyoshi: and the execution time has raise of 40%
<palomer> hcarty, the problem with that is that it's not relative to the executable
<gildor> raised
<palomer> it's relative to where the program is run from
<palomer> which is a HUGE problem
<palomer> hmm
<palomer> anyone running windows
<Camarade_Tux> palomer, I have a virtual machine
<palomer> can you check out cout << getenv("PWD") or print_endline (Sys.getenv "PWD")
<palomer> I want to see if pwd is an environment variable in windows
Associat0r has quit []
<Camarade_Tux> afaik it's not but starting the vm ;)
<palomer> hmm
<palomer> so I have to use .
<palomer> http://ocaml.pastebin.com/m735ab9b7 <-- I've decided to release my application
<palomer> could someone help me make that file portable?
<gildor> palomer: why not use Sys.getcwd
<palomer> ahh
<palomer> even better
<gildor> or even, even better use ocaml-fileutil
<gildor> there is the "pwd" function
<gildor> (note that it calls Sys.getcwd)
<palomer> cool!
<palomer> is this going to be part of batteries included?
hkBst has quit [Read error: 54 (Connection reset by peer)]
<gildor> Yoric[DT] tell me he would be interested
<Camarade_Tux> palomer, fwiw PWD is not defined on windows by default (msys does define it however)
<gildor> but I want to polish the documentation and solve some bugs
<palomer> ok, last step, making my OMakefile portable
<gildor> hope this will be my christmas gift (I have a lot of work RSN)
* palomer screams "any omakefile gurus around?"
seafood has joined #ocaml
<palomer> wee, figured it out!
Snark has quit ["Ex-Chat"]
Yoric[DT] has quit ["Ex-Chat"]
jeddhaberstro has quit []
itewsh has quit [Remote closed the connection]
<lorph> 3
<palomer> 4
marmotine has quit [Read error: 113 (No route to host)]
struktured_ has joined #ocaml
marmotine has joined #ocaml
<palomer> how do you check if a directory exists?
<Camarade_Tux> Sys.file_exists and then Sys.is_directory
willb has quit [Read error: 60 (Operation timed out)]
vixey has quit ["Ex-Chat"]