mfp changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 3.11.2 released | Inscription for OCaml Meeting 2010 is opened http://wiki.cocan.org/events/europe/ocamlmeetingparis2010
slash_ has quit [Quit: Lost terminal]
thrasibule has joined #ocaml
hcarty has quit [Remote host closed the connection]
yakischloba has quit [Quit: Leaving.]
_unK has quit [Remote host closed the connection]
avsm1 has joined #ocaml
avsm has quit [Ping timeout: 256 seconds]
joewilliams is now known as joewilliams_away
CcSsNET has joined #ocaml
krankkatze_ has quit [Quit: si ça continue comme ça :D]
BigJ has quit [Remote host closed the connection]
enthymene has quit [Quit: router hop.]
threeve has joined #ocaml
seanmcl has joined #ocaml
travisbrady has quit [Quit: travisbrady]
valross has joined #ocaml
tmaedaZ is now known as tmaeda
seanmcl has quit [Quit: seanmcl]
yakischloba has joined #ocaml
joewilliams_away is now known as joewilliams
Mr_Awesome has joined #ocaml
maskd has quit [Quit: leaving]
pad has quit [Remote host closed the connection]
enthymene has joined #ocaml
caligula_ has joined #ocaml
caligula has quit [Ping timeout: 264 seconds]
jao has quit [Ping timeout: 276 seconds]
Mr_Awesome has quit [Read error: Connection reset by peer]
thrasibule has quit [Ping timeout: 265 seconds]
Drk-Sd has quit [Quit: {'EXIT', Drk-Sd, "bye"}]
Shoggoth has joined #ocaml
tmaeda is now known as tmaedaZ
tmaedaZ is now known as tmaeda
valross has quit [Remote host closed the connection]
tmaeda is now known as tmaedaZ
threeve has quit [Quit: threeve]
ulfdoz has joined #ocaml
Alpounet has quit [Ping timeout: 240 seconds]
joewilliams is now known as joewilliams_away
Mr_Awesome has joined #ocaml
M| has quit [Ping timeout: 245 seconds]
M| has joined #ocaml
det has quit [Remote host closed the connection]
valross has joined #ocaml
ttamttam has joined #ocaml
enthymene has quit [Quit: looking for my other third...]
ulfdoz has quit [Ping timeout: 246 seconds]
fabjan has quit [Read error: Operation timed out]
fabjan has joined #ocaml
ygrek has joined #ocaml
det has joined #ocaml
f[x] has joined #ocaml
ygrek has quit [Ping timeout: 245 seconds]
demitar has quit [Ping timeout: 265 seconds]
_zack has joined #ocaml
demitar has joined #ocaml
_zack has quit [Client Quit]
tmaedaZ is now known as tmaeda
enthymene has joined #ocaml
matthieu has quit [Remote host closed the connection]
ygrek has joined #ocaml
det has quit [Read error: Connection reset by peer]
det has joined #ocaml
avsm has joined #ocaml
avsm1 has quit [Ping timeout: 252 seconds]
Alpounet has joined #ocaml
pimmhogeling has joined #ocaml
enthymene has quit [Quit: sleep!]
ikaros has joined #ocaml
valross has quit [Quit: Ex-Chat]
sepp2k has joined #ocaml
Yoric has joined #ocaml
munga has joined #ocaml
maskd has joined #ocaml
avsm has quit [Quit: Leaving.]
pimmhogeling has quit [Ping timeout: 265 seconds]
<Camarade_Tux> hmmmm, why do I get ocamldebug in the inria binaries? the doc clearly says it's only available in cygwin and not in the native port
<Camarade_Tux> and it seems to work
pimmhogeling has joined #ocaml
<ttamttam> Also in reverse direction ?
ikaros has quit [Quit: Leave the magic to Houdini]
_unK has joined #ocaml
<Camarade_Tux> no
<Camarade_Tux> I found that out later on
<Camarade_Tux> it's basically a time-travelling debugguer that won't go back in time :-)
_zack has joined #ocaml
MrHeavy has quit [Ping timeout: 256 seconds]
munga has quit [Ping timeout: 258 seconds]
<ttamttam> Camarade_Tux: maybe not in documentation, but the current status of the debugger should be detailed in the Changelog file, I think
_andre has joined #ocaml
__marius__ has quit [Ping timeout: 260 seconds]
<Camarade_Tux> todo: complain that "break @ [module] line" is not very clear: should be "#line" ><
__marius__ has joined #ocaml
<Camarade_Tux> ttamttam: I remember something about changes to ocaldebug on windows but I don't really feel like reading the changelog right now ;p
<Camarade_Tux> or not... ><
<Camarade_Tux> about windows support for ocamldebug, I stumbled on the 3.11 release notes which mention ocamldebug as being "available but without the replay feature"
avsm has joined #ocaml
munga has joined #ocaml
tommy2002 has joined #ocaml
tommy2002 has quit [Remote host closed the connection]
thrasibule has joined #ocaml
Snark has joined #ocaml
Shoggoth has quit [Quit: Ex-Chat]
krankkatze has joined #ocaml
boscop has joined #ocaml
avsm has left #ocaml []
thrasibule has quit [Ping timeout: 265 seconds]
seanmcl has joined #ocaml
threeve has joined #ocaml
threeve has quit [*.net *.split]
threeve has joined #ocaml
threeve has quit [Remote host closed the connection]
Drk-Sd has joined #ocaml
rwmjones has quit [Ping timeout: 245 seconds]
Drk-Sd is now known as drk-sd
rwmjones has joined #ocaml
Alpounet has quit [Ping timeout: 265 seconds]
mbishop_ has joined #ocaml
mbishop has quit [Read error: Operation timed out]
matthieu has joined #ocaml
bzzbzz has joined #ocaml
pimmhogeling has quit [Ping timeout: 256 seconds]
pimmhogeling has joined #ocaml
joewilliams_away is now known as joewilliams
derdon has joined #ocaml
ttamttam has quit [Quit: Leaving.]
jcaose has joined #ocaml
sepp2k has quit [Remote host closed the connection]
mjonsson has quit [Ping timeout: 246 seconds]
Submarine has joined #ocaml
mjonsson has joined #ocaml
mjonsson has quit [Read error: Operation timed out]
mjonsson has joined #ocaml
zhijie has quit [Quit: Leaving.]
jao has joined #ocaml
sepp2k has joined #ocaml
<Camarade_Tux> gildor: btw, while I have it in mind, ocaml-fileutils needs an lstat() function
<Camarade_Tux> (will try to fill a bug if I don't forget)
f[x] has quit [Read error: Operation timed out]
drk-sd has quit [Quit: {'EXIT', Drk-Sd, "bye"}]
rwmjones has quit [Ping timeout: 256 seconds]
thieusoai has joined #ocaml
BigJ has joined #ocaml
ygrek has quit [Ping timeout: 245 seconds]
Yoric has quit [Quit: Yoric]
Alpounet has joined #ocaml
ttamttam has joined #ocaml
rwmjones has joined #ocaml
ulfdoz has joined #ocaml
gildor has quit [Quit: leaving]
gildor has joined #ocaml
<gildor> Camarade_Tux: or a stat ~dereference
<gildor> see "man stat"
pad has joined #ocaml
munga has quit [Ping timeout: 245 seconds]
_zack has quit [Quit: Leaving.]
travisbrady has joined #ocaml
jao has quit [Remote host closed the connection]
slash_ has joined #ocaml
tmaeda is now known as tmaedaZ
Drk-Sd has joined #ocaml
Drk-Sd has quit [Client Quit]
Drk-Sd has joined #ocaml
Submarine has quit [Quit: Leaving]
_zack has joined #ocaml
thieusoai has quit [Quit: Leaving]
_andre has quit [Quit: leaving]
_unK has quit [Remote host closed the connection]
_unK has joined #ocaml
enthymene has joined #ocaml
jao has joined #ocaml
Associat0r has quit [Quit: Associat0r]
bzzbzz has quit [Quit: leaving]
Associat0r has joined #ocaml
Associat0r has quit [Ping timeout: 240 seconds]
<mrvn> functor (Prev : LINK_TYPE) -> functor (Next : LINK_TYPE) -> struct type 'a t = 'a Prev.t ... end
<mrvn> Can I tell ocaml that type'a t = 'a Next.t too?
Snark has quit [Quit: Ex-Chat]
yannnnn has joined #ocaml
yannnnn has quit [Quit: Leaving]
<Alpounet> mrvn, doesn't work with the "with" keyword here ?
<Camarade_Tux> nice, looks like there's actually a US patent on linked lists :-) http://www.patentstorm.us/patents/7028023.html
Yoric has joined #ocaml
sepp2k1 has joined #ocaml
sepp2k has quit [Ping timeout: 245 seconds]
_zack has quit [Quit: Leaving.]
pimmhogeling has quit [Ping timeout: 265 seconds]
bzzbzz has joined #ocaml
<thelema> Camarade_Tux: auciliary pointers for traversing the list in different sequences
<thelema> *aux
<thelema> i.e. they patented skip lists
ttamttam has quit [Quit: Leaving.]
<Camarade_Tux> yup, they say linked lists however, guess they're trying to be as broad as possible
<Camarade_Tux> I'm going to patent contiguous memory and 128bit
<mrvn> Sorry, the bit was patented by M$ last year.
<mrvn> Alpounet: How would that look?
ulfdoz has quit [Ping timeout: 256 seconds]
<Alpounet> mrvn, oh you mean that Prev.t = Next.t = 'a t ?
<mrvn> Alpounet: yes
<Alpounet> hmm
<Alpounet> I don't see, then
<mrvn> Prev has a get_link and Next has a get_link and I want Prev.get_link (Next.get_link e) to work.
<mrvn> A bidirectional iterator.
<mrvn> It complains because Prev.get_link wants a 'b t while Next.get_link returns 'a t.
<thelema> functor (prev : LINK_TYPE) -> functor (Next: LINK_TYPE with t = Prev.t) -> ...
enthymene is now known as enth|officeparty
<mrvn> Nearly. functor (Next: SLINK_TYPE with type 'a t = 'a Prev.t) ->
<thelema> you have that, and it's not working?
<mrvn> it is working I think.
<thelema> good.
<thelema> That's a non-obvious part of multiple functor application.
<mrvn> let self x = Prev.get_link (Next.get_link x)
<mrvn> val self : 'a Next.t -> 'a Prev.t
<thelema> yay
<mrvn> Looks odd though.
<thelema> agreed - some type annotations might help
<mrvn> yep.
slash_ has quit [Quit: Lost terminal]
<thelema> or just give the correct interface in the .mli
krankkat` has joined #ocaml
<mrvn> The second functor in the sif also doesn't show as SLINK_TYPE
<mrvn> s/sif/sig/
krankkatze has quit [Ping timeout: 268 seconds]
<thelema> it's not SLINK_TYPE, it's SLINK_TYPE with ...
<mrvn> I would like something like module type LINKED = sig type 'a t = { link : 'a t; .. } end module F = functor (L : LINKED) -> struct end module M = struct type 'a t = { prev : 'a t; next : 'a t; data : int; } end module ML = F(M with type 'a t.link = 'a M.t.prev)
<mrvn> http://paste.debian.net/62319/ That is what I have now
<mrvn> The second half is ocamlopt -i output
ikaros has joined #ocaml
smimou has quit [Read error: Connection reset by peer]
krankkat` has quit [Remote host closed the connection]
krankkatze has joined #ocaml
<thelema> mrvn: that Next in the -i output is equivalent to (SLINK with type 'a t = 'a Prev.t) - the inferred output is not as good as the original source
<mrvn> thelema: That was what I was saying
<thelema> so just edit the mli by hand, no?
<mrvn> yep.
<thelema> ok, as long as there's no problem.
<thelema> maybe we should catalog these failings of -i somewhere
<mrvn> The only problem is that unless you write an .mli file it is not obvious the types are correct and compatible. Yesterday I had to look for a type error for an hour that turned out to be caused 4 modules downstream. Only found it when writing .mli files with the types as they should be named and suddenly types that looked right turned out to be incompatible.
<thelema> :)
<thelema> this is why functors are a bit... complex. Like polymorphic variants.
jcaose has quit [Ping timeout: 256 seconds]
* orbitz still can't grok ML style modules/functors, I haven't tried very hard but I think i'm just so used to life without them i can't get them
itewsh has joined #ocaml
<mrvn> % ./test
<mrvn> Fatal error: exception Out_of_memory
<mrvn> Something is wrong in the code.
<thelema> orbitz: they're pretty pedantic. They help with ensuring assumptions that are otherwise left informal.
<thelema> orbitz: you get functorized set vs. polymorphic set at all?
<mrvn> orbitz: functors are like templates in C++
smimou has joined #ocaml
<orbitz> mrvn: they aren't firs class though which is what makes them all the more weird ot me
<mrvn> orbitz: You need a functor when you want to write "polymorphic" code for a type that will only be defined later.
<orbitz> thelema: yes, to be honest i find the polymorphic one more useful
<mrvn> orbitz: So you write code that will work with a preset interface and only later the instance of that interface is declared and the functor called for it.
<orbitz> whihc is one reason i think i don't get functors, teh 2 newbie uses for them seem like a poro solution
Anarchos has joined #ocaml
<mrvn> orbitz: you can allways rewrite a functor as polymorphic type that takes a bunch of closures as argument to its functions.
<thelema> orbitz: like set?
<orbitz> thelema: yes, i don't get why one would want Set to be a functor
<thelema> well, if you do set intersection, functors easily guarantee that you're using the same comparison function in the two sets.
<orbitz> the main reason being, how do i create a generic free function to work on a set of an unknown type?
<mrvn> orbitz: Take the set. Without functor you would have to pass the "cmp" function to it for insert/remove.
<thelema> mrvn: actually, the cmp function is passed in at creation time
<mrvn> orbitz: And if you "insert cmp1 e; insert cmp2 e" it blows up
<orbitz> mrvn: why can't i store that in a record?
<mrvn> orbitz: that would be the obvious solution.
<mrvn> orbitz: So you spend some memory to store the cmp function. And the foo and bar and baz and ... functions.
<mrvn> orbitz: Every use will have to look them up. With a functor they get compiled in and possibly inlined and optimized.
<mrvn> Saves memory and time.
<orbitz> does Jane St Core use a record for it spolymorphic map/set?
<orbitz> mrvn: i'm not sure either of those two things are that big where it's a big win at thi spoint though
<orbitz> maybe when ML was first created...
<mrvn> orbitz: jumping to a variable ruins the branch prediction
seanmcl has quit [Quit: seanmcl]
<orbitz> mrvn: plenty of other langauges do this all teh timet hough...
<orbitz> its' 2010..
itewsh has quit [Quit: Quitte]
<mrvn> Note to self: Dont ( = ) a cyclic/double linked list.
krankkatze has quit [Remote host closed the connection]
<orbitz> :)
Drk-Sd has quit [Quit: {'EXIT', Drk-Sd, "bye"}]
<orbitz> for someoen with a very erlang exit message he isnt' in #erlang
mbishop_ has quit [Ping timeout: 268 seconds]
Drk-Sd has joined #ocaml
<mrvn> orbitz: Here is an example of functors: http://paste.debian.net/62327/
krankkatze has joined #ocaml
Yoric has quit [Quit: Yoric]
mbishop_ has joined #ocaml
<mrvn> I think tomorrow I will implement the same as polymorphic type and then compare the two.
<mrvn> Probably makes the .mli file for Foo a lot simpler.
<mrvn> As explanation: This is a Single/double linked cyclic list with iterator. The iterator goes once through the cycle returning Some x on every invocation and then None on the end and then resets. It is also safe to modify the current element.
krankkatze has quit [Remote host closed the connection]
krankkatze has joined #ocaml
pad has quit [Remote host closed the connection]
mbishop_ is now known as mbishop
enth|officeparty is now known as enthymene
krankkatze has quit [Remote host closed the connection]
krankkatze has joined #ocaml
krankkatze has quit [Remote host closed the connection]
krankkatze has joined #ocaml
krankkatze has quit [Remote host closed the connection]
tmaedaZ is now known as tmaeda
krankkatze has joined #ocaml
Amorphous has quit [Ping timeout: 265 seconds]
sepp2k1 has quit [Quit: Leaving.]
tmaeda is now known as tmaedaZ
Amorphous has joined #ocaml