sponge45 changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/
m3ga has quit ["disappearing into the sunset"]
Submarine has quit [Remote closed the connection]
pango_ has joined #ocaml
Eridius has joined #ocaml
twobitsprite has joined #ocaml
<twobitsprite> I know this isn't the proper channel for this, but has anyone heard of/used the C-- compiler back-end? (the reason I ask here is that it's writen in OCaml)
<twobitsprite> interesting
<twobitsprite> I had no idea that GHC used C--
<twobitsprite> and I was starting to think that C-- was kind of dying; it's webpage hasn't been updated in a while, and I can't find any info on it anywhere...
<malc_> there's quite short wikipedia article
<malc_> there's -dcmm in ocaml.. though its relevance to c-- escapes me
pango has quit [Remote closed the connection]
<twobitsprite> hmm
<tsuyoshi> what is c--
Eridius has quit []
<mbishop> a middle man for C and machine code
<tsuyoshi> huh? c isn't good enough?
<tsuyoshi> did they ditch the shorts and longs and move to dwords and words?
<malc_> this sentence makes no sense whatsoever
<tsuyoshi> uhm.. you ever program in assembly?
<flux__> tsuyoshi, read up on it.. it seemd to me c-- is better suitable for an intermediate stage bdefore assembly than c
<flux__> for example c doesn't really provide tail-calls, although the compiler _may_ provide them in some cases
<malc_> uhm.. don't you think that assembly in arbitrary context is a tad bit underdefined to begin with
<flux__> well, what tsuyoshi seemed somewhat relevant to and sane to me, I have thought words and dwords being somewhat universal machine concepts?
<malc_> nope
<tsuyoshi> well.. outside of x86 I think they usually just call them words and not dwords
<malc_> the ISA definition for my other machine has word at 32bit dword at 64bit and 16bit is halfword
<malc_> and fwiw bit is binary
<flux__> well,, their width might not be, so maybe you have a point there :)
<mbishop> still, making asm output for all your archs can get kind of annoying, easier to go to C--, then make that work on the arch
<flux__> but the point is that word for an architecture is atleast more meaningful than for a c-colmpiler
<tsuyoshi> yeah.. tail calls in c are difficult
<malc_> mbishop: and this declaration is based on what exactly?
<malc_> i mean was there a study?
<mbishop> No? maybe the haskell guys did one though :P
<flux__> people in real world got annoyed by it and switched to c-- ?-)
<mbishop> it's the same idea as LLVM
<flux__> I believe c-- exists due to a real need
<twobitsprite> well... it's sponsored by microsoft research, no?
<malc_> twobitsprite: yes
<malc_> exists yeas, being used.. well let's just say - not yet
<malc_> -a
twobitsp1te has joined #ocaml
<flux__> hmph, (www.)cminusminus.org doesn't resolve to an ip for me..
<mbishop> works fine here
<mbishop> www.eecs.harvard.edu CNAME bowser.eecs.harvard.edu
<mbishop> bowser.eecs.harvard.edu A 140.247.60.24
<flux__> oops, I missed a line.. my mobile terminal nevertheles refused to resolve it :)
<flux__> hmph, but it doesn't work with an IP - darn vhosts
<flux__> time to sleep I guess
<tsuyoshi> hmm.. but isn't nearly everyone using x86 now
<tsuyoshi> what's the point in going higher than assembly anymore for a compiler
<tsuyoshi> I guess there's still arm
<twobitsp1te> that mentality leads to stagnation
<twobitsp1te> who knows if someday PPC will make a come back, or some other architecture will come around
<tsuyoshi> haha ppc isn't making a comeback anymore than 68k is
<twobitsp1te> and besides... plenty of businesses/etc still use things like AIX on pSeries, etc
<tsuyoshi> is aix still developed?
<malc_> erm.. yes
<malc_> and fwiw PPC powers "all" current consoles
<malc_> and Intel still thinks that Itanium is the future
<malc_> so narrowing it down to x86(_64) is a bit premature
<mbishop> embedded devices still use ARM or MIPS
<mbishop> and in the field of telecommunications, there are some seriously outdated systems, still running on god knows what architecture :)
<malc_> it's a crynig shame PDP-11 is no longer in production.. <homer>mmmmm... middle endian</homer>
<malc_> crying rather
twobitsprite has quit [Read error: 110 (Connection timed out)]
<tsuyoshi> the consoles all use ppc? I didn't know that
<tsuyoshi> ok, that counts as "not dead" then
pango_ has quit [Remote closed the connection]
<malc_> xbox-360, wii and ps3 are powered by designs based on ppc yes
<mbishop> well, PS3 is "Cell", but that's IBM, Wii and X360 both use powerpc, as did the gamecube
pango_ has joined #ocaml
malc_ has quit ["leaving"]
mbishop has quit [Remote closed the connection]
johnnowak has joined #ocaml
smimou has quit ["bli"]
Eridius has joined #ocaml
twobitsp1te has quit [Read error: 110 (Connection timed out)]
Eridius has quit []
ikaros_ has quit [Read error: 60 (Operation timed out)]
Mr_Awesome has joined #ocaml
<Mr_Awesome> is there any way to specify unsigned 32-bit integers? the compiler is complaining that 1376312589 is too big to be represented by an integer, even though it is less than 2^32
twobitsprite has joined #ocaml
ikaros has joined #ocaml
<Mr_Awesome> hmm, apparently using hex notation solves the problem
<sponge45> Be careful, 0x7fffffff is the maximum on 32 bit platforms. It's not 0xffffffff.
<Smerdyakov> Mr_Awesome, int isn't 32 bits in OCaml.
<Smerdyakov> Mr_Awesome, you have to use Int32 for 32-bit integers.
<Mr_Awesome> sponge45: then why does it accept that number written in hex?
<Mr_Awesome> Smerdyakov: will using Int32 allow unsigned 32-bit ints?
<Smerdyakov> Mr_Awesome, beats me. The whole situation is weird. I prefer SML's separation into INTEGER and WORD structures. :)
<Mr_Awesome> sponge45: i mean, why doesnt it accept that number written in decimal
<Mr_Awesome> Smerdyakov: do you prefer sml to ocaml?
<Smerdyakov> SML
<Mr_Awesome> really... i should look into sml
<ChoJin> when you use a hex notation I think it generates a Int32
<ChoJin> not an int
Eridius has joined #ocaml
<ChoJin> it's funny, I have been here for a few days, and each time I see Smerdyakov trying to convert people to SML ;)
pingu has joined #ocaml
mbishop has joined #ocaml
<twobitsprite> ChoJin: I think when I was in here a couple of months ago I noticed the same, actually...
<Eridius> what's SML?
<twobitsprite> Standard ML
<twobitsprite> it's "the other ML"
<Eridius> ah
<Eridius> why would you want Standard over Objective? And why would you try and evangelize for it anyway?
<twobitsprite> much like Ocaml, but different
<ChoJin> isn't it slower?
<ChoJin> (runtime-wise)
<twobitsprite> Eridius: well... it's not like "Ocaml minus the objective part"... it's just a different way of implementing the ML design philosophy
<Eridius> well, I don't actually know much about ML. I've only gone through a bit of tutorial so far. I'm hanging around here mostly for the heck of it ;)
<Smerdyakov> No. The OCaml compiler produces significantly less efficient binaries than the best optimizing SML compiler.
<twobitsprite> MLton is a great compiler
<twobitsprite> There are just some nuances about SML that I don't quite like...
<twobitsprite> however, there are also aspects that I wish Ocaml would learn from SML
<twobitsprite> doesn't SML use "print" instead of "print-string"?
<Smerdyakov> Yes
<twobitsprite> yeah... print-string is a long name for a function
<twobitsprite> just mildly iritating
<Smerdyakov> You must mean 'print_string'.
<twobitsprite> er, that's what I meant
<twobitsprite> (I've been using so many different languages recently :P)
<Mr_Awesome> he's a lisper!
<twobitsprite> You can't prove anything!! :P
<Eridius> hehe
<Eridius> i started trying to learn both OCaml and Tcl in the same day
<ChoJin> is there any good webpage to compare ocaml and sml (feature/syntax wise)?
<Mr_Awesome> wow, my implementation of perlin noise is ridiculously slow
<Eridius> naturally, I didn't get very far in either yet
<twobitsprite> google: ocaml vs sml
<twobitsprite> I seem to have found something pretty good that way
<twobitsprite> Eridius: heh... very different languages, although my experience with TCL is probably about 5 years sepperated from my time with Ocaml
<ChoJin> twobitsprite, yeah, but I was hoping for some pruning from the guys "who know" :)
<Eridius> indeed
<twobitsprite> ChoJin: yeah, I wouldn't know execpt by googling... so, you'll get no help from me :P
<Eridius> oddly, I was learning Tcl because I was learning OCaml
<twobitsprite> Eridius: eh?
<Smerdyakov> I should write up an article about the differerences some day.
* Eridius wanted to write a few MacPorts Portfiles (MacPorts is a package manager for OS X) for ocaml's findlib and extlib, and the Portfiles are written in Tcl, and I had to learn Tcl to figure out how to do some esoteric stuff :D
<twobitsprite> Smerdyakov: I'd like to see something on the semantic differences... syntactical ones seem to be appearant and documented
<twobitsprite> Eridius: ahh... interesting... I didn't realize anything was done in TCL anymore
<Eridius> hehe
<ChoJin> Eridius, I'm using godi under mac
<ChoJin> it works great
<Mr_Awesome> i suppose this code is quite slow: Random.full_init (Array.of_list [x; y]); (Random.float 1.) *. 2. -. 1.
<twobitsprite> run it and see...?
<Mr_Awesome> that wasnt a question
<twobitsprite> ahh
<twobitsprite> sorry
<Mr_Awesome> right now im searching for a good 2d noise function
<twobitsprite> plenty of people imply questions with statements like that
<ChoJin> from http://www.ps.uni-sb.de/~rossberg/SMLvsOcaml.html. sml and ocaml looks very much alike
<ChoJin> but I don't see labels in sml for example
<twobitsprite> ChoJin: yeah, syntactically they are very similar... most differences lie in, i.e. small changes to the syntax (which can be overlooked and confusing at first) ...
<twobitsprite> as well as they way the stdlib is layed out, or minor semantic differences
<twobitsprite> first-class constructors are nice
<twobitsprite> I always want to pass constructors around like functions in Ocaml and get confused by the errors
<twobitsprite> (and I've never used SML... makes me wonder how the idea of 1st-class constructors was overlooked by the Ocaml guys)
<ChoJin> well, for the moment I'm still wondering why Xavier Leroy started ocaml if sml was already existing
<ChoJin> there must be a logicial explanation :)
<twobitsprite> hmm... was SML already existing...?
<Smerdyakov> OCaml is an offshoot of Caml, which is approximately as old as SML.
<ChoJin> k, I didn't know caml was as old as sml
<mbishop> Is Xavier still anti SMP?
<ChoJin> so basically two teams were competing ?
mpc has quit []
<twobitsprite> ChoJino: or maybe they weren't aware of each other...?
<twobitsprite> where did the "ca" in caml come from, anyways...?
<ChoJin> ok the answer is here :)
<ChoJin> However, the language we implemented then was not SML but ... Caml. Why? Our main reason for developing Caml was to use it for sofware developments in the Formel project and indeed, it was used for the development of the Coq system which became, after Thierry Coquand's thesis in 1985, the main aim of the project. We were reluctant to adopt a standard that could later prevent us to adapt the language to our programming needs.
<ChoJin> it's kind of sad, because it splits the human resources :)
<ChoJin> twobitsprite, apparently it's not ca + ml, it's CAM + L :)
<Eridius> CAM + ML
<ChoJin> btw, speaking of goole... do you guys know www.clusty.com?
<ChoJin> really cool meta-search engine
<ChoJin> with a clustering/classification algorithm to sort the results per themes
<ChoJin> google wanted to organize the informations, clusty is organizing the results of this organization ;)
<Mr_Awesome> ocaml really needs operator overloading
<Mr_Awesome> of some sort
<Mr_Awesome> well, function overloading
<ChoJin> yeah, but apparently it's a tough problem :)
<Smerdyakov> Solution at POPL'07... :)
<Smerdyakov> (Modular type classes)
<ChoJin> I have a friend who is working in the ocaml team on a new type system, I think he told me it could possibly solve the overloading problem
<ChoJin> but I'm not sure, it's been a long time
<Mr_Awesome> im trying to convert a complicated noise function from C to ocaml using Int32
<Mr_Awesome> doesnt F# have it?
<Mr_Awesome> haskell has a solution to it
<mbishop> then use haskell? :P
<ChoJin> Smerdyakov, do you have a link?
<Mr_Awesome> haskell has meaningful whitespace, which means i cant use it
<ChoJin> Mr_Awesome, do you really need 32bit?
<Mr_Awesome> believe me ive tried, but if i cant format the whitespace how i want it, i cant use the language
<Mr_Awesome> ChoJin: absolutely
<Mr_Awesome> the function relies on the effect of bitwise shifts and bitwise ands
<ChoJin> and?
<ChoJin> that still works in ocaml, you just have 31bit
<ChoJin> :)
<Mr_Awesome> these effects are different on a non-32-bit int...
<Smerdyakov> ChoJin, just look at POPL program. That's all the information I have.
<Mr_Awesome> well that ruins the noise function as it stands, and i dont really know how to modify it for 31-bit ints
<ChoJin> it reminds me the judy array, where everything is implemented around the size of a cache line :)
<Mr_Awesome> ugh this is giving me a headache
<Mr_Awesome> what is the maximum value for ocaml's ints? is it 2^31?
<ChoJin> max_int
<ChoJin> :)
<Mr_Awesome> ah thanks
<sponge45> one and a half hour ago, Mr_Awesome asked sponge45: then why does it accept that number written in hex?
<Mr_Awesome> yeah
<sponge45> I don't know. Hex numbers correspond to the bit representation of the int.
<sponge45> 0x7fffffff is -1
<sponge45> all bits set to 1
<Mr_Awesome> hmm, i think the fact that ocaml uses signed ints is screwing me up
<Mr_Awesome> anyone know of a good 2d noise function that would work in ocaml btw?
<sponge45> What kind of noise function do you want? (I don't know what I am talking about here - just being curious)
<ChoJin> you can take a 1d-noise function and use a peano-hilbert scan order
<ChoJin> it's not very hard to implement
<ChoJin> I used it when I was doing watermarking
<Mr_Awesome> i need a function that takes an integer and returns a pseudorandom number based on that integer
<Mr_Awesome> well, in this case two integers
<Mr_Awesome> the random number should be between -1 and 1 inclusive
<Mr_Awesome> maybe i could write the function in C and use that from ocaml
<ChoJin> so basically, something like: let gen_random a = Random.init a; Random.bits ()
<ChoJin> ?
<ChoJin> oops
<ChoJin> between -1 and 1
<Mr_Awesome> ChoJin: exactly like that
<Mr_Awesome> in fact, thats what i have already
<sponge45> doesn't it have to be continuous?
<ChoJin> but it's too slow? :)
<Mr_Awesome> continuity is acheived through interpolation and smoothing
<Mr_Awesome> ChoJin: precisely
<ChoJin> then i have another suggestion
<ChoJin> init the random generator once
<ChoJin> and just generate a number n, and swap n times two randoms bit of your number
<Mr_Awesome> yeah i see what youre saying... i guess it should work
<Mr_Awesome> wait no it wont
<Mr_Awesome> i wish these rng's werent based on sequences
<ChoJin> oops no
<ChoJin> ok another suggestion:
<ChoJin> generate a permutation table of N entry
<ChoJin> this will represent the permutation of the bit you should apply
<ChoJin> mmm hold on, it will take too much memory if you want a lot of table
<ChoJin> :)
<ChoJin> what I don't understand is why do you need to generate a random number out of a value between -1 and 1
<ChoJin> that's not really random...
<ChoJin> that's hashing the number
<Mr_Awesome> no, generating a random number that is between -1 and 1
<Mr_Awesome> the input can be any 32-bit integer
<ChoJin> yeah, what you want is a universal hashing function
<Mr_Awesome> well, any integer up to 3fffffff in ocaml
<Mr_Awesome> ChoJin: not sure what that means, but it sounds right
<Mr_Awesome> im not really generating a sequence of random numbers, i just want a noise function
<ChoJin> yeah, that's the principle of universal hashing function
<ChoJin> given an input it always gives the same results, but it's not easy to find two input resulting in a collision
<ChoJin> h(x) = a*x + b mod p mod n would do
<ChoJin> with p prime
<ChoJin> ok, just take a*x + b mod p even
<ChoJin> and take p the biggest prime < max_int :)
<ChoJin> then you'll get a number between 0 and p just normalize it between -1 and 1
<ChoJin> and voila! :)
<sponge45> you'll need another p for the other dimension
<ChoJin> what other dimension?
<Mr_Awesome> i need up to 4 dimensions
<sponge45> he wants a 2D noise function. 4?
<Mr_Awesome> i need 1d, 2d, 3d, and 4d
<Mr_Awesome> i just happen to be focusing on 2d atm
<ChoJin> ok, so you want a k-wise universal hashing function
<ChoJin> :)
<ChoJin> kind of the same idea ;)
<Mr_Awesome> what should a and b be in the function?
<ChoJin> any number
<ChoJin> big... of course
<ChoJin> otherwise the mod is not going to be very interesting :)
<ChoJin> you'll probably have overflow anyway, so the real function will be (a*x +b mod max_int) mod p
<Mr_Awesome> the mod binds to the b, correct? ax + (b mod p)
<ChoJin> I'm wondering if it's going to fuck the randomness of it
<Mr_Awesome> wait no
<Mr_Awesome> thats not right
<ChoJin> (ax + b) mod p
<Mr_Awesome> yeah, of course
Smerdyakov has quit ["Leaving"]
<ChoJin> maybe you can try (a*x*(y+1) + b) mod p, where y is the dimension
<Mr_Awesome> what about (a * (x + y * 57) + b) mod p or something like that
<ChoJin> why? :)
<ChoJin> I usually prefer * over + because it will introduce more variation
<Mr_Awesome> im having trouble finding the greatest prime less than 3fffffff
<sponge45> (x, y) -> (a * (x + y * 57) + b) mod p is symmetric. Maybe that matters, I don't know.
<sponge45> no, it's not
<sponge45> sorry, it's late
<ChoJin> Mr_Awesome, you can probably find a prime table somewhere
<ChoJin> :)
<Mr_Awesome> finally i found it
<Mr_Awesome> 1073741789
<Mr_Awesome> now what would be good for a and b? like, what order of magnitude? would primes be good for these numbers also?
<ChoJin> I don't think it really matter
<Mr_Awesome> ok
<ChoJin> as long as the number are big enough to make the computation > p
<Mr_Awesome> ((float ((389472 * x * (y + 1) + 22302) mod 1073741789)) /. 1073741789.) *. 2. -. 1. is what i have
<Mr_Awesome> and it creates a nice gradient from black to white along the diagonal of the square, heh
<ChoJin> :)
<ChoJin> btw, what are you working on?
<ChoJin> what is it for?
<Mr_Awesome> working on procedural generation for a game
<Mr_Awesome> if i increase a and b im starting to get something more noise-like
<ChoJin> yeah, your values are not big enough to get paste p
<ChoJin> past
johnnowak_ has joined #ocaml
<Mr_Awesome> do they have to get way past p?
<Mr_Awesome> even when i make them quite high it still doesnt produce good noise
<ChoJin> it's either because of y, or it's because of the overflow
<Mr_Awesome> overflow?
<Mr_Awesome> i actually dont know if these hash functions are so good for noise
<Mr_Awesome> it seems that the one i had before was the best, but unfortunately it doesnt work in ocaml
johnnowak has quit [Read error: 110 (Connection timed out)]
johnnowak has joined #ocaml
slipstream-- has joined #ocaml
johnnowak_ has quit [Read error: 110 (Connection timed out)]
slipstream has quit [Read error: 145 (Connection timed out)]
Mr_Awesome has quit ["...and the Awesome level drops"]
bluestorm has joined #ocaml
bluestorm has quit ["Konversation terminated!"]
sponge45 has quit ["zzzzzzzzzz"]
<pango_> # 1376312589l ;;
<pango_> - : int32 = 1376312589l
johnnowak has quit []
ChoJin has quit ["This computer has gone to sleep"]
bluestorm has joined #ocaml
asmanian has joined #ocaml
joshcryer has quit [Connection timed out]
klapmuetz has joined #ocaml
smimou has joined #ocaml
robajs has joined #ocaml
Submarine has joined #ocaml
swater has joined #ocaml
love-pingoo has joined #ocaml
Submarine has quit [Read error: 60 (Operation timed out)]
llama32 has joined #ocaml
asmanian has quit [Remote closed the connection]
Skal has joined #ocaml
klapmuetz has quit [Read error: 104 (Connection reset by peer)]
descender has joined #ocaml
Skal has quit [Read error: 104 (Connection reset by peer)]
Yorick has joined #ocaml
zak_ has joined #ocaml
llama32 has quit [Read error: 110 (Connection timed out)]
robajs has quit ["bye"]
_ziggurat has quit ["This computer has gone to sleep"]
Jessehk has joined #ocaml
<Jessehk> You know what's missing from O'Caml? Infinitely large integers (without using a separate module).
<Jessehk> Well not infinite, but you know what I mean
<smimou> Jessehk: it's not missing
<smimou> see the module Bing_int
<smimou> err Big_int
<Jessehk> But sometimes you can't anticipate when you're going to need a big number.
wkh has joined #ocaml
<wkh> hi
<Jessehk> It would be great if it was just supported as an "int" without having to use a module.
<love-pingoo> is it so painful to move from int to bigint ?
<love-pingoo> you can redefine (+) and so on..
<love-pingoo> wkh: hi
<wkh> i'm kind of new to ocaml and i have a question about representing matrix-type data structures as bigarrays vs. arrays of arrays
<wkh> i have an iterative optimization algorithm that accesses a 2-d array a lot. which is faster, bigarray or arrays of arrays?
<wkh> and also which is considered to be better from the perspective of programming style?
<Yorick> Jessehk: I agree. Big_int is nice but slow.
<Yorick> wkh: arrays of arrays are slower for two reasons: bad locality and indirection
<wkh> ah
<wkh> so currently all the loop code looks like "mydata.(i).(j)"
<wkh> i should refactor to use bigarrays?
<wkh> or like just rewrite that crap?
<Yorick> wkh: either that, or make your own "bigarrays" by doing index = i * k + j
<wkh> how much faster are we talkign about here
<wkh> like 20% or orders of magnitude?
twobitsprite has quit [Read error: 110 (Connection timed out)]
<wkh> ballpark
<Yorick> wkh: That depends entirely on your application and access patterns (and sizes, and memory, and hardware...)
<Yorick> wkh: Try it yourself.
<wkh> ok
<wkh> how much of a difference does compiling as unsafe make?
<wkh> unchecked array accesses
<Yorick> wkh: again depending on what you are doing. It may matter if array accesses make up a substantial part of your code.
<wkh> yeah it is for what i'm doing
<Yorick> wkh: Note that you can use unsafe_get etc when you can prove that bound checks are not necessary.
<wkh> i'm basicvally using OCaml because I hate C, C++, and Matlab
<Yorick> You shouldn't hate. It turns off your mind.
<Yorick> Dislike is fine.
<wkh> well i was using "hate" to mean "it makes me sad and C is obsolete while Matlab feels like a straight jacket"
<Yorick> C has many defects, but until anything surpasses it for the tasks it is useful, it cannot be said to be obsolete.
<wkh> yeah i know i just meant, it was designed for writing operating systems on a mainframe that was obsolete 25 years ago
<Yorick> But I agree, OCaml is nice as some kind of medium-performance language.
<wkh> the floating point performance is fast enough for what i need
<wkh> almost everything i've written in it thus far has worked right the first time
wkh has quit []
Yorick has quit ["Leaving"]
Jessehk has quit [Remote closed the connection]
malc_ has joined #ocaml
Smerdyakov has joined #ocaml
_ziggurat has joined #ocaml
zak_ has quit [Remote closed the connection]
benny has joined #ocaml
xian has quit [Remote closed the connection]
xian has joined #ocaml
ChoJin has joined #ocaml
_ziggurat has quit ["Leaving"]
johnnowak has joined #ocaml
swater has quit ["Quat"]
bluestorm is now known as bluestorm_aw
rillig has joined #ocaml
bluestorm_aw is now known as bluestorm
revo has joined #ocaml
<revo> hi, I was looking for http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/dist/lablgl-1.02a-win32.zip, but site is off-line, anyone have this file?
rillig has quit ["exit(EXIT_SUCCESS)"]
love-pingoo has quit ["Connection reset by pear"]
revo has quit [" HydraIRC -> http://www.hydrairc.com <- Go on, try it!"]
twobitsprite has joined #ocaml
sponge45 has joined #ocaml
johnnowak has quit []
ChoJin has quit ["This computer has gone to sleep"]
malc_ has quit ["leaving"]
bluestorm has quit ["Konversation terminated!"]
sponge45 has quit ["zzzzzzzzzz"]
Skal has joined #ocaml