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)
malc has quit ["no reason"]
awwaiid has joined #ocaml
shang has joined #ocaml
<shang> Does anybody know how to get ocamlopt.opt installed? I installed OCaml, but the Conscript file I use for my schoolwork can't find ocamlopt.opt.
<awwaiid> did you try make opt.opt before make install?
<shang> no, i don't think so
<awwaiid> also, if that doesn't help, most likely you can edit the Conscript file to use just ocamlopt (or even just ocaml).
<awwaiid> yeah, you should do that so that it compiles and installes the ocamlopt.opt program.
<shang> should the RPM install ocamlopt.opt automatically?
<awwaiid> got me on that one.
<awwaiid> I always just install from source.
<shang> oh, ok
<shang> thanks
<awwaiid> no problem. someone in here might wake up eventually and know the answer :)
<shang> thanks, awwaiid, it worked
shang has quit ["Leaving"]
awwaiid has left #ocaml []
Yurik has joined #ocaml
Yurik has quit [Remote closed the connection]
__DL__ has joined #ocaml
Yurik has joined #ocaml
malc has joined #ocaml
malc has quit [carter.openprojects.net irc.openprojects.net]
mellum has joined #ocaml
Jiriki has quit [Read error: 104 (Connection reset by peer)]
Jiriki has joined #ocaml
jemfinch has quit [Read error: 104 (Connection reset by peer)]
jemfinch has joined #ocaml
Submarine has joined #ocaml
<Submarine> hi
<jemfinch> hey
<Submarine> Ohio State:*
<Submarine> Hehe. I was in Cincinatti not long ago.
<Submarine> Actually, passing through the airport between Paris and Portland, OR.
<jemfinch> I live in cincinnati originally, actually.
<jemfinch> lived there since 1986.
<Submarine> Is O'Caml big in the US?
<jemfinch> one funny thing about cincinnati's airport is that it's not in cincinnati. It's not even in Ohio -- it's actually in kentucky.
<Submarine> Yes, I heard passengers mentioning Kentucky.
<Submarine> I must say that the only things I know out of Kentucky are 1/ Deep Purple's _Kentucky Woman_ 2/ KFC.
<jemfinch> :)
<Submarine> I'm sadly surprised by the lack of efficiency of mlgmp.
<jemfinch> what do you mean?
<Submarine> It looks as though GNU MP is tailored for imperative code.
<Submarine> I suspect it performs badly if one asks to initialize many variable never to be reused.
<jemfinch> oh, large initialization cost?
<Submarine> malloc()
<Submarine> I suspect it. I think of conducting benchmarks when I'd just allocate stuff.
<jemfinch> that stinks.
<Submarine> Indeed.
<jemfinch> is it kind of surprising that no one's implemented the gnu mp stuff in O'Caml itself?
<mellum> jemfinch: what would be the advantage?
<jemfinch> one could tailor it to functional use, at least.
<mellum> jemfinch: but the routines would be a lot slower...
<jemfinch> they don't seem like they'd have to be.
<mellum> jemfinch: bignum routines really need to be done in Assembler for most machines... compilers can't exploit carry bits etc.
<Submarine> The problem is with memory allocation.
<Submarine> Perhaps it'd be worthy to replace calls to malloc() by calls to the GC allocator.
<Submarine> But I think that real improvements can only come from linear typing.
<mellum> Submarine: Yes, that sounds like a good idea.
<mellum> linear typing?
<Submarine> Think linear logic.
<Submarine> What you want is to know when some value will never ever be used again.
<Submarine> Then the memory space used by that value is ready to be reclaimed, correct?
<Submarine> Think of using this as a buffer for other values.
<Submarine> Think that if you will never use x again, then x+y may just be stored at x's location.
<Submarine> But, afaik, one thing would be even better in my case: unboxing the first limb of a GMP value.
<jemfinch> explain that...
<Submarine> Ok. When you have an extended precision value, it consists in several words, called "limbs" in the GMP jargon.
<Submarine> Very often, manipulated values fit in one single limb.
<Submarine> An obvious optimization is instead of using a pointer to a single limb, store the limb and a NULL pointer.
<Submarine> You may want to always store one limb of any number. For instance, the lowest order one.
<Submarine> This would prevent Gmp from doing too many calls to malloc().
<Submarine> I think of contacting people about this.
alq666 has joined #ocaml
<mellum> Submarine: I'd think one-limb numbers would be pretty rare...
alq666 has left #ocaml []
<Submarine> mellum: Well, anything fitting in one single 32-bit word is one-limb on x86.
<Submarine> mellum: This depends on applications.
<Submarine> I'm not using GMP to do fancy computations. I'm just using them to compute sound bounds that don't suffer from overflow or wrap-around modulo 2^n.
Submarine has quit ["Client Exiting"]
owll has joined #ocaml
owll has quit [Client Quit]
Submarine has joined #ocaml
graydon has joined #ocaml
Yurik has quit [Remote closed the connection]
smkl has quit [Read error: 104 (Connection reset by peer)]
smkl has joined #ocaml
scipient has quit ["."]
Submarine has quit ["Client Exiting"]
two-face has joined #ocaml
two-face has quit ["Client Exiting"]
__DL__ has quit [Remote closed the connection]
graydon has left #ocaml []
malc has joined #ocaml