flux changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | 3.11.0beta1 available from http://caml.inria.fr/pub/distrib/ocaml-3.11/ | Or grab OCaml 3.10.2 from http://caml.inria.fr/ocaml/release.html
xevz has joined #ocaml
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
psnively has quit []
kushal has quit [Read error: 110 (Connection timed out)]
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
seafood has joined #ocaml
bzzbzz has joined #ocaml
threeve has joined #ocaml
pango has quit [Remote closed the connection]
pango has joined #ocaml
seafood has quit [Read error: 104 (Connection reset by peer)]
seafood has joined #ocaml
Demitar has quit [Remote closed the connection]
longh has quit [Read error: 54 (Connection reset by peer)]
jeddhaberstro_ has quit []
seafood has left #ocaml []
Demitar has joined #ocaml
seafood has joined #ocaml
hsuh has joined #ocaml
hsuh has left #ocaml []
Palace_Chan has quit [Client Quit]
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
schme_ has joined #ocaml
bohanlon` has quit ["ERC Version 5.2 (IRC client for Emacs)"]
schme has quit [Read error: 110 (Connection timed out)]
bohanlon has joined #ocaml
Jedai has quit [Success]
Jedai has joined #ocaml
seafood has quit []
seafood has joined #ocaml
seafood has left #ocaml []
seafood has joined #ocaml
seafood has left #ocaml []
seafood has joined #ocaml
seafood has quit []
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
seafood has joined #ocaml
threeve has quit []
Submarine has joined #ocaml
<rpg> i have 2 files
<rpg> i want to use the function from 1 file to another
<rpg> how would i do it
<flux> you refer to values in file1.ml as File1.xxx
<flux> and compile the resulting binary so that the dependency is before the file depending on it
<rpg> what do i do
<rpg> open File1;; ?
ggole has joined #ocaml
<ggole> Hi. I'm trying to define a two types that refer to each other. Usually this would be done with forward declarations, but ocaml doesn't seem to have them. What's the usual approach here?
Jedai has quit [Connection reset by peer]
Jedai has joined #ocaml
kushal has joined #ocaml
ulfdoz has joined #ocaml
<flux> rpg, yes, you can do that
<kushal> flux, good morning
<kushal> flux, what should be good reading for a newbie on OCaml ?
<ggole> kusha, I found http://files.metaprl.org/doc/ocaml-book.pdf to be ok
<kushal> let me get that
mishok13 has joined #ocaml
<ggole> Aah, you can use and in type expressions
<ggole> That makes sense
<flux> kushal, I guess that's ok. but www.ocaml-tutorial.org is a good starting place, and it links, among other things, to that
<kushal> flux, I became really confused by reading tutorials from there , may be my pythonic mind was causing the problem :(
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
<flux> ggole, one alternative is to do something like this: type 'a foo' = Foo1 of int | Foo2 of 'a type bar = Bar1 of int | Bar2 of bar foo' type foo = bar foo
<flux> kushal, but it links to the few books that are available online. also ocaml documentation itself is good reading.
<ggole> Hmm. I think and is a better fit here, but thanks.
<kushal> flux, ok, I will check them again
GustNG has joined #ocaml
rwmjones_ has joined #ocaml
seafood has quit [Read error: 110 (Connection timed out)]
Submarine has quit [Remote closed the connection]
det has quit [Remote closed the connection]
det has joined #ocaml
_zack has joined #ocaml
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
det has quit [Remote closed the connection]
det has joined #ocaml
filp has joined #ocaml
Jedai has quit [Connection reset by peer]
Jedai has joined #ocaml
hkBst has joined #ocaml
Jedai has quit [Connection reset by peer]
Jedai has joined #ocaml
Yoric[DT] has joined #ocaml
ggole has left #ocaml []
Jedai has quit [Success]
Jedai has joined #ocaml
marmotine has joined #ocaml
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
filp has quit ["Bye"]
filp has joined #ocaml
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
munga has joined #ocaml
jlouis has joined #ocaml
<Yoric[DT]> hi everyone
sporkmonger has quit []
rwmjones_ has quit ["Closed connection"]
<thelema> hi Yoric[DT]
<Yoric[DT]> Hi.
<Yoric[DT]> How do you do?
<thelema> just waking up.
<thelema> you? Is your project for today done?
<thelema> (iirc, you said you had a deadline for the 17th)
<Yoric[DT]> No, it was yesterday.
<Yoric[DT]> I think.
* Yoric[DT] has so many deadlines, he's starting to confuse them all.
<thelema> :)
<Yoric[DT]> At the moment, I've resumed work on my research project.
<Yoric[DT]> Of course, the first thing I've done was to get the program to work with Batteries ;)
<thelema> :) It's important to eat one's own dog food.
<Yoric[DT]> Yep.
sporkmonger_ has joined #ocaml
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
pierre- has joined #ocaml
LeCamarade has joined #ocaml
|Jedai| has joined #ocaml
seafood has joined #ocaml
Jedai has quit [Connection timed out]
|jeremiah has quit [Read error: 104 (Connection reset by peer)]
LeCamarade has quit [Connection reset by peer]
LeCamarade has joined #ocaml
seafood has quit []
filp has quit ["Bye"]
LeCamarade has quit [Client Quit]
longh has joined #ocaml
<ertai> Yoric[DT]: pong (late)
<Yoric[DT]> ertai: hi
<ertai> Hi
<Yoric[DT]> Can't remember what I wanted to tell/ask :(
|jeremiah has joined #ocaml
<ertai> :) less work for me ?
<Yoric[DT]> :)
<ertai> Yoric[DT]: let me ask a question to change
<Yoric[DT]> Sure.
<ertai> It think batteries lacks a module for missing basics functions
<ertai> function composition to give only one
<Yoric[DT]> Which ones?
<Yoric[DT]> It's in Std.
<Yoric[DT]> Er, sorry, Standard.
<Yoric[DT]> Although I think our documentation generator failed to document Standard in alpha 1.
<Yoric[DT]> That should be fixed on the svn, though.
<ertai> Yoric[DT]: oh nice
<Yoric[DT]> If no mure bugs appear, we'll probably have an alpha 2 early next week.
<ertai> I used to use <.> for function composition in OCaml but that's hard to agree on naming
<ertai> discard is conventionally called const (or K but that's too obscure for novices and short)
<ertai> in haskell pi_fst is called first
<ertai> /// is called ***
<ertai> and they have &&& that is let ( &&& ) f g x = (f x, g x)
<Yoric[DT]> Unless I'm mistaken, in Standard, that's /// .
<Yoric[DT]> Oh, sorry.
<Yoric[DT]> I misunderstood what you wrote.
<Yoric[DT]> Yeah, I've seen that [discard] is [const].
<Yoric[DT]> I don't quite understand the motive behind that name.
<ertai> const is too build constant functions
<Yoric[DT]> Ah, fair enough.
<Yoric[DT]> [first] is probably better than [pi_fst]
<ertai> In some sense it's also a way to help people comming from haskell to caml
<ertai> <joke>if there is any</joke>
<flux> I too use 'const' in a few places
<Yoric[DT]> Just changed the names.
<Yoric[DT]> It's an alpha, it's still legal :)
<flux> also, for swapping to elements I use the function flux_is_great
<flux> maybe you could rename that too?-)
<Yoric[DT]> I actually considered adding somewhere that "Hey, if you're an Haskellite, [$] is [<|]"
<Yoric[DT]> flux: Could you please add that as a Feature Request? :)
mishok13 has quit [Read error: 110 (Connection timed out)]
<Yoric[DT]> mmmhh....
<Yoric[DT]> Ok, it seems my first example (completely unrelated to Batteries, btw.), is already somewhat an ugly case.
<Yoric[DT]> I have an in/out argument.
<Yoric[DT]> And I don't like in/out arguments.
<Yoric[DT]> ertai: btw, I think I've gotten ocamldoc + mlpack to work nicely.
Morphous has quit [Read error: 110 (Connection timed out)]
<Yoric[DT]> It won't work if there's no .mli yet, though.
<Yoric[DT]> (well, it will work, but it won't display the comments of the .ml)
<ertai> Yoric[DT]: cool
<ertai> what about adding "flip f x y = f y x"
Morphous has joined #ocaml
<flux> actually I meant to refer to that function with the one I mentioned. and yes, I too have defined that function many, many times :)
<mfp> huh anybody knows how to generate a value with a non-default constructor in camlp4?
<mfp> as in type a = A of int * int
<mfp> doing <:expr< $constructor$ $exCom_of_list l$ >> corresponds to type a = A of (int * int)
<mfp> and List.fold_left apply_expr constructor l generates invalid code (when pretty-printed, A 1 2 instead of A (1, 2))
<fremo> Ocaml is a good candidate to do some sound processing, no ?
<fremo> with Bigarray...
<mfp> shouldn't be too bad
kushal has left #ocaml []
<fremo> I wonder how the GC will interupt the processing...
<mfp> <Yoric[DT]> I actually considered adding somewhere that "Hey, if you're an Haskellite, [$] is [<|]" -> $ is right-associative, unlike (<|)
<mfp> fremo, there shouldn't be any allocation in the inner loop anyway :-P
<fremo> cool :)
<mfp> It all depends on the processing, I guess. It'd be possible to make the minor heap smaller to make GC runs more frequent and shorter; if no values are promoted to the major heap, this could do.
<mfp> duh in fact
<mfp> if no values are promoted the minor GC run will be fast regardless of the size of the minor heap
<zbrown> hmmm, anyone know of a good doc for the basics on writing a new ocaml library?
<mfp> zbrown: what are you looking for, info about the code or how to package, etc? If it's the latter, take a look at findlib's site.
<mfp> hmm let module M = Camlp4.Printers.OCamlr.Make(Camlp4.PreCast.Syntax) in M.print_implem seems broken, it generates code like type a = A | B; (instead of the correct type a = [A | B]; in revised syntax)
<Yoric[DT]> ertai: why not
<Yoric[DT]> mfp: fair enough
<mfp> Yoric[DT]: we'd need something starting with ^, @ or ** for $ and ., any ideas?
<mfp> I sometimes use @@ and @@@ for $ and .
<rwmjones> gildor, are you going to announce this 'secret' meeting? (or did I miss something)
<fremo> mfp: thanks, if I find time for it... (I wrote a midi synthetiser in C once...)
pango has quit [Remote closed the connection]
<Yoric[DT]> mfp: no good idea, but we can make fun smileys.
<Yoric[DT]> Say ( @-/ )
<mfp> hah
<Raevel> crazy
<zbrown> mfp: packaging and/or just good practices when writing libraries
<Yoric[DT]> zbrown: if you find any, please tell me so.
<Yoric[DT]> I'd like to add this kind of thing to the documentation of OCaml Batteries Included.
<zbrown> Yoric[DT]:
<zbrown> Yoric[DT]: woops, ok. Ya I'm relatively new o ocaml but I've got a library in mind that needs writing
<zbrown> so just trying to find some "best practices" kinds of stuff
pango has joined #ocaml
<Yoric[DT]> zbrown: I understand that.
<gildor> rwmjones: no, i will
<Yoric[DT]> I know a lot of them but I don't remember anyone putting them all together.
<gildor> rwmjones: but this is not secret, this is in wiki.cocan.org ;-)
<Yoric[DT]> zbrown: from the top of my mind, here are a few
<Yoric[DT]> * use OCaml naming conventions for values and types (i.e. names_look_like_this)
<Yoric[DT]> * modularize your code
<Yoric[DT]> * pack your modules using [ocamlc -pack]
<Yoric[DT]> * if you only define one type in a module, call it [t]
|Jedai| has quit [Connection reset by peer]
Jedai has joined #ocaml
<Yoric[DT]> * if you only define one type in a module, conversion functions from/to this type should be called [to_some_other_type] and [from_some_other_type]
<Yoric[DT]> * if you define a data container, please provide at least functions [fold], [map] and [iter] (and [enum] if you use ExtLib, which is often a good idea)
<Yoric[DT]> * don't abuse objects and classes
<Yoric[DT]> * don't abuse polymorphic variants
<Yoric[DT]> * if a function returns an exception, be quite clear about that
* gildor is away for 1 hour
<Yoric[DT]> * never release a library which may raise exception [Failure]
<Yoric[DT]> * if your arguments need to be validated, raise an exception of type [Invalid_arg] if they're not valid
* zbrown copies all this into a file
<Yoric[DT]> * if your library is not thread-safe, write it in the documentation
<Raevel> you should put this on the InterNet
<zbrown> Raevel: I think you mean "the tubez"
<zbrown> Raevel: because the internet is a series of tubes you know
<Raevel> oh i get it
<Yoric[DT]> * if you don't intend your library to be not thread-safe, don't use threads at all, that will slow things down and make linking harder for your users
<Yoric[DT]> * if you do use threads, module [Event] is your friend
<Yoric[DT]> * if you need access to the system and/or the network, library OCamlNet is your friend
<Yoric[DT]> * for documentation purposes, read the manual of OCamlDoc
<Yoric[DT]> * if you write a Makefile, the usual target names are [byte] for bytecode compilation and [opt] for native compilation
<Yoric[DT]> * OCamlBuild is very useful
<Yoric[DT]> * if you define syntax extensions, by convention, your module name should start with [Pa_]
<Yoric[DT]> * it's always a good idea to provide a .mli for your libraries
<Yoric[DT]> (with comments, of course)
<Yoric[DT]> * if a function is not tail-recursive or somehow limited by the size of the input, try and write this in the documentation
<Yoric[DT]> * a good way to code a function which may not always return an interesting result is to use type ['a option] (or, for more complete feedback, type ['a result] if you're using Batteries Included)
<Yoric[DT]> (I'd suggest using Batteries Included anyway, but it's only in version Alpha, so that may be a tad premature)
<jonafan> i feel like i'm in ocaml class
<Yoric[DT]> :)
<Raevel> <3
Quadrescence has quit ["ok tiem to go"]
<Yoric[DT]> For the moment, I'm out of ideas.
* Yoric[DT] will write all of this down.
<Raevel> haha, good stuff though, thanks
<Yoric[DT]> My pleasure.
<Yoric[DT]> Speaking of which, does anyone around here use OMake or OCamlMakefile?
<Raevel> my ocaml experience thus far totals up to about 100 loc
<mfp> Yoric[DT]: I use, and like, OMake
<Yoric[DT]> mfp: could I ask for a favor>
<Yoric[DT]> mfp: could I ask for a favor?
<mfp> let me guess, want to build Batteries with OMake?
<Yoric[DT]> Almost. I want guidelines regarding how to build a project using Batteries with OMake.
<mfp> hmmm essentially OCAMLPACKS[] += batteries
<mfp> if Batteries is installed with ocamlfind
<mfp> (and USE_OCAMLFIND = true)
<mfp> so, essentially like any other lib
<Yoric[DT]> mfp: could you write a complete howto?
<Yoric[DT]> I'm not familiar with OMake and I'd rather not write something dumb.
<Yoric[DT]> (and yes, Batteries is installed as [batteries] with ocamlfind)
<mfp> Yoric[DT]: more than a Howto, I'd be a minimal OMakefile, I suppose
<Yoric[DT]> ok
<mfp> but huh it's going to be really short :P
<Yoric[DT]> Good :)
<Yoric[DT]> Ideally, we should provide a directory with Hello World projects with OCamlBuild, OMake and OCamlMakefile.
<mfp> I mean, *really*. A typical program just needs something like
Jedai has quit [Connection reset by peer]
<mfp> USE_OCAMLFIND = true
<mfp> NATIVE_ENABLED = true
<mfp> OCAMLPACKS[] =
<mfp> foo
<mfp> batteries
<mfp> OCamlProgram(myprog, some_module another myprog)
Jedai has joined #ocaml
<mfp> a library, OCamlLibrary(mylib, module1 module2)
<Yoric[DT]> I'm not sure what goes into [OCamlProgram] or [OCamlLibrary].
<Yoric[DT]> Does all this go into OMakefile?
<mfp> OCamlProgram(destination, source modules without .cmo/cmx)
<mfp> yes
<mfp> then you need a OMakeroot file at the root dir; omake --install creates it, as well as a commented sample OMakefile
<mfp> I find OMake much easier to use than ocamlbuild actually
<Yoric[DT]> Can you write all this down as one howto?
<mfp> yup, I'll do it
<olegfink> hi
<olegfink> how does ocmaljava call native java methods?
<olegfink> as far as I understood it needs some runtime support for this?
Linktim has joined #ocaml
grirgz has quit [Read error: 104 (Connection reset by peer)]
Linktim has quit [Read error: 104 (Connection reset by peer)]
Linktim has joined #ocaml
Jedai has quit [Connection reset by peer]
Jedai has joined #ocaml
_zack has left #ocaml []
Camarade_Tux has joined #ocaml
Linktim has quit [Read error: 104 (Connection reset by peer)]
itewsh has joined #ocaml
<flux> mfp, well, given that batteries also comes with syntax extensions, it could predefine precedencies. or even use operator 'o' for composition ;) (doesn't sml do that?)
<mfp> pa_do can do it, yes
<mfp> actually pa_infix
<mfp> is Pa_do.Macro new? I don't remember seeing it before -> http://pa-do.forge.ocamlcore.org/
vixey has joined #ocaml
Linktim has joined #ocaml
<flux> me neither
<flux> I wonder at what extent the macros get checked if you don't use them
<flux> I guess not much, if they're just macros
<mfp> only syntax I suppose
Linktim has quit ["Quitte"]
Linktim has joined #ocaml
itewsh has quit [Read error: 110 (Connection timed out)]
itewsh has joined #ocaml
Linktim_ has joined #ocaml
palomer has quit [Read error: 60 (Operation timed out)]
bzzbzz has quit ["Lost terminal"]
bzzbzz has joined #ocaml
itewsh has quit ["KTHXBYE"]
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
Linktim has quit [Read error: 110 (Connection timed out)]
Linktim has joined #ocaml
det has quit [Read error: 104 (Connection reset by peer)]
det has joined #ocaml
schme has joined #ocaml
schme has left #ocaml []
yziquel has joined #ocaml
Linktim_ has quit [Read error: 113 (No route to host)]
<yziquel> Hello. I'm having a small typing problem. See paste at http://paste.lisp.org/display/68699.
<yziquel> I would like protected_value to have type 'a protected -> 'a, which is not the case.
<yziquel> The recursive definition seems to be the cause of this mistyping. Any suggestions appreciated.
<vixey> it is a bit weird these are all mutually recursive
<vixey> must they be?
<yziquel> vixey: yes. that's a simplified version. The one i plan to use is more intricate, with conditions, etc...
schme_ has quit [Read error: 110 (Connection timed out)]
<vixey> oh :S
Jedai has quit [Connection reset by peer]
Jedai has joined #ocaml
<yziquel> vixey: what's the ":S" supposed to mean?
<vixey> worry
<yziquel> ah...
pierre- has quit [Read error: 104 (Connection reset by peer)]
<yziquel> Isn't there any way to force the correct typing, and have ocaml check that the proposed typing is correct?
<flux> yziquel, you can use module signatures for that
<yziquel> uuuh...?
<flux> module Foo : sig val identity : 'a -> 'a end = struct let identity a = a + 1 end;;
<flux> that will fail
<flux> the correct function will work
<flux> the problem is here:
<flux> let (mut, cond) = !(protected_value locking_data) in
<flux> that cannot happen is protected_value returns 'a
<flux> if, even
<flux> well, the same thing is there twice
<flux> yziquel, btw, if you just want to enforce a whole module's interface, you can write that signature in the corresponding .mli-file
<flux> that is good habbit anyway
<flux> and you can also stick documentation there
<yziquel> I do not understand it yet. I will work it over. Thanks a lot for this suggestion.
<flux> the problem would go away without recursion ;)
<flux> it may be possible to work around the issue in some other way
<flux> but if protect_data and the two other functions have different expectations of protect_data's signature, it is difficult to see why they must be recursive. but I guess there is a reason :)
<yziquel> Basically, the idea is to provide a set of functions to agregate a mutex with a value. So you lock a mutex to protect a value, basically. What I want to do is to allow a mutex to be shared among different variables, and to protect with a mutex the reference to the aforementionned mutex. And so one, recursively. I felt something of this kind when I was implementing doubly-chained list designed for concurrent access.
<flux> you can often break recursion by passing the other function as a parameter to the other
<yziquel> but module signatures is the cleanest way, isn't it?
<flux> do you refer to using recursive modules?
<flux> module signatures don't really make anything happen, they just check that the types match
<flux> but actually recursive modules will help here
<yziquel> not thinking about recursive modules. just thinking about enforcing types.
<flux> ok
<yziquel> how would recursive modules help?
<vixey> if you write the right program it will always have the type it should ..
<yziquel> vixey: that seems to me somewhat of an overstatement...
<flux> yziquel, compare:
<flux> let rec b () = f 4 and f a = a;;
<flux> module rec Foo : sig val f : 'a -> 'a val b : unit -> int end = struct let b () = Foo.f 4 let rec f a = a end;;
<yziquel> I'll think it over. thanks a lot for pointing this out.
<flux> good luck ;)
<yziquel> Just as a side note: is there a framework to actually prove correctness of concurrent programs written in ocaml?
<flux> I haven't heard of one
<flux> concurrency proofs are a pain, as I understand
<flux> given the problem, though, I would perhaps look if JoCaml's model can be used in Coq or some other theorem proover
<flux> I've also understood that mutation is a pain in proofs
<vixey> what about LCF
<vixey> ?
<flux> if you add concurrency to the mix, well..
Jedai has quit [Connection reset by peer]
Jedai has joined #ocaml
<flux> does LCF have concurrency or mutation?
<yziquel> forcing the typing into the signature does not work. I guess I'll have to do it in the recursive module way
<vixey> Are you sure that you want to use recursive modules..
<vixey> to be honest I never even have used a recursive module
<vixey> it seems to me (although it's simplified) you could do this without it
<yziquel> vixey: well, the only way seems to me to be breaking the recursion by using auxiliary functions. Is that how you would do it? (The full code has lots of such recursions...)
Jedai has quit [Connection reset by peer]
Jedai has joined #ocaml
<yziquel> vixey: I just had a deeper look at the code flux gave me, and I think recursive modules is indeed the way to go. It's the only serious way around computations of types of this nature.
<vixey> ok I'm just scared of recursive modules so don't worry about what I said :)
<yziquel> vixey: they do not seem so scary. As far as I'm concerned, they're just a way to say: "look, compute the types in the current module, and when calling Foo.f, use the type of f as if it were computed separately in another module." This way you can prioritize the type computations.
Jedai has quit [Read error: 104 (Connection reset by peer)]
<vixey> in the little MLer they actually made a Y combinator out of recursive modules
Jedai has joined #ocaml
vanjuggler has joined #ocaml
<vanjuggler> hi guys
<vanjuggler> how can i chown a symlink, like lchown, or `chown -h` ?
<vanjuggler> s/guys/folks/
frozen_vegan has joined #ocaml
pango has quit [Remote closed the connection]
ofaurax has joined #ocaml
pango has joined #ocaml
sporkmonger_ has quit []
itewsh has joined #ocaml
GustNG has quit ["Leaving."]
bzzbzz has quit ["Lost terminal"]
bzzbzz has joined #ocaml
vanjuggler has left #ocaml []
Jedai has quit [Connection reset by peer]
Jedai has joined #ocaml
itewsh has quit [Read error: 110 (Connection timed out)]
itewsh has joined #ocaml
<yziquel> hi. new small problem. I have, in a file called protection.ml, defined a recursive module called Protection. Therefore, the module is in fact Protection.Protection (the first Protection comes from the filename and the second one from the module defined in it). In order to only have a module called Protection, I added to protection.ml an "include Protection" statement, and I tried hiding the Protection.Protection module by erasing it from the
itewsh has quit [Read error: 60 (Operation timed out)]
itewsh has joined #ocaml
hkBst has quit [Read error: 104 (Connection reset by peer)]
Yoric[DT] has quit ["Ex-Chat"]
Quadrescence has joined #ocaml
marmotine has quit ["mv marmotine Laurie"]
<Quadrescence> maybe TODAY I can learn some ocaml.
rwmjones_ has joined #ocaml
Camarade_Tux has quit ["Leaving"]
<vixey> nope not today
<vixey> it is nocaml day today
sporkmonger has joined #ocaml
itewsh has quit ["KTHXBYE"]
<Raevel> nocaml day :-(
sporkmonger has quit []
<yziquel> what's a nocaml day?
<Raevel> a sad day
sporkmonger has joined #ocaml
frozen_vegan has left #ocaml []
rwmjones_ has quit ["Closed connection"]
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml
bohanlon has quit [Read error: 104 (Connection reset by peer)]
Linktim has quit ["Quitte"]
det has quit [Remote closed the connection]
<yziquel> I have a weird compilation problem that I do not grasp. See paste at http://paste.lisp.org/display/68699#1
<yziquel> chain.ml contains an "open Protection" statement, and protection.ml and protection.mli exist in this directory. As far as I understand, I should not have a problem... but I have.
Jedai has quit [Connection reset by peer]
Jedai has joined #ocaml
<yziquel> Paste http://paste.lisp.org/display/68699#2. Could it be the recursive module that causes this trouble. The paste comes from ocamlobjinfo. I see two weird modules that are not pulled into chain.cmo: CamlinternalMod and Obj... Any idea what these could be?
<yziquel> (I'll stop flooding right now).
bohanlon has joined #ocaml
bohanlon has quit [Read error: 104 (Connection reset by peer)]
bohanlon has joined #ocaml
dabd has joined #ocaml
Jedai has quit [Read error: 104 (Connection reset by peer)]
Jedai has joined #ocaml