gildor changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 3.12.0 http://bit.ly/aNZBUp
_unK has quit [Remote host closed the connection]
mjonsson has joined #ocaml
Guest76911 has joined #ocaml
ftrvxmtrx has quit [Ping timeout: 252 seconds]
ftrvxmtrx has joined #ocaml
bzzbzz has quit [Quit: leaving]
jakedouglas has quit [Quit: Leaving.]
joewilliams is now known as joewilliams_away
joewilliams_away is now known as joewilliams
valross has joined #ocaml
mjonsson has quit [Read error: Operation timed out]
<flux> hmph, I'm finding Event-module isn't all-too-great, it is missing the equivalent of monadic bind :/
<flux> hmm.. or maybe one could build one with choose, wrap and guard..
<flux> nope, I don't think that's possible..
<flux> and lwt from godi doesn't compile on solaris
jakedouglas has joined #ocaml
ulfdoz has joined #ocaml
joewilliams is now known as joewilliams_away
Yoric has joined #ocaml
ulfdoz has quit [Ping timeout: 240 seconds]
jakedouglas has quit [Quit: Leaving.]
ftrvxmtrx has quit [Quit: Leaving]
Guest76911 has quit []
ftrvxmtrx has joined #ocaml
Yoric has quit [Quit: Yoric]
sepp2k has joined #ocaml
Amorphous has quit [Ping timeout: 272 seconds]
ikaros has joined #ocaml
Amorphous has joined #ocaml
ikaros has quit [Quit: Leave the magic to Houdini]
ikaros has joined #ocaml
Yoric has joined #ocaml
ikaros has quit [Ping timeout: 240 seconds]
ikaros has joined #ocaml
barismetin has joined #ocaml
ttamttam has joined #ocaml
avsm has joined #ocaml
Yoric has left #ocaml []
Yoric has joined #ocaml
<adrien> hcarty: hi, I was looking for a META for deriving and saw that a godi package had been done during the packaging sprint last year, but it seems it's not available in godi, or am I missing something?
Yoric_ has joined #ocaml
Yoric_ has quit [Client Quit]
Yoric_ has joined #ocaml
Yoric has quit [Ping timeout: 240 seconds]
Yoric_ is now known as Yoric
Yoric_ has joined #ocaml
hcarty has quit [Ping timeout: 265 seconds]
<adrien> I actually started using http://github.com/jaked/deriving because it contains fixes for ocaml 3.12
<adrien> 3 different repos, bah
<f[x]> yeah, it's awesome
Yoric has quit [Ping timeout: 240 seconds]
Yoric_ is now known as Yoric
<f[x]> extlib situation is also fascinating
<adrien> I thought Deriving had seen recent activity but the last actual changes are from Jun 2007
<flux> f[x], ext5lib ituation?
hcarty has joined #ocaml
<f[x]> the fact that extlib@googlecode is not maintained by anyone adds some spice to it
<adrien> but ncannasse is a commiter on the google project one...
<adrien> deriving.syntax doesn't work directly in the toplevel and I don't have enough time right now for that, so I'll dump it and rely on Obj.magic for now (simple enums without argument so it isn't a big deal)
<f[x]> #camlp4o;; #require "deriving.syntax";; type t = A | B deriving(Show);;
<adrien> # #require "deriving.syntax";;
<adrien> /opt/ocaml/lib/ocaml/site-lib/deriving/pa_deriving.cma: loaded
<adrien> Invalid argument: "index out of bounds"
<adrien> and it exists (rah, one day I'll learn when it merges newlines)
<f[x]> hm, lol
<adrien> exits*
<f[x]> version?
<adrien> it's Jake Donham's on 3.12
ttamttam has left #ocaml []
<adrien> commitdiff is on http://github.com/jaked/deriving/commit/c7b9cea3eb4bbfb9e09673faf725f70247c9df78 but I don't have time for that: I can only polish an ongoing commit before I have to leave
tmaeda has quit [Ping timeout: 276 seconds]
tmaeda has joined #ocaml
_andre has joined #ocaml
fraggle_ has quit [Quit: -ENOBRAIN]
th5 has joined #ocaml
barismetin has quit [Remote host closed the connection]
fraggle_ has joined #ocaml
fraggle_ has quit [Client Quit]
fraggle_ has joined #ocaml
valross has quit [Quit: Ex-Chat]
_unK has joined #ocaml
Yoric has quit [Quit: Yoric]
Yoric has joined #ocaml
avsm has quit [Quit: Leaving.]
Snark has joined #ocaml
barismetin has joined #ocaml
ccasin has joined #ocaml
fraggle_laptop has joined #ocaml
avsm has joined #ocaml
fraggle_laptop has quit [Remote host closed the connection]
ikaros has quit [Ping timeout: 240 seconds]
ikaros has joined #ocaml
bzzbzz has joined #ocaml
mjonsson has joined #ocaml
ftrvxmtrx has quit [Read error: Connection reset by peer]
ftrvxmtrx has joined #ocaml
ikaros has quit [Quit: Leave the magic to Houdini]
diml has quit [Ping timeout: 276 seconds]
robthebob has joined #ocaml
diml has joined #ocaml
ikaros has joined #ocaml
<robthebob> thelema, what printing system in batteries would you recommend using?
<robthebob> there seem to be quite a foo different ones: two in BatPrint, List.print style, BatValue_printer...
<kaustuv> gildor: The OASIS installer says that "you need to accept the terms of the [GPL] before continuing with the installation", but that is actually false. The GPL does not need to be accepted -- it applies to all recipients.
joewilliams_away is now known as joewilliams
jakedouglas has joined #ocaml
<kaustuv> gildor: also, the script it installs is OASIS.sh, but the quickstart web-page says that it is OASIS.
<gildor> kaustuv: it is even false, since it is LGPL
<gildor> kaustuv: OASIS.sh vs OASIS, this is a bug
<gildor> (at least in the documentation), could you submit a bug ?
<kaustuv> Which is the canonical name?
<gildor> (for both bugs about the installer)
<gildor> OASIS.sh is a wrapper to set path for i18n, I think
<gildor> I think -> I am sure
<gildor> if you use OASIS you won't have i18n, but it won't fail
<gildor> so basically you should use OASIS.sh for fully featured OASIS
<kaustuv> But OASIS is installed in ${prefix}/libexec, not in ${prefix}/bin. libexec is not on the default $PATH in a vanilla Debian bash
<gildor> yes, indeed
<kaustuv> Ah, I see.
<gildor> I think to solve this bug, I will just rename OASIS.sh to OASIS
<kaustuv> Any reason why you chose 'OASIS' instead of 'oasis'?
<gildor> no reason
<kaustuv> So you are not a secret VMS fanboy then
<gildor> maybe because at the beginning OASIS was an acronym
<avsm> Ocaml Architecture Software Infrastructure as a Service, obviously
<gildor> avsm: not so fare
<gildor> far
<gildor> OCaml Autobuild Source Information System
<gildor> because at the beginning the project was called OCaml-Autobuild and _oasis was the metadata file
<gildor> VMS fanboy -> why ?
<kaustuv> Just that all caps is not very Unix-y.
<gildor> kaustuv: I tend to use more and more caps at the beginning to have valid module filename with OCaml compiler
<gildor> e.g CameraRescue
<gildor> But if you really think it is worth, I can consider a lower case name,
<kaustuv> Where can I file a bug about the BTS? Trying to register a new account makes the 'language' default to Bulgarian. Surely this will be a very uncommoon choice.
<gildor> that is funny
<tab> it's the secret bulgarian cabal
<gildor> have you anything that is related to bulgarian in your browser setup ?
<kaustuv> No, mine just sends English and French accept headers. I think the problem is that Bulgarian is the first entry in the dropdown
<gildor> and you cannot choose English or French?
<gildor> kaustuv, I already have this account
<kaustuv> No, both English and French are choices. It just defaults to Bulgarian.
<gildor> kaustuv: you are already registered
<kaustuv> Anyway, I apparently already registered on ocamlforge long ago.
<gildor> on 15/02/2009
stdDoubt has joined #ocaml
<gildor> kaustuv: the langage choice dropdown is well initialized with later version of FusionForge
<gildor> kaustuv: you can test it here http://fusionforge.org
<thelema> robthebob: I myself use Foo.print along with printf's "%a" a lot
init1 has joined #ocaml
<robthebob> thelema, you mean Format.printf?
<thelema> no, Printf.printf
<thelema> and sometimes printf.fprintf, when I want to build something that can be used by %a
<robthebob> i see, thanks
<thelema> let index_print print_v oc i v = fprintf oc "#%d) %a\n" i print_v v
<kaustuv> gildor: sorry to continue with nagging issues, but apparently the License: field is required? I want to release some stuff in the public domain, which is not a license. I already say this in the Copyright field.
<kaustuv> This is the _oasis file
ikaros has quit [Quit: Leave the magic to Houdini]
Yoric_ has joined #ocaml
Yoric has quit [Read error: Connection reset by peer]
Yoric_ is now known as Yoric
Yoric has quit [Read error: Connection reset by peer]
ikaros has joined #ocaml
<avsm> there's nothing wrong with explicitly stating the License as Public Domain
<avsm> by default, you grant no rights, so leaving License blank does not make it public domain
joewilliams is now known as joewilliams_away
<gildor> kaustuv: I v0.2.0, public domain is a possible license
<gildor> (though it is not a real license, but allow to state it explicitely)
<gildor> e.g. License: PD
<gildor> I even think it is already there in v0.1.0
Yoric has joined #ocaml
barismetin has quit [Remote host closed the connection]
barismetin has joined #ocaml
<kaustuv> Should I be using 0.2.0 instead of 0.1.0. I used the installer because
<kaustuv> the docs recommended it but I don't mind compiling stuff
<kaustuv> err, that was a question
joewilliams_away is now known as joewilliams
<gildor> kaustuv: if you don't have PD as a license, you can consider 0.2.0, otherwise it should be ok
<gildor> (though there are a lot of enhancement in 0.2.0, but nothing is stable, so thing can change from one day to another)
<kaustuv> Enhancement sounds good. This is not critical stuff, just a thin wrapper around eventfd/timerfd/selectfd in recent Linuxes.
<kaustuv> Wow, darcs.
<gildor> kaustuv: thin wrapper around eventfd/timerfd/selectfd -> have you had a look at extunix
<kaustuv> No, I haven't. Hmm...
<gildor> we have at least eventfd wrapper
<gildor> and we will welcome a wrapper around timerfd/selectfd
<kaustuv> Right. Maybe I'll just contribute patches to that then.
<gildor> sig, an oasis user is gone
<gildor> :-(
<gildor> I should not provide link to existing project if I want more OASIS user
<kaustuv> I'll use OASIS if I ever get around to finishing that ICU binding I started two years ago...
<gildor> don't hesitate to submit bugs, most of the enhancement of v0.2.0 comes from people who tested OASIS
<gildor> the product is young, so it is time to define what should go inside
<kaustuv> At least three different kitchen sinks seems like an ambitious goal
<kaustuv> But getting a sane ocamlbuild-based system would be great
<gildor> I plan to be fully compatible with ocamlbuild, the other will probably be second citizen -- except if more skilled people on this topic can contribute
<gildor> but ocamlbuild is so far the best bet for Windows compilation
<gildor> (even if there are still problems on Windows with ocamlbuild)
<tab> gildor: any plan to go native ? i.e. without ocamlbuild
<gildor> tab: if I go native in a way, that will be with OCamlMakefile
<gildor> tab: or if someone contribute a plugin that allow to do it, why not
<gildor> tab: all information are here and you can use setup.ml to store the native build system
<gildor> tab: but this is a lot of work
<tab> yeah i suspect so
<tab> although beeing compatible with ocamlbuild is too
<tab> and that end up with lots of duplication/warts
<gildor> let say that the system doesn't prevent it, but this is not my priority
<tab> OASIS 2.0 ;)
<gildor> why not ;-)
ftrvxmtrx has quit [Quit: Leaving]
boscop_ has joined #ocaml
<kaustuv> Why doesn't ExtUnix include Unix? (By analogy with ExtList, ExtString, etc.)
boscop has quit [Ping timeout: 276 seconds]
<thelema> kaustuv: probably too much interface?
sgnb has quit [Remote host closed the connection]
sgnb has joined #ocaml
<hcarty> Sorry if that was sent twice. I think my client logged out and back in, so I had to reauthenticate with NickServ
barismetin has quit [Remote host closed the connection]
<hcarty> adrien: I don't remember who wrote the bits for the deriving package, or if it works
<hcarty> But it will hopefully provide a useful start
oriba has joined #ocaml
oriba has quit [Client Quit]
<gildor> kaustuv: Unix is a big module
<gildor> kaustuv: too much new functions
<thelema> true, the Unix module does seem to get the most changes
<robthebob> does anyone have any experience with sexplib? any good?
<hcarty> robthebob: The Batteries Print module + syntax extension is a very nice option for custom printers (regarding your earlier question)
<thelema> robthebob: my experience is that it's not worth the Jane Street dependency chain and camlp4 dependency
<robthebob> ok thanks for the input
<robthebob> we're trying the 'a output -> 'b -> unit style at the moment as it seems easy to nest them with the Foo.print (Foo \in {list, Array, Map... }) while also allowing the flexibility of passing flags such as for bracketing for nested structures
<robthebob> plus you can use Batteries_print.to_format to get a toplevel printer from such a function
<thelema> robthebob: that's exactly what I made the to_format for.
th5 has quit [Quit: th5]
<gildor> robthebob: I often use sexplib, what is your question?
<robthebob> i'm just looking for the best easy way of defining printing functions for internal datatypes
<robthebob> in a consistent manner so they can use each other etc
<gildor> thelema: sexplib only depends on type-conv, which is not that big
<adrien> hcarty: bluestorm wrote the deriving godi package it seems (at least, that's what is written on the page :P )
<gildor> robthebob: I don't know about thelema/hcarty Print module, but sexplib is pretty easy to use with the syntax extension
<robthebob> so it creates sexp_of_t functions that you can then output using a single print_sexp type function?
<gildor> yes
avsm has quit [Quit: Leaving.]
<gildor> robthebob: I need to go, but leave your question here, I can answer it in 2 hours
<robthebob> ok thanks
Yoric has quit [Quit: Yoric]
jonathandav has quit [Ping timeout: 272 seconds]
sepp2k has quit [Remote host closed the connection]
ikaros has quit [Quit: Leave the magic to Houdini]
ftrvxmtrx has joined #ocaml
mcclurmc has joined #ocaml
stdDoubt has quit [Quit: Leaving]
<adrien> is there any syntax extension that can associate 'type t = | Foo | Bar' with a 'string_of_t' function that would return "foo" or "bar"?
ulfdoz has joined #ocaml
Edward_ has joined #ocaml
Yoric has joined #ocaml
<hcarty> adrien: I thought deriving did that, but I'm guessing not since you're asking :-)
<hcarty> adrien: It looks like deriving should be able to do Foo -> "Foo", looking at the Google Code page
Snark has quit [Quit: Ex-Chat]
rks has quit [Quit: {'EXIT', rks, "bye"}]
rks has joined #ocaml
Modius has quit [Ping timeout: 240 seconds]
_andre has quit [Quit: *puff*]
init1 has quit [Quit: Quitte]
jonathandav has joined #ocaml
roconnor has joined #ocaml
<hcarty> adrien: Were you able to get a version of deriving working?
<roconnor> I have a question about varient types: if I write (match e1 with | #foo -> Some e1 | _ -> None), will that expression have type "foo"?
<hcarty> roconnor: Try it? It wouldn't have type foo - it would be an option
<roconnor> er yes
<roconnor> I meant "option foo"
<hcarty> # let f x = match x with | #foo -> Some x | _ -> None;;
<hcarty> val f : ([> foo ] as 'a) -> 'a option = <fun>
<hcarty> with type foo = [ `a | `b | `c ] for example
<hcarty> roconnor: Does that answer your question?
<roconnor> I think so
<roconnor> hcarty: wait maybe not
<roconnor> I'm thinking of type foo = [ `a | ` b ]; type bar = [ `c | `d ] type qux = [ foo | bar ]
<roconnor> let f x = match x with | #foo -> Some x | #bar -> None
<roconnor> I want f to have type qux -> foo option
<hcarty> roconnor: You would have to specify that
<hcarty> let f (x : qux) = ...
<hcarty> I think that would work - polymorphic variants are not automatically ... specialized? ... in that way
<hcarty> I'm not sure of the proper terminology
<roconnor> you mean it wouldn't work?
<roconnor> indeed I'm not getting it to work in my example
<roconnor> maybe I need a pattern variable
<hcarty> roconnor: Not that I know of - None in this case is not a foo option
<hcarty> According to the typechecker at least
<hcarty> roconnor: Right right - None has to unify? with Some x
<hcarty> x is a qux
<hcarty> Some x is a qux potion
<hcarty> option
<roconnor> how do I make pattern variables in ocaml again?
<hcarty> As a result, so is None
<hcarty> I don't know what you mean by pattern variables
<roconnor> er I'm probably using the wrong name
<roconnor> in Haskell I'd use @
<roconnor> ah
<roconnor> named patterns
<roconnor> using with
<roconnor> let f x = match x with | #foo with y -> Some y | #bar -> None
<hcarty> roconnor: "as"
<roconnor> oh
<hcarty> ... | #foo as y -> Some y | ...
<roconnor> heh
<roconnor> there we go
<roconnor> thanks
<hcarty> That gives something closer to what you want :-)
<hcarty> Glad I could help - I learned something here too, so thank you as well
<hcarty> let f (x : baz) : foo option = match x with | #foo as y -> Some y | #bar -> None;;
<hcarty> roconnor: That will clamp down the type a bit. Or you can apply all of that in an interface.
<roconnor> hcarty: ya, I put the type annotations in my code
oriba has joined #ocaml
Yoric has quit [Quit: Yoric]
oriba has left #ocaml []
ccasin has quit [Quit: Leaving]
Modius has joined #ocaml
roconnor has quit [Remote host closed the connection]
LionMadeOfLions has joined #ocaml
mehdid has quit [Ping timeout: 276 seconds]
mcclurmc has quit [Ping timeout: 276 seconds]
mcclurmc has joined #ocaml
mehdid has joined #ocaml
ulfdoz has quit [Ping timeout: 264 seconds]
ulfdoz has joined #ocaml
mehdid has quit [Client Quit]
mehdid has joined #ocaml
ulfdoz has quit [Read error: Operation timed out]
ulfdoz has joined #ocaml
ulfdoz has quit [Ping timeout: 264 seconds]
mcclurmc has quit [Ping timeout: 240 seconds]
mcclurmc has joined #ocaml
joewilliams is now known as joewilliams_away
boscop__ has joined #ocaml
boscop_ has quit [Ping timeout: 272 seconds]