adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org and http://caml.inria.fr | http://ocaml.org/releases/4.02.0.html | Public channel logs at http://irclog.whitequark.org/ocaml
darkf has joined #ocaml
nop0x07bc has quit [Quit: WeeChat 1.0.1]
serge has joined #ocaml
serge has quit [Ping timeout: 245 seconds]
madroach has quit [Ping timeout: 250 seconds]
vfoley- has joined #ocaml
madroach has joined #ocaml
SomeDamnBody has quit [Ping timeout: 256 seconds]
jwatzman|work has quit [Quit: jwatzman|work]
nojb has quit [Quit: nojb]
MrScout_ has quit [Ping timeout: 265 seconds]
pharpend is now known as shencilpharpener
<whitequark> companion_cube: cool. looked at your code, good so far
shencilpharpener is now known as hargendinck
thomasga has joined #ocaml
hargendinck is now known as shencilpharpener
lordkryss has quit [Quit: Connection closed for inactivity]
hausdorff has quit [Remote host closed the connection]
taion809 has joined #ocaml
hausdorff has joined #ocaml
_alephlambda has joined #ocaml
<_alephlambda> Hi, has anyone here used the Z3 theorem prover?
<_alephlambda> ^^ with OCaml bindings, I mean.
<Drup> yes, I did
sheijk_ has joined #ocaml
<_alephlambda> Drup: I have it working for integers, but not characters. I was wondering if I could use you as a sounding board.
<_alephlambda> Drup: Oh, thanks. I'll take a look.
<_alephlambda> Drup: Oh hm...not quite what I was hoping for.
sheijk has quit [Ping timeout: 264 seconds]
<Drup> what do you want ?
<_alephlambda> I have to use the Ocaml bindings in Z3's current ml-ng branch.
<Drup> yeah, my link is an overlay for that
<_alephlambda> Drup: Did you ever try to work with Z3's Reals?
<Drup> yes
<Drup> I only did through my overlay, because Z3's ocaml API is crap
<Drup> (yes, I'm talking about the ml-ng one)
<_alephlambda> Yeaaaaah.....
<_alephlambda> It's an evil I'm stuck with, though :(
<Drup> _alephlambda: you're not stock, I did an overlay for it ! :)
<Drup> stuck*
<Drup> I mean, it's perfectly compatible with it, it's just functions on top of it, to hide the type-unsafety :)
<_alephlambda> stuck with == my advisor has required that we use z3 directly
<Drup> by curiosity, your advisor is ? :)
<_alephlambda> No comment? :)
rgrinberg has quit [Quit: Leaving.]
thomasga has quit [Quit: Leaving.]
<Drup> well, you can still ask him if you can use it
<Drup> anyway, what was your question about ?
<_alephlambda> I'm using z3 as part of a larger effort to generate test cases for C program. Right now, I'm having trouble handing characters and floats. (The only thing I handle sort of well is int)
<Drup> what issue do you have ?
<_alephlambda> For floats, none of the generated test cases actually involve floats. Everything is an int. I realize this is very little to go on.
<Drup> well, I don't know your code at all, so ...
<_alephlambda> yeah, I realize
<_alephlambda> I'll take a more thorough look at those bindings after I fix this float stuff :)
vfoley- has quit [Ping timeout: 240 seconds]
_alephlambda has left #ocaml [#ocaml]
struktured has quit [Ping timeout: 244 seconds]
rgrinberg has joined #ocaml
struktured has joined #ocaml
serge has joined #ocaml
hausdorff has quit [Remote host closed the connection]
sheijk has joined #ocaml
serge has quit [Ping timeout: 240 seconds]
sheijk_ has quit [Ping timeout: 264 seconds]
shencilpharpener is now known as pharpend
serge has joined #ocaml
shinnya has quit [Ping timeout: 264 seconds]
rgrinberg has quit [Quit: Leaving.]
samrat has joined #ocaml
samrat has quit [Client Quit]
samrat has joined #ocaml
struktured has quit [Ping timeout: 260 seconds]
samrat has quit [Ping timeout: 260 seconds]
samrat has joined #ocaml
samrat has quit [Client Quit]
struktured has joined #ocaml
samrat has joined #ocaml
vfoley- has joined #ocaml
vfoley- has quit [Ping timeout: 244 seconds]
araujo has joined #ocaml
ontologiae has joined #ocaml
willy_ has joined #ocaml
wwilly has quit [Ping timeout: 256 seconds]
samrat has quit [Ping timeout: 258 seconds]
samrat has joined #ocaml
sheijk has quit [Quit: n8]
gravityblast has joined #ocaml
gravityblast has quit [Quit: gravityblast]
hausdorff has joined #ocaml
shinnya has joined #ocaml
govg has joined #ocaml
ontologiae has quit [Ping timeout: 260 seconds]
hausdorff has quit [Remote host closed the connection]
samrat has quit [Ping timeout: 260 seconds]
samrat has joined #ocaml
samrat has quit [Ping timeout: 244 seconds]
samrat has joined #ocaml
taion809 has quit [Ping timeout: 245 seconds]
struktured has quit [Ping timeout: 272 seconds]
shinnya has quit [Ping timeout: 265 seconds]
serge has quit [Remote host closed the connection]
serge has joined #ocaml
ontologiae has joined #ocaml
q66[lap] has joined #ocaml
serge has quit [Ping timeout: 244 seconds]
q66[lap]_ has quit [Ping timeout: 250 seconds]
ontologiae has quit [Ping timeout: 258 seconds]
govg has quit [Remote host closed the connection]
slash^ has joined #ocaml
_5kg has quit [Ping timeout: 244 seconds]
Intensity has quit [Remote host closed the connection]
govg has joined #ocaml
MercurialAlchemi has joined #ocaml
oscar_toro has joined #ocaml
ebzzry__ has joined #ocaml
ebzzry_ has quit [Remote host closed the connection]
_5kg has joined #ocaml
badon_ has joined #ocaml
badon has quit [Disconnected by services]
badon_ is now known as badon
govg has quit [Ping timeout: 256 seconds]
psy_ has quit [Ping timeout: 240 seconds]
ontologiae has joined #ocaml
ontologiae has quit [Ping timeout: 265 seconds]
govg has joined #ocaml
Arsenik has joined #ocaml
Simn has joined #ocaml
psy_ has joined #ocaml
serge has joined #ocaml
psy_ has quit [Ping timeout: 255 seconds]
darkf has quit [Quit: Leaving]
darkf has joined #ocaml
serge has quit [Ping timeout: 265 seconds]
tnguyen has quit [Read error: Connection reset by peer]
tnguyen has joined #ocaml
mort___ has joined #ocaml
samrat has quit [Ping timeout: 272 seconds]
samrat has joined #ocaml
hhugo1 has joined #ocaml
pyon has quit [Ping timeout: 244 seconds]
pyon has joined #ocaml
hyperboreean has quit [Ping timeout: 250 seconds]
oscar_toro has quit [Ping timeout: 265 seconds]
kakadu has joined #ocaml
ontologiae has joined #ocaml
vpm has quit [Quit: co'o]
tane has joined #ocaml
vpm has joined #ocaml
ontologiae has quit [Ping timeout: 260 seconds]
serge has joined #ocaml
samrat_ has joined #ocaml
samrat has quit [Ping timeout: 244 seconds]
mort___ has quit [Quit: Leaving.]
samrat_ has quit [Ping timeout: 264 seconds]
psy_ has joined #ocaml
samrat has joined #ocaml
nojb has joined #ocaml
larhat has joined #ocaml
ggole has joined #ocaml
<flux> ocsigen examples could use some comments.. I guess one can't just right jump into making reactive single-page apps with it :)
samrat has quit [Ping timeout: 244 seconds]
samrat has joined #ocaml
nojb has quit [Quit: nojb]
shinnya has joined #ocaml
pyon has quit [Ping timeout: 250 seconds]
<flux> man, the current tuareg indentation can really lead to some deep indentation with eliom
<flux> which switch do I need to touch to make it not indent function application arguments on the next line so deeply? plain indentation of 2 characters is enough for me.
avsm has joined #ocaml
pyon has joined #ocaml
<flux> hmm, actually when I press tab a different effect happens compared to if I evaluate (tuareg-indent-command)
nojb has joined #ocaml
rwmjones has quit [Ping timeout: 250 seconds]
rwmjones has joined #ocaml
elfring has joined #ocaml
larhat has quit [Ping timeout: 255 seconds]
pii4 has quit [Quit: [-.-]...]
ontologiae has joined #ocaml
ontologiae has quit [Ping timeout: 255 seconds]
Thooms has joined #ocaml
<ggole> Yeah, that can be annoying.
avsm1 has joined #ocaml
avsm has quit [Read error: Connection reset by peer]
cbryan has joined #ocaml
thorsten` has quit [Ping timeout: 250 seconds]
badon has quit [Ping timeout: 265 seconds]
<flux> is there somewhere an example for Eliom on making reactive components on the page and then affecting them from the server?
<whitequark> yes
<flux> thanks. asked and answered ;-)
avsm has joined #ocaml
<whitequark> well, if you insist
<flux> but that code dosen't really feed data from the server to the client, does it?
avsm1 has quit [Ping timeout: 256 seconds]
<whitequark> well, actually
<whitequark> I have one
<whitequark> this one does feed data
<flux> thanks!
<flux> actually my helloworld was going to do pretty much the same thing
govg has quit [Ping timeout: 255 seconds]
thorsten` has joined #ocaml
<Armael> does anyone know how to compile an eliom app that uses the sqlite orm syntax extension? (https://github.com/mirage/orm)
<Armael> i'm using the eliom-distillery generated makefiles atm, but i can change if needed
avsm has quit [Quit: Leaving.]
MercurialAlchemi has quit [Ping timeout: 245 seconds]
govg has joined #ocaml
<Drup> flux: use ocp-indent, and read the default config file
rand000 has joined #ocaml
Sim_n has joined #ocaml
<ggole> Dammit, I always forget about exception matching
* ggole rewrites
Simn has quit [Ping timeout: 260 seconds]
huza has joined #ocaml
ysz_ has joined #ocaml
thomasga has joined #ocaml
darkf has quit [Quit: Leaving]
<Drup> whitequark: use the C module on the server side, instead of Manip
<Drup> whitequark: and don't do "Eliom_react.S.Down.of_react time" inside the definition of a service
<Drup> It's ... not a good idea
<flux> whitequark, hmm, that doesn't actually compile with eilom 4.1.0, does it?-o
<flux> drup, thanks, I'll look it up
serge has quit [Remote host closed the connection]
larhat has joined #ocaml
<whitequark> Drup: pff, no. I'll rather watch True Facts About the Owl
struktured has joined #ocaml
<flux> drup, ..it doesn't compile either :), Error: This expression should not be a function, the expected type is
<flux> Eliom_content.Html5.D.Xml.mouse_event_handler for the incr button a_onclick argument
<flux> do I have some special version of eliom, there was also another issue with html typing..
<Drup> flux: the tutorial ?
<flux> drup, yes
<Drup> ah.
axiles has joined #ocaml
<Armael> yea, the first code section seems a little strange
<Armael> s is defined server-side, named without % in the client code, …
<flux> after removing the incr_button it still failed to type React.S.map: Error: This expression has type int React.signal -> [> Html5_types.div ] Eliom_content.Html5.D.elt React.signal but an expression was expected of type 'a Eliom_content.Html5.elt React.signal Eliom_pervasives.client_value = 'a Eliom_content.Html5.elt React.signal
<Armael> yep
<flux> ah, so %s was just missing
<flux> hmm actually it wasn't originally missing, it was only missing the % but I had then accidentally just removed whole s :-)
<flux> figured I had just accidentally entered it :-)
<flux> )) s )}} doesn't really look like what code should look like ;-)
govg has quit [Quit: leaving]
govg has joined #ocaml
huza has quit [Ping timeout: 244 seconds]
<Drup> arg, I fixed the complete code two month ago, but not this part >_>
<Drup> flux: the complete code should be correct, let me try each little piece individually.
<flux> hmm
<flux> with any particular eliom version?
AlexRussia has quit [Ping timeout: 258 seconds]
<Drup> the last one
<Drup> try the dev manual (fix are not automatically backported, unfortunatly)
AlexRussia has joined #ocaml
<flux> ok, the whole source compiles and works.. except I would imagine the gui element should move after I press 'play'?
<Drup> whitequark: your makefile is broken
<flux> oh, I need to provide an mp3 I think
<Drup> flux: yes, that might help :D
<flux> thought it was dry rehersal :)
taion809 has joined #ocaml
<flux> now it works, nice
<flux> hmm, maybe a non-sucking mpd front would be a worthwhile project..
<Drup> flux: did you saw other errors ?
<Drup> in the tutorial
<flux> well, I only yet tried the code only
<whitequark> Drup: yes.
<flux> my code based on the "Basics" fragment caused some "cannot wrap functional values" error, not sure why
<whitequark> like any other makefile in the world.
<whitequark> all of them are broken. by design.
<whitequark> burn make.
<whitequark> burrrrrn
ontologiae has joined #ocaml
<whitequark> oh, did you mean it doesn't work or what
<Drup> you have an akward fascination for burning things.
<Drup> yes, it doesn't work.
<whitequark> well, what can I say? such is life.
<flux> drup, hmm, does the media player actually get reactive updates from the server?
<Drup> flux: oh, hum not really.
<Drup> gimme a sec
<flux> a "collaborative" music player would be fun
<flux> everyone could rewind/play/pause and everyone would play at the same position
<flux> (well, disregarding the difficulty of playback synchronization)
<Drup> flux: if you want a collaborative thingy, there is the "grafity" tutorial.
ontologiae has quit [Ping timeout: 245 seconds]
<Drup> but it was written before we introduced reactive nodes, so you have slightly different way of doing things now
<flux> figures ;)
<Drup> a colaborative music player would be sort of trivial, actually
<flux> tried compiling all the stuff from whitequark's eliom-tutorial, and the same type mismatch error
<Drup> let's fix the tutorial now
<flux> nice, it compiles
<flux> nice2, the repo uses ocamlbuild for compiling
<Drup> oh, I could actually improve it a bit
<whitequark> yep, using ocamlbuild was the motivation for making that repo
<gdsfh> man asks about opam/windows (post in russian, if anyone interested: http://meow.bnw.im/p/L1HHEB ), what can I answer him?
<whitequark> gdsfh: opam doesn't work on windows.
<whitequark> not yet, at least
<gdsfh> whitequark: i know, but maybe he'll want to play with cygwin + hacks to make it work. Or maybe there are some porting initiatives now. Also I've heard of attempts to run opam/win, does anyone succeed in this?
<whitequark> it should sort of work on cygwin
jabesed has joined #ocaml
<gdsfh> whitequark: thanks.
BitPuffin has joined #ocaml
samrat has quit [Quit: Computer has gone to sleep.]
<flux> got it working. noticed that I was using Eliom_tools.html, not F.html..
<Drup> we could probably merge the too :/
<Drup> flux: http://ocsigen.org/tuto/dev/manual/reactivemediaplayer the tutorial should be fixed now
ysz_ has quit [Remote host closed the connection]
jgjl has joined #ocaml
<Drup> flux: https://github.com/whitequark/eliom-example/pull/2 should interest you for you synchronized media player idea :)
<Drup> (and thanks for the reports)
<flux> drup, nice
oscar_toro has joined #ocaml
avsm has joined #ocaml
<Armael> whitequark: in eliom-example, if I want to use eg. an additional foo.ml for the server, where should I put it?
<Armael> app/foo.ml, app/server/foo.ml, …?
larhat1 has joined #ocaml
<Armael> hmm, looks like app/server/foo.ml
<whitequark> yeah
larhat has quit [Ping timeout: 260 seconds]
<Armael> thx
<Drup> Armael: it's using the eliom ocamlbuild plugin directly, you can find the documentation :)
<Armael> ok
<Armael> well, looks like using this i'm able to build with orm.syntax
<Armael> woooo, does merlin .eliom files now?
<Armael> +handles
<Armael> -s
<Drup> nope
<Armael> meh
<Armael> it works in my .eliom file
yomimono has joined #ocaml
<Drup> it's going to choke on eliom stuff
acieroid has quit [Ping timeout: 255 seconds]
<Armael> right
<Armael> still works better than before
<Armael> I only had "only ml files are supported"
struktured has quit [Ping timeout: 272 seconds]
ysz_ has joined #ocaml
levertourist has joined #ocaml
ysz_ has quit [Ping timeout: 244 seconds]
<flux> will it help when the eliom ppx stuff arrives? does/will merlin support ppx?
<whitequark> it will
<flux> cool
<flux> all kinds of cool things are happening :)
acieroid has joined #ocaml
<Drup> well
<Drup> merlin may support ppx, but eliom, even if it's in a ppx format, is slightly trickier.
<flux> right
<whitequark> Drup: as long as you conform to the ppx.context thing
<Drup> whitequark: it's not that simple, unfortunatly
<Drup> (because compilation to two different files, all that)
serge has joined #ocaml
<def`> Drup: have a clean implementation of eliom typechecker ao we can embed it :-)
<Drup> yeah, that's my current plan
<Drup> def`: would a metaocaml-style patch be enough ?
serge has quit [Ping timeout: 244 seconds]
<def`> Drup: we'll see, just try tonhave a working implemetation first
<Drup> right, that's not gonna be trivial >_>
<jabesed> quick somewhat offtopic question, given a monad T : C->C is there a standard name for the functor F : C -> C_T where F(X) = X and F(f) = η . f ?
<jabesed> basically the embedding that allows you to work with pure functions f : A -> B as monadic functions f : A -> T B
<Drup> I would call that lift, but I'm not category theorist.
<jabesed> Drup: hmm right
<jabesed> didn't even think of that
<def`> hmmm, check the kleisli adjunction http://en.m.wikipedia.org/wiki/Kleisli_category (I am no categorist either)
<jabesed> thanks def`
<jabesed> def`: argh they don't have a name for them :(
<jabesed> nor a notation
<jabesed> eh... I'll just make something up
samrat has joined #ocaml
keen_________ has joined #ocaml
keen________ has quit [Ping timeout: 245 seconds]
<jabesed> Drup: interestingly in a denotational semantics book I have here, they kind of do the opposite... they define the lifting Functor as C_T -> C, where a morphism f in kleisli becomes η . f
<jabesed> I want to do the opposite, establish an embedding of C in C_T
<jabesed> anyway, I'll make something up
sagotch has joined #ocaml
<asmanur_> jabesed: if you have f : A → B, the extension of f along the monad is often written f^\dagger : A → TB
<nojb> jabesed: can you recall def of C_T please ?
<asmanur_> (you should look for « Kleisli Structures » which is an equivalent axiomatisation of monads using —^\dagger)
larhat has joined #ocaml
<def`> asmanur_: thx :P
larhat1 has quit [Ping timeout: 260 seconds]
<jabesed> asmanur_: are you sure?... I call extension to the operation that takes f : A->TB into f : TA -> TB
<jabesed> and usually denote it f*
<jabesed> and use the dagger for coextension in comonads
<jabesed> f : TA -> B into f^dagger : TA -> TB
ontologiae has joined #ocaml
sagotch has quit [Quit: sagotch]
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
srax has quit [Quit: WeeChat 0.3.8]
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
srax has joined #ocaml
willy__ has joined #ocaml
willy_ has quit [Ping timeout: 250 seconds]
MercurialAlchemi has joined #ocaml
BitPuffin has quit [Ping timeout: 258 seconds]
sagotch has joined #ocaml
sheijk has joined #ocaml
<sagotch> any scala programmer around here?
koderok has joined #ocaml
koderok has quit [Read error: Connection reset by peer]
bytbox has joined #ocaml
hugomg has joined #ocaml
thomasga has quit [Quit: Leaving.]
shinnya has quit [Ping timeout: 245 seconds]
yomimono has quit [Ping timeout: 265 seconds]
struktured has joined #ocaml
<hugomg> Can anyone help me with a question about type abstraction? In my code I have two kinds of IDs that are currently just integers and I want to abstract them for extra type safety. Is http://pastebin.com/8hD5T4Aq how you would do that? I wonder if there is a less verbose way because in Haskell it would have been an one liner.
<Drup> you can also do type foo = Foo of int, if you don't mind the small overhead
<Drup> but yes, that's the right way to do it
<nojb> hugomg: another possibility, depending on what you want to do, is to use type t = private int
samrat has quit [Ping timeout: 250 seconds]
<hugomg> what do you mean by "depending on what you want to do"?
<Drup> nojb: only in the signature
<Drup> nojb: if you declare your type directly like that, you will never be able to construct any t :]
<nicoo> hugomg: private makes it so that t can be implicitely demoted (cast) to int
<nojb> Drup: yes, only in the sig
<nicoo> But there won't be any promotion (outside of the module) of ints into t
<nicoo> (so you still need to expose of_int)
<hugomg> is this implicit cast just a matter of efficiency of compiled code or does it allow implicit casts without Id2.to_int (breaking type safety)?
ysz_ has joined #ocaml
samrat has joined #ocaml
<Drup> nicoo: not implicitly
<nicoo> hugomg: Yes, it means you don't need Id2.to_int. That's why nojb mentionned it depends on what you want to do (it is, however, perfectly type-safe)
<Drup> you need an explicite downcast
<Drup> x :> int
<nicoo> Drup: Yes, not implicitely, I should have said “without using to_int”
<hugomg> ah, interesting, Iĺl check out the private stuff in the manual then. def`: your code works but my syntax highligher doesn't like it. Is it using some new feature?
<Drup> generative functors :3
<Drup> 4.02
<Drup> def`: so fancy :p
<def`> :-)
<def`> hugomg: you can rewrite that to module New_id (P: sig end) : … = …
<def`> and module Id1 = New_id (struct end)
<Drup> be careful not to factor out the "struct end" .. :D
<def`> (the important part being the inline struct end, otherwise you won't get generative behavior)
<def`> :)
koderok has joined #ocaml
simn__ has joined #ocaml
simn__ has quit [Client Quit]
q66[lap] has quit [Quit: Textual IRC Client: www.textualapp.com]
<mrvn> Does that work with open types? Adding a new variant to the type in a functor.
<gasche> def`: what's Merlin's "home page"? is the github.io/merlin page up to doate?
<gasche> mrvn: yes
<def`> gasche: no idea
<gasche> what should I point to when I refer to the project?
Sim_n has quit [Ping timeout: 260 seconds]
<hugomg> Why can I do (x :> int) with the parenthesis but x :> int without parenthesis is a syntax error? Is this just a toplevel quirk?
<gasche> (I'm add slides to the talk I gave at OWF)
<gasche> hugomg: the syntax needs the parentheses
<ggole> hugomg: it's just like type ascription
<gasche> (obscure story of grammar conflicts)
<def`> gasche: let's say that http://the-lambda-church.github.io/merlin/ is fine, and we will update it now :'
<hugomg> ah, thanks. It being similar to type ascription kind of explains it
<rks`> « and we will update it now » #bs
serge has joined #ocaml
NoNNaN has joined #ocaml
ysz_ has quit [Remote host closed the connection]
serge has quit [Ping timeout: 255 seconds]
thomasga has joined #ocaml
struktured has quit [Ping timeout: 265 seconds]
Thooms has quit [Quit: WeeChat 1.0.1]
struktured has joined #ocaml
<gasche> def`, rks`: do you have a list of "junior jobs" for people that would be interested in contributing to merlin?
<gasche> I think a natural question with the project is "how could I help?", and maybe writing your ideas somewhere would be helpful
hsuh has quit [Ping timeout: 244 seconds]
<sheijk> ppx support! ok, that is probably not a good candidate for someone getting started.. :)
ysz_ has joined #ocaml
hhugo1 has quit [Quit: Leaving.]
hsuh has joined #ocaml
struktured has quit [Ping timeout: 255 seconds]
<ggole> Hmm, ocp-indent is a bit buggy
<ggole> Is github the place to file an issue? Looks a bit graveyardy.
hsuh has quit [Ping timeout: 264 seconds]
<Drup> yes it is
<Drup> why is it graveyardy ?
<ggole> Lots of open issues, no recent activity
<Drup> AltGr was a bit busy with opam 1.2
<ggole> (That could also indicate "stable", I suppose.)
<ggole> Well, I'll file an issue anyway
struktured has joined #ocaml
Anarchos has joined #ocaml
koderok has quit [Ping timeout: 258 seconds]
sagotch has quit [Remote host closed the connection]
cespinoza has joined #ocaml
hausdorff has joined #ocaml
<def`> gasche: no time for that at the moment. Would be nice though.
ontologiae has quit [Ping timeout: 258 seconds]
koderok has joined #ocaml
koderok has quit [Read error: Connection reset by peer]
hsuh has joined #ocaml
nojb has quit [Quit: nojb]
thomasga has quit [Quit: Leaving.]
SomeDamnBody has joined #ocaml
hsuh has quit [Ping timeout: 240 seconds]
jabesed has quit [Ping timeout: 264 seconds]
samrat has quit [Quit: Computer has gone to sleep.]
Arsenik has quit [Remote host closed the connection]
badkins has joined #ocaml
hausdorff has quit [Remote host closed the connection]
hausdorff has joined #ocaml
jabesed has joined #ocaml
thomasga has joined #ocaml
hausdorff has quit [Ping timeout: 245 seconds]
ysz_ has quit [Remote host closed the connection]
larhat has quit [Read error: Connection reset by peer]
larhat has joined #ocaml
hugomg has quit [Ping timeout: 240 seconds]
octachron has joined #ocaml
hsuh has joined #ocaml
serge has joined #ocaml
hhugo1 has joined #ocaml
hsuh has quit [Ping timeout: 255 seconds]
govg has quit [Ping timeout: 245 seconds]
serge has quit [Ping timeout: 272 seconds]
octachron has quit [Quit: Leaving]
avsm has quit [Quit: Leaving.]
martintrojer has quit [Ping timeout: 244 seconds]
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
hugomg has joined #ocaml
slash^ has left #ocaml [#ocaml]
hugomg has quit [Ping timeout: 255 seconds]
hugomg has joined #ocaml
rgrinberg has joined #ocaml
axiles has quit [Ping timeout: 256 seconds]
hugomg has quit [Ping timeout: 255 seconds]
axiles has joined #ocaml
tane has quit [Quit: Verlassend]
hsuh has joined #ocaml
<flux> hmm, batteries used to have **>, didn't it? what was its implementation?
<flux> or even type.
<flux> or maybe not, cannot find from batteries git
<flux> ah, let ( **> ) f x = f x
<flux> another issue I found when compiling an old project of mine: my common.ml has include Batteries include Lwt. both define the type result. how to resolve this?
<flux> probably Batteries didn't use to expose 'result' in its top-level module, but now does
<Drup> flux: that's useless now, use @@
<Drup> about the other issue .. stop including stuff, and just use open ?
<flux> well, I open Common in the rest of my modules
<flux> I like to put, well, common stuff there ;)
<flux> one could say this is a way to reduce boilerplate.
<Drup> If I may "urk".
<Drup> stop opening Lwt anyway, it reduces code readability quite a lot
<flux> it also defines commonly used module name aliases
<flux> perhaps that's the way to go, and only 'let' the functions I use
<Drup> there is the ugly solution, of course, which is to do something like "type lwt_result = Lwt.result, module MyLwt = Lwt with type result := lwt_result ;; include MyLwt
<Drup> but please don't do that :)
<flux> it appears I had only used three functions from Lwt, so I just picked those.
<Drup> let me guess, >>=, >|= and return ? :D
<flux> >>=, return and ignore_result
<flux> you were wrong :)
<Drup> arg!
<Drup> 2 out of 3
<flux> only two years old project and these kind of difficulties in recompiling it ;)
<flux> bit rot is real!
<flux> mikmatch_pcre wouldn't install via opam with 4.02, I needed to replace its use
<Drup> I would note that it wouldn't be an issue if you were using Lwt explicitly :3
<flux> at least it was easy to find&install the rest of the dependencies
<flux> drup, well, I think the duplicate type with 'include' should be a warning and it should just overwrite the symbol.
<flux> there's very little chance the result will compile anyway if it's the wrong choice :)
<sheijk> include is different from open and that behaviour would only make sense with the latter
struktured has quit [Ping timeout: 265 seconds]
<Drup> fortunatly, that's exactly the behavior of open :p
<flux> but, it doesn't allow me to set a nice set of symbols I can access the same way in all modules in the project
<flux> unless I write the same set of 'open's at the top of the file
<flux> of course, it's not a large number of them, but it's the same and defined in a single place.
<flux> in fact it only remains that Batterise is included in Common ;)
<flux> (it also defines useful shortcut to the CalendarLib module, but I suppose I could just put them into c.ml)
<sheijk> maybe it's better to just be explicit about your dependencies? readability >> saving keystrokes
<flux> you know, it's readability when you don't have the same stuff at the top of each file
<flux> particularly if some of them may be succinctly different
ggole has quit []
<flux> this way I have the compiler ensure they are the same everywhere.
<sheijk> so it looks like all modules use the same things. which probably is not quite accurate. also makes it harder to see where symbols come from
<flux> on the other hand, when I have the same set of names available in each module, I can move code easier from one module to another
<flux> in particular when module aliases are involved
<sheijk> Drup: you mentioned platforms that do not support native code in your ticket on ppx_string_interpolate. which would those be? or how would i test it will work on them?
<sheijk> i'm seeing how this works for libraries with archive(native) vs archive(byte) but i'm not sure how byte/native versions are decided + communicated for ppx filter
<flux> for example, I have chosen to use the name MQ for Lwt_msgqueue; it's nice that all and every module uses the same name for it.
<sheijk> flux: uh.. now you're entering very dark territory (renaming external lib identifiers in your code) ;)
<Drup> renaming is fine
<sheijk> but well. do whatever you want in your own code :)
<Drup> it's just using open everywhere and having everything in scope and not knowing there things come from, which is an issue
<Drup> (hence my remark about opening Lwt)
<nicoo> flux: Defining module aliases is a completely different issue from include-ing whole modules into somme Common module
<nicoo> some*
<flux> nicoo, how about including Batteries then?
<flux> it's basically a bunch of submodules anyway.
<nicoo> Batteries is a special case in the sense that you know it shadows all the modules from the stdlib
<Drup> and tons of stuff that shouldn't be in pervasive
<nicoo> And doesn't brings value into scope
<Drup> actually ...
<nicoo> s/doesn't/shouldn't/ sorry :3
<flux> I think it does bring at least the 'result' type :-)
<Drup> yeah, but it does, which is annoying
<flux> I imagine it brings/oevrloads what the Pervasives module has?
<Drup> flux: more
<Drup> in particular, it shadows the channel types with batterie's custom ones
WraithM has joined #ocaml
<flux> yeah, that can be super annoying when interacting with other libraries using the real channel types
<Drup> (well, now shadow exactly, but the pervasive functions)
<Drup> not*
<flux> but, you can usually just use Pervasives.x and be done with it.
<flux> too bad the standard streams suck so much :(
<Drup> I personally use BatModules directly
<Drup> both for that reason, and because it brings me little joy everytime I use BatMap.
<flux> I actually do that often as well
<Drup> :D
ontologiae has joined #ocaml
<flux> usually it starts with using BatList, because that's likely the first thing I'll be missing and I don't want to wring everything in at once ;)
ontologiae has quit [Ping timeout: 260 seconds]
larhat1 has joined #ocaml
axiles has quit [Ping timeout: 264 seconds]
larhat has quit [Ping timeout: 260 seconds]
WraithM has quit [Ping timeout: 264 seconds]
ysz_ has joined #ocaml
SomeDamnBody has quit [Ping timeout: 245 seconds]
axiles has joined #ocaml
bytbox has quit [Remote host closed the connection]
badon has joined #ocaml
ysz_ has quit [Remote host closed the connection]
Submarine has joined #ocaml
cody__ has joined #ocaml
pii4 has joined #ocaml
pii4 has quit [Changing host]
pii4 has joined #ocaml
ysz_ has joined #ocaml
marvin-hh has quit [Ping timeout: 245 seconds]
SomeDamnBody has joined #ocaml
marvin-hh has joined #ocaml
rs0 has joined #ocaml
ohama has quit [Ping timeout: 258 seconds]
Submarine has quit [Ping timeout: 250 seconds]
rs0 has quit [Client Quit]
rs0 has joined #ocaml
nojb has joined #ocaml
bytbox has joined #ocaml
rs0 has quit [Client Quit]
Submarine has joined #ocaml
Intensity has joined #ocaml
ohama has joined #ocaml
ysz_ has quit [Remote host closed the connection]
ohama has quit [Ping timeout: 245 seconds]
axiles has quit [Ping timeout: 240 seconds]
axiles has joined #ocaml
avsm has joined #ocaml
govg has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rs0 has joined #ocaml
ohama has joined #ocaml
ikaros has joined #ocaml
badon has quit [Quit: Leaving]
rs0 has quit [Client Quit]
thomasga has quit [Quit: Leaving.]
rs0 has joined #ocaml
rs0 has quit [Client Quit]
oscar_toro has quit [Ping timeout: 245 seconds]
jgjl has joined #ocaml
hausdorff has joined #ocaml
jgjl has quit [Quit: Textual IRC Client: www.textualapp.com]
jonludlam has joined #ocaml
avsm has quit [Quit: Leaving.]
ontologiae has joined #ocaml
sagotch has joined #ocaml
ontologiae has quit [Ping timeout: 264 seconds]
ontologiae has joined #ocaml
willy__ has quit [Quit: Leaving]
sheijk has quit [Ping timeout: 264 seconds]
cthuluh has quit [Ping timeout: 265 seconds]
cthuluh has joined #ocaml
ontologiae has quit [Ping timeout: 250 seconds]
avsm has joined #ocaml
thomasga has joined #ocaml
ikaros has quit [Quit: Ex-Chat]
elfring has quit [Quit: Konversation terminated!]
SomeDamnBody has quit [Ping timeout: 272 seconds]
serge has joined #ocaml
serge has quit [Ping timeout: 264 seconds]
Submarine has quit [Remote host closed the connection]
jabesed has quit [Ping timeout: 265 seconds]
sheijk has joined #ocaml
hausdorff has quit [Remote host closed the connection]
rs0 has joined #ocaml
sheijk has quit [Ping timeout: 250 seconds]
rand000 has quit [Ping timeout: 264 seconds]
bgianf has joined #ocaml
avsm has quit [Quit: Leaving.]
MercurialAlchemi has quit [Ping timeout: 256 seconds]
ontologiae has joined #ocaml
alinab has joined #ocaml
axiles has quit [Ping timeout: 260 seconds]
ontologiae has quit [Ping timeout: 245 seconds]
axiles has joined #ocaml
rs0 has left #ocaml [#ocaml]
groux has joined #ocaml
groux has quit [Client Quit]
sheijk has joined #ocaml
madroach has quit [Read error: Connection reset by peer]
ontologiae has joined #ocaml
madroach has joined #ocaml
darkf has joined #ocaml
nojb has quit [Quit: nojb]
hausdorff has joined #ocaml
sheijk has quit [Ping timeout: 255 seconds]
avsm has joined #ocaml
thmslld has joined #ocaml
rs0 has joined #ocaml
hausdorff has quit [Ping timeout: 256 seconds]
rs0 has left #ocaml [#ocaml]
hausdorff has joined #ocaml
psy_ has quit [Ping timeout: 240 seconds]
kakadu has quit [Quit: Konversation terminated!]
rand000 has joined #ocaml
<rand000> was just thinking.. wouldn't it be really nice if nix and opam could cooperate about dependencies, two way :o
<rand000> nix as in nixos
<Drup> thomasga: spring cleaning in beginning of winter ? :p
<rand000> deployment of an ocaml-sourced cloud in a pure and declarative way..
<thomasga> yes, all these issues were painful to for my poor eyes
<Drup> rand000: mirage :]
<rand000> Drup: yes I was thinking about that.. but a unikernel is though quite different from a full os - there might be some usecases for the nixos+ocaml way?
<rand000> fx in mixing source from diff languages
<rand000> or apps not written in ocaml