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