<Guest7517>
kig: can I really do 'match e:expr with None -> one thing | Some (bar expr) -> Foo((bar e), l) ...?
<Guest7517>
or did you mean something slightly different?
<kig>
Some expr -> Foo(Some (bar expr), l)
<kig>
is what i meant
<kig>
well, it's just a guess
<Guest7517>
kig: unfortunately, that doesn't seem to be working...
<Guest7517>
kig: actually, wait, as i play more i'm getting somewhere... a new and exciting compiler error!
<Raevel>
oh boy oh boy
<Guest7517>
kig: actually, that worked!
<Guest7517>
thanks very much. I was incorrectly typing the version you gave me.
<kig>
:)
<kig>
yw
authentic has joined #ocaml
<kig>
type 'a foo = 'a option * int;; let mapFoo f (e,l) = match e with None -> (e,l) | Some x -> (Some (f x), l);; mapFoo ((+) 2) (Some 3, 5);; (* etc *)
authentic has left #ocaml []
authentic has joined #ocaml
authentic has left #ocaml []
authentic has joined #ocaml
seafood has quit [Read error: 101 (Network is unreachable)]
pango has quit [Remote closed the connection]
pango has joined #ocaml
ulfdoz has quit ["deprecated"]
hsuh has joined #ocaml
hsuh has quit [Remote closed the connection]
johnnowak has quit []
pango has quit [Remote closed the connection]
mjonsson has joined #ocaml
pango has joined #ocaml
ched_ has joined #ocaml
<mjonsson>
Camarade_Tux: Thanks
seafood has joined #ocaml
ched has quit [Read error: 110 (Connection timed out)]
seafood has quit [Read error: 110 (Connection timed out)]
longh has quit [Read error: 104 (Connection reset by peer)]
ozy` has quit ["Shop for a whopper"]
bzzbzz has quit ["leaving"]
Guest7517 has quit [Read error: 110 (Connection timed out)]
johnnowak has joined #ocaml
<johnnowak>
hello all. does anyone know to what degree rectypes are supported in ocaml? are they still something of an experiment?
Mr_Awesome has quit [Read error: 110 (Connection timed out)]
seafood has quit [Read error: 110 (Connection timed out)]
Associat0r has quit []
Mr_Awesome has quit [Read error: 110 (Connection timed out)]
Mr_Awesome has joined #ocaml
seafood has joined #ocaml
seafood_ has joined #ocaml
seafood has quit [Read error: 101 (Network is unreachable)]
mishok13 has joined #ocaml
seafood has joined #ocaml
johnnowak has quit []
seafood has quit [Read error: 60 (Operation timed out)]
ulfdoz has joined #ocaml
seafood_ has quit [Read error: 110 (Connection timed out)]
yangsx has joined #ocaml
<yangsx>
what could be the possible causes of segmentation fault of my OCaml program that uses just unix, str and gdome2 packages? Any wild guess?
<yangsx>
or pointers to trace the problem?
<tsuyoshi>
did you try getting a backtrace?
<flux>
yangsx, both native and byte code?
<flux>
of course, if I had to pick one of those modules to be the problem, I'd choose gdom2, whatever it is :)
<flux>
..bindings to a C-library..
<flux>
if it's crashing in GC, I'd point my finger even more firmly towards it
<yangsx>
flux: yes, I also suspect gdome2, but how to trace the cause of the issue is beyond me
<yangsx>
probably I should avoid using it
<flux>
yangsx, well, I you can use gdb on a compiled binary and get a backtrace
<flux>
s/I //
<flux>
or just use gdb on the binary plus the produced core dump (ulimit -c unlimited first)
<yangsx>
that'll be painful to go through, I guess. Is there more detailed guide using gdb for ocaml?
<flux>
I don't think so
<flux>
but it's just: gdb ./proggy.opt run args witness segmentation fault bt
<yangsx>
flux: thanks, trying
filp has joined #ocaml
<det>
catchsegv <program> <args ...>
<det>
is an even easier way
<flux>
nice, I didn't know that
<yangsx>
det: really nice
<det>
catchsegv doesn't use gdb though
<tsuyoshi>
well the problem most likely isn't in the ocaml part of the program but in the c part
<flux>
unfortunately most problems with interfacing C comes from dealing with GC, and if you get a segmentation fault from the GC, it's quite difficult to track down the problem
<tsuyoshi>
so what I was thinking when I said "getting a backtrace" was, compile the gdome2 stubs with debugging enabled, and then run that in gdb until you get a segfault
<tsuyoshi>
flux: yeah that is true
<flux>
well, getting any kind of backtrace is a start
<flux>
if it doesn't give anything useful, then recompiling is a good next step
<flux>
perhaps someone(TM) should write an instrumenting GC patch for ocaml, which would help tracking down these issues..
<flux>
jane street ocaml summer project?-)
<tsuyoshi>
instrumenting gc?
<flux>
something that would collect enough information that it could, instad of segfaulting, tell "internal inconsistency, attempted to refer to ptr x allocted by fun y"
<flux>
caml.inria.fr is back online \o/
<flux>
I guess it takes a while for the mailing list posts to start trickling
<det>
What about when the GC moves something due to a collection while in a C function that doesn't register a value as a root
<det>
I would expect that to be the common case of segfault from GC
<flux>
det, you can actually try if that is the problem by disabling GC compaction
<flux>
of course, that is not a proof, but it may be indicative of such a bug
<det>
compaction is only for the old generation though, right ?
<det>
young generation uses copy collection, I thought
<flux>
actually, how is heap compaction disabled? I don't see anything to that effect in Gc.mli..
<flux>
I must admit I'm not well versed with gc's
<det>
" ... You can disable it by using Gc.set with the "max_overhead"
<det>
field set to a suitably high value, as documented in the Gc module.
<det>
"
<det>
but doing that can't prevent all moving of objects, just compaction of long-lived objects
mishok13 has quit [Connection timed out]
mishok13 has joined #ocaml
vbmithr has joined #ocaml
ygrek_ has joined #ocaml
Vital303` has quit [Read error: 104 (Connection reset by peer)]
rwmjones_ has joined #ocaml
GustNG has joined #ocaml
GustNG1 has joined #ocaml
yangsx has quit [Read error: 110 (Connection timed out)]
GustNG has quit [Read error: 110 (Connection timed out)]
GustNG has joined #ocaml
ozy` has joined #ocaml
GustNG1 has quit [Read error: 104 (Connection reset by peer)]
LeCamarade has joined #ocaml
Yoric[DT] has joined #ocaml
<Yoric[DT]>
hi
GustNG1 has joined #ocaml
LeCamarade has quit [Read error: 60 (Operation timed out)]
<Yoric[DT]>
Still no inria.fr?
<Yoric[DT]>
That's worrying.
<flux>
no?
<flux>
caml.inria.fr works for me, and email from the list is coming in
<flux>
nah, never mind, it's down again :-)
<Yoric[DT]>
Well brion.inria.fr still doesn't work for me.
<Yoric[DT]>
:/
<flux>
what's there?
<Yoric[DT]>
The Camlp4 wiki.
GustNG has quit [Read error: 110 (Connection timed out)]
mfp has quit [Read error: 104 (Connection reset by peer)]
authentic has quit [Read error: 113 (No route to host)]
gim has quit []
<Yoric[DT]>
Yeah, inria.fr works again (for now).
mfp has joined #ocaml
OChameau has joined #ocaml
_zack has joined #ocaml
<Yoric[DT]>
thelema: ping
sporkmonger has joined #ocaml
<thelema>
Yoric[DT]: pong
<Yoric[DT]>
How do you do?
<thelema>
I'm just waking up.
<Yoric[DT]>
Ok, I'm not going to cloud your mind with too much OCaml, then :)
<Yoric[DT]>
I've committed a few bug fixes on my recent additions to Rope, UTF8, etc.
<thelema>
go ahead, it can't hurt
<Yoric[DT]>
Well, mostly, I wanted to ask if you're willing to bring UTF8 and Rope to feature-parity with String and if so when you think you can have it done.
_zack has quit ["Leaving."]
<thelema>
is that request to bring both, or is rope the favored interface, and people will have to deal with less functions on UTF8.t
<thelema>
I think you committed the wrong fix to is_uppercase
<Yoric[DT]>
Gasp.
<Yoric[DT]>
You're correct.
<Yoric[DT]>
I'd say that Rope is the favored interface.
<Yoric[DT]>
However, my guess is that you'll need to implement these functions in UTF8 anyway to get them to work in Rope.
ygrek_ has quit [Remote closed the connection]
<thelema>
also, I don't know the use of Rope.of_bulk_backwards / Rope.bulk_backwards
<thelema>
the bulk part isn't reversed
<Yoric[DT]>
I grant you it may not be useful at all.
<Yoric[DT]>
We should perhaps just remove it for the moment.
<thelema>
it reminds me of little-endian words -- partly backwards, partly forwards
<Yoric[DT]>
I just wrote it because I was on a [enum]/[backwards] writing spree.
<thelema>
I guessed.
ygrek_ has joined #ocaml
<thelema>
oh yeah, problem with batteries under 3.11 -- type-conv doesn't compile under the current beta
<Yoric[DT]>
:/
<thelema>
(which means I'm a bit stuck on batteries development and need to find the CVS revision of my previous build (which worked)
<thelema>
or wait until this bug gets fixed)
<Yoric[DT]>
Well, I hope Jane Street fixes this.
<Yoric[DT]>
Other than that, I've been giving some thought to Community OCaml.
<Yoric[DT]>
If I'm right, Symbiosis may be quite useful there.
<Yoric[DT]>
i.e. bundle symbiosis in addition to ocamlbuild
<thelema>
symbiosis auto-fetches dependencies?
<Yoric[DT]>
this should be able to build and install (and download, if necessary) any dependency
<Yoric[DT]>
It seems to.
<Yoric[DT]>
I haven't tried it, though.
* thelema
thinks symbiosis would be more appropriate for batteries - I plan on no external dependencies for community-ocaml, just having all the code 'in the box'
<Yoric[DT]>
The point being that (I think) can build and install .tgz .
<Yoric[DT]>
The point being that (I think) Symbiosis can build and install .tgz .
<Yoric[DT]>
(or directories, Makefiles, whatever)
<Yoric[DT]>
Which means that you can add the source code for all your dependencies to your .tgz.
<Yoric[DT]>
And write a Makefile which first calls the usual OCaml Makefile, then politely asks Symbiosis to build Batteries and all other dependencies.
<Yoric[DT]>
Now, don't take my word on this, but that's my hunch.
<thelema>
We'll see. I've gotten involved in ocaml's build process enough to know that it's more complex than I'd like.
<Yoric[DT]>
ok
<thelema>
I do like the idea of symbiosis, and will play with it.
* thelema
has ocaml emails -- looks like inria's back up
<Yoric[DT]>
yep
middayc has joined #ocaml
authentic has joined #ocaml
pierre- has joined #ocaml
* thelema
will be late -- bye
<Yoric[DT]>
bye
Associat0r has joined #ocaml
Amorphous has quit [Read error: 110 (Connection timed out)]
Amorphous has joined #ocaml
rwmjones_ has quit [Read error: 104 (Connection reset by peer)]
mjonsson has quit [Read error: 110 (Connection timed out)]
middayc has quit []
Linktim has joined #ocaml
pango has quit [Remote closed the connection]
pango has joined #ocaml
Linktim_ has joined #ocaml
Linktim has quit [Read error: 110 (Connection timed out)]
_JusSx_ has joined #ocaml
Linktim has joined #ocaml
mishok13 has quit [Read error: 110 (Connection timed out)]
filp has quit ["Bye"]
Linktim_ has quit [Read error: 110 (Connection timed out)]
Linktim_ has joined #ocaml
Camarade_Tux has joined #ocaml
Linktim has quit [Read error: 110 (Connection timed out)]
<Camarade_Tux>
I can't believe it : both caml.inria.fr and ocaml-programming.de work :)
<Yoric[DT]>
Again ?
<Yoric[DT]>
brion.inria.fr is up
<Yoric[DT]>
Oh, sorry, I misread your message :)
<Camarade_Tux>
haha, considering your reaction, I had that impression ;)
Linktim has joined #ocaml
itewsh has joined #ocaml
Linktim_ has quit [Read error: 60 (Operation timed out)]
ygrek_ has quit [Remote closed the connection]
Linktim has quit [Read error: 104 (Connection reset by peer)]
ygrek_ has joined #ocaml
Linktim has joined #ocaml
Linktim has quit [Connection reset by peer]
<Camarade_Tux>
anybody know how to find which package selected another one as a dependency ?
<Camarade_Tux>
I'm having troubles with conf-tcltk
middayc has joined #ocaml
vixey has joined #ocaml
Linktim has joined #ocaml
<Yoric[DT]>
Camarade_Tux: besides reading META files?
<Yoric[DT]>
You may try with ocamlfind query
Linktim_ has joined #ocaml
<Camarade_Tux>
Yoric[DT], the fast way :D
<Camarade_Tux>
thanks, trying (I checked a few and couldn't find why it was [still] selected)
middayc has left #ocaml []
filp has joined #ocaml
Submarine has joined #ocaml
longh has joined #ocaml
Iskr has joined #ocaml
jlouis has joined #ocaml
Linktim has quit [Read error: 110 (Connection timed out)]
Iskr has left #ocaml []
Linktim_ has quit [Read error: 110 (Connection timed out)]
<flux>
soo, was there a nice substring module around?
<flux>
I feel like I could do some optimizing to that mailbox reader..
<flux>
well, here's one: modeemi.fi/~flux/software/darcs/fur3/substring.ml and .mli
ozy` has quit []
* Yoric[DT]
's team is crazy.
<Yoric[DT]>
flux: well, otherwise, ask thelema :)
<flux>
and turns out I actually want to concatenate substrings.. hmph.
* Camarade_Tux
is starting to think you can't have godi successfully download at once all the package you need, there'll always be at least two hosts not responding
<flux>
camarade_tux, I've done it \o/
<flux>
but that's definitely a downside
<mbishop>
needs more mirrors?
<flux>
or any mirrors?
<Camarade_Tux>
well, it has a mirror, but only one afaik
<hcarty>
Camarade_Tux: There are others, but I'm not sure how the selection logic works
<Camarade_Tux>
hcarty, afaik it's only fallback
<mbishop>
what do you think a godi mirror would require space/bandwidth wise?
<hcarty>
mbishop: I provide a mirror. It's a few hundred megabytes of space
<hcarty>
And probably a similar amount of bandwidth
<hcarty>
I haven't checked the specific numbers in a while
<Camarade_Tux>
I must be the most bandwith-consuming person around
rwmjones_ has joined #ocaml
<Camarade_Tux>
my script definitely needs to locally cache the files, I don't know how to do that though
* mbishop
wonders if rwmjones_ could get a redhat mirror going :P
<Camarade_Tux>
and godi has been waiting for lablgtk for about 15 minutes now, I can download it by hand but godi is desperately waiting, anyway, killing it, again...
<rwmjones_>
mbishop, gildor is setting up a mirror of much ocaml software at the moment
<Camarade_Tux>
it's a only on a "dedibox" though, it can do quite a lot but is still quite small
<Camarade_Tux>
anyway, that will be wonderful, it seems an incredible number of people got ***** after this week-end outage
bla has quit [Read error: 110 (Connection timed out)]
<Camarade_Tux>
btw, has anyone done an ocaml mode for zsh ?
pierre- has quit [Read error: 110 (Connection timed out)]
<flux>
what would it do?
<flux>
command line expansion?
<Camarade_Tux>
flux, yeah, mostly
<Camarade_Tux>
completion of cm(x)a files for instance, half the time you get the names wrong (for new libraries)
<flux>
half the times doing what?
<flux>
I just use ocamlfind..
<flux>
and makefiles ;)
<Camarade_Tux>
but ocamlfind requires you to learn and I intend to make people who do not necessarily know ocamlfind use what I'm preparing ;)
<Camarade_Tux>
(plus everything is not ocamlfind-compatible unfortunately)
<Camarade_Tux>
and sometimes, you don't know *exactly* how to spell a library name, zsh can correct the names :)
<hcarty>
Camarade_Tux: It may be easier to write the META file to make a library ocamlfind compatible than to add zsh expansion...
<hcarty>
Camarade_Tux: Or ocamlfind + zsh, since "ocamlfind -list" gives you a list of package names usable in completion
<Camarade_Tux>
hcarty, lol, that's terribly true, I hadn't though of it :p
<flux>
yeah, I just write META files to libraries
<flux>
90% of time it's trivial
<Camarade_Tux>
hcarty, yes, second option I had in mind ;)
<flux>
it's just soo much nicer to use ocamlfind ;)
<hcarty>
GODI, Fedora and Debian include META files for all of the libraries they have packaged, as I understand
<flux>
as it handles dependencies too
* Camarade_Tux
wonders if there's a zsh mode for pkg-config...
<Camarade_Tux>
hcarty, as far as I've seen, it's the case, however, I'm not using distribution packages
<flux>
thelema, so how fast is Rope.find?
<hcarty>
Camarade_Tux: I've pulled them from source packages before. But as flux said, META files are generally very simple to write once you have done it a few times
<flux>
I wonder if it'd be easier to replace my strings with ropes and actually get a performance boost due to reduced gc load
<flux>
but I suppose I would need to copy input buffers to ropes which will add to the allocation rate
* Yoric[DT]
isn't aware of performance measurements in Rope yet.
<flux>
I can't efficiently to read directly into a new rope from an in_channel, can I?
<Camarade_Tux>
hcarty, I don't know yet how I'll deal with those packages, I'm making a livecd and nearing completion, my biggest problem is with some godi packages being unreachable at times though
<Camarade_Tux>
anyway, gotta go, Unreal Tournament is waiting for me :)
Camarade_Tux has quit ["Leaving"]
bla has joined #ocaml
itewsh has quit [Read error: 113 (No route to host)]
tomh has joined #ocaml
Snark has quit ["Ex-Chat"]
jeddhaberstro has joined #ocaml
rwmjones_ has quit ["Closed connection"]
itewsh has joined #ocaml
itewsh has quit ["KTHXBYE"]
itewsh has joined #ocaml
itewsh has quit [Client Quit]
itewsh has joined #ocaml
hkBst has joined #ocaml
GustNG1 has quit ["Leaving."]
ygrek_ has quit [Remote closed the connection]
<flux>
ocamldoc sure is slow
<flux>
just upgrading my godi installation and ocamlnet's ocamldoc has been running for three minutes now
<flux>
there must be some algorithmic flaw..
Submarine has quit [Remote closed the connection]
* Yoric[DT]
is happy not to be the only one who feels so.
itewsh has quit [Remote closed the connection]
itewsh has joined #ocaml
itewsh has quit [Remote closed the connection]
itewsh has joined #ocaml
filp has quit ["Bye"]
<Yoric[DT]>
flux: for the moment, you can read from an [input] and you can easily transform a [in_channel] into an [input].
<Yoric[DT]>
(I'm trying to do the converse, which is somewhat harder)
sporkmonger_ has joined #ocaml
sporkmonger_ has quit [Client Quit]
Yoric[DT] has quit [Remote closed the connection]
itewsh has quit [Remote closed the connection]
sporkmonger has quit [Read error: 110 (Connection timed out)]
Camarade_Tux has joined #ocaml
<Camarade_Tux>
for the record, I just downloaded a quite important set of godi packages (from ocaml-3.10 to ocsigen) and the cumulative was less than 20MB, so really not much
<Camarade_Tux>
can anyone check that the godi-sqlite3 package correctly configures (not necessarily builds) ? thanks
<Camarade_Tux>
the check for libsqlite needs to be linked with -ldl too
jlouis has quit ["Leaving"]
hkBst has quit [Connection reset by peer]
gildor_ has joined #ocaml
gildor has quit [Read error: 104 (Connection reset by peer)]