flux changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | 3.11.0 out now! Get yours from http://caml.inria.fr/ocaml/release.html
Camarade_Tux has quit ["Leaving"]
jlouis has quit [Remote closed the connection]
alexyk has joined #ocaml
alexyk_ has joined #ocaml
alexyk has quit [Read error: 110 (Connection timed out)]
alexyk_ has quit []
alexyk has joined #ocaml
jeddhaberstro has joined #ocaml
caligula has quit [Read error: 104 (Connection reset by peer)]
blizz2 has quit []
caligula has joined #ocaml
jeddhaberstro has quit []
alexyk has quit []
alexyk has joined #ocaml
johnnowak has joined #ocaml
Jedai has quit [Connection timed out]
Jedai has joined #ocaml
Morphous has quit [Read error: 110 (Connection timed out)]
Morphous has joined #ocaml
Jedai has quit [Connection timed out]
Jedai has joined #ocaml
alexyk has quit []
jeddhaberstro has joined #ocaml
alexyk_ has joined #ocaml
alexyk_ has quit []
alexyk_ has joined #ocaml
mohbana has quit [Read error: 54 (Connection reset by peer)]
alexyk_ has quit []
alexyk has joined #ocaml
alexyk has quit [Client Quit]
Jedai has quit [Read error: 110 (Connection timed out)]
Jedai has joined #ocaml
alexyk has joined #ocaml
jeddhaberstro has quit []
bzzbzz has quit ["leaving"]
johnnowak has quit []
Axioplase has joined #ocaml
Jedai has quit [Read error: 110 (Connection timed out)]
Jedai has joined #ocaml
Jedai has quit [Read error: 110 (Connection timed out)]
Jedai has joined #ocaml
Jedai has quit [Read error: 60 (Operation timed out)]
Jedai has joined #ocaml
alexyk has quit []
Jedai has quit [Read error: 110 (Connection timed out)]
Jedai has joined #ocaml
Associat0r has joined #ocaml
johnnowak has joined #ocaml
|jedai| has joined #ocaml
Jedai has quit [Read error: 110 (Connection timed out)]
Associat0r has quit []
Guest14583 is now known as purple__
ikaros has joined #ocaml
cataska has joined #ocaml
johnnowak has quit []
ygrek has joined #ocaml
ikaros has quit [No route to host]
ygrek has quit [Remote closed the connection]
mishok13 has joined #ocaml
vixey has joined #ocaml
johnnowak has joined #ocaml
|jedai| has quit [Read error: 145 (Connection timed out)]
|jedai| has joined #ocaml
munificent has joined #ocaml
sporkmonger has quit []
ygrek has joined #ocaml
|jedai| has quit [Read error: 110 (Connection timed out)]
|jedai| has joined #ocaml
ikaros has joined #ocaml
_zack has joined #ocaml
l_a_m_ has joined #ocaml
olgen has joined #ocaml
ikaros has quit [".quit"]
smimram has joined #ocaml
rwmjones has joined #ocaml
smimou has quit [Read error: 110 (Connection timed out)]
fschwidom has joined #ocaml
Nazz has joined #ocaml
ikaros has joined #ocaml
|jedai| has quit [Connection timed out]
|jedai| has joined #ocaml
Axioplase is now known as Axioplase_
Stefan_vK has quit ["Leaving."]
fschwidom has quit [Read error: 60 (Operation timed out)]
Stefan_vK has joined #ocaml
Koordin has joined #ocaml
fschwidom has joined #ocaml
|jedai| has quit [Read error: 110 (Connection timed out)]
|jedai| has joined #ocaml
ygrek has quit [Remote closed the connection]
munificent has quit []
* rwmjones wonders how to print a ctyp in camlp4 ...
sporkmonger has joined #ocaml
OChameau has joined #ocaml
zerny has joined #ocaml
marmotine has joined #ocaml
sporkmonger has quit []
alexyk has joined #ocaml
<flux> gildor, that laptop cooler might not be such a bad idea, given that this freezer-freezable medical cold pack is working great :)
<flux> I'm not so sure how such a cooler works on my lap, though..
<flux> it's also difficult to believe such a cooler would be as efficient as this :)
<flux> the keyboard is cooling down..
ygrek has joined #ocaml
<gildor> flux: well I use this kind of cooler to cool my desktop computer (my desktop computer is special) and an external HDD
<gildor> both are reaching 45°C when its 30°C outside
<gildor> with the cooler I get 35°C
<flux> it's ~24C here (in the room), and the laptop was reaching 37 naturally, and 27 with ice pack
<flux> I suppose it might be possible to get comparable results with such a unit then
<gildor> You will probably get between 27 and 30°C with cooler
<gildor> (this is 2x12cm fan)
<flux> how's the volume?
<flux> or rather, noise level
<gildor> quite low
<gildor> (FYI, my desktop computer is fanless, I hate computer making noise, so you can imagine I won't lie about noise)
<flux> well, it's so cheap that I can just give it a try. although it's an order-only product in the national (largest) computer store.
<flux> if only the hdd was replaced with an ssd, and the laptop would be completely silent..
<gildor> unfortunately, I won't bet on REAL use of ssd in laptop before 1 or 2 years
<gildor> for now, this kind of device are either "on" or "off"
<gildor> with "on" = full power and "off" = low power
<gildor> given this fact SSD have an average power consumption >= HDD
<gildor> which is no good for laptop ;-)
<flux> depends how you use it
<gildor> (sorry for being totally HS regarding OCaml)
<flux> :-)
<flux> I bet at my current usage (ircing), a non-spinning device would easily beat a spinning one
<flux> and it's inconvenient (not to mention a power peak) to spin down/up disks
<gildor> I think SSD maker (Samsung, Mtron, OCZ et al) will spend some more research years and they will probably get something really low power in a few years
<gildor> but SSD tech. is something really great
<flux> yes, I would hope the advancements in that field won't stop here :)
<flux> gildor, btw, could you consider using such a cooler while the device would be on your lap?
<gildor> which device ?
<flux> well, I suppose you don't have any device you'd use on your lap
<flux> but say you did use it for its intended purpose, cooling a laptop ;)
<gildor> I don't have any SSD if it is the device you are speaking about
<gildor> and my laptop doesn't need cooling
<gildor> (extra cooling I mean)
johnnowak has quit []
alexyk has quit []
sporkmonger has joined #ocaml
johnnowak has joined #ocaml
<fremo> a SSD seems very interesting for some reading intensive applications, seems not for random writing intensive... (considering writing are more frequent than reading due to cache memory...)
<fremo> (Still oot, sorry) I'm looking forward review or doing some benchmarks about database with SSD...
<flux> fremo, raided SSD's can give extremely nice numbers in db's. there was one benchmark with something around 9000 IOPs..
johnnowak has quit []
<fremo> Yep, very good for reading: http://www.bigdbahead.com/?p=37 "More Details on MySQL & SSD drive performance"
hkBst has joined #ocaml
<gildor> fremo: it depends on the kind of SSD you have
<gildor> fremo: there MLC (multi level cell) and SLC (single level cell)
rwmjones_ has joined #ocaml
rwmjones has quit [Remote closed the connection]
<gildor> MLC = good read/average write and SLC = good read/good write
<gildor> but price(SLC) >> price(MLC)
<gildor> in fact SLC has the same write/read speed
<fremo> great !
rwmjones_ is now known as rwmjones
|jedai| has quit [Read error: 110 (Connection timed out)]
|jedai| has joined #ocaml
rby has joined #ocaml
<gildor> rwmjones: ping
fschwidom has quit [Remote closed the connection]
<rwmjones> gildor, hi
<gildor> rwmjones: hi
|jedai| has quit [Read error: 110 (Connection timed out)]
|jedai| has joined #ocaml
<gildor> (if i don't answer, it is because my laptop has connection problem)
<gildor> just want to know why you introduce "%identity" in the current thread on caml-beginngers list
* rwmjones lols
<gildor> I am not sure beginner should begin with this ;-)
<rwmjones> the guy's a C programmer :-)
<gildor> you should keep the black magic for the end
<gildor> indeed, but showing that you can do as "hack"ish in OCaml as in C is not the best way
* gildor smile
<gildor> anyway, at least it shows that you have plenty solution
<gildor> rwmjones: do you plan to come to OCaml Meeting 2009 ?
<rwmjones> gildor, I would really like to, but unfortunately it seems the date is difficult for me. Actually I don't know for sure either way, and won't until really close to the time.
<gildor> rwmjones: what is the other date (if you can talk about it)
<rwmjones> basically the whole end/jan beginning/feb is very difficult for me to do because of other commitments, and I really won't know until right before.
<rwmjones> I'm hoping it will be possible though
<gildor> the inscription is closing on 25th january, do you think you will know at this time ?
* gildor hoping also that rwmjones can come
<gildor> I think it will be great to have some fedora/libvirt people at the meeting
<gildor> maybe you can even meet people from Citrix/Xensource
<rwmjones> gildor, I've met a few of them already. harrop is coming? he was consulting for XS last I heard
<rwmjones> gildor, anyway, yet I'll know by jan 25
<rwmjones> s/yet/yes/
<gildor> rwmjones: don't know if harrop is coming,
<gildor> rwmjones: XS guys told me that he was not working for them anymore
<gildor> rwmjones: BTW, I will try to apply i18n to unison using ocaml-gettext
<gildor> I think it will allow me to take time to solve your bug also
<fremo> gildor, flux: there is a driver for optimizing random writes apparently by using contiguous free space to do transform random writes into sequencial writes, that are much faster, but it's using a proprietary driver (MFT)...
<rwmjones> gildor, that's excellent .. we're using ocaml-gettext intensively, so any bug fixes / improvements are welcome
<rwmjones> provided they don't break the virt-* tools of course :-)
<gildor> I won't change interface for now, just correct bug/doc and probably add a tool to find translatable string
<rwmjones> gildor, here if you want programs that use ocaml-gettext: http://hg.et.redhat.com/virt/applications/
<gildor> rwmjones: there is also marionnet project using it
<gildor> but they have strange bugs
<flux> fremo, isn't that something any decent block layer device - or scsi firmware - would do? I thought the problem is when you truly have random writes that cannot be sequential (without remapping the blocks on the device anyway)?
<gildor> fremo: the problem is not with sequential write but with the way data is stored in each memory cell
<gildor> fremo: in MLC you store more data, but instruction to change the content is more complicated so it implies a loss of time
<mrvn> Filesystem like jfs (bad for big disks), zfs or btrfs will basically do linear writes.
<flux> jfs is bad for big disks?
<gildor> fremo: there is almost nothing you can do with a driver to change the number of instruction to update the content of a cell
<mrvn> flux: aparently it scales verry badly.
willb has joined #ocaml
<mrvn> flux: uses lots of ram and takles ages to mount
<mrvn> gildor: except not update the content of single cells
<gildor> mrvn: you will stil have to combine the byte to do it
<gildor> byte -> bit (sorry)
<rwmjones> gildor, while I remember, why doesn't Debian-legal have problems with mldonkey, as per here: https://bugzilla.redhat.com/show_bug.cgi?id=452584#c13
<mrvn> gildor: zfs and btrfs are COW filesystems. They don't overwrite blocks when their contents change, they write a new one. That allows it to easily write new data sequentially and avoids changing parts of a eraser block.
<rwmjones> gildor, it contains files without license info
<mrvn> rwmjones: so that the authors have a chance to clean things up before something more drastic is done
<gildor> rwmjones: ask smimram, he is the main maintainer for this
<fremo> flux: If I understand correctly, if you reallocate blocks randomly, you get fragmentation, the point is that SSD have very good perfs for random reads so reading perfs on a fragmented FS are still good (but bad on a normal HD)
<gildor> (for mldonkey, since I step out for this package)
<rwmjones> smimram, ping
<gildor> rwmjones: but legal people never spotted this at my time (maybe the script doesn't detect it)
<mrvn> fremo: as I understand it SSD has 0 seek time.
<fremo> gildor: sequencial writes are usually correct on SSD...
<gildor> mrvn: maybe but I think you still have to use specific way to update the content of the new cell (from (?, ?, ?) to (0, 1, 0))
<smimram> rwmjones: pong
<gildor> mrvn: this is not about overwriting but about setting the value
<mrvn> gildor: No, the problem is updatin (?, ?, ?) to (?, 0, ?).
<rwmjones> smimram, some licensing issues were found in mldonkey when we were reviewing it for Fedora
<fremo> mrvn: kind of, random writes are far slower that sequencial writes...
<mrvn> gildor: as I've been told writing a single byte has up to a second delay.
<gildor> mrvn: ok, you mean update a single bits
<gildor> mrvn: that is maybe the case
<smimram> rwmjones: thanks for letting me know, I'll dig into this as soon as I've got time...
<gildor> (probably, i am not an expert)
<mrvn> bits, bytes, 512 byte blocks. anything below the eraser block size
<gildor> but anyway, SLC are far better at doing this
<mrvn> Maybe SLC just have smaller erase blocks.
<gildor> i think SLC erase blocks = read block = 1
<mrvn> gildor: My argument is more that you can just do sequential writes with the right filesystem so what does it matter if random writes differ?
|jedai| has quit [Read error: 145 (Connection timed out)]
<mrvn> Give it another year to mature and the higher price will wipe the SLC disks from the market I think.
<flux> mrvn, does NTFS work this way too? because that's what matters market-size-wise?-)
|jedai| has joined #ocaml
<mrvn> flux: no idea
<gildor> mrvn: sorry to ask you, but where are you with libaio ?
<gildor> I am still looking to use it ;-)
<mrvn> gildor: I've added error handling yesterday so it is nearly ready.
<gildor> mrvn: ok, you will probably have a first user sooner than you think
<mrvn> hehe.
<mrvn> Hopefully I can do some work on it tonight and then upload a first draft.
<flux> where can I read about libaio? (the original)
<gildor> man aio_read
<mrvn> Nope.
<fremo> is it equivalent to select (or kpoll&co) ?
<mrvn> totaly different.
<fremo> and for performances ?
<mrvn> libaio uses the linux system calls for async I/O. The glibc and librt do use threads I believe.
<mrvn> fremo: With libaio you queue up reads/writes and they will complete in random order and you get a notice when they do.
<flux> is it both for networking and filesystem io?
<mrvn> flux: yes
<gildor> aio is known to be among the faster way to get data from disk
<gildor> faster than MMAP
<gildor> I think it is equivalent to i/o port completion on win32
<mrvn> Say you have a webserver that serves 2 connects. With select/poll/epoll it would block while it loads a page for one connection from disk. With libaio it fires of the request and then waits for anything to happen.
<mrvn> So while the page for the first connect is loading from disk it can still server pages for the second request from cache or fire off read requests for it.
<mrvn> The problem with mmap is that it can't do scatter gathering. It can't reorder read requests. The first access to an unmaped byte blocks till it is read.
<mrvn> Worse on writes as it first has to read the page before overwriting the first byte. It can't know the whole page is going to be overwritten anyway and skip the read.
<fremo> mrvn: select with fds in nonblock mode wont block...
<mrvn> fremo: on filesystem I/O?
<gildor> fremo: select on FS has an undefined status
<fremo> I think so, not sure...
<mrvn> afaik a read on a filesystem always just reads the data.
<fremo> so it will block ?e
<mrvn> It doesn't have a buffer that it considers available for reading like sockets or pipes. It considers the whole file available.
<fremo> too bad...
<fremo> can you still use select or something similar to know when data is available on a set of fd ? or do you have to try each IO with aio_error ?
<mrvn> static inline void io_prep_poll(struct iocb *iocb, int fd, int events)
<mrvn> You wait for an event and that can be a read, write, poll, fsync of fdsync event.
<mrvn> s/of/or/
thelema_ has quit [Read error: 104 (Connection reset by peer)]
<fremo> with an ocaml binding ? :)
<mrvn> that is what I'm working on.
<fremo> nice
<mrvn> Well, back to work so I have free time tonight.
<fremo> SVN: 0 commits, 0 ajouts
alexyk has joined #ocaml
|jedai| has quit [Operation timed out]
|jedai| has joined #ocaml
olgen has quit []
<kelaouchi> ils
|jedai| has quit [Read error: 60 (Operation timed out)]
|jedai| has joined #ocaml
pango has quit [Remote closed the connection]
pango has joined #ocaml
jeremiah has joined #ocaml
smimou has joined #ocaml
<gildor> rwmjones: you can use "noalloc" when you do allocate data in your C code ?
<rwmjones> gildor, lemme check
rby has quit ["Quitte"]
smimram has quit [Read error: 110 (Connection timed out)]
<gildor> rwmjones: If there is no caml_alloc in the called code, this is ok to use "noalloc"
<gildor> (just Val_int for example)
alexyk has quit []
|jedai| has quit [Read error: 60 (Operation timed out)]
<rwmjones> gildor, yes
|jedai| has joined #ocaml
<rwmjones> gildor, beware of indirect calls to allocation functions of course (eg. caml_copy_foo)
Camarade_Tux has joined #ocaml
<rwmjones> Camarade_Tux, the webkit binding looks like it could be really nice
<Camarade_Tux> rwmjones, thanks :)
<Camarade_Tux> I think I'll be able to make them RC by the end of the week
sporkmonger has quit []
sporkmonger has joined #ocaml
jonafan_ is now known as jonafan
|jedai| has quit [Connection timed out]
pango has quit [Remote closed the connection]
|jedai| has joined #ocaml
pango has joined #ocaml
Koordin has quit [Read error: 113 (No route to host)]
Koordin has joined #ocaml
<gildor> rwmjones: thanks
alexyk has joined #ocaml
OChameau has quit ["Leaving"]
psnively has joined #ocaml
<psnively> Happy New Year!
Koordin has quit [Read error: 60 (Operation timed out)]
Koordin has joined #ocaml
_zack has quit ["Leaving."]
alexyk has quit []
Camarade_Tux has quit ["Leaving"]
Camarade_Tux has joined #ocaml
alexyk has joined #ocaml
alexyk has quit [Client Quit]
alexyk has joined #ocaml
mohbana has joined #ocaml
<mohbana> what's the best available mode for emacs on ubuntu? tuareg or just ocaml?
alexyk has quit [Client Quit]
<hcarty> mohbana: I think most folks using emacs go with tuareg
Yoric[DT] has joined #ocaml
<Yoric[DT]> hi
alexyk has joined #ocaml
Koordin has quit [Read error: 104 (Connection reset by peer)]
alexyk_ has joined #ocaml
alexyk has quit [Read error: 104 (Connection reset by peer)]
alexyk_ has quit [Client Quit]
Snark has joined #ocaml
itewsh has joined #ocaml
alexyk has joined #ocaml
ygrek has quit [Remote closed the connection]
alexyk has quit []
jlouis has joined #ocaml
Stefan_vK1 has joined #ocaml
alexyk has joined #ocaml
alexyk has quit [Client Quit]
Snark has quit ["Ex-Chat"]
ikaros has quit [".quit"]
Stefan_vK has quit [Read error: 110 (Connection timed out)]
<mohbana> are there plans to review the ocaml syntax? compared to haskell it just seems verbose at some places
<flux> mohbana, actually ocaml comes with an alternative syntax, but I don't think it addresses that much
<flux> and then there is "the whitespace thing" for ocaml, which uses whitespace as a syntactic element, as haskell and python
<flux> I don't think that has been updated for a while, though
<Yoric[DT]> I've used the "revised syntax" for some time and I liked it.
<Yoric[DT]> Eventually, though, I dropped it because nobody understood my code.
<flux> personally I don't find ocaml syntax ugly, but as some seem to bring the issue up at times, perhaps there is some point to that
<flux> yoric[dt], it's not _that_ different is it?-)
<mohbana> can i except the revised syntax to be on every compiler from 3.10 onwards?
<Yoric[DT]> Well, I exaggerate a bit :)
<Yoric[DT]> mohbana: not 100% sure, the revised syntax has been revised at least once already...
<flux> it has?
<Yoric[DT]> Yeah, when going from Damien Doligez to Nicolas Pouillard, I believe.
<flux> do you know what kind of changes it had?
<Yoric[DT]> There's a summary somewhere.
<Yoric[DT]> Minor stuff, I believe.
<flux> in any case the concept of revised syntax's been around for quite a while, so I guess big things will not change
<flux> don't they infact teach that revised syntax at universities?
<Yoric[DT]> I've been teaching it last year.
<flux> who knows, there might even be large code bases written with it..
<Yoric[DT]> I'm not 100% sure which one I'll teach this year.
<Yoric[DT]> Gottago, though.
<Yoric[DT]> Talk to you later.
<mattam> Aren't there source-to-source translators?
<flux> I haven't used revised syntax, but I think there are
<flux> you can essentially just use the parser and the pretty printer module together
<Yoric[DT]> Well, camlp4 does original-to-revised and revised-to-original.
<mattam> Yeah that's what I thought.
<mattam> Just checking :)
<flux> how does it handle comments and whitespace, btw?
<flux> (but: bye yoric ;-))
alexyk has joined #ocaml
mjonsson_ has quit [Read error: 110 (Connection timed out)]
mjonsson_ has joined #ocaml
|jedai| has quit [Read error: 110 (Connection timed out)]
|jedai| has joined #ocaml
marmotine has quit ["mv marmotine Laurie"]
alexyk has quit []
psnively has quit []
sporkmonger has quit [Read error: 145 (Connection timed out)]
zerny has quit [Remote closed the connection]
alexyk has joined #ocaml
IWannaLog has joined #ocaml
|jedai| has quit [Read error: 110 (Connection timed out)]
|jedai| has joined #ocaml
alexyk has quit []
m3ga has joined #ocaml
snhmib has quit ["Good riddance!"]
|jedai| has quit [Read error: 110 (Connection timed out)]
|jedai| has joined #ocaml
<mrvn> How do I get ocamlbuild to create a .cmxa file from an .ml and .c file?
itewsh has quit ["There are only 10 kinds of people: those who understand binary and those who don't"]
alexyk has joined #ocaml
<mrvn> never mind. I use a different example and copy from there.
Morphous has quit [Read error: 110 (Connection timed out)]
Morphous has joined #ocaml
mal`` has joined #ocaml
willb has quit [Read error: 110 (Connection timed out)]