jemfinch` changed the topic of #ocaml to: nob: it's not an option keyword. It's a datatype. 'a option. It can be either "None" or "Some data" -- it represents either data that's not there (None) or data that's there (Some data)
owll has quit ["Client Exiting"]
__DL__ has joined #ocaml
malc has joined #ocaml
__DL__ has quit ["Client Exiting"]
kjs3 has joined #ocaml
<kjs3>
Howdy...
<malc>
lo
<kjs3>
Anyone know when the OCAML book is going to show up in English?
<kjs3>
Is Standard ML fair game for discussion around here?
<malc>
everything is
<malc>
cause mostly nobody is talking
<kjs3>
So it would seem...
<malc>
so whats with SML?
<kjs3>
Trying to learn it. Interested in language support to prevent or mitigate security issues.
<malc>
Strange i havent noticed anything of that kind
<kjs3>
Looking at issues associated with memory abuse and how to prevent it (buffer overflows, etc.)
<malc>
i dont think there is a special support, just no explicit memory management + bounds checking, or yet again im missing something
<kjs3>
You got it. Garbage collection, strong typing, bounds checking, etc. All the fun stuff that C, et. al. don't have.
<malc>
well Cyclone has them and its C (more or less)
<malc>
ditto Vault
<kjs3>
I haven't decided what I think of Cyclone, and I've not looked at Vault. Frankly, if I'm going to use C, I pretty much want to be able to shoot myself in the foot.
<kjs3>
And Cyclone doesn't do polymorphism that I could see. Maybe I missed it.
<malc>
I have decided myself.. Cyclone compiles trough C = no-no, Vault is windows only = no-no
<kjs3>
Valid.
<scipient>
i wish there was a BSDd ocaml interpreter or compiler
<malc>
BSDd?
Cerebrum has joined #ocaml
<scipient>
BSD license
<Cerebrum>
Hello
<Cerebrum>
Hey, the BSD license is far superior to the GPL
<Cerebrum>
Hi malc!
<Cerebrum>
Malc...where did we stop in our conversation yesterday?
<malc>
Cerebrum: hi
<Cerebrum>
Malc: I remember. I was asking you what other languages you know
<malc>
Cerebrum: on me and sleep deprivation.. and come to think of it, no a tiny bit changed its ~6:20 around here, and duh
<Cerebrum>
do you think thats the best book to learn?
<malc>
i hate question in this form. anyhow i learned(learning) OCaml not by the book. but in any case i belive this is quite decent introductory stuff
<kjs3>
There is supposed to be a wonderful OCAML book out there, but it's in French. Unfortunately, that won't help me much. Supposedly, a translation is in progress.
<malc>
It is
<malc>
they did a good chuck of the book.. at least thats what i infered from the post on the mailing list not so long ago
<malc>
chuck = chunk
<Cerebrum>
good
<Cerebrum>
Im really interested in this all
<kjs3>
I decided to focus on Standard ML and fully understand that in the iterrim.
<Cerebrum>
What dialects of ML exist beside Ocaml and Standard ML
<kjs3>
There is a like to other ML derrived languages on the web page above.
<kjs3>
malc: Where in Russia are you?
<malc>
kjs3: Moscow
<Cerebrum>
malc are you russian? Your english sounds very american
<malc>
i think there are no other dialects, and Standard ML has few compilers each having their unique deviations
<malc>
gee.. yeah im pretty much russian ;) but .us culutral/linguistic influence is very peravsive
<kjs3>
Depends on how you define it. There are several versions (SML90, SML96 & SML97), and there are substantial differences between different implimentatons (CAML, SMLNJ, etc.).
<kjs3>
malc: your written english is essentially flawless, FWIW, other than some very subtle things.
<malc>
i define it as: two branches SML derived/Caml derived. and nowdays its SML97/OCaml
<malc>
kjs3: why thank you
<malc>
but anyhow, i must finally take a nap, cya
<Cerebrum>
Hey, I just discovered Ocaml has side effects. You can change characters in Strings !!! s.[i] <- 'a'
<malc>
haha
malc has quit ["no reason"]
graydon has quit []
tav_ has joined #ocaml
kjs3 has quit [Read error: 110 (Connection timed out)]
Cerebrum has quit []
<scipient>
hm. it seems like all the ocaml tutorial or introductory material i can find is either too long or too short
<scipient>
they seem to assume you already know the syntax
<scipient>
or they want to give you all this philosophy about why ocaml is good when you already know that
jao has quit [Read error: 113 (No route to host)]
<scipient>
well, now i'm finding better information
<scipient>
what about file and network i/o?
Yurik has joined #ocaml
tav_ has quit [Read error: 104 (Connection reset by peer)]
malc has joined #ocaml
tav has joined #ocaml
smkl has quit [Remote closed the connection]
smklsmkl has joined #ocaml
smklsmkl is now known as smkl
<smkl>
scipient: normal file io is at core library, low level and network io is at unix library
<malc>
smkl: you are 3 hours late
<smkl>
did you help him?
<malc>
nope
<smkl>
well, he's still here
<malc>
i was 2 hours late
<malc>
but anyway that was funny, fits our perception of estonians and finnish as 'slow' guys
* malc
Excercise number 1: Develop OCaml program to extract value from sparse IRC logs.
Jiriki has quit [Read error: 104 (Connection reset by peer)]
Jiriki has joined #ocaml
mellum has joined #ocaml
<tav>
what about us brits?
<malc>
judging by the timing, id say same shit
owll has joined #ocaml
Jiriki has quit [Read error: 104 (Connection reset by peer)]
clog has quit [^C]
clog has joined #ocaml
malc has quit ["no reason"]
<scipient>
battling repetition on IRC is a futile endeavor.. ;)
<mellum>
battling repetition on IRC is a futile endeavor.. ;)
<scipient>
ha ha
<scipient>
does ocaml guarantee that when you flush a file, the write is synced to disk?
<smkl>
probably not
<scipient>
hm. i know i am going to need to achieve that..
<smkl>
you need to make bindings for fsync()
<scipient>
i feared as much :)
<scipient>
is anyone here an ocaml developer? meaning the compiler/interpreter itself?
<smkl>
that is really simple though. just: external fsync : file_descr -> unit = "caml_fsync", and then: value caml_fsync(value fd) { fsync(Val_int(fd)); return Val_unit; }
<smkl>
scipient: nope
<scipient>
ah, thank you
<scipient>
that takes care of our 'nix deployment anyway :)
<scipient>
i was asking b/c as long as we have to come up with cross platform stuff on our own i'd like to contribute it back to the core lib or whatever
<mellum>
Why do you need fsync, anyway? Doing a database?
<scipient>
basically
<scipient>
the disk has to be updated in a consistent way regardless of abrupt termination of the application
<mellum>
scipient: for that, sync will suffice
<scipient>
because disk writes are guaranteed to be chronologically ordered?
<mellum>
scipient: no, they arent. What does that have to do with it? sync just ensures all buffers get written.
<scipient>
well, define "all buffers"
<scipient>
for example, in java if you flush that has nothing to do with the OS's own buffers, so you need to perform an fsync anyway
<mellum>
well, the basic difference between sync and fsync is that fsync does not return until the data is written, which is unneeded if all you want to do is ensure it gets written at all
<scipient>
ok. the thing is, i have to know for sure that certain data is written to the disk before changing other data on the disk
Submarine has joined #ocaml
<Submarine>
yow
Submarine has quit ["Client Exiting"]
mellum has left #ocaml []
owll has quit ["Client Exiting"]
owll has joined #ocaml
owll has quit ["Client Exiting"]
jao has joined #ocaml
malc has joined #ocaml
jao has quit [Read error: 113 (No route to host)]
tmcm has quit ["using sirc version 2.211+ssfe"]
graydon has joined #ocaml
graydon has quit []
Yurik has quit [Read error: 113 (No route to host)]