adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.02.2 announced http://ocaml.org/releases/4.02.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
mcclurmc has joined #ocaml
aftershave has quit [Read error: Connection reset by peer]
rgrinberg has joined #ocaml
aftershave has joined #ocaml
rgrinberg has quit [Ping timeout: 256 seconds]
rgrinberg has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
tmtwd has quit [Ping timeout: 240 seconds]
ril has joined #ocaml
johnf_ has quit [Read error: Connection reset by peer]
ibor has quit [Ping timeout: 240 seconds]
rgrinberg has quit [Ping timeout: 244 seconds]
ril has quit [Read error: Connection reset by peer]
johnf_ has joined #ocaml
rgrinberg has joined #ocaml
johnf_ has quit [Read error: Connection reset by peer]
The_Mad_Pirate has joined #ocaml
tmtwd has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
ibor has joined #ocaml
swgillespie has joined #ocaml
mcclurmc has joined #ocaml
johnf_ has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 272 seconds]
shinnya has quit [Ping timeout: 246 seconds]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
obadz has quit [Ping timeout: 250 seconds]
darkf has joined #ocaml
tennix has joined #ocaml
obadz has joined #ocaml
swgillespie has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
swgillespie has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
tmtwd has quit [Ping timeout: 272 seconds]
tmtwd has joined #ocaml
swgillespie has joined #ocaml
native_killer has joined #ocaml
native_killer has quit [Quit: Leaving]
tmtwd has quit [Ping timeout: 252 seconds]
nyon has quit [Quit: F...ix you, Emacs!]
nyon has joined #ocaml
mac10688 has quit [Ping timeout: 240 seconds]
mort___ has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
MercurialAlchemi has joined #ocaml
tmtwd has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
swgillespie has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 256 seconds]
ontologiae has joined #ocaml
browncodes has joined #ocaml
slash^ has joined #ocaml
ontologiae has quit [Ping timeout: 250 seconds]
psy_ has joined #ocaml
tmtwd has quit [Ping timeout: 240 seconds]
mort___ has quit [Quit: Leaving.]
browncodes has quit [Remote host closed the connection]
oscar_toro has joined #ocaml
rgrinberg has quit [Ping timeout: 246 seconds]
rgrinberg has joined #ocaml
obadz has quit [Ping timeout: 250 seconds]
kushal has joined #ocaml
obadz has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 240 seconds]
Stealth has joined #ocaml
swgillespie has quit [Quit: Textual IRC Client: www.textualapp.com]
Haudegen has quit [Ping timeout: 264 seconds]
swgillespie has joined #ocaml
Haudegen has joined #ocaml
ibor has quit [Remote host closed the connection]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
oscar_toro has quit [Ping timeout: 240 seconds]
mort___ has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
kushal has quit [Ping timeout: 264 seconds]
MercurialAlchemi has joined #ocaml
psy_ has quit [Ping timeout: 250 seconds]
ibor has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 272 seconds]
ibor has quit [Remote host closed the connection]
oscar_toro has joined #ocaml
antkong_ has quit [Quit: antkong_]
keen__ has joined #ocaml
ely-se has joined #ocaml
keen_ has quit [Ping timeout: 240 seconds]
mcclurmc has joined #ocaml
ely-se has quit [Client Quit]
mcclurmc has quit [Ping timeout: 246 seconds]
srcerer has quit [Ping timeout: 272 seconds]
octachron has joined #ocaml
demonimin has quit [Remote host closed the connection]
demonimin has joined #ocaml
sh0t has joined #ocaml
zpe has joined #ocaml
ely-se has joined #ocaml
ygrek has joined #ocaml
mort___ has quit [Quit: Leaving.]
ob_ has joined #ocaml
acieroid` is now known as acieroid
sh0t has quit [Ping timeout: 255 seconds]
Submarine has joined #ocaml
toolslive has joined #ocaml
ontologiae has joined #ocaml
mcclurmc has joined #ocaml
mcclurmc has quit [Ping timeout: 265 seconds]
mort___ has joined #ocaml
kushal has joined #ocaml
sepp2k has quit [Quit: Leaving.]
antkong_ has joined #ocaml
seako has quit [Write error: Broken pipe]
yminsky has quit [Remote host closed the connection]
emmanueloga has quit [Remote host closed the connection]
lopex has quit [Remote host closed the connection]
srcerer has joined #ocaml
mort___ has quit [Quit: Leaving.]
antkong_ has quit [Client Quit]
lopex has joined #ocaml
mort___ has joined #ocaml
rgrinberg has quit [Ping timeout: 250 seconds]
emmanueloga has joined #ocaml
Kakadu has joined #ocaml
hbar has quit [Quit: WeeChat 0.4.2]
sepp2k has joined #ocaml
mcclurmc has joined #ocaml
browncodes has joined #ocaml
yminsky has joined #ocaml
jonludlam has joined #ocaml
mcclurmc has quit [Ping timeout: 256 seconds]
seako has joined #ocaml
browncodes has quit [Remote host closed the connection]
browncodes has joined #ocaml
ob_ has quit [Ping timeout: 260 seconds]
ely-se has quit [Quit: lunch]
slash^ has joined #ocaml
tane has joined #ocaml
Haudegen has quit [Ping timeout: 244 seconds]
rgrinberg has joined #ocaml
rgrinberg has quit [Ping timeout: 265 seconds]
ygrek has quit [Ping timeout: 255 seconds]
Haudegen has joined #ocaml
obadz has quit [Ping timeout: 250 seconds]
mort___ has quit [Quit: Leaving.]
obadz has joined #ocaml
tibor_ has joined #ocaml
ely-se has joined #ocaml
_andre has joined #ocaml
snyp has joined #ocaml
troydm has quit [Ping timeout: 264 seconds]
The_Mad_Pirate has quit [Quit: Konversation terminated!]
rgrinberg has joined #ocaml
jabesed has joined #ocaml
rgrinberg has quit [Ping timeout: 268 seconds]
ob_ has joined #ocaml
ontologiae has quit [Ping timeout: 246 seconds]
mcclurmc has joined #ocaml
troydm has joined #ocaml
snyp has quit [Ping timeout: 240 seconds]
mcclurmc has quit [Ping timeout: 264 seconds]
tennix has quit [Ping timeout: 240 seconds]
ontologiae has joined #ocaml
ggole has joined #ocaml
jabesed has quit [Quit: Konversation terminated!]
rgrinberg has joined #ocaml
mort___ has joined #ocaml
rgrinberg has quit [Ping timeout: 240 seconds]
ygrek has joined #ocaml
ob_ has quit [Ping timeout: 255 seconds]
ob_ has joined #ocaml
ely-se has quit [Quit: leaving]
travisbrady has joined #ocaml
jao has joined #ocaml
jao has quit [Ping timeout: 244 seconds]
ygrek_ has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
jimt has joined #ocaml
tennix has joined #ocaml
ygrek_ has quit [Ping timeout: 246 seconds]
ob_ has left #ocaml ["Leaving"]
tennix has quit [Ping timeout: 240 seconds]
ely-se has joined #ocaml
ely-se has quit [Quit: leaving]
zpe has quit [Read error: Connection reset by peer]
zpe has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg has quit [Ping timeout: 272 seconds]
hcarty has quit [Ping timeout: 246 seconds]
hcarty has joined #ocaml
creicher` has joined #ocaml
creichert has quit [Read error: Connection reset by peer]
kushal has quit [Quit: Leaving]
ely-se has joined #ocaml
igoroliveira has joined #ocaml
ely-se has quit [Quit: leaving]
gpietro has joined #ocaml
mort___ has quit [Quit: Leaving.]
dhil has joined #ocaml
tennix has joined #ocaml
rgrinberg has joined #ocaml
mcclurmc has joined #ocaml
ely-se has joined #ocaml
mcclurmc has quit [Ping timeout: 250 seconds]
ely-se has quit [Client Quit]
BitPuffin has joined #ocaml
tennix has quit [Ping timeout: 240 seconds]
tennix has joined #ocaml
nullcatxxx_ has joined #ocaml
<nullcatxxx_> https://gist.github.com/anonymous/888a710bf6b4ecf26b2f what are those statements starting with hashtag?
<Drup> statements to tell the compilers the "original source" location
<Drup> so that the error messages refer to that
<nullcatxxx_> thx
<pippijn> "hashtag" :\
<nullcatxxx_> ...
<nullcatxxx_> hash
<Drup> sharp.
tennix has quit [Ping timeout: 256 seconds]
<pippijn> Drup: not really
<Drup> pippijn: yes, I know
<pippijn> ♯ is sharp
<pippijn> hash is fine
<pippijn> or octothorp
<nullcatxxx_> thanks, everyone. i feel ashamed..
<Drup> pippijn: but for all intent and purposes, we can happily conflates the two symbols except when talking about music.
<pippijn> yeah
<pippijn> C#
ely-se has joined #ocaml
bernardo1pc has quit [Ping timeout: 244 seconds]
bernardofpc has joined #ocaml
ely-se has quit [Client Quit]
tennix has joined #ocaml
oscar_toro has left #ocaml [#ocaml]
tennix has quit [Ping timeout: 240 seconds]
sepp2k has quit [Quit: Leaving.]
tennix has joined #ocaml
JuggleTux has joined #ocaml
mort___ has joined #ocaml
ygrek has joined #ocaml
BitPuffin has quit [Ping timeout: 244 seconds]
mcclurmc has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
ely-se has joined #ocaml
mcclurmc has quit [Ping timeout: 256 seconds]
andrew` has joined #ocaml
andrew` has quit [Remote host closed the connection]
derpycat has joined #ocaml
<derpycat> Hi, how can I use regular expressions within a match statement?
sagotch has joined #ocaml
<companion_cube> there might be libraries with such syntax extension, but I'm not sure
<derpycat> Wow, is it really that esoteric?
<nullcatxxx_> sedlex
<derpycat> nullcatxxx_: Very interesting, thanks!
<companion_cube> derpycat: it's not built into the language, therefore it has to be added via a syntax extension
MercurialAlchemi has joined #ocaml
<enjolras_> you can use sedlex
ontologiae has quit [Ping timeout: 265 seconds]
mort___ has quit [Quit: Leaving.]
jhaberku has joined #ocaml
ely-se has quit [Quit: leaving]
browncodes has quit [Read error: Connection reset by peer]
browncodes has joined #ocaml
shinnya has joined #ocaml
Submarine has quit [Remote host closed the connection]
derpycat has quit [Ping timeout: 246 seconds]
ely-se has joined #ocaml
tennix has quit [Read error: Connection reset by peer]
ely-se has quit [Client Quit]
<nullcatxxx_> companion_cube: how's Map module implemented? balanced binary tree?
ygrek has quit [Ping timeout: 240 seconds]
<companion_cube> yes
<nullcatxxx_> it's implementation looks clean. no crazy trick. i'd like to read it more carefully to see why it's fast...
<companion_cube> it's less balanced than usual ;)
<nullcatxxx_> height 2?
<companion_cube> an AVL with height difference at most 2
<companion_cube> yes
<companion_cube> I'd like to read papers about this, but couldn't find any
<nullcatxxx_> you dig out buenzli's answer?
<companion_cube> no, which answer?
<nullcatxxx_> hold on sec
gabemc has joined #ocaml
octachron has quit [Quit: Leaving]
<nullcatxxx_> it's 1993's functional pearl
derpycat has joined #ocaml
<Drup> I also remember an email from yaron detailing the performance tests they did on AVL trees for Core
<companion_cube> i didn't know this post, I rarely go on SO
<companion_cube> I have weight-balanced trees that perform well, too
<nullcatxxx_> Drup: do you mind find it out? i'd like to read it
<Drup> heh, I can try
<companion_cube> warning 50 is so annoying ---
<nullcatxxx_> companion_cube: which one? i am not very familiar what's inside your cube
<nullcatxxx_> container
<Drup> nullcatxxx_: loot in the archive for a mail by yaron on the 03/06/2014 named " Why AVL-tree?"
<nullcatxxx_> thanks..
<nullcatxxx_> i always wonder if i can download archive in mbox so i can search whatever i like more easily
<nullcatxxx_> oh this.
<nullcatxxx_> this is documented in Core's AVL tree file
<nullcatxxx_> "red black trees are hard to code and understand (mostly due to
<nullcatxxx_> remove)" not recently
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has quit [Ping timeout: 264 seconds]
ontologiae has joined #ocaml
rgrinberg has joined #ocaml
BitPuffin has joined #ocaml
nullcatxxx_ has joined #ocaml
derpycat has quit [Quit: leaving]
ontologiae has quit [Ping timeout: 252 seconds]
johnf_ has quit [Remote host closed the connection]
zpe has quit [Remote host closed the connection]
johnf_ has joined #ocaml
martintrojer has quit [Ping timeout: 240 seconds]
Guest38 has joined #ocaml
martintrojer has joined #ocaml
jhaberku` has joined #ocaml
jhaberku has quit [Read error: Connection reset by peer]
travisbrady has quit [Quit: travisbrady]
jwatzman|work has joined #ocaml
ely-se has joined #ocaml
jwatzman|work has quit [Client Quit]
sagotch has quit [Quit: Page closed]
travisbrady has joined #ocaml
tnguyen has quit [Read error: Connection reset by peer]
rgrinberg has quit [Ping timeout: 244 seconds]
tnguyen has joined #ocaml
gabemc has quit [Ping timeout: 260 seconds]
jhaberku` has quit [Ping timeout: 244 seconds]
jao has joined #ocaml
jonludlam has quit [Ping timeout: 264 seconds]
JuggleTux has quit [Remote host closed the connection]
rgrinberg has joined #ocaml
jao has quit [Ping timeout: 255 seconds]
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Intensity has quit [Ping timeout: 244 seconds]
Intensity has joined #ocaml
nullcatxxx_ has joined #ocaml
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
psy_ has joined #ocaml
jwatzman|work has joined #ocaml
tibor_ has quit [Quit: Page closed]
Haudegen has quit [Ping timeout: 255 seconds]
shinnya has quit [Ping timeout: 252 seconds]
Guest38 has quit [Read error: Connection reset by peer]
malc_ has joined #ocaml
Haudegen has joined #ocaml
maurer has quit [Ping timeout: 246 seconds]
sz0 has joined #ocaml
dhil has quit [Quit: Leaving]
Haudegen has quit [Ping timeout: 250 seconds]
aftershave has quit [Quit: Textual IRC Client: www.textualapp.com]
maurer has joined #ocaml
BitPuffin has quit [Ping timeout: 246 seconds]
Haudegen has joined #ocaml
Kakadu has quit [Quit: Page closed]
nullcatxxx_ has joined #ocaml
nullcatxxx_ has quit [Client Quit]
johnf_ has quit [Remote host closed the connection]
<Maelan> I think I found a small mistake in the OCaml manual.
<Maelan> Here it says « type-constraint::=constraint ' ident = typexpr  »
<Maelan> but it seems that the left side of = can be any typexpr
<Maelan> not just 'ident
kushal has joined #ocaml
JuggleTux has joined #ocaml
sh0t has joined #ocaml
shinnya has joined #ocaml
<Maelan> I’m just discovering that keyword by the way, has it been added to OCaml for long?
travisbrady has quit [Quit: travisbrady]
<flux> "constraint"? yes, it's been in ocaml for a very long time.
slash^ has quit [Read error: Connection reset by peer]
<Maelan> My bad then. :[
<Maelan> Oh well, it should not be to hard to cope with, after all.
<Maelan> I naïvely thought than it complicated subtyping or something.
<Maelan> but no
<Maelan> *too
<ely-se> what is the difference between subtyping and subsumption and why isn't Int a subtype of forall a. a (in Haskell syntax)?
Denommus has joined #ocaml
<Maelan> (I remember now having seen the keyword « constraint » in some advanced examples of objects, but I didn’t looked further)
darkf has quit [Quit: Leaving]
travisbrady has joined #ocaml
rand__ has joined #ocaml
ontologiae has joined #ocaml
<ggole> ely-se: 'a . 'a can be used as a value of any type: Int obviously can't
<ely-se> so can object vs string in C#
<ggole> Hmm, lemme think this through.
<Maelan> ely-se, but the type Object is not the equivalent of ∀a.a
<Maelan> It corresponds to a type “Top” which is conveniently a super-type of any other.
<Maelan> But it means that when you coerce a value to the type Object, you lose any information about it.
<ely-se> ah right
<ely-se> yeah
<ggole> Seems to me it's the other way around
<ggole> 'a . 'a :> int
<ely-se> ∀a.a -> a is more useful than ⊤ -> ⊤ generally
<ggole> The details of subtyping never seem to stick for me.
<Maelan> And you can’t (or at least you should not be able to, if the language has correctly typing rules) coerce your value back to its initial type, or any other type.
<ggole> Well, the two are different types
<Maelan> That means that once converted to the type Object, you can’t give your value to a function taking anything but an Object.
<ggole> Which one is more useful isn't the point: you use the one that you need
Kakadu has joined #ocaml
tane has quit [Quit: Verlassend]
travisbrady has quit [Quit: travisbrady]
<ely-se> thank you very much
<Maelan> ggole, to me it’s the opposite.
<Maelan> ∀a.a :< int
<Maelan> and in fact, ∀a.a :< T for any type T
<Maelan> because it is much harder for a value to be of all types at the same time, than to be just of type int.
<Maelan> If you are of type ∀a.a, then *in particular* you are of type int.
<Maelan> (substitution principle)
<ely-se> ∀a.a is like bottom
<Maelan> But I’m not an expert, and I don’t know if it makes much sense to compare a quantified type with a non-quantified one.
travisbrady has joined #ocaml
<ely-se> In Haskell, non-terminating expressions have type ∀a.a. In Scala they have type Nothing which is a subtype of all types.
<ely-se> in that regard they're used for the same purpose
<Maelan> Yes, proving ∀a.a may be difficult :->
nullcatxxx_ has joined #ocaml
<Maelan> ely-se, for your question about « subtyping » and « subsumption », I found this: http://sei.pku.edu.cn/~xiongyf04/DPPL/2014/zhao_ch15.pdf
<Maelan> Apparently the guy calls « subtyping » the relation between types, and « subsumption » the operation of widening the type of an expression.
<ely-se> Maelan: introduce null, problem solved :P
<Maelan> Assert False.
<ely-se> Nontermination is bad :(
<ely-se> Maelan: Oh I see.
<Maelan> can’t say it’s the good answer though
<ely-se> is subtyping used a lot in OCaml?
<Maelan> While we are, I have another question on subtyping: what’s the point of the types of the form [< `a | `b] ?
<Maelan> I mean, it covers exactly the values that can be either of the form `a or of the form `b.
<Maelan> So why not simply use [ `a | `b ] ?
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<flux> it refers to types, not values
<flux> so type [ `open ] is ok, as is [ `closed ], or [ `open | `closed ]
<ggole> Maelan: thinko, I meant 'a . 'a <: int
<ggole> So we're in agreement
<Maelan> But wouldn’t be [ `open ] and [ `closed ] accepted anyway where [ `open | `closed ] is expected, thanks to subtyping?
<Maelan> k ggole
<mrvn> Maelan: [ `a | `b ] is exactly `a or `b
<mrvn> Maelan: The use case for this is "val f : [< `A | `B ] as 'a -> 'a"
<mrvn> Maelan: If you call f with a value of type [ `A ] then you will get back a value of type [ `A ] and never `B
<Maelan> oh I see, to keep the return type as narrow as possible
<mrvn> Maelan: exactly
<mrvn> Maelan: that way you can still pass the result to functions that take a narrower type.
<Maelan> hmm, not so easy to get the compiler to produce that type.
<mrvn> it never will. you have to annotate it
<Maelan> # let g : 'a -> 'a = fun (x: [<`a | `b]) -> x;;
<Maelan> val g : ([< `a | `b ] as 'a) -> 'a = <fun>
<Maelan> That’s cool, but
<Maelan> # let g : 'a -> 'a = function `a -> `a | `b -> `b;;
<Maelan> val g : [ `a | `b ] -> [ `a | `b ] = <fun>
<mrvn> it doesn't know what your intention is [] [<] or [>] are all possible. it defaults to []
<Maelan> replacing « `a -> `a » with « `a as x -> x » does not help.
<mrvn> # let g : ([< `a | `b ] as 'a) -> 'a = function `a -> `a | `b -> `b;;
<mrvn> val g : [ `a | `b ] -> [ `a | `b ] = <fun>
<Maelan> still not enough
<Maelan> (this what I tried first)
<mrvn> I think you can't [< ] that because it uses every type
malc_ has quit [Quit: leaving]
<Maelan> but « function `a | `b -> 0 » gives a [< ].
<mrvn> # let g (x : [< `a | `b ]) = ((match x with `a -> `a | `b -> `b) : [< `a | `b ]);;
<mrvn> val g : [< `a | `b ] -> [ `a | `b ] = <fun>
<mrvn> # let g (x : [< `a | `b ] as 'a) = ((match x with `a -> `a | _ -> raise Not_found) : 'a);;
<mrvn> val g : ([< `a | `b > `a ] as 'a) -> 'a = <fun>
<Maelan> Oh, you are right.
<mrvn> To make it know that different cases in the match return different things and not all will be taken you have to use GADTs.
<Maelan> I see
<Maelan> .
<Maelan> no fun
JuggleTux has quit [Ping timeout: 268 seconds]
<mrvn> I think most of the time [> ] and [< ] will be used with phantom types
ggole has quit []
nullcatxxx_ has joined #ocaml
<ely-se> how do you google [< ] and [> ]?
gperetin has quit [Ping timeout: 264 seconds]
rj-code has quit [Ping timeout: 256 seconds]
gperetin has joined #ocaml
jao has joined #ocaml
rj-code has joined #ocaml
rgrinberg has quit [Ping timeout: 255 seconds]
w0rp has left #ocaml ["Leaving"]
MercurialAlchemi has quit [Ping timeout: 244 seconds]
_andre has quit [Quit: :d]
ibor has joined #ocaml
orbitz_ has joined #ocaml
apache2_ has joined #ocaml
apache2 has quit [Ping timeout: 250 seconds]
jlouis has quit [Ping timeout: 264 seconds]
orbitz has quit [Ping timeout: 250 seconds]
travisbrady has quit [Quit: travisbrady]
jlouis has joined #ocaml
browncodes has quit [Ping timeout: 240 seconds]
browncodes has joined #ocaml
rgrinberg has joined #ocaml
travisbrady has joined #ocaml
jonludlam has joined #ocaml
kushal has quit [Quit: Leaving]
rgrinberg has quit [Ping timeout: 264 seconds]
ibor has quit [Quit: Leaving.]
obadz has quit [Ping timeout: 250 seconds]
<apache2_> what are the easiest unit testing tools available for ocaml?
<companion_cube> ounit?
<companion_cube> easy in what sense?
<apache2_> easy to manage and write tests
<apache2_> do you use ounit?
<companion_cube> well, ounit is the reference
<companion_cube> I use qtest, which uses ounit
<apache2_> would you recommend qtest over ounit_
<companion_cube> I have no idea of your use case :-)
<companion_cube> I use qtest because it allows me to write tests in comments, right next to the code, but if you don't need that then go with OUnit
<apache2_> mildly experienced ocaml programmer, looking to develop some more methodology around the tools :)
sh0t has quit [Ping timeout: 264 seconds]
<apache2_> I'm working on a project that has implementations in several languages, and I would like to be able to run the same test against other implementations too
<companion_cube> oh.
<apache2_> so I'm guessing I will have to write a wrapper of sort for each test, for each language
<companion_cube> doesn't sound possible with unit testing, which is specific to each langauge
<companion_cube> maybe with input files and expected outputs? like what ocamlc does?
obadz has joined #ocaml
<apache2_> yep, I was thinking something along the lines of that
<apache2_> inline test of smaller components sounds pretty nice too though
<apache2_> ocamlc does that?
<companion_cube> if you want to take a look, batteries uses qtest a lot
<companion_cube> yes, the compiler's tests are small .ml files with their expected output, mostly
<apache2_> thank you
BitPuffin|osx has joined #ocaml
mac10688 has joined #ocaml
ely-se has quit [Read error: Connection reset by peer]
ontologiae has quit [Ping timeout: 240 seconds]
travisbrady has quit [Quit: travisbrady]
toolslive has quit [Ping timeout: 256 seconds]
travisbrady has joined #ocaml
rgrinberg has joined #ocaml
Kakadu has quit [Remote host closed the connection]
ollehar has joined #ocaml
antkong_ has joined #ocaml
gpietro has quit [Ping timeout: 268 seconds]
rand__ has quit [Quit: leaving]
madroach has quit [Ping timeout: 264 seconds]
gpietro has joined #ocaml
madroach has joined #ocaml
Denommus has quit [Quit: going home]
travisbrady has quit [Quit: travisbrady]
swgillespie has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]