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