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
Plazma has left #ocaml [#ocaml]
swgillespie has joined #ocaml
dhil has quit [Quit: Leaving]
tmtwd has quit [Ping timeout: 244 seconds]
ollehar has quit [Read error: Connection reset by peer]
nullcat has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ollehar has joined #ocaml
AltGr has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
mort___ has quit [Quit: Leaving.]
mort___ has joined #ocaml
mort___ has quit [Quit: Leaving.]
KDr2 has quit [Quit: Leaving]
ygrek has quit [Ping timeout: 264 seconds]
ygrek has joined #ocaml
Algebr has quit [Ping timeout: 250 seconds]
tmtwd has joined #ocaml
struktured has joined #ocaml
tennix has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
manizzle has quit [Ping timeout: 244 seconds]
tmtwd has quit [Remote host closed the connection]
badkins has joined #ocaml
Mass321 has quit [Quit: Connection closed for inactivity]
jeffmo has quit [Quit: jeffmo]
rgoulter has joined #ocaml
toomuchtvrotsurb has quit [Remote host closed the connection]
c74d has quit [Ping timeout: 244 seconds]
c74d has joined #ocaml
swgillespie has joined #ocaml
BitPuffin|osx has joined #ocaml
badkins has quit []
sp0on has joined #ocaml
rom1504_ is now known as rom1504
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Bhavya has joined #ocaml
rgoulter has quit [Quit: Leaving]
lordkryss has quit [Quit: Connection closed for inactivity]
manizzle has joined #ocaml
martinium has quit [Ping timeout: 260 seconds]
MercurialAlchemi has joined #ocaml
Algebr has joined #ocaml
<Algebr> Does oasis know about js_of_ocaml? Or is it easier to just add a separate target in the Makefile?
<Algebr> That page makes it seem like I have to fiddle with the myocamlbuild.ml file, was hoping it would be limited to just the _oasis file
struktured has quit [Ping timeout: 244 seconds]
swgillespie has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
jeffmo has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 260 seconds]
<jyc> does OCaml have a syntax for raw strings (e.g. for regexes)
jao has quit [Ping timeout: 244 seconds]
darkf has joined #ocaml
c74d is now known as c74d3a4
Algebr has quit [Read error: Connection reset by peer]
martinium has joined #ocaml
c74d3a4 is now known as c74d
martinium has quit [Max SendQ exceeded]
martinium has joined #ocaml
manud has quit [Quit: manud]
martinium has quit [Max SendQ exceeded]
martinium has joined #ocaml
martinium has joined #ocaml
grouzen has quit [Ping timeout: 246 seconds]
ollehar1 has joined #ocaml
ygrek has joined #ocaml
troydm has quit [Ping timeout: 264 seconds]
<Leonidas> jyc: not that I know. But it might be possible to add it.
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
c74d has quit [Remote host closed the connection]
troydm has joined #ocaml
c74d has joined #ocaml
divyanshu has joined #ocaml
Haudegen has quit [Ping timeout: 248 seconds]
ollehar1 has quit [Ping timeout: 264 seconds]
Haudegen has joined #ocaml
<jyc> Leonidas: I see, thanks
grouzen has joined #ocaml
<flux> it does, however, have them :)
<flux> {foo| a\eaeae |foo}
Submarine has joined #ocaml
Submarine has joined #ocaml
obadz has joined #ocaml
ggole has joined #ocaml
ygrek_ has joined #ocaml
obadz- has quit [Ping timeout: 244 seconds]
ygrek has quit [Ping timeout: 240 seconds]
Submarine has quit [Quit: Leaving]
kushal has quit [Ping timeout: 264 seconds]
Submarine has joined #ocaml
Submarine has joined #ocaml
keen__________27 has joined #ocaml
keen__________26 has quit [Ping timeout: 246 seconds]
TheLemonMan has joined #ocaml
ygrek_ has quit [Ping timeout: 256 seconds]
sh0t has joined #ocaml
divyanshu has quit [Quit: Computer has gone to sleep.]
manud has joined #ocaml
zpe has joined #ocaml
kaustuv has joined #ocaml
<kaustuv> Can someone tell me what I am doing wrong here? Why is the 'ocamlfind ocamldep' invocation not working? http://pastebin.com/TTXwEWs4
divyanshu has joined #ocaml
<kaustuv> (Answering my own question: I was missing a syntax(camlp4o) in _tags)
kaustuv has left #ocaml ["ERC Version 5.3 (IRC client for Emacs)"]
ericbmerritt has quit [Ping timeout: 240 seconds]
ericbmerritt has joined #ocaml
Simn has joined #ocaml
sh0t has quit [Ping timeout: 264 seconds]
jeffmo has quit [Quit: jeffmo]
<flux> I grant you 5 karma points for following up on your own question!
jlouis has quit [Quit: leaving]
jlouis has joined #ocaml
mort___ has joined #ocaml
eeJa3ahL has joined #ocaml
mort___ has quit [Quit: Leaving.]
<Leonidas> flux: oh, alright %)
manizzle has quit [Remote host closed the connection]
<companion_cube> jyc: from >= 4.02, there is {| raw string here |}
<companion_cube> assuming the string doesn't contain |}
voglerr has joined #ocaml
mort___ has joined #ocaml
kushal has joined #ocaml
divyanshu has quit [Quit: Computer has gone to sleep.]
divyanshu has joined #ocaml
Submarine has quit [Ping timeout: 240 seconds]
divyanshu has quit [Quit: Computer has gone to sleep.]
<jyc> companion_cube: I tried to do that in utop but it didn't seem to work
<jyc> is it in > 4.02 or >= 4.02?
<companion_cube> ≥ 4.02
<flux> jyc, so what does it say if you try it?
<flux> I wonder if there could be campl4 involved here..
octachron has joined #ocaml
<flux> works on my machine(TM), though, even in utop
creichert has quit [Quit: Leaving]
<jyc> I get '[expr] expected after "="' when I try to let x = {| hi |}
<jyc> I'm on 4.02.2
<flux> so yes, camlp4 is to be blamed..
<flux> I don't know of a solution except perhaps not use the syntax extensions Core comes with (wild guess you're using them)
<flux> or perhaps there's an updated version of camlp4 that fixes this?
<jyc> oh, I see
<jyc> will try disabling core syntaz
<jyc> flux: yep, works perfectly now. Thanks a bunch for the help!
<flux> jyc, great. happy coding :)
nullcat_ has joined #ocaml
rwmjones_ is now known as rwmjones
mort___ has quit [Quit: Leaving.]
antegallya has joined #ocaml
lewis1711 has joined #ocaml
<lewis1711> is there any type that's like a list, except it can never be empty? also would this make no sense?
eeJa3ahL has quit [Remote host closed the connection]
mort___ has joined #ocaml
<flux> no, but you can make one, though it's perhaps not quite what you want
<flux> type 'a non_empty_list = 'a * 'a list
kushal has quit [Ping timeout: 246 seconds]
<lewis1711> oh, yeah that would corks
<lewis1711> *work
<lewis1711> like a cons cell, almost
<flux> alternative, if you want to handle all cells in a "uniform" way: type 'a ne_list = Cons of 'a * 'a ne_list | Last of 'a
<flux> but I guess the pattern matching structure is going to be a bit awkward regardless..
kushal has joined #ocaml
<lewis1711> I feel like I am in a constant balancing act of which part of my code is going to have the awkward pattern matching
Kakadu has joined #ocaml
mort___1 has joined #ocaml
mort___ has quit [Ping timeout: 246 seconds]
rand000 has joined #ocaml
<dmbaturin> lewis1711: You can make a module for it and make that type abstract to prevent creation of empty lists.
<dmbaturin> Which can introduce its own awkwardness, of course. :)
<octachron> in this case, the (::) constructor might be useful: 'a ne_list = :: of 'a * 'a ne_list | Last of 'a
<octachron> which allow to write things like let fst = function a::_ | Last a -> a;;
<flux> but the thing is that in your pattern match you probably want to handle the both cases partially the same and then just continue afterwards
<flux> no gadt solutions yet?!
ben1 has joined #ocaml
<lewis1711> the ('a, 'a list) thing actually ended being cleanest
<lewis1711> kind of embarassed I didn't think of it before
ben1 has quit [Client Quit]
ben_2 has joined #ocaml
<flux> you should irc here more, it was discussed here less than week ago iirc ;-)
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<flux> another thing I use liquidsoap for is transcoding mp3-stream to aac for streaming to mobile over internet (it pipes it over aacplusenc)
rand000 has quit [Quit: leaving]
divyanshu has joined #ocaml
ben_2 has quit [Quit: Leaving.]
<ggole> In a better world, you could annotate types with additional info such as which constructor a value is
<ggole> Then you could have a non-empty list type, and still use all of the existing list functions on it
divyanshu has quit [Client Quit]
divyanshu has joined #ocaml
<flux> pattern views?
zmyrgel has left #ocaml ["WeeChat 1.1"]
divyanshu has quit [Client Quit]
<ggole> Aren't pattern views more or less orthogonal?
divyanshu has joined #ocaml
Akshay_ has joined #ocaml
AltGr has left #ocaml [#ocaml]
manud has quit [Quit: manud]
voglerr has quit [Remote host closed the connection]
antegallya has quit [Quit: Leaving.]
mort___1 has left #ocaml [#ocaml]
voglerr has joined #ocaml
voglerr has quit [Remote host closed the connection]
voglerr has joined #ocaml
mort___ has joined #ocaml
<lewis1711> man it has taken me a long time to parse and evaluate LISP arithmetic. A lot of it was constantly fiddling with my ADTs though.
<ollehar> lewis1711: google phun with phantom types, iirc
whirm has joined #ocaml
<dmbaturin> What does Lwt.write_line do when the channel is closed?
nullcat_ has joined #ocaml
lewis1711 has quit [Ping timeout: 244 seconds]
Haudegen has quit [Ping timeout: 248 seconds]
_andre has joined #ocaml
tmtwd has joined #ocaml
vbmithr_ has quit [Quit: leaving]
vbmithr has joined #ocaml
Haudegen has joined #ocaml
grouzen has quit [Ping timeout: 252 seconds]
Hannibal_Smith has joined #ocaml
lordkryss has joined #ocaml
tmtwd has quit [Ping timeout: 264 seconds]
ceryo has joined #ocaml
tennix has quit [Ping timeout: 255 seconds]
BitPuffin|osx has quit [Ping timeout: 250 seconds]
struktured has joined #ocaml
badkins has joined #ocaml
antegallya has joined #ocaml
Bhavya has quit [Quit: Quit the channel]
TheLemonMan has quit [Ping timeout: 256 seconds]
arvense has joined #ocaml
arvense is now known as rvense
rvense is now known as arvense
<arvense> can anybody help me compile examples using the bitstring extension?
Hannibal_Smith has quit [Quit: Leaving]
ben_2 has joined #ocaml
<arvense> is it just a matter of linking in a library?
grouzen has joined #ocaml
tashjash has joined #ocaml
<rwmjones> fffs ocamlbuild--
ben_3 has joined #ocaml
divyanshu has quit [Quit: Computer has gone to sleep.]
ben_2 has quit [Ping timeout: 256 seconds]
accidus has quit [Remote host closed the connection]
mort___ has quit [Quit: Leaving.]
remyzorg has joined #ocaml
jtfmumm has joined #ocaml
<remyzorg> Hi, Anyone knows if it's possible to use in the same file camlp4 syntax for js_of_ocaml and any other ppx extension ?
<Drup> remyzorg: use jsoo's ppx
mort___ has joined #ocaml
<remyzorg> Drup : thx ! Which version of jsoo ?
<Drup> dev
<remyzorg> Does it need a particular version of OCaml ?
<Drup> last :)
tmtwd has joined #ocaml
<remyzorg> Drup : thank you dear
<Drup> remyzorg: You are very welcome. :3
igoroliveira has joined #ocaml
<adrien_znc> you're not in the teacher list, pffft!
divyanshu has joined #ocaml
TheLemonMan has joined #ocaml
taion809 has joined #ocaml
tennix has joined #ocaml
tennix has joined #ocaml
mort___ has quit [Quit: Leaving.]
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mort___ has joined #ocaml
nullcat_ has joined #ocaml
arvense has quit [Quit: leaving]
remyzorg has quit [Ping timeout: 248 seconds]
jeffmo has joined #ocaml
struktured has quit [Ping timeout: 240 seconds]
remyzorg has joined #ocaml
<dmbaturin> Drup: Is a Coq MOOC planned?
<Drup> not afaik
<dmbaturin> Drup: By the way, why it was not published on edx.org?
<Drup> what is it ?
<Drup> (I'm not affiliated to the course :D)
<dmbaturin> edx.org is a MOOC platform and the original authors of the software the course runs on. :)
<Drup> Can't compare. according to what I saw, fun is a nice plateform
<dmbaturin> Well, it's the same software, so you don't need to compare.
<Drup> ok
tashjash has quit [Remote host closed the connection]
mort___ has quit [Quit: Leaving.]
tashjash has joined #ocaml
jeffmo has quit [Quit: jeffmo]
tennix has quit [Quit: WeeChat 1.2]
<dmbaturin> Erik Meijer teaches his infamous haskell course on edx.org
jeffmo has joined #ocaml
BitPuffin|osx has joined #ocaml
remyzorg has quit [Ping timeout: 244 seconds]
tennix has joined #ocaml
nullcat_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Denommus` has joined #ocaml
nullcat has joined #ocaml
<ollehar> does coq has an api? so you could make a ocaml syntax extension calling coq?
<ollehar> *ajn
<ollehar> *an
<dmbaturin> ollehar: Calling coq to do what?
<ollehar> dmbaturin: prove stuff
mort___ has joined #ocaml
<ollehar> calling external tool.
<pippijn> I guess you can generate coq code from annotations
<ollehar> pippijn: hm, yeah, that's one way
<pippijn> I think there is someone who does that
<pippijn> something about specific formulae?
<pippijn> characteristic formulae
<dmbaturin> Well, it would have to be translated into gallina first.
<pippijn> that's not from annotations, but may be interesting to you
<pippijn> apparently it needs ocaml >= 10.1
<pippijn> so you'll have to wait a couple of years :)
<ollehar> cool
Akshay_ has quit [Ping timeout: 246 seconds]
tashjash has quit [Quit: Leaving]
tashjash has joined #ocaml
sp0on has quit [Ping timeout: 244 seconds]
mort___ has quit [Quit: Leaving.]
mort___ has joined #ocaml
sp0on has joined #ocaml
darkf has quit [Quit: Leaving]
toomuchtvrotsurb has joined #ocaml
Akshay_ has joined #ocaml
asxz has joined #ocaml
asxz has quit [Client Quit]
xificurC has quit [Quit: WeeChat 1.2]
tane has joined #ocaml
xificurC has joined #ocaml
ceryo_ has joined #ocaml
wraithm has joined #ocaml
mort___1 has joined #ocaml
ericbmerritt_ has joined #ocaml
zpe has quit [Remote host closed the connection]
<Akshay_> yaah
dariusc93 has joined #ocaml
mal``` has joined #ocaml
mort___ has quit [*.net *.split]
ceryo has quit [*.net *.split]
kushal has quit [*.net *.split]
ericbmerritt has quit [*.net *.split]
martinium has quit [*.net *.split]
mawuli has quit [*.net *.split]
darius93 has quit [*.net *.split]
mal`` has quit [*.net *.split]
_habnabit has quit [*.net *.split]
rossberg has quit [*.net *.split]
alpen has quit [*.net *.split]
bitbckt has quit [*.net *.split]
Denommus` has quit [Remote host closed the connection]
ericbmerritt_ is now known as ericbmerritt
toomuchtvrotsurb has quit [Remote host closed the connection]
Denommus` has joined #ocaml
ben_3 has quit [Read error: Connection reset by peer]
Denommus has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
martinium has joined #ocaml
kushal has joined #ocaml
rossberg has joined #ocaml
kushal has quit [Remote host closed the connection]
Denommus` has quit [Ping timeout: 244 seconds]
vbmithr has quit [Quit: leaving]
vbmithr has joined #ocaml
tennix has quit [Ping timeout: 256 seconds]
tennix has joined #ocaml
kushal has joined #ocaml
divyanshu has quit [Ping timeout: 240 seconds]
remyzorg has joined #ocaml
Denommus has joined #ocaml
MercurialAlchemi has joined #ocaml
sepp2k has joined #ocaml
octachron has quit [Ping timeout: 252 seconds]
manizzle has joined #ocaml
<MercurialAlchemi> Drup: have you looked at Resharper?
<MercurialAlchemi> er, WebSharper
divyanshu has joined #ocaml
<Drup> the eliom-like F# thingy ?
<Drup> if so, then yes
<Drup> I remember my impression being "the website is trendy"
nullcat has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
voglerr_ has joined #ocaml
voglerr_ has quit [Remote host closed the connection]
<Drup> It was some times ago, though
creichert has joined #ocaml
<Drup> MercurialAlchemi: why ?
divyanshu has quit [Ping timeout: 240 seconds]
voglerr has quit [Ping timeout: 256 seconds]
divyanshu has joined #ocaml
<MercurialAlchemi> Drup: well, they give me money to do .Net development these days
<MercurialAlchemi> there is no chance in hell I can convince anyone that OCaml is a thing in a country where Java is exotic
<Drup> you didn't convinced them to use OCaml :D
<MercurialAlchemi> but maybe if I mumble .Net .Net enough I can use it one day
<Drup> Java is exotic ?
<MercurialAlchemi> yeah
<Drup> which country are we talking about ? :(
<MercurialAlchemi> Denmark
<Drup> huuum, ok
<Drup> mirage b
<MercurialAlchemi> it's really a Microsoft stronghold
<Drup> err, wrong chan x)
<MercurialAlchemi> but, well, it looks pretty cool if you have to do .Net
<Drup> and so F# is ok ?
<MercurialAlchemi> with a reactive UI thingie and so on
<MercurialAlchemi> F#?
<MercurialAlchemi> well, it's a hard sell
<MercurialAlchemi> just less hard than OCaml, I think
<Drup> ok
remyzorg has quit [Ping timeout: 252 seconds]
<Drup> I didn't knew you were doing web things
<MercurialAlchemi> (it's kind of horrific how you feel sometimes that nobody has heard that you have other databases than MSSQL)
<MercurialAlchemi> done that for a long time, but with cookie-cutter techs
<MercurialAlchemi> formerly Spring/Hibernate and .Net MVC, right now .Net MVC
<MercurialAlchemi> that said, it's a decent stack for an OO thing
<Drup> I don't know a single thing about it :p
<MercurialAlchemi> your regular mvc
<Drup> right
zpe has joined #ocaml
<MercurialAlchemi> boring but gets the job done
<MercurialAlchemi> for some reason, business here has found out about Angular, so it's trenty
<MercurialAlchemi> trendy
<Drup> :D
<Drup> It's not microsoft, though, no typescript love ? :D
remyzorg has joined #ocaml
<MercurialAlchemi> no, don't think so
<MercurialAlchemi> just crap JS
mort___1 has quit [Quit: Leaving.]
<MercurialAlchemi> anyway, dinner time here :)
tashjash has quit [Quit: Leaving]
zpe has quit [Ping timeout: 246 seconds]
teiresia1 has joined #ocaml
mort___ has joined #ocaml
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<dmbaturin> MercurialAlchemi: It's a bit odd to hear this about Denmark after having read brics.dk ML papers.
<Drup> dmbaturin: industry ≠ academia
teiresias has quit [Ping timeout: 246 seconds]
<dmbaturin> Well, no doubt. Hearing that Java is exotic somewhere is surprising on its own though.
Submarine has joined #ocaml
Submarine has joined #ocaml
teiresia1 has quit [Ping timeout: 256 seconds]
jtfmumm has joined #ocaml
teiresias has joined #ocaml
ggole has quit []
grouzen has quit [Ping timeout: 256 seconds]
shinnya has joined #ocaml
jabesed has quit [Read error: No route to host]
jabesed has joined #ocaml
MrScout has joined #ocaml
ollehar1 has joined #ocaml
<ollehar1> welp, I'm fired. anyone knows any place?
<Drup> Ouch :x
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
dariusc93 is now known as darius93
mort___ has quit [Quit: Leaving.]
Snark has quit [Read error: Connection reset by peer]
mort___ has joined #ocaml
<MercurialAlchemi> ollehar1: what country?
<ollehar1> MercurialAlchemi: germany
<ollehar1> most ocaml is in france, I take it?
<MercurialAlchemi> well, there is an ocaml company in Copenhagen, Issuu
<Drup> Probably a good amount of it, yeah
nullcat has joined #ocaml
<MercurialAlchemi> it's probably going to be hard to stay with ocaml
<MercurialAlchemi> then it depends on what company you target
<Drup> Not "stay" :p
<MercurialAlchemi> there may be a pun in there but I don't get it
<Drup> No pun, ollehar was not using ocaml before
<Drup> (at work)
<MercurialAlchemi> ah
<MercurialAlchemi> ok
manizzle has quit [Ping timeout: 240 seconds]
<MercurialAlchemi> at least that part won't be a disappointment
<ollehar1> sorry, phone call
<ollehar1> but yes, never worked with ocaml
<ollehar1> copenhagen is closer home, not sure that's what I want :D
<ollehar1> programming ocaml at home, get fired from a php company. life is strange.
<MercurialAlchemi> you shouldn't have told them about types
<ollehar1> MercurialAlchemi: ;)
<ollehar1> or git...
jwatzman|work has joined #ocaml
<ollehar1> nah, they use git. but not for everything.
<ollehar1> or rather, git lacks behind. a couple of years. sometimes.
<ollehar1> ach
tennix has quit [Ping timeout: 260 seconds]
tennix has joined #ocaml
<dmbaturin> Drup: Is there a way to exit from a looping Lwt thread other than raising an exception?
<MercurialAlchemi> you mean they use CVS with a git mirror two years out of date?
<Akshay_> on plus side now you have more time for ocaml.
<dmbaturin> And you don't have to write PHP!
<Drup> dmbaturin: exception seems good
<Drup> dmbaturin: did you wrote the lwt loop yourself or ?
<dmbaturin> Drup: Well, that's what I'm doing now. Yeah, it's a read-process-reply loop for handling a connection.
tennix has quit [Ping timeout: 265 seconds]
<Drup> you can also do "if bla then Lwt_return () else loop ()
<ollehar1> Akshay_: yeah :)
toomuchtvrotsurb has joined #ocaml
<ollehar1> dmbaturin: well, my latest hobby project is to type-infer a subset of php, so...
<dmbaturin> I used binds all over. read >>= do_things >>= reply >>= (fun () -> loop i o)
<ollehar1> maybe I would have to let that go
<dmbaturin> And wrapped it in Lwt.on_failure so when End_of_file is raised it logs that connection terminated.
<dmbaturin> ollehar1: It sounds interesting.
<Drup> dmbaturin: not a problem, you can still do the if thing
<ollehar1> dmbaturin: yeah, it's fun. :) remember I told you to steal code from koka or whatever? I took parser/lexer from hacklang and algorithm w from another github account. then I just try to smosh them together.
<Akshay_> good luck with that !
<ollehar1> Akshay_: sarcasm...?
<dmbaturin> Drup: True. It's probably going to be cleaner than binding with fun () -> ... even.
<Akshay_> i don't know the meaning of sarcasm :S
<Akshay_> too lazy too google it :)
<Akshay_> i said it in a good way..
<ollehar1> oh, ok ^^
<ollehar1> well, I said "subset" of php. question is, will such a subset be meaningful? time will tell.
shinnya has quit [Ping timeout: 252 seconds]
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Akshay_> even if it's not meaningful it will help you in long run.
<MercurialAlchemi> ollehar1: there is a job posting on r/ocaml
<ollehar1> AND it will help PHP to get rid of that `==`
<MercurialAlchemi> if you like working for people which write 'TM' repeatedly
<ollehar1> MercurialAlchemi: cool, will check out
<ollehar1> I'm writing an application to Issuu now :) I'm under-qualified, but still, might get fun if I get an interview.
<ollehar1> *would be fun to get an interview
<Drup> MercurialAlchemi: are you talking about the Functor™ thing ?
<dmbaturin> ollehar1: Now I wonder if it's possible to design an aggressively imperative algol-style language with decideable type inference.
<Drup> *aggressively* imperative ? :D
<ollehar1> no lamdas?
<dmbaturin> Not as much in this sense, as in statement-oriented, multiple return statement in the same subroutine etc.
<ollehar1> actually, "aggressively imperative" might be a good name for PHP :D
<ollehar1> eval, goto, "break 5"
<ollehar1> wait, eval is not imperative. nevermind.
jtfmumm has joined #ocaml
MrScout has quit [Quit: Leaving...]
Akshay_ has quit [Quit: Leaving]
<MercurialAlchemi> Drup: yeah
<MercurialAlchemi> pretty ridiculous
<MercurialAlchemi> soon coming to you, Algorithm™
<MercurialAlchemi> ollehar1: I think more "offensive" than "aggressive" when the word PHP crosses my mind
<MercurialAlchemi> even if it has gained modern functionalities, the semantics are still all broken
<ollehar1> haha
<ollehar1> MercurialAlchemi: semantics, like what?
<ollehar1> like `list($a, $b) = f()`?
<ollehar1> e.g.
MrScout has joined #ocaml
felipealmeida has quit [Ping timeout: 244 seconds]
<Drup> MercurialAlchemi: I found this add hilarious
<Drup> I was not sure what I was reading, it was a mix of an overenthusiastic academic talk abstract and a buzzword-filled trendy job ad.
whirm has quit [Quit: WeeChat 1.2]
<ollehar1> why can't I find it?
<ollehar1> oh, there it is ><
Haudegen has quit [Ping timeout: 246 seconds]
felipealmeida has joined #ocaml
<dmbaturin> Got a link?
antegallya has quit [Quit: Leaving.]
Haudegen has joined #ocaml
ygrek_ has joined #ocaml
<dmbaturin> >solid Scandinavian operational semantics
<ollehar1> omg
<ollehar1> that's what happens when middle-managers write technical stuff?
Anarchos has joined #ocaml
alpen has joined #ocaml
mawuli has joined #ocaml
bitbckt has joined #ocaml
_habnabit has joined #ocaml
ghulette has joined #ocaml
<dmbaturin> ollehar1: I'd imagine a company that uses ocaml and/or haskell would not let middle managers write technical stuff.
<ollehar1> true
<ollehar1> any company, really.
Kakadu has quit [Quit: Page closed]
ghulette has quit [Quit: leaving]
<dmbaturin> ollehar1: A number of them do.
<dmbaturin> But usually not the ones smart enough to go against the middle managers common sense and use non-mainstream languages or methodologies. :)
ghulette has joined #ocaml
<ollehar1> hm
<dmbaturin> >Functor unleashes the next programming paradigm (STEW 2012) with zero learning curve.
zaquest has quit [Quit: Leaving]
manizzle has joined #ocaml
<flux> finally a DWIM-language?
zaquest has joined #ocaml
<dmbaturin> A while ago in #ada we've been talking about what will happen when formal verification becomes a buzzword...
<flux> "Needs at least 30 years of expertise in Coq"
voglerr has joined #ocaml
voglerr has quit [Remote host closed the connection]
whirm has joined #ocaml
voglerr has joined #ocaml
Haudegen has quit [Ping timeout: 265 seconds]
wraithm has quit [Quit: leaving]
rand000 has joined #ocaml
swgillespie has joined #ocaml
Haudegen has joined #ocaml
voglerr has quit [Remote host closed the connection]
divyanshu has quit [Quit: Textual IRC Client: www.textualapp.com]
monod has joined #ocaml
mort___ has quit [Ping timeout: 246 seconds]
remyzorg has quit [Ping timeout: 246 seconds]
TheLemonMan has joined #ocaml
yaewa has quit [Quit: Leaving...]
moei has joined #ocaml
ghulette has quit [Quit: leaving]
lobo has joined #ocaml
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
tennix has joined #ocaml
tennix has joined #ocaml
Algebr has joined #ocaml
<whirm> is there a way to compile an eliom service and the ocsigenserver together in a single executable?
uris77 has joined #ocaml
tennix has quit [Ping timeout: 244 seconds]
monod has quit [Ping timeout: 255 seconds]
mort___ has joined #ocaml
<Drup> Beware, it's a bit tricky.
<whirm> Drup: I want to cross compile the whole thing to ARM, so I guess it will be even more tricky :D
<Drup> That's orthogonal
<whirm> Drup: thanks for the link! Let's see if I can finish the cross-compiling part first.
<Drup> tbh, except if you have real troubles with dynlink, just keep the usual setup
nullcat has quit [Ping timeout: 250 seconds]
<whirm> Drup: yes, I wanted to cover my back as I did read somewhere that I could have trouble with dynlinking + crosscompiling
manud has joined #ocaml
<Drup> I'm not sure what would be the issue, but I know pretty much nothing about crosscompilation, so ..
<whirm> I think to remember there was a comment on the ocaml-android repo. Maybe it was related to crosscompiling to android?
<whirm> I'll see :)
manud has quit [Client Quit]
* rwmjones wonders how the ocaml compile distinguishes between 'a and 'a'
<rwmjones> compiler
<flux> rwmjones, context is everything?
<rwmjones> indeed
<flux> though it's still a good point
<rwmjones> unfortunately my parser is context-FREE
<flux> but it doesn't need a long lookahead
<flux> because there is never 'as.. that's a char
<flux> so lexer can do it always.
<Drup> that's not even a parsing thing
nullcat has joined #ocaml
<Drup> that's a lexer thing
<rwmjones> isn't there some conflict, like: type 'a'a foo
<rwmjones> or something?
<flux> ('a, 'a)
<rwmjones> hmm, perhaps not
<Drup> No, because you can only have alphanum in type variables.
<Drup> Precisely for this reason.
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Drup> (ocaml's grammar is LR(1), btw, so no context either)
<rwmjones> well, it has a scanner .. as does my parser
<dmbaturin> I wonder how many shift-reduce conflicts are there though. :)
<rwmjones> in fact I started out without a scanner, but concluded it's basically impossible to parse ocaml w/o a scanner
<Drup> dmbaturin: none
divyanshu has joined #ocaml
<Drup> dmbaturin: shift-reduce conflicts are an error :]
<dmbaturin> Drup: Why? Yacc's go for shift by default.
<Drup> It means that your grammar is not fully define, and that's just bad :/
<dmbaturin> Well, it's possible to rewrite it so it's completely unambiguous even without the "in doubt, shift" rule.
<Drup> Exactly
Kakadu has joined #ocaml
sp0on has quit [Ping timeout: 256 seconds]
ollehar1 has quit [Ping timeout: 256 seconds]
<rwmjones> ok so the scanner tokenizes ' as QUOTE
<rwmjones> but I still don't get how char-literals work
<Drup> rwmjones: and char literals are tokenized as CHAR
yomimono has joined #ocaml
<tokenrove> the rules for CHAR, QUOTE, and LIDENT in lexer.mll seem pretty straight-forward. the interesting thing about reading this is discovering how to trigger ``Warning 1: this is the start of a comment.''
<rwmjones> no I still don't understand this
<rwmjones> oh right now I do
sp0on has joined #ocaml
ceryo_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
jtfmumm has joined #ocaml
Submarine has quit [Quit: Leaving]
remyzorg has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
swgillespie has joined #ocaml
m4b has joined #ocaml
<m4b> hi; i'm trying to use some modules from one project as a library and use it in another test project; I have a META file in the lib project, and I want to use two modules: Binary and ProgramHeader; ProgramHeader depends on Binary, Binary depends on nothing (besides standard lib); so I am doing ocamlfind install testlib META _build/src/ProgramHeader.cmo ... _build/src/Binary.cmo ..; it installs, but when I attempt to use it from the other
<m4b> project with: ocamlbuild -pkg testlib I get a "No implementations provided for the following modules: Binary referenced from /Users/me/.opam/system/lib/testlib/ProgramHeader.cmx"
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<m4b> I looked inside the other libs, and the only difference I can see is they have .mli files, but I thought that was optional (I include the .cmi of course); sorry if this is stupid question, never messed with proper lib stuff before
<m4b> to make a long story short i guess, i just want to make all the ocaml code, except for Rdr.ml, available in the src as a pkg installed via ocamlfind, from this repo: http://github.com/m4b/rdr
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
kawaii-imouto has quit [Quit: fix config]
jeffmo has quit [Ping timeout: 264 seconds]
swgillespie has joined #ocaml
manud has joined #ocaml
jeffmo has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 260 seconds]
ollehar1 has joined #ocaml
<ollehar1> anyone awake still? could someone give me a hint about how hacklang/flow type-checks those if-idioms, like
<ollehar1> if (x != null) {
<ollehar1> // do something with x that would not compile without the if-statement.
<ollehar1> }
<ollehar1> is it done in the parser? type system? separate system?
<ollehar1> what to google for, even?
<ollehar1> :P
<flux> well, I understand hacklang is open source.. :)
<smondet> ollehar1: maybe this can help: https://www.youtube.com/watch?v=aN22-V-b8RM or maybe you've seen it already
<ollehar1> flux: yeah, I'm reading through the source-code now
<ollehar1> smondet: yeah, I saw that.
<ollehar1> I'm mostly curious about which academic paper they are using...
<flux> I think it would work by following the code and adding attributes to variables, like 'x is not null' in the scope if that if statement
<flux> but I guess you mean some more complicated thing than that.
<ollehar1> flux: no, not necessarily.
<ollehar1> maybe there's just some trick I don't know of, like that.
<flux> I wonder if is able to do the right thing in, say if (x != null || y != null) { if (x == null) { /* y must be non-null here */ } }
<ollehar1> flux: very good question. better try that :)
<flux> and then of course what happens if you have a null-checking function and do: if (is_not_null(x)) { .. }
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
<ollehar1> it might be a superficial syntax check.
<ollehar1> moment
<flux> and if that works (I doubt it) how complicated functions it can deal with :)
<ollehar1> just need to compile first ^^
_andre has quit [Quit: leaving]
remyzorg has quit [Ping timeout: 240 seconds]
<ollehar1> bah. this checks out without errors.
<ollehar1> /* @flow */
<ollehar1> function test(x) {
<ollehar1> return x + 10;
<ollehar1> }
<ollehar1> test(null);
remyzorg has joined #ocaml
<ollehar1> flux, this gives error, as you thought:
<ollehar1> /* @flow */
<ollehar1> function test(x, y) {
<ollehar1> if (x != null || y != null) {
<ollehar1> if (x == null) {
<ollehar1> y.length;
<ollehar1> }
jtfmumm has joined #ocaml
<ollehar1> }
<ollehar1> }
<ollehar1> test(null);
divyanshu has quit [Quit: Computer has gone to sleep.]
<jwatzman|work> ollehar1: I'm still around, reading backlog, hopefully I can answer your question
<ollehar1> jwatzman|work: oh, hi! :)
monod has joined #ocaml
<ollehar1> yeah, I just need a hint, some key word to google for or whatever.
<jwatzman|work> ollehar1: so, flow's type system in general is quite different from Hack's, and I'm not sure how flow deals with this
<jwatzman|work> ollehar1: but for Hack, the code you want is "condition" in typing.ml
<ollehar1> thanks!!
<ollehar1> yeah, I'm looking at both systems.
<jwatzman|work> ollehar1: We aren't using any academic paper or carefully researched anything; as I say in the Heresy talk, a lot of this is lightly based on research, but not formalized in any way like what a lot of ML folks want ;)
tennix has joined #ocaml
<ollehar1> jwatzman|work: oh really? I expected you to have a paper to draw inspiration from.
<jwatzman|work> ollehar1: condition is what deals with changing the local typing enviornment; you can see how the If expression, for example, deals with it
<jwatzman|work> ollehar1: The original author might have, but I'm not aware of one
<ollehar1> ok :)
<jwatzman|work> ollehar1: This particular bit isn't that complicated IMO
<jwatzman|work> ollehar1: For a caller of "condition", look at the "stmt" function (again in typing/typing.ml), the "If (e, b1, b2)" case near the top
<jwatzman|work> ollehar1: the parent_lenv is to deal with what happens when we pop out of the "if" -- we need to combine types from both branches
<jwatzman|work> which is what integrate does (see my Heresy talk for details on integration and this bit, it's a little complicated)
<ollehar1> well, depends on how complicated expressions you want to check.
<ollehar1> hey, doesn't infer do things like this too? I should check that out.
<ollehar1> again, thanks for the hints, very appreciated.
<ollehar1> yeah, I saw the talk, think I'll watch it again.
<jwatzman|work> ollehar1: Infer takes yet another approach -- I don't even pretend to understand what Infer does; Hoare logic is the term to google for that one
<jwatzman|work> ollehar1: Infer is *much* more principled, so there *are* definitely tons of papers on the theory it uses :)
<ollehar1> ah, yeah, I saw some code comments about hoare logic in flow.
<jrslepak> "Logical Types for Untyped Languages" might be good intro reading too
tennix has quit [Ping timeout: 244 seconds]
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
jtfmumm has joined #ocaml
shinnya has joined #ocaml
<ollehar1> awesome, thanks!
<ollehar1> hey, hoare logic is in my old course literature. time to pick that up again, then. ^^
<ollehar1> jwatzman|work: btw, which office are you in? america?
<ollehar1> jrslepak: thanks
tane has quit [Quit: Verlassend]
pyon has joined #ocaml
pyon is now known as kawaii-imouto
<jwatzman|work> ollehar1: Yeah, I'm based out of FB's HQ in Menlo Park, California
whirm has quit [Quit: WeeChat 1.2]
<ollehar1> ok
jao has joined #ocaml
jtfmumm has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
thizanne has quit [Ping timeout: 244 seconds]
thizanne has joined #ocaml
ollehar1 has quit [Quit: ollehar1]
yomimono has quit [Quit: Leaving]
stomp has quit [Ping timeout: 244 seconds]
stomp has joined #ocaml
shinnya has quit [Ping timeout: 240 seconds]
tmtwd has quit [Ping timeout: 265 seconds]
nopf has quit [Ping timeout: 255 seconds]
Algebr has quit [Remote host closed the connection]
nopf has joined #ocaml
shinnya has joined #ocaml
uris77 has quit [Quit: leaving]
monod has quit [Quit: bye]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
swgillespie has joined #ocaml
swgillespie has quit [Client Quit]
lobo has quit [Quit: leaving]
Denommus has quit [Quit: going home]
tmtwd has joined #ocaml
kushal has quit [Quit: Leaving]
jeffmo has quit [Quit: jeffmo]
Kakadu has quit [Remote host closed the connection]
remyzorg has quit [Ping timeout: 244 seconds]
tmtwd has quit [Ping timeout: 260 seconds]
swgillespie has joined #ocaml
remyzorg has joined #ocaml
malc_ has joined #ocaml
remyzorg has quit [Ping timeout: 244 seconds]
rand000 has quit [Quit: leaving]
tmtwd has joined #ocaml
Simn has quit [Quit: Leaving]
m4b has quit [Ping timeout: 250 seconds]
badkins has quit []
Haudegen has quit [Ping timeout: 244 seconds]
AltGr has joined #ocaml
madroach has quit [Ping timeout: 264 seconds]
madroach has joined #ocaml
struktured has joined #ocaml
systmkor has quit [Quit: Leaving]
Haudegen has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
jbrown has quit [Ping timeout: 240 seconds]