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)]