ChanServ changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.02.1 announcement at http://ocaml.org/releases/4.02.html | Public channel logs at http://irclog.whitequark.org/ocaml
<gasche> for the record, there was an experimental language named Emily in the past, which was a subset/dialect of OCaml
<gasche> it never was used much so I think there is no problem with reusing the name
kakadu has quit [Remote host closed the connection]
<mcc> gasche: uh oh. do you think it will confuse people?
<mcc> OK. My backup plan if Emily turned out to be taken was just shorten to Emmy
<gasche> I don't think there are much risks of confusion
<Drup> gasche: link ? never heard of it
<mcc> Like Ms. Noether
<mcc> (Is it Dr. Noether? I know she had a lot of trouble getting universities to let her in)
<gasche> it was internal work at HP (?) to design an OCaml dialect for programming with a security-by-capability design
<mcc> oh! yeah, i ran across something like that
<mcc> they published one paper and seemed to abandon it...
<Drup> huum, now that you say it, it reminds me something
thomasga has quit [Quit: Leaving.]
<mcc> There was also some startup with an XML processor, named Emily, and I guess they had an internal language as part of their product
<mcc> But hopefully i am not in the same market segment
<mcc> also: most lkely no one will ever use this but me
Yoric has quit [Remote host closed the connection]
<gasche> I think your name choice is fine
<Drup> mcc: https://en.wikipedia.org/wiki/Emmy_Noether "Professor Noether", but unpaid >_>
<mcc> I think she got paid at Bryn Mawr.
rgrinberg1 has quit [Quit: Leaving.]
<whitequark> oh wait Noether's theorem is hers?!
<whitequark> I always found it a rather profound result
Simn has quit [Quit: Leaving]
tg has quit [Ping timeout: 250 seconds]
madroach has quit [Ping timeout: 250 seconds]
MrScout has joined #ocaml
Thooms has quit [Quit: WeeChat 1.0.1]
madroach has joined #ocaml
tg has joined #ocaml
NoNNaN has quit [Remote host closed the connection]
NoNNaN has joined #ocaml
rand000 has quit [Quit: leaving]
Darnuria has joined #ocaml
rgrinberg has joined #ocaml
oscar_toro has quit [Ping timeout: 260 seconds]
<Drup> I'm always slightly surprised at how hard it is to make travis fail for good reasons
<rgrinberg> Drup: :D
<rgrinberg> avsm's approach is to include testing downstream users
<Drup> what does that mean ?
<rgrinberg> for making travis fail
<Drup> sure, but I still don't understand your sentence x)
<rgrinberg> i mean you install your downstream users in your travis scripts
<Drup> oh
<rgrinberg> if you have them
<Drup> to be really sure it's going to fail ? :D
<rgrinberg> btw, what's the interest in ranger?
<rgrinberg> imo the polymorphic approach isn't worth it
<rgrinberg> also i need to de-core the api
<Drup> "general thing to define slices"
<Drup> I disagree with your opinion on the polymorphic approach :D
MrScout has quit [Ping timeout: 272 seconds]
<Drup> or rather, I don't see how the monomorphic version would be better
<rgrinberg> my fear is that the get function isn't inlined
<Drup> ?
<Drup> what would be the solution ?
<Drup> (if that's a problem, which I'm not convinced)
<rgrinberg> actually i don't even know
<rgrinberg> *needs benchmarks*
<Drup> :D
<rgrinberg> let me quickly get rid of the labels now
<Drup> the labels are ok
<Drup> I don't mind core API design :p
<Drup> (I mind core's bloat)
<rgrinberg> That's good to know. For me the labels are 50% of the reason for using core
<Drup> rgrinberg: I was going to write pretty much the same thing, except I would have functorized it, but your solution is cleaner, imho
<rgrinberg> :D
<Drup> haha, nice x)
<rgrinberg> it's kind of hackish if you're reversing many times however
axiles has quit [Ping timeout: 260 seconds]
<Drup> the only thing is that it doesn't accept custom indexes
<Drup> (like, let's say, pair of ints for a matrix)
<rgrinberg> it would have to be functorized over that right?
<Drup> yes
<Drup> (that's one of the reason I was going to go the functor way)
<rgrinberg> It would be possible to add that without breaking the api i guess
antinomy has quit [Ping timeout: 260 seconds]
nojb has quit [Quit: nojb]
<rgrinberg> Drup: what would be functorizing over exactly?
<Drup> well, sig type index type t val get : index -> t end
<rgrinberg> how do you implement iter with an abstract index for example
<Drup> huum, that's a good question.
<Drup> maybe with an index sequence that enumerate indexes
<rgrinberg> how does stuff like dropl make sense then
<Drup> not all operations have to be implemented in the functor
<rgrinberg> that's true
joncfoo is now known as icicled
<Drup> clearly, things that assume linear indexes wouldn't work in general
manud___ has joined #ocaml
<Drup> but using 'a t t for matrix slices sounds like ... not good
<rgrinberg> also, more food for thought: rather than using int * int you can also do more complex slices: https://github.com/ocaml-batteries-team/batteries-included/blob/master/src/batISet.mli
<Drup> :p
<rgrinberg> this is why i hate seeing batteries go :'(
axiles has joined #ocaml
<rgrinberg> it has some cool bits
<icicled> is it possible to name a pattern when matching? i.e. match foo with [k,v] as pair -> f pair | [k,v,p] as triple -> g triple
<Drup> you just did
<Drup> (except it's going to be with ";", not ","
<Drup> )
<icicled> guess I should've tried that hah :)
<Drup> rgrinberg: along with "generalized slice", a generalize buffer would be nice
<Drup> having Vector and Buffer and .. and .. is annoying, it should be the same things
antinomy has joined #ocaml
tg has quit [Ping timeout: 250 seconds]
<rgrinberg> Drup: you can also solve your matrix slice problem by writing a val f : int * int -> int and then making a slice out of that
<rgrinberg> also that's not totally satisfactory
<Drup> hum, why not
tg has joined #ocaml
<Drup> rgrinberg: I wonder if capabilities should be added
<Drup> (and then a set function, with the get)
<Drup> (you need capabilities if you want slices of strings)
<rgrinberg> you're talking about mutability by "set"?
<Drup> yes
<rgrinberg> isn't that "evil"
<Drup> why ?
<rgrinberg> strings shouldn't be mutable
<rgrinberg> although for what it's worth here's the base type for core's substrings
<Drup> well, that's my point
<Drup> if you want to add set to slices, you also need capabilities to forbid it on strings :)
<Drup> huh, git messed up the patch
<Drup> :<
<rgrinberg> i also need to kill kaputt
<rgrinberg> :/
<Drup> no opinion on that one. It's not needed to install ranger anymore, so I don't care :D
<rgrinberg> unless of course xclerc puts the rest of his software on github
<rgrinberg> :D
icicled has quit [Ping timeout: 256 seconds]
<Drup> isn't bytes an alias of Bytes.t ?
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
mcc has quit [Quit: This computer has gone to sleep]
<rgrinberg> hmm
<rgrinberg> it is
<Drup> ahah
<Drup> rgrinberg: you will see, it's stupid.
<rgrinberg> lol
<Drup> ok, yeah it's aliased, but not for ocaml < 4.02, so it's not really =')
manud___ has quit [Quit: Be back later ...]
<rgrinberg> 4.01 support can be dropped unless its easy
<Drup> it's easy
<Drup> ok, it was easy, until it starting to say that String.init is not in 4.01 :<
<rgrinberg> i toyed with an idea of writing a compat opam package
<rgrinberg> that would provide all those functions for older ocamls
<rgrinberg> and optcomp to an empty module for the newest ocaml
<Drup> cppo*
<Drup> please. :3
<rgrinberg> maybe in a year or so
<rgrinberg> i really want no ppx ocamls to die
<Drup> I'm afraid it's going to take some time
<Drup> rgrinberg: in create, why is start optional but not stop ?
<rgrinberg> good question
ontologiae_ has quit [Ping timeout: 245 seconds]
<rgrinberg> oh b/c there's no good default for stop
<Drup> because you don't have any idea of the length of the thing :p
<rgrinberg> unless we know the length
<rgrinberg> yeah
<Drup> I tried to add a good default
<Drup> then realized there was none
<rgrinberg> hmm did you run the test suite?
<Drup> It should run on travis
<Drup> but apparently, it doesn't return a non-zero error code on failing u_u'
<rgrinberg> it should :/
darkf has joined #ocaml
<rgrinberg> we need val to_gen :D
<Drup> yes, I was going to add it
<Drup> OH
<Drup> I'm an idiot u_u'
<rgrinberg> yay!!
<Drup> <3
antinomy has quit [Ping timeout: 244 seconds]
<Drup> "+11,178 -8,669" holy ..
<rgrinberg> i should write a blog post enumerating all the things i like about core
<rgrinberg> point companion_cube as to what to copy
<Drup> ahah
nojb has joined #ocaml
shinnya has quit [Quit: ZNC - http://znc.in]
shinnya has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
struktured has quit [Ping timeout: 258 seconds]
<whitequark> wow
<whitequark> nice
marynate has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
mcclurmc has quit [Remote host closed the connection]
mcclurmc_ has joined #ocaml
englishm_ has joined #ocaml
Khady_ has joined #ocaml
englishm has quit [Ping timeout: 240 seconds]
jave has quit [Ping timeout: 240 seconds]
tristero has quit [Ping timeout: 240 seconds]
Intensity has quit [Ping timeout: 240 seconds]
marynate has quit [Ping timeout: 240 seconds]
diethyl has quit [Ping timeout: 240 seconds]
pii4 has quit [Ping timeout: 240 seconds]
companion_cube has quit [Ping timeout: 240 seconds]
Khady has quit [Ping timeout: 240 seconds]
marynate has joined #ocaml
_5kg has quit [Ping timeout: 240 seconds]
Snark has quit [Ping timeout: 240 seconds]
engil has quit [Ping timeout: 240 seconds]
diethyl has joined #ocaml
companion_cube has joined #ocaml
milosn has quit [Ping timeout: 240 seconds]
milosn has joined #ocaml
nojb has quit [Quit: nojb]
jave has joined #ocaml
pii4 has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
Snark has joined #ocaml
tristero has joined #ocaml
engil has joined #ocaml
_5kg has joined #ocaml
Yoric has joined #ocaml
demonimin has quit [Ping timeout: 260 seconds]
demonimin has joined #ocaml
Yoric has quit [Ping timeout: 244 seconds]
q66 has quit [Quit: Leaving]
rgrinberg has joined #ocaml
badon has joined #ocaml
_twx_ has quit [Remote host closed the connection]
lordkryss has quit [Quit: Connection closed for inactivity]
waneck has quit [Remote host closed the connection]
rwmjones has quit [Read error: Network is unreachable]
rwmjones has joined #ocaml
ousado_ has joined #ocaml
ebzzry has joined #ocaml
sh1ken_ has joined #ocaml
adrien_ has joined #ocaml
ohama has quit [Disconnected by services]
ohama has joined #ocaml
voglerr1 has joined #ocaml
flasheater has joined #ocaml
<rgrinberg> Drup: could you make your opam/oasis improvements for re as well?
<Drup> huum, sure
diethyl_ has joined #ocaml
<rgrinberg> has anyone asked sylvain to move ounit to github?
<rgrinberg> to ocaml/ounit for example
ruoso_ has joined #ocaml
araujo_ has joined #ocaml
sivoais_ has joined #ocaml
diethyl has quit [*.net *.split]
tg has quit [*.net *.split]
hellome has quit [*.net *.split]
PM has quit [*.net *.split]
bugabinga has quit [*.net *.split]
girrig has quit [*.net *.split]
ousado has quit [*.net *.split]
IbnFirnas has quit [*.net *.split]
voglerr has quit [*.net *.split]
sivoais has quit [*.net *.split]
sh1ken has quit [*.net *.split]
clog has quit [*.net *.split]
ruoso has quit [*.net *.split]
adrien has quit [*.net *.split]
_5kg has quit [*.net *.split]
marynate has quit [*.net *.split]
darkf has quit [*.net *.split]
araujo has quit [*.net *.split]
cdidd has quit [*.net *.split]
robink has quit [*.net *.split]
libertas has quit [*.net *.split]
jbalint has quit [*.net *.split]
rfv has quit [*.net *.split]
superjudge has quit [*.net *.split]
bitbckt has quit [*.net *.split]
kalzz has quit [*.net *.split]
Remyzorg has quit [*.net *.split]
mawuli has quit [*.net *.split]
kandu has quit [*.net *.split]
emmanueloga has quit [*.net *.split]
mekaj has quit [*.net *.split]
weykent has quit [*.net *.split]
rom1504 has quit [*.net *.split]
kerneis_ has quit [*.net *.split]
zapu has quit [*.net *.split]
hcarty has quit [*.net *.split]
_habnabit has quit [*.net *.split]
seliopou has quit [*.net *.split]
englishm_ has quit [*.net *.split]
mcclurmc_ has quit [*.net *.split]
dav has quit [*.net *.split]
keen___________1 has quit [*.net *.split]
bartholin has quit [*.net *.split]
brendan has quit [*.net *.split]
relrod has quit [*.net *.split]
mk270 has quit [*.net *.split]
Plazma has quit [*.net *.split]
hsuh has quit [*.net *.split]
nickmeharry has quit [*.net *.split]
hnrgrgr has quit [*.net *.split]
alinab has quit [*.net *.split]
eikke has quit [*.net *.split]
girrig has joined #ocaml
srcerer has quit [Ping timeout: 245 seconds]
waneck has joined #ocaml
mk270 has joined #ocaml
keen___________1 has joined #ocaml
hsuh has joined #ocaml
nickmeharry has joined #ocaml
relrod has joined #ocaml
Plazma has joined #ocaml
psy_ has joined #ocaml
brendan has joined #ocaml
alinab has joined #ocaml
bartholin has joined #ocaml
eikke has joined #ocaml
englishm_ has joined #ocaml
dav has joined #ocaml
mcclurmc_ has joined #ocaml
hnrgrgr has joined #ocaml
shinnya has quit [Ping timeout: 265 seconds]
robink_ has joined #ocaml
boogie has joined #ocaml
tg has joined #ocaml
_5kg has joined #ocaml
marynate has joined #ocaml
darkf has joined #ocaml
cdidd has joined #ocaml
libertas has joined #ocaml
_habnabit has joined #ocaml
superjudge has joined #ocaml
zapu has joined #ocaml
hcarty has joined #ocaml
jbalint has joined #ocaml
weykent has joined #ocaml
bitbckt has joined #ocaml
emmanueloga has joined #ocaml
mawuli has joined #ocaml
kerneis_ has joined #ocaml
mekaj has joined #ocaml
rom1504 has joined #ocaml
kandu has joined #ocaml
seliopou has joined #ocaml
rfv has joined #ocaml
Remyzorg has joined #ocaml
kalzz has joined #ocaml
tg has quit [Max SendQ exceeded]
superjudge has quit [Max SendQ exceeded]
_5kg has quit [Max SendQ exceeded]
superjudge has joined #ocaml
_5kg has joined #ocaml
robink has joined #ocaml
PM has joined #ocaml
tg has joined #ocaml
robink has quit [Read error: Connection reset by peer]
PM has joined #ocaml
PM has quit [Ping timeout: 244 seconds]
araujo_ has quit [Quit: Leaving]
araujo has joined #ocaml
tg has quit [*.net *.split]
superjudge has quit [*.net *.split]
marynate has quit [*.net *.split]
darkf has quit [*.net *.split]
cdidd has quit [*.net *.split]
libertas has quit [*.net *.split]
jbalint has quit [*.net *.split]
rfv has quit [*.net *.split]
bitbckt has quit [*.net *.split]
kalzz has quit [*.net *.split]
Remyzorg has quit [*.net *.split]
mawuli has quit [*.net *.split]
kandu has quit [*.net *.split]
emmanueloga has quit [*.net *.split]
mekaj has quit [*.net *.split]
weykent has quit [*.net *.split]
rom1504 has quit [*.net *.split]
kerneis_ has quit [*.net *.split]
zapu has quit [*.net *.split]
hcarty has quit [*.net *.split]
_habnabit has quit [*.net *.split]
seliopou has quit [*.net *.split]
tg has joined #ocaml
superjudge has joined #ocaml
marynate has joined #ocaml
darkf has joined #ocaml
cdidd has joined #ocaml
libertas has joined #ocaml
jbalint has joined #ocaml
rfv has joined #ocaml
bitbckt has joined #ocaml
kalzz has joined #ocaml
Remyzorg has joined #ocaml
zapu has joined #ocaml
_habnabit has joined #ocaml
rom1504 has joined #ocaml
mekaj has joined #ocaml
weykent has joined #ocaml
seliopou has joined #ocaml
emmanueloga has joined #ocaml
mawuli has joined #ocaml
kerneis_ has joined #ocaml
kandu has joined #ocaml
hcarty has joined #ocaml
tg has quit [Max SendQ exceeded]
tg has joined #ocaml
PM has quit [*.net *.split]
PM has joined #ocaml
IbnFirnas has joined #ocaml
IbnFirnas has quit [Ping timeout: 244 seconds]
PM` has joined #ocaml
struktured has joined #ocaml
PM has quit [*.net *.split]
IbnFirnas has joined #ocaml
IbnFirnas has quit [Changing host]
IbnFirnas has joined #ocaml
shinnya has joined #ocaml
rgrinberg has quit [Ping timeout: 250 seconds]
struktured has quit [Ping timeout: 245 seconds]
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
slash^ has joined #ocaml
rgrinberg has joined #ocaml
clog has joined #ocaml
manud___ has joined #ocaml
AlexRussia has quit [Quit: WeeChat 1.1-dev]
MercurialAlchemi has joined #ocaml
Intensity has joined #ocaml
AlexRussia has joined #ocaml
milosn has quit [Ping timeout: 244 seconds]
Yoric has joined #ocaml
milosn has joined #ocaml
boogie has quit [Remote host closed the connection]
kakadu has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
adrien_ is now known as adrien
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
nojb has joined #ocaml
chaptastic has quit [Ping timeout: 244 seconds]
Unhammer has joined #ocaml
nojb has quit [Quit: nojb]
thomasga has joined #ocaml
nojb has joined #ocaml
KGZM has joined #ocaml
KGZM is now known as kgzm
oscar_toro has joined #ocaml
Simn has joined #ocaml
manud___ has quit [Quit: Be back later ...]
nojb has quit [Quit: nojb]
AlexRussia has quit [Ping timeout: 256 seconds]
gdsfh1 has quit [Read error: Connection reset by peer]
AlexRussia has joined #ocaml
ontologiae_ has joined #ocaml
tg has quit [Ping timeout: 264 seconds]
Arsenik has joined #ocaml
Yoric has quit [Remote host closed the connection]
tg has joined #ocaml
gdsfh has joined #ocaml
nojb has joined #ocaml
pdewacht has quit [Ping timeout: 250 seconds]
arj has joined #ocaml
lordkryss has joined #ocaml
demonimin has quit [Ping timeout: 264 seconds]
demonimin has joined #ocaml
nojb has quit [Quit: nojb]
milosn has quit [Read error: Connection reset by peer]
milosn has joined #ocaml
jonludlam has joined #ocaml
ingsoc has joined #ocaml
ontologiae_ has quit [Ping timeout: 264 seconds]
sgnb has joined #ocaml
hugomg has joined #ocaml
arj has quit [Quit: Leaving.]
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
malc_ has joined #ocaml
<whitequark> gasche: I think this can be closed: http://caml.inria.fr/mantis/view.php?id=6390
Reventlov has quit [Quit: leaving]
Reventlov has joined #ocaml
ontologiae_ has joined #ocaml
<whitequark> Drup: did you know that "refill" and "shortest" are valid ocamllex keywords?
<whitequark> I'm kinda at a loss at what they actually do
<adrien> Refill handlers are a recent (optional) feature introduced in 4.02, documented below in subsection 12.2.7.
<adrien> ?
<adrien> However, if lexer rules are introduced with the shortest keyword in place of the parse keyword, then the “shortest match” rule applies: the shortest prefix of the input is selected. In case of tie, the regular expression that occurs earlier in the rule is still selected. This feature is not intended for use in ordinary lexical analyzers, it may facilitate the use of ocamllex as a simple text processing tool.
antinomy has joined #ocaml
antinomy has quit [Ping timeout: 265 seconds]
testcocoon has quit [Quit: Coyote finally caught me]
Arsenik has quit [Remote host closed the connection]
nojb has joined #ocaml
bezirg has joined #ocaml
bartholin has quit [Quit: Leaving]
ontologiae_ has quit [Ping timeout: 272 seconds]
testcocoon has joined #ocaml
ggole has joined #ocaml
<hugomg> Is there a way to use labelled functions with cmdliner's applicative-functors? http://pastebin.com/ZabmGGD5
<nojb> what is wrong with your `obvious solution` ?
<hugomg> not much tbh. it was uglier before I remembered I could use name punning instead of (fun x y -> chorus ~count:x ~msgs:y)
<hugomg> but I got a feeling that there ought to be something along the lines of version #2 thats not do damn ugly
<hugomg> otu of curiosity now :)
<hugomg> another cmdliner question I just remembered. Is there a reason why cmdliner defines a "&" operator instead of using "@@"? They seem to do the same thing
<nojb> just a question of taste I guess - also @@ is only from 4.01.0
oscar_toro has quit [Ping timeout: 260 seconds]
Hannibal_Smith has joined #ocaml
nojb has quit [Quit: nojb]
oscar_toro has joined #ocaml
pdewacht has joined #ocaml
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
bezirg has quit [Ping timeout: 264 seconds]
nojb has joined #ocaml
jao has quit [Ping timeout: 244 seconds]
thomasga has quit [Quit: Leaving.]
Thooms has joined #ocaml
antegallya has joined #ocaml
milosn has quit [Ping timeout: 256 seconds]
arj has joined #ocaml
panini has joined #ocaml
thomasga has joined #ocaml
ygrek has joined #ocaml
chambart has joined #ocaml
antinomy has joined #ocaml
thomasga has quit [Quit: Leaving.]
ctrucel has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
ctrucel has quit [Client Quit]
q66 has joined #ocaml
tane has joined #ocaml
antinomy has quit [Quit: WeeChat 1.0.1]
nojb has quit [Quit: nojb]
antinomy has joined #ocaml
rand000 has joined #ocaml
Yoric has joined #ocaml
Yoric has quit [Ping timeout: 260 seconds]
nojb has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
Hannibal_Smith has quit [Quit: Leaving]
mcclurmc_ has quit [Remote host closed the connection]
chambart has quit [Ping timeout: 272 seconds]
panini has quit [Quit: Leaving]
nojb has quit [Quit: nojb]
darkf has quit [Quit: Leaving]
boogie has joined #ocaml
struktured has joined #ocaml
nojb has joined #ocaml
bezirg has joined #ocaml
bezirg has quit [Client Quit]
bezirg has joined #ocaml
<gasche> whitequark: giving me the links on IRC does not scale
<gasche> I will inevitably miss some of them if you keep collecting them (which is good!)
<gasche> workflow-wise for me it's better if you can send me emails
<gasche> but on the other hand it's nice that you communicate about this work on a public place
<gasche> I'd just need a place with better tracking capabilities than an IRC channel
<gasche> if you have a blog with RSS, that would be fine
<adrien> ocaml-merge-troubles.skyblog.fr? :P
<gasche> otherwise maybe, send links to caml-list directly? (but then you should not send more than one email a week other people might complain)
<gasche> another option would be for you to post directly in the MPR/GPR
<gasche> I won't get automatic notifications for the mantis I'm not monitoring, but mantis lets you see the most-recently-modified issues
<gasche> ... I think that would be the best solution
<gasche> it might also motivate you to give an opinion when writing your post, which is nice
icicled has joined #ocaml
marynate has quit [Quit: Leaving]
chinglish has joined #ocaml
boogie has quit [Remote host closed the connection]
icicled has quit [Ping timeout: 272 seconds]
sivoais_ is now known as sivoais
sivoais has joined #ocaml
sivoais has quit [Changing host]
bezirg has quit [Ping timeout: 255 seconds]
icicled has joined #ocaml
<companion_cube> struktured: it should be usable, sure
AlexRussia has quit [Quit: WeeChat 1.1-dev]
AlexRussia has joined #ocaml
boogie has joined #ocaml
Yoric has joined #ocaml
<companion_cube> gasche: nice PR merging spree
tharugrim has quit [Ping timeout: 265 seconds]
<struktured> companion_cube: yeah Its fine. played with yesterday with no trouble
tharugrim has joined #ocaml
<companion_cube> what do you think of the new layout?
<struktured> companion_cube: was CCSequence always in advanced? or is that new?
<struktured> companion_cube: anyhow I like it thus far.
icicled has quit [Ping timeout: 250 seconds]
<companion_cube> struktured: oh, right. Because of drup I removed CCSequence/CCGen because they have been living in their own repositories for long
<companion_cube> so you should use "gen" or "sequence" on opam
<companion_cube> only if you need them of course.
struktured has quit [Ping timeout: 245 seconds]
Thooms has quit [Quit: WeeChat 1.0.1]
WraithM has quit [Quit: leaving]
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
<gasche> companion_cube: thanks
martintrojer has quit [Max SendQ exceeded]
ontologiae_ has joined #ocaml
martintrojer has joined #ocaml
psy_ has quit [Ping timeout: 255 seconds]
milosn has joined #ocaml
Hannibal_Smith has joined #ocaml
milosn has quit [Read error: Connection reset by peer]
milosn has joined #ocaml
jonludlam has quit [Quit: Coyote finally caught me]
Thooms has joined #ocaml
jonludlam has joined #ocaml
wwilly has joined #ocaml
Anarchos has joined #ocaml
mcclurmc has joined #ocaml
struktured has joined #ocaml
boogie has quit [Remote host closed the connection]
demonimin_ has joined #ocaml
demonimin has quit [Ping timeout: 260 seconds]
chinglish has quit [Quit: Nettalk6 - www.ntalk.de]
arj has quit [Quit: Leaving.]
axiles has quit [Ping timeout: 256 seconds]
robink_ is now known as robink
Thooms has quit [Quit: WeeChat 1.0.1]
axiles has joined #ocaml
boogie has joined #ocaml
chambart has joined #ocaml
mcclurmc has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
Yoric has quit [Remote host closed the connection]
nojb has quit [Quit: nojb]
Arsenik has joined #ocaml
rgrinberg has joined #ocaml
<companion_cube> \o rgrinberg
malc_ has quit [Quit: leaving]
<rgrinberg> :D
hugomg has quit [Ping timeout: 260 seconds]
<companion_cube> so, I have no idea how to deal with depopts at a finer granularity than modules
<companion_cube> excepted maybe with cppo
<adrien> camlp4! \o/
* companion_cube slaps adrien on the head
Yoric has joined #ocaml
manud___ has joined #ocaml
<rgrinberg> companion_cube: i imagine a world where the containers get shipped like containers.sexp, containers.cconv, etc.
<Drup> (cconv should be outside :>)
ggole has quit [Ping timeout: 255 seconds]
chambart has quit [Ping timeout: 256 seconds]
<companion_cube> rgrinberg: right now there's containers.sexp!
<rgrinberg> Drup companion_cube: more blog review please: http://rgrinberg.com/blog/2014/12/13/primtive-type-safe-routing/
<rgrinberg> ;D
<companion_cube> (it's only a parser/printer though)
<Drup> rgrinberg: typo in the title
<Drup> the url*
<companion_cube> I'm no good in web stuff
<companion_cube> ask Drup :>
<Drup> companion_cube: cppo is fine really
<companion_cube> hmmm
<companion_cube> it's a dangerous path
<companion_cube> but well, I don't have a better idea right now
boogie has quit [Remote host closed the connection]
<Drup> dangerous ? how ?
<Drup> I mean, you need preprocessing, don't you ?
<companion_cube> #ifdef CCONV val encode : t CConv.Encode.encoder #endif
<companion_cube> it's dangerous because it makes it harder to test all the combinations of #ifdef
<Drup> ah, yeah
<companion_cube> otoh, it's better to provide necessary features to the library
<companion_cube> the other possibility is having CCList, CCListCConv, CCListSexp, etc.
<rgrinberg> companion_cube: for better or for worse this is the kind of stuff we have to do in ocaml :/
<companion_cube> indeed.
<rgrinberg> everyone whines about having a tiny 1 extra dependency
<companion_cube> well, sometimes the 1 extra dependency comes with 5 other ones attached
* companion_cube stares at type_conv
<rgrinberg> and everyone asks you to support their pet library
<Drup> rgrinberg: I want namespaces for that
thomasga has joined #ocaml
bezirg has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
<Drup> (21:13:10) companion_cube: I'm no good in web stuff <- which web stuff are you talking about ?
<Drup> rgrinberg: you should really invest in a bouncer :D
<rgrinberg> bouncer?
<Drup> it's a fake irc server that redirect messages, allowing you to remain online all the time (in particular, when you have a crappy connection).
<rgrinberg> oh :D
<rgrinberg> i used to use my vps as the client
<companion_cube> Drup: the blog post about routing?
<rgrinberg> dont know why i stopped
<companion_cube> maybe I should expose cconv and ppx_deriving_yojson in containers, that actually sounds nice
<Drup> expose ?
nojb has joined #ocaml
<Drup> companion_cube: you do realize the deriving annotations are optional, right ?
hugomg has joined #ocaml
mcc has joined #ocaml
<companion_cube> Drup: they aren't compatible with 4.01
<companion_cube> I'd like to retain compatibility with >= 4.0
<Drup> ah, right
<companion_cube> at least for now
<Drup> almost a valid argument
<Drup> implemented in GADT+subtyping (with poly variants mixed in) in pure eliom fashion (aka, very featureful and slightly overkill)
rgrinberg has quit [Quit: Leaving.]
<Drup> ahah
rgrinberg has joined #ocaml
<Drup> rgrinberg:
<Drup> (21:37:23) Drup: implemented in GADT+subtyping (with poly variants mixed in) in pure eliom fashion (aka, very featureful and slightly overkill)
<Drup> (21:37:26) rgrinberg a quitté le salon (quit: Quit: Leaving.)
<Drup> I made you flee ? :D
<rgrinberg> nah my mac's sleep mode
<Drup> funny story about Eliom_parameters
<rgrinberg> i look at whitequark's logs
<rgrinberg> anyway so i don't miss your messages
<Drup> oh, ok
<Drup> so, it used to be implemented with gadt ... in ocaml 3.12
<companion_cube> ...
<Drup> so, proof of corectness+Obj.magic everywhere
<Drup> yeah.
<Drup> (no it's proper gadt)
<Drup> now*
<rgrinberg> yeah this seems interesting as well
<rgrinberg> note that the solution in my blog doesn't require gadt's at all
<Drup> That's because you don't really have highorder parameters
<rgrinberg> i knew you'd do an "eliom did it first" comment though
<rgrinberg> :D
<Drup> ahah
<Drup> that's not really "eliom did it first"
<Drup> more like "eliom does an overcomplicated version of that)
<Drup> which is basically impossible to explain in a blog post xD
<rgrinberg> what's a higher order parameter?
<rgrinberg> Drup: my post isn't even an explanation :D you'd have to read oleg's page for taht
<Drup> rgrinberg: for example, list
<Drup> (or prod, sum, and so on)
<rgrinberg> Drup: why can't my solution support list parameters? just write a corresponding string list Parse.t and then wrap in a Parse for example
<Drup> hum, right
<rgrinberg> so does eliom support path parameters at all?
<Drup> We also need gadts because an eliom service can become a function on the client side (with the good parameters)
<rgrinberg> skimmed over your link a few times and couldn't find something
<Drup> path parameters ? sure
<Drup> it would be pretty useless without that
<rgrinberg> e.g. getting the 123 out of /user/123
<Drup> first example
<rgrinberg> "path suffixes as parameters" <- don't you mean that?
<Drup> no, both
<rgrinberg> GET parameters are usually called query parameters
<Drup> right
<nojb> rgrinberg: in blog post, “Also at this point, a considerable amount of software under mirage’s umbrella is using _Async_”, should be _Lwt_ ?
<Drup> rgrinberg: there is no real distinction in eliom, it's the same mechanism for both anyway.
mcc has quit [Quit: This computer has gone to sleep]
<rgrinberg> nojb: did i say that? oops
<rgrinberg> Drup: that's strange b/c there are certainly differences in convention
<rgrinberg> e.g. query params are always optional
nojb has quit [Quit: nojb]
nojb has joined #ocaml
<rgrinberg> nojb: fixed
<Drup> rgrinberg: that's not a real issue
<Drup> if you want to handle the missing parameter case, give a fallback service, and you are done. Otherwise, it'll error 500, like 90% of the web
<Drup> rgrinberg: I think "ints" is a very bad name for an interpretor function :D
<rgrinberg> Drup: ugh, copying oleg's convention
<Drup> (I read "ints" as "multiple int")
<rgrinberg> in my defense it's not exposed
<Drup> it's exposed in the blog post !
<companion_cube> ohhhh, :Destruct ♥
<rgrinberg> Drup: yeah i meant exposed in the public interface i acknowledge your point though
<Drup> rgrinberg: the big thing you don't explain in your blog post is how to handle multiple routes
<rgrinberg> Drup: "baby steps" :D that's because I haven't figured it out yet.
<rgrinberg> i've decided to give it some extra thought after reading http://techblog.netflix.com/2014/11/nodejs-in-flames.html
<rgrinberg> how does eliom do it?
<Drup> that's a very good question
<Drup> 1) I have no idea 2) It's in a part of eliom I'm wary to explore.
milosn has quit [Ping timeout: 264 seconds]
<Drup> I know it's complicated and old (and that it survived until now, thing that it's reasonably solid)
<Drup> rgrinberg: for the parameter stuff, the file to look at is src/lib/eliom_parameters_base.shared.ml
<Drup> it's reasonably simple
mcclurmc has quit [Remote host closed the connection]
axiles has quit [Ping timeout: 256 seconds]
nojb has quit [Quit: nojb]
<Drup> rgrinberg: I dived a bit inside eliom, I think I found the right file, but it's mostly non-commented :(
<adrien> look at the bright side: it means there are _some_ comments!
<Drup> (in french)
<rgrinberg> lol
<rgrinberg> i hope the identifier names aren't in french
<rgrinberg> minimum for me to read the code
<Drup> no, I'm kidding, it's mostly in english
<Drup> (bit of french here and there in some comments, but not much)
<Drup> rgrinberg: I'll ask tomorrow
axiles has joined #ocaml
<rgrinberg> dinosaure1: how's the cohttp branch coming along
<Drup> oh! I have a branch to merge
rgrinberg has quit [Quit: Leaving.]
milosn has joined #ocaml
Arsenik has quit [Remote host closed the connection]
pgomes has joined #ocaml
axiles has quit [Ping timeout: 245 seconds]
axiles has joined #ocaml
bezirg has quit [Ping timeout: 264 seconds]
rgrinberg has joined #ocaml
araujo has quit [Read error: Connection reset by peer]
araujo has joined #ocaml
<Drup> rgrinberg: one thing that would be really useful is to do the same but the other way around
<rgrinberg> Drup: in what context?
pgomes has quit [Quit: Leaving]
<Drup> describe the parameters taken by an API and be able to query it with cohttp
<rgrinberg> oh, client generation?
<Drup> yeah
<rgrinberg> yes it would be. But IMO that should cover more than path params
<Drup> sure
<rgrinberg> it should cover any params the handler might take
<rgrinberg> this is why it's not being integrated to opium yet
<Drup> as I said, in my head there is no difference
<Drup> (because eliom doesn't distinguish =')
<rgrinberg> there's still other kinds of params however. E.g. multipart, auth headers, cookies
<Drup> ah, yes
<rgrinberg> Also I'm not sure how should validation be handled
<rgrinberg> inside the handler or inside the param description
<Drup> validation ?
<Drup> you mean ensuring that a parameter respect some criteria ?
<rgrinberg> validation that cannot fit in a type, e.g. this string param is between a certain length
<rgrinberg> yeah
<Drup> we do it inside the param description in eliom
<Drup> it works ok
<rgrinberg> i'm trying to learn what these guys are doing
<rgrinberg> to see what can be copied
<rgrinberg> looks really sweet IMO but most of it cannot be copied to ocaml
chambart has joined #ocaml
<adrien> die presentations, die!
<Drup> rgrinberg: tbh, it's not really different to what eliom is doing
<Drup> I mean, "describe a type with type level combinators" vs "describe a type through gadt" is not different in my mind
<Drup> (eliom's implementation and design could be simplified significantly if you drop eliom's constraint of client/server stuff and simplify the server part, but that's independent)
<MercurialAlchemi> hmm
<MercurialAlchemi> how do you, say, inject credentials from a middleware with this design?
ingsoc has quit [Quit: Leaving.]
<rgrinberg> MercurialAlchemi: are you talking about the haskell design?
<Drup> MercurialAlchemi: somewhere else
<Drup> in eliom, we do it with server-side sessions
<MercurialAlchemi> rgrinberg: I was, yes
<rgrinberg> MercurialAlchemi: i'm not an expert but i talked to the author of the framework
<rgrinberg> i would say you'd create a cominator that reads a param from the header
<rgrinberg> Drup: i'll definitely look into what eliom is doing wrt params/router/client generation
<rgrinberg> perhaps it can even be reused after a little renovation
<Drup> a little renovation certainly wouldn't hurt
<rgrinberg> and if its adaptable to cohttp
<Drup> rgrinberg: if you do a servant-like general implementation, maybe we could replace the current eliom_parameter
<rgrinberg> Drup: the whole thing is so similar to command line argument parsing
<Drup> yes and no
<rgrinberg> e.g. cmdliner is basically formlets
<rgrinberg> and core's command liner parser is basically typed formatting
<Drup> I don't think you could do something reasonable that works for both
<Drup> or it would not be general enough
<rgrinberg> for command line + web app you mean?
<Drup> yes
<rgrinberg> yeah that's not my goal
<rgrinberg> the only thing that's possibly reusable is the applicative notation
<rgrinberg> ;D
<Drup> (I wanted to know how they handle custom type)
<rgrinberg> still beats the avearage ocamldoc ;)
<Drup> not really, no. At least in average ocamldoc, you have helpful type signatures
<rgrinberg> modular implicits will fix that
<rgrinberg> :D
<Drup> x)
<Drup> touché.
<Drup> rgrinberg: one thing I disagree with is the :<|> in servant
Hannibal_Smith has quit [Quit: Leaving]
<adrien> I'm wondering if the ocaml forge hasn't gotten another disk issue =/
<axiles> interesting fact: if "f : int -> int -> int", then "ignore (f 1)" triggers a warning. However, "ignore @@ f 1" does not and neither does "f 1 |> ignore" (tested with 4.02.1)
MercurialAlchemi has quit [Ping timeout: 272 seconds]
tane has quit [Quit: Verlassend]
chambart has quit [Ping timeout: 264 seconds]
chambart has joined #ocaml
Khady_ is now known as Khady
Khady has quit [Changing host]
Khady has joined #ocaml
rgrinberg has quit [Read error: Connection reset by peer]
rgrinberg has joined #ocaml
chambart has quit [Ping timeout: 265 seconds]
manud___ has quit [Quit: Be back later ...]
mcclurmc has joined #ocaml
kakadu has quit [Remote host closed the connection]
<companion_cube> johnelse: I think irc-client should expose a higher-level API for received messages
<companion_cube> at least for common events (privmsg, join, notices...)
Submarine has joined #ocaml
Submarine has joined #ocaml
ontologiae_ has quit [Ping timeout: 240 seconds]
mcc has joined #ocaml
rgrinberg1 has joined #ocaml
rgrinberg has quit [Read error: Connection reset by peer]