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
travisbrady has joined #ocaml
bytbox has joined #ocaml
Hannibal_Smith has quit [Ping timeout: 244 seconds]
enitiz has joined #ocaml
w0rp has quit [Ping timeout: 264 seconds]
rwmjones_on_hols has quit [Ping timeout: 272 seconds]
t4nk602 has joined #ocaml
w0rp has joined #ocaml
t4nk602 has quit [Ping timeout: 246 seconds]
rwmjones_on_hols has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
jonludlam has quit [Ping timeout: 264 seconds]
jwatzman|work has joined #ocaml
NoNNaN has quit [Remote host closed the connection]
NoNNaN has joined #ocaml
fraggle-boate has quit [Ping timeout: 265 seconds]
rgrinberg has quit [Quit: Leaving.]
codefo has joined #ocaml
codefo has quit [Ping timeout: 245 seconds]
flux has quit [Remote host closed the connection]
rgrinberg has joined #ocaml
travisbrady has quit [Quit: travisbrady]
travisbrady has joined #ocaml
alkoma has quit [Remote host closed the connection]
shinnya_ has quit [Ping timeout: 264 seconds]
MrScout_ has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
MrScout has quit [Ping timeout: 245 seconds]
MrScout_ has quit [Ping timeout: 244 seconds]
Simn has quit [Quit: Leaving]
hekmek has joined #ocaml
hekmek has quit [Client Quit]
ahem has joined #ocaml
Thooms has quit [Ping timeout: 265 seconds]
struktured has joined #ocaml
drdanmaku has joined #ocaml
rgrinberg has quit [Ping timeout: 244 seconds]
AlexRussia has quit [Ping timeout: 245 seconds]
rgrinberg has joined #ocaml
q66 has quit [Quit: Leaving]
jprakash has quit [Ping timeout: 265 seconds]
mcc has joined #ocaml
struktured has quit [Quit: Konversation terminated!]
struk has joined #ocaml
codefo has joined #ocaml
jprakash has joined #ocaml
AlexRussia has joined #ocaml
manizzle has quit [Ping timeout: 245 seconds]
deavid has quit [Ping timeout: 244 seconds]
codefo has quit [Ping timeout: 264 seconds]
kapil__ has joined #ocaml
badkins_ has quit [Read error: Connection reset by peer]
badkins has joined #ocaml
mcc has quit [Quit: This computer has gone to sleep]
Yoric has joined #ocaml
Yoric has quit [Ping timeout: 240 seconds]
deavid has joined #ocaml
alkoma has joined #ocaml
mcc has joined #ocaml
ahem has quit [Read error: Connection timed out]
ahem has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
lordkryss has quit [Quit: Connection closed for inactivity]
rgrinberg has joined #ocaml
SomeDamnBody has joined #ocaml
<SomeDamnBody> Hey so... I have a set of modules that all have a common interface
<SomeDamnBody> and I have some places in code that call functions within those modules very very similarly
<SomeDamnBody> I just want to pass the module to the function
<SomeDamnBody> and have the function retrieve the right module functions based on what module it's passed
<SomeDamnBody> how do I do that?
darkf has joined #ocaml
<whitequark> first class modules!
ahem has quit [Read error: Connection timed out]
ahem has joined #ocaml
<whitequark> Drup: yes that happens to pprintast
<whitequark> or rather, that happens if you use untypeast.
<SomeDamnBody> but do I have to specify the types of the functions?
<SomeDamnBody> is there any way around that?
<whitequark> what do you mean?
<whitequark> you do need to specify the module type explicitly *somewhere*
jprakash has quit [Ping timeout: 256 seconds]
ygrek has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
SomeDamnBody has quit [Ping timeout: 264 seconds]
SomeDamnBody has joined #ocaml
travisbrady has quit [Quit: travisbrady]
Pepe_ has quit [Quit: Changing server]
Pepe_ has joined #ocaml
manizzle has joined #ocaml
ahem has quit [Read error: Connection timed out]
ahem has joined #ocaml
mcc has quit [Quit: This computer has gone to sleep]
mengu has joined #ocaml
mengu has joined #ocaml
mengu has quit [Changing host]
NoNNaN has quit [Ping timeout: 250 seconds]
badon has quit [Ping timeout: 250 seconds]
mengu has quit [Remote host closed the connection]
mengu has joined #ocaml
marynate has joined #ocaml
mengu has quit [Read error: No route to host]
mengu__ has joined #ocaml
SomeDamnBody has quit [Ping timeout: 244 seconds]
MrScout has joined #ocaml
ahem has quit [Read error: Connection timed out]
ahem has joined #ocaml
strmpnk_ is now known as strmpnk
cdidd has quit [Ping timeout: 255 seconds]
<cojy> what would be a good reason to use objects instead of first class modules? don't they cover much of the same use case?
codefo has joined #ocaml
samrat has joined #ocaml
ahem has quit [Read error: Connection timed out]
ahem has joined #ocaml
codefo has quit [Ping timeout: 245 seconds]
jao has quit [Ping timeout: 255 seconds]
BitPuffin has quit [Ping timeout: 265 seconds]
ahem2 has joined #ocaml
ahem has quit [Ping timeout: 245 seconds]
<whitequark> not really, no
<whitequark> objects don't have existentials
<whitequark> first class modules don't have row polymorphism
mengu__ has quit [Remote host closed the connection]
mengu has joined #ocaml
<cojy> hmm, i was thinking you could get the same thing as object's row polymorphism by using the new open variants with them
anemator has joined #ocaml
anemator has quit [Read error: Connection reset by peer]
mengu has quit [Ping timeout: 255 seconds]
<whitequark> open variants aren't polymorphic
samrat has quit [Quit: Computer has gone to sleep.]
ahem2 has quit [Read error: Connection reset by peer]
ygrek_ has joined #ocaml
ahem2 has joined #ocaml
ygrek has quit [Remote host closed the connection]
flux has joined #ocaml
ggole has joined #ocaml
badkins has quit [Remote host closed the connection]
drdanmaku has left #ocaml [#ocaml]
ygrek_ has quit [Ping timeout: 245 seconds]
ahem2 has quit [Read error: Connection timed out]
samrat has joined #ocaml
ahem2 has joined #ocaml
enitiz has quit [Ping timeout: 264 seconds]
badon has joined #ocaml
badon has quit [Client Quit]
samrat has quit [Quit: Computer has gone to sleep.]
samrat has joined #ocaml
badon has joined #ocaml
antegallya has joined #ocaml
codefo has joined #ocaml
codefo has quit [Ping timeout: 255 seconds]
mengu has joined #ocaml
kapil__ has quit [Quit: Connection closed for inactivity]
MercurialAlchemi has joined #ocaml
antegallya has quit [Read error: No route to host]
antegallya has joined #ocaml
kapil__ has joined #ocaml
antegallya has quit [Quit: Leaving.]
keen__________24 has quit [Read error: Connection reset by peer]
keen__________24 has joined #ocaml
mengu has quit [Remote host closed the connection]
mengu has joined #ocaml
mengu__ has joined #ocaml
mengu has quit [Read error: No route to host]
badon has quit [Ping timeout: 250 seconds]
Haudegen has quit [Ping timeout: 245 seconds]
Yoric has joined #ocaml
Haudegen has joined #ocaml
Yoric has quit [Remote host closed the connection]
badkins has joined #ocaml
Submarine has joined #ocaml
larhat1 has joined #ocaml
larhat has quit [Read error: Connection reset by peer]
badkins has quit [Ping timeout: 245 seconds]
nicoo has quit [Ping timeout: 250 seconds]
ebzzry has quit [Remote host closed the connection]
Yoric has joined #ocaml
Arsenik has joined #ocaml
Arsenik has quit [Remote host closed the connection]
<vanila> is the ocaml type system more complex than haskells?
<whitequark> I don't think so
ebzzry has joined #ocaml
<flux> well, ocaml has subtyping and row-types, though maybe ghc has those as extensions..
<larhat1> I think it may depend on what haskell you're talking about: haskell 98 or GHC with all its extensions
ebzzry has quit [Remote host closed the connection]
<ggole> There's objects and modules and poly-variants, which are a fair amount of machinery
<ggole> Neither seem particularly simple.
codefo has joined #ocaml
codefo has quit [Ping timeout: 252 seconds]
mcc has joined #ocaml
rock_neurotiko has quit [Ping timeout: 240 seconds]
<mcc> So, I was recommended alainfrisch/sedlex by people on this channel, it is great, but it is missing a couple of features I want
<mcc> I may try to implement these features myself, I guess... does anyone have any advice on what way of going about this would be most likely to get my patch accepted
<whitequark> Drup is now the maintainer of sedlex, I believe
<whitequark> so just make it useful
<mcc> oh huh ok
<mcc> is github/alainfrisch/sedlex still the place to submit pull requests
vanila has quit [Read error: Connection reset by peer]
<whitequark> in worst case they'll be merged manually
<mcc> ok
<mcc> what i think i am going to implement is
<mcc> - some kind of minus operator, i want to be able to match on ` whitespace - "\n" `
<mcc> - it really would simplify things for me if sedlex would internally track the line number and position-within-line of the current parser position
<mcc> i'm currently tracking that outside sedlex and it is clumsy
<whitequark> oh, wait, that's not quite what you want
<whitequark> yeah. both should be easy to implement
<mcc> There's a complement already
<mcc> "intersect"
<mcc> would probably also get me what i want
<mcc> because then i could intersect (compl \n) with whitespace
<whitequark> sure. but I think minus would be useful too
<mcc> *nod* intersect might be harder to implement anyway
<whitequark> not really
<whitequark> should be about same
<whitequark> take a look at cset
<mcc> ok
<mcc> if i figure this out i'll probably be asking some questions about whether i can depend on it in my project (i.e.: if i send someone my project, can they easily set up opam to get my extensions)
<mcc> now i'm going to sleep now though. ttyl!
rock_neurotiko has joined #ocaml
<mcc> ...now
mcc has quit [Quit: /quit]
hekmek has joined #ocaml
chinglish has joined #ocaml
xaimus has quit [Ping timeout: 265 seconds]
xaimus has joined #ocaml
nicoo has joined #ocaml
matason has joined #ocaml
nicoo has quit [Excess Flood]
alkoma has quit [Remote host closed the connection]
chinglish has quit [Quit: Nettalk6 - www.ntalk.de]
chinglish has joined #ocaml
hcarty has quit [Remote host closed the connection]
Yoric has quit [Remote host closed the connection]
cdidd has joined #ocaml
chinglish has quit [Quit: Nettalk6 - www.ntalk.de]
funtik_ has left #ocaml [#ocaml]
ingsoc has joined #ocaml
funtik_ has joined #ocaml
mort___ has joined #ocaml
AlexRussia has quit [Ping timeout: 256 seconds]
ollehar has joined #ocaml
avsm has joined #ocaml
marynate has quit [Quit: Leaving]
Submarine has quit [Ping timeout: 245 seconds]
jonludlam has joined #ocaml
flx has joined #ocaml
chinglish has joined #ocaml
chinglish has quit [Client Quit]
chinglish has joined #ocaml
ruoso_ has quit [Ping timeout: 240 seconds]
ruoso has joined #ocaml
chinglish has quit [Client Quit]
chinglish has joined #ocaml
ruoso has quit [Ping timeout: 264 seconds]
ruoso has joined #ocaml
xaimus has quit [Ping timeout: 264 seconds]
xaimus has joined #ocaml
Yoric has joined #ocaml
codefo has joined #ocaml
codefo has quit [Read error: Connection reset by peer]
chinglish has quit [Quit: Nettalk6 - www.ntalk.de]
codefo has joined #ocaml
_andre has joined #ocaml
badon has joined #ocaml
avsm has quit [Quit: Leaving.]
Yoric has quit [Ping timeout: 244 seconds]
Yoric has joined #ocaml
rock_neurotiko has quit [Ping timeout: 244 seconds]
nicoo has joined #ocaml
mengu__ has quit [Remote host closed the connection]
Yoric has quit [Ping timeout: 265 seconds]
Yoric has joined #ocaml
Yoric_ has joined #ocaml
Yoric has quit [Ping timeout: 244 seconds]
Simn has joined #ocaml
NoNNaN has joined #ocaml
Thooms has joined #ocaml
mort___ has quit [Quit: Leaving.]
Thooms has quit [Quit: WeeChat 1.0.1]
psy_ has quit [Quit: Leaving]
mort___ has joined #ocaml
Haudegen has quit [Ping timeout: 264 seconds]
Haudegen has joined #ocaml
bluebelle has joined #ocaml
chinglish2 has joined #ocaml
acieroid has quit [Read error: Connection reset by peer]
acieroid has joined #ocaml
MrScout has quit [Ping timeout: 245 seconds]
bluebelle has quit [Remote host closed the connection]
bluebelle has joined #ocaml
antegallya has joined #ocaml
antegallya has quit [Ping timeout: 264 seconds]
antegallya has joined #ocaml
chinglish2 has quit [Quit: Nettalk6 - www.ntalk.de]
koderok has joined #ocaml
hekmek has quit [Quit: Verlassend]
thomasga has joined #ocaml
badkins has joined #ocaml
badkins has quit [Ping timeout: 264 seconds]
jonludlam has quit [Ping timeout: 255 seconds]
dsheets has joined #ocaml
mengu has joined #ocaml
koderok has quit [Quit: koderok]
chinglish has joined #ocaml
bjorkintosh has quit [Quit: Leaving]
mort___ has quit [Quit: Leaving.]
mort___ has joined #ocaml
bjorkintosh has joined #ocaml
Thooms has joined #ocaml
antegallya has quit [Ping timeout: 245 seconds]
psy_ has joined #ocaml
jonludlam has joined #ocaml
antegallya has joined #ocaml
antegallya has quit [Client Quit]
antegallya has joined #ocaml
nicoo has quit [Remote host closed the connection]
nicoo has joined #ocaml
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
etehtsea has joined #ocaml
etehtsea has quit [Max SendQ exceeded]
Thooms has quit [Quit: WeeChat 1.0.1]
chinglish has quit [Ping timeout: 245 seconds]
chinglish2 has joined #ocaml
chinglish2 has quit [Client Quit]
chinglish has joined #ocaml
samrat has quit [Quit: Computer has gone to sleep.]
Thooms has joined #ocaml
ygrek has joined #ocaml
BitPuffin has joined #ocaml
jcdyer has joined #ocaml
Submarine has quit [Quit: Leaving]
RossJH has joined #ocaml
<jcdyer> I'm trying to split out my first OCaml app into multiple modules, and running into some linking issues. I've included gtk with -I +lablgtk2 lablgtk2.cma gtkInit.cmo, but I'm getting an error of "Cannot find file lablgtk2.cma during linking.
<jcdyer> If I remove lablgtk2.cma from the linking command, I get "Reference to undefined global GtkMain"
<jcdyer> Output of my make session:
rock_neurotiko has joined #ocaml
ygrek has quit [Ping timeout: 244 seconds]
Hannibal_Smith has joined #ocaml
<Leonidas> jcdyer: you could use ocamlfind and avoid much hassle
ggole has quit [Ping timeout: 256 seconds]
jcdyer has quit [Ping timeout: 244 seconds]
ygrek has joined #ocaml
fafounetbis has joined #ocaml
ggole has joined #ocaml
govg has quit [Ping timeout: 245 seconds]
jcdyer has joined #ocaml
<jcdyer> Sorry. My connection died on me.
<jcdyer> Leonidas: Just found your response on the logs. Thanks. I'll look into it.
maufred_ has quit [Remote host closed the connection]
Yoric has joined #ocaml
ygrek has quit [Ping timeout: 252 seconds]
t4nk040 has joined #ocaml
Yoric_ has quit [Ping timeout: 244 seconds]
<Leonidas> ocamlfind -package lablgtk2 should be what you need
<Leonidas> also -linkpkg
jcdyer has left #ocaml [#ocaml]
<t4nk040> i am trying to install zmq with opam, but get terminated with error code 10. Does someone know what that means?
<Leonidas> t4nk040: can you paste the output?
<Leonidas> also opam install -v for more output
maufred has joined #ocaml
kapil__ has quit [Quit: Connection closed for inactivity]
<Leonidas> src/caml_zmq_stubs.c:539:5: error: unknown type name ‘zmq_event_t’
zwer has joined #ocaml
matason has quit [Ping timeout: 265 seconds]
<Leonidas> what is the zmq version you have installed?
chinglish has quit [Ping timeout: 244 seconds]
chinglish has joined #ocaml
samrat has joined #ocaml
govg has joined #ocaml
hugomg has joined #ocaml
matason has joined #ocaml
struk has quit [Ping timeout: 244 seconds]
travisbrady has joined #ocaml
<t4nk040> Leonidas: i use zmq 4.1.0
<Leonidas> t4nk040: then the binding is too old for your zmq version
<Leonidas> ah, 4.1.0 is not yet released, that's why the binding was not yet updated and hardly anyone ran into this problem.
badkins has joined #ocaml
jprakash has joined #ocaml
enitiz has joined #ocaml
uris77 has joined #ocaml
tane has joined #ocaml
samrat has quit [Quit: Computer has gone to sleep.]
chinglish has quit [Ping timeout: 264 seconds]
chinglish has joined #ocaml
larhat1 has quit [Read error: Connection reset by peer]
larhat has joined #ocaml
tristero has joined #ocaml
binarybitme has quit [Ping timeout: 240 seconds]
mort___ has quit [Quit: Leaving.]
binarybitme has joined #ocaml
thomasga has quit [Quit: Leaving.]
dsheets has quit [Ping timeout: 252 seconds]
Thooms has quit [Quit: WeeChat 1.0.1]
shinnya_ has joined #ocaml
thomasga has joined #ocaml
fraggle-boate has joined #ocaml
<t4nk040> Leonidas: Thanks for the help, i changed some parts in the zmq ocaml code and it compiles now
travisbrady has quit [Quit: travisbrady]
Yoric has quit [Remote host closed the connection]
hugomg has quit [Ping timeout: 256 seconds]
fafounetbis has quit [Ping timeout: 256 seconds]
Yoric_ has joined #ocaml
olauzon has joined #ocaml
Submarine has joined #ocaml
thomasga has quit [Quit: Leaving.]
darkf has quit [Quit: Leaving]
slash^ has joined #ocaml
<struk|work> t4nk040: have you thought about serialization? what's going to be your strategy? (or is it not relevant for your project..)
travisbrady has joined #ocaml
govg has quit [Ping timeout: 265 seconds]
jprakash has quit [Ping timeout: 264 seconds]
slash^ has quit [Read error: Connection reset by peer]
ahem2 has quit [Ping timeout: 255 seconds]
rgrinberg has joined #ocaml
govg has joined #ocaml
<t4nk040> struk|work: i am using jane streets bin_prot for serialization
<struk|work> t4nk040: cool yeah I tried that with zmq before worked perfectly fine
Submarine has quit [Quit: Leaving]
mengu has quit [Remote host closed the connection]
mort___ has joined #ocaml
<t4nk040> struk|work: you tried it before, did you switch to something else?
<struk|work> t4nk040: well the project I workedo n that needed zmq lost it's steam, on other projects I switched to protocol buffers (w/riak). Both are good choices I think though
rock_neurotiko has quit [Ping timeout: 264 seconds]
avsm has joined #ocaml
travisbrady has quit [Quit: travisbrady]
rock_neurotiko has joined #ocaml
chinglish has quit [Ping timeout: 265 seconds]
dsheets has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
thomasga has joined #ocaml
<struk|work> t4nk040: this was my attempt to make zmq a little easier to work with (a module per messaging strategy, strong typing on the payload, etc.) but I doubt this project even compiles anymore: https://github.com/struktured/mpmw/tree/master/lib
ollehar has quit [Ping timeout: 244 seconds]
travisbrady has joined #ocaml
travisbrady has quit [Client Quit]
Hannibal_Smith has quit [Quit: Leaving]
myyst has quit [Ping timeout: 244 seconds]
myyst has joined #ocaml
<mrvn> \o/
rgrinberg has joined #ocaml
jprakash has joined #ocaml
Yoric_ has quit [Remote host closed the connection]
slash^ has joined #ocaml
antegallya has quit [Ping timeout: 256 seconds]
<_andre> does anyone know if in async there's any way to close a Reader without having it close the associated Fd.t?
zwer has quit [Remote host closed the connection]
zwer has joined #ocaml
mort___ has quit [Quit: Leaving.]
rgrinberg has quit [Quit: Leaving.]
hekmek has joined #ocaml
RossJH has quit [Remote host closed the connection]
jao has joined #ocaml
sol__ has quit [Quit: Leaving]
travisbrady has joined #ocaml
antegallya has joined #ocaml
jwatzman|work has joined #ocaml
RossJH has joined #ocaml
q66 has joined #ocaml
uris77 has quit [Quit: leaving]
manizzle has quit [Ping timeout: 252 seconds]
manizzle has joined #ocaml
<vbmithr> Leonidas: I completed a binding to nanomsg too (github.com/vbmithr/onanomsg/
jonludlam has quit [Ping timeout: 264 seconds]
manizzle has quit [Ping timeout: 264 seconds]
hugomg has joined #ocaml
Haudegen has quit [Ping timeout: 245 seconds]
Haudegen has joined #ocaml
<bluebelle> When constructing values of which type defined using GADT, sometimes (specifically, when a type variable is unused in the resulting type) I get (Constructor <poly>) as the value. Is it normal?
<ggole> bluebelle: yep
<ggole> This is because printing in the toplevel is type driven, but the type says nothing about what the argument might be
<bluebelle> ggole: Ah I see, thanks
rgrinberg has joined #ocaml
<ggole> A clear example is type any = Any : 'a -> any
mort___ has joined #ocaml
Thooms has joined #ocaml
enquora has joined #ocaml
matason has quit [Ping timeout: 244 seconds]
leowzukw has joined #ocaml
samrat has joined #ocaml
Submarine has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
gdsfh has quit [Ping timeout: 244 seconds]
cmtptr has joined #ocaml
jprakash has quit [Ping timeout: 264 seconds]
Yoric has joined #ocaml
mort___ has quit [Quit: Leaving.]
mort___ has joined #ocaml
avsm has quit [Quit: Leaving.]
_andre has quit [Quit: leaving]
mengu has joined #ocaml
mengu has joined #ocaml
manizzle has joined #ocaml
<Leonidas> vbmithr: nice :-)
gdsfh has joined #ocaml
<Leonidas> I'm waiting for cohttp to be fixed to use your websocket-lib
enitiz has quit [Remote host closed the connection]
rand000 has joined #ocaml
uris77 has joined #ocaml
avsm has joined #ocaml
nojb has joined #ocaml
<badkins> I'd like to experiment with some concurrent programming in ML - is anyone familiar with both Core Async and CML in SML who might comment on some pros/cons?
enitiz has joined #ocaml
<Drup> can anyone propose unusual piece of ocaml syntax/typing (for some tests) ?
mengu has quit []
leowzukw has quit [Quit: Lost terminal]
<Drup> badkins: CML seems to be message-passing based
<Drup> http://cml.cs.uchicago.edu/general.html thanks dude, you are helpful.
<badkins> I'm watching John Reppy's presentation on CML at ICFP in 2009 here: http://vimeo.com/6628118 I'm guessing that uchicago page is simply abandoned, but maybe CML work is simply part of SML/NJ now
<Drup> the website I linked is still marked as the official page on wikipedia
slash^ has quit [Read error: Connection reset by peer]
<Drup> badkins: regardless of the semantic, CML seems quite poor and not well documented
<Drup> what do you want to experiment exactly ?
<badkins> initially, a simple http server
<Drup> that's not the funniest choice ever, but why not. Use lwt.
tane has quit [Read error: Connection reset by peer]
tane has joined #ocaml
<badkins> I know nothing about lwt - would that be your choice?
<Drup> yes
<Drup> (If you want a rational of "why lwt over Async" : http://rgrinberg.com/blog/2014/12/11/abandoning-async/)
rgrinberg has quit [Quit: Leaving.]
<badkins> Thanks, I'll read that to balance out https://blogs.janestreet.com/announcing-async/ after lunch ...
<nicoo> badkins: Also, if you want to do HTTP stuff, you might want to look at how CoHTTP does some things
Yoric has quit [Remote host closed the connection]
hugomg has quit [Ping timeout: 244 seconds]
rgrinberg has joined #ocaml
matason has joined #ocaml
<Leonidas> Drup: contrary to Core Async which is thouroughly document… oh nevermind.
<Drup> the thing is, Core/Async is not my reference point.
<Drup> =)
<Leonidas> Lwt seems to be winning anyway
badon has quit [Disconnected by services]
kakadu has joined #ocaml
mort___ has quit [Quit: Leaving.]
ggole has quit []
antegallya has quit [Quit: Leaving.]
antegallya has joined #ocaml
travisbrady_ has joined #ocaml
malc_ has joined #ocaml
travisbrady has quit [Ping timeout: 265 seconds]
travisbrady_ is now known as travisbrady
nojb has quit [Quit: nojb]
Hannibal_Smith has joined #ocaml
samrat has quit [Quit: Computer has gone to sleep.]
nojb has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
rgrinberg has joined #ocaml
Arsenik has joined #ocaml
ousado has quit [Ping timeout: 264 seconds]
ousado has joined #ocaml
ousado has quit [Changing host]
ousado has joined #ocaml
fschwidom has joined #ocaml
nojb has quit [Quit: nojb]
hekmek has quit [Quit: Verlassend]
jonludlam has joined #ocaml
RossJH has quit [Ping timeout: 245 seconds]
RossJH has joined #ocaml
rand000_ has joined #ocaml
rand000 has quit [Ping timeout: 245 seconds]
fschwidom has quit [Remote host closed the connection]
fschwidom has joined #ocaml
fschwidom has left #ocaml [#ocaml]
Submarine has quit [Quit: Leaving]
lordkryss has joined #ocaml
badon has joined #ocaml
Yoric has joined #ocaml
luigy has left #ocaml ["Textual IRC Client: www.textualapp.com"]
BitPuffin has quit [Ping timeout: 240 seconds]
badon has quit [Disconnected by services]
badon_ has joined #ocaml
badon_ is now known as badon
BitPuffin has joined #ocaml
badon has quit [Ping timeout: 250 seconds]
testcocoon has quit [Quit: Coyote finally caught me]
malc_ has quit [Ping timeout: 245 seconds]
testcocoon has joined #ocaml
matason has quit [Ping timeout: 256 seconds]
<ingsoc> still early days for me with ocaml and type-inference seems really cool. Why is this not in things like java and c# ? Apologies if this is a stupid question with an obvious technical reason
<Drup> No reason.
<Tekk_> ingsoc: it's in C++
<Tekk_> and I believe C#
<ingsoc> and has anyone got any real information on how ocaml compares to other languages performance wise, as one of the main reasons I am learning it is a high performance sequential execution
<Drup> It's pretty limited and broken in C++, due to the fact that they don't have a real type system
<ingsoc> well I have not looked at newere versionso of c#
<Drup> ingsoc: sequential performances are very good
<ingsoc> so maybe this has been added but afaict typical code is littered with types
<Tekk_> ingsoc: lies, damned lies, and benchmarks
<Tekk_> if tends to hover in the same area as C and C++ though afaik
<ingsoc> well i know benchmarks canskew results
<ingsoc> that's why i was asking if anyone had a kind of feeling compared to other languages
<ingsoc> like how much slower real world is it than java or c++ or python etc.
<S11001001> ingsoc: to answer the inference question for yourself, try solving this inference problem in C#: infer the argument and result types of this C# method:
<S11001001> ? Blah(? x, ? y) {return x.Append(y);}
<ingsoc> i mean, any experience of comparing something they had already implemented in another language
<ingsoc> oh yeah, they have generics for that
<ingsoc> where you can specify a typed array
<ingsoc> is that what you mean ?
<S11001001> ingsoc: not really
<S11001001> ingsoc: pretend you are a C# compiler
<S11001001> ingsoc: you are aiming for the ocaml ideal of most general signature
<Tekk_> well obviously x has to be whatever the equivalent of IContainer is
<Tekk_> and I'd say that you have a generic for y, so you need to be using the generic syntax :)
<S11001001> you must solve for α, β, γ: α Blah(β x, γ y) {return x.Append(y);}
Arsenik has quit [Remote host closed the connection]
<Tekk_> ah
<Tekk_> I've got it
<Tekk_> compiler error: no such method: Append.
<Tekk_> all the C# stuff uses .Add I think :P
<S11001001> Tekk_: how would it tell there isn't such a method?
olauzon has quit [Quit: olauzon]
oscar_toro has joined #ocaml
<Tekk_> S11001001: simple. you didn't define any other classes
<Tekk_> so I can only look in the standard library
<Tekk_> and afaict there are no classes with the Append method in the standard library
<pippijn> global type inference would be interesting
<pippijn> in C#
<Drup> Tekk_: you are missing the point.
<pippijn> remove all the types, see how far you get
<Tekk_> Drup: yes I am. it's often so much more fun to :)
MercurialAlchemi has quit [Ping timeout: 245 seconds]
malc__ has joined #ocaml
<S11001001> ingsoc: anyway think about that for a while.
<Drup> depends, in this case, you are just trapping the discussion into unnecessary pickyness.
Simn has quit [Quit: Leaving]
<S11001001> ingsoc: and let me know when you come up with an answer :)
<ingsoc> S11001001: well, unless there is only one object/class with and Append method and that method has only one method signature then it cannot be inferred accurately to a specific type
<ingsoc> if there is more than one then there will be any number of combinations of possible types ?
<ingsoc> based onthe method parameters
<S11001001> ingsoc: a large combination
<S11001001> ingsoc: and even if there is only one, you may be quite surprised at the choice
<ingsoc> ok, so why is this different in ocaml
<ingsoc> ahhh
<Drup> because there is no equivalent of "method overload"
<ingsoc> ah i see
<ingsoc> yeah
AlexRussia has joined #ocaml
<ingsoc> so you are already limited in scope to search
<Drup> (there are other reasons, but this is a big one)
<ingsoc> as in the number of combinations
<S11001001> ingsoc: even if you could not overload a name within a class, you would still have this problem in C#, because use of the same name and arity in other classes counts as "overloads"
<ingsoc> well yeah I wqas thinking along those lines but then I thoguht ocaml has OOP too (although have no idea how it is implemented)
<Drup> yeah
<ingsoc> I am literally just starting out with the top level
<Drup> ocaml's OOP is a weird one, so we should let this explanation to future work :D
<Drup> but basically, there is no notion of class into the typesystem, only what you could call prototypes, typed structurally.
<ingsoc> ok so it is simply down tot he design of the languages and their semantics as to how effective type inference can be. i.e. ocaml was designed with the expectation of being able to infere typoe
<ingsoc> S11001001: so does OOP work then, or is this different OOP to how I would recognise in a traditional imperative OO language ?
<ingsoc> so how does*
<Drup> ingsoc: " ocaml was designed with the expectation of being able to infere type" there is that, and there is other less-respectable reasons like lack of knowledge of type systems by the designers of the languages.
<Drup> In C++, they just introduced "auto" because, in practice, most of it can be infered, even if not all.
hugomg has joined #ocaml
ahem has joined #ocaml
<Hannibal_Smith> ingsoc, there is a good blog series about porting a large codebase from Python to OCaml, these are the main developer final conclusion http://roscidus.com/blog/blog/2014/06/06/python-to-ocaml-retrospective/
<ingsoc> so, in addition to more up front thinking from the ocaml designers to aid inference, ocaml also has just a more sophisticated type system and compiler than a lot of other environments
<Drup> ingsoc: you could say that
<Drup> (be careful, the compilers for C++/java/C# are *very* sophisticated)
<Drup> (just that typechecking is not their main concern :p)
struk has joined #ocaml
<ingsoc> really surpised a statically typed language can compete with a super dynamic langauge like python on code brevity
<ingsoc> Drup: yeah I hear ya
MrScout has joined #ocaml
<Tekk_> ingsoc: why's that?
<Drup> ingsoc: it's a very classic misconception due to some other statically typed language that are ... less brief. :p
<struk> Drup: translation: java/c++/C# gives statically typed languages a bad rep
<Drup> C# probably less so than the two others.
<struk> Drup: yeah well it is the 3rd iteration of an OO language based on C
<Drup> (but arguably, c# is not a statically typed language anymore)
<struk> Drup you mean that "var" construct, or something else?
<ingsoc> Tekk_: Maybe it is because I am comparing how c#/java compares to python in my experience and how although catching a certain number of bugs at compile time, I always found that static typing definitely had quite an impact on code size all the manual explicit type entries and for things like having to use delegates to pass functions to other methods, having to use interfaces to be able to operate on a common type polymorphism.
<ingsoc> and yeah seems c# i getting more and more dynamic manhole escape facilities
<ingsoc> is*
<Drup> struk: I don't know c# very much, but it was my understand that you could use dynamic typing everywhere if you wanted to
<ingsoc> i have not done anything with it for years
<ingsoc> you didn't used to be able to
<Drup> ingsoc: yeah, that exactly what I was saying :D
Thooms has quit [Quit: WeeChat 1.0.1]
<ingsoc> S11001001: Drup: Hannibal_Smith: thanks for the info
<ingsoc> finishing for the night
ahem has quit [Read error: Connection timed out]
travisbrady has quit [Quit: travisbrady]
ingsoc has quit [Quit: Leaving.]
ahem has joined #ocaml
<struk> Drup: actually var kinda reminds me of val in scala : http://msdn.microsoft.com/en-us/library/bb383973.aspx
<struk> Hannibal_Smith: damn that dynamic keyword is a like a python bridge
<struk> Hannibal_Smith: please god ocaml do not introduce that ever
uris77 has quit [Ping timeout: 240 seconds]
<Leonidas> isn't var just for omitting type?
<Leonidas> and dynamic for omitting the type system? :p
tane has quit [Quit: Verlassend]
madroach has joined #ocaml
oscar_toro has quit [Ping timeout: 264 seconds]
madroach has quit [Read error: Connection reset by peer]
MrScout has quit [Remote host closed the connection]
rand000_ has quit [Quit: leaving]
madroach has joined #ocaml
oscar_toro has joined #ocaml
ahem has quit [Read error: Connection timed out]
ahem has joined #ocaml
nojb has joined #ocaml
<struk> Leonidas: exactly.
antegallya has quit [Ping timeout: 256 seconds]
oscar_toro has quit [Ping timeout: 252 seconds]