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
antkong has quit [Ping timeout: 246 seconds]
antkong has joined #ocaml
_andre has quit [Quit: leaving]
johnf has quit [Read error: Connection reset by peer]
igoroliveira has quit [Quit: Connection closed for inactivity]
AltGr has joined #ocaml
tennix has quit [Ping timeout: 245 seconds]
johnf has joined #ocaml
systmkor has joined #ocaml
sailorswift has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
johnf has quit [Read error: Connection reset by peer]
dmbaturin has quit [Ping timeout: 250 seconds]
tennix has joined #ocaml
tennix has joined #ocaml
Algebr`` has quit [Ping timeout: 265 seconds]
antkong has quit [Ping timeout: 252 seconds]
antkong has joined #ocaml
ygrek has quit [Ping timeout: 264 seconds]
claudiuc_ has quit [Remote host closed the connection]
darkf has joined #ocaml
samrat has joined #ocaml
claudiuc has joined #ocaml
grouzen has quit [Ping timeout: 260 seconds]
claudiuc has quit [Remote host closed the connection]
BitPuffin|osx has joined #ocaml
psy_ has quit [Ping timeout: 256 seconds]
psy_ has joined #ocaml
Axle has joined #ocaml
teiresias has quit [Quit: leaving]
creichert has quit [Read error: Connection reset by peer]
ggole has joined #ocaml
jao has quit [Ping timeout: 245 seconds]
xificurC has joined #ocaml
teiresias has joined #ocaml
MercurialAlchemi has joined #ocaml
psy_ has quit [Read error: Connection reset by peer]
sailorswift has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
lordkryss has quit [Quit: Connection closed for inactivity]
xificurC has quit [Remote host closed the connection]
tmtwd has joined #ocaml
tmtwd has quit [Remote host closed the connection]
martinium has quit [Remote host closed the connection]
xificurC has joined #ocaml
jeffmo has quit [Quit: jeffmo]
izaak has quit [Quit: izaak]
slash^ has joined #ocaml
shinnya has quit [Ping timeout: 240 seconds]
psy_ has joined #ocaml
jeffmo has joined #ocaml
ncthom91 has joined #ocaml
<MercurialAlchemi> opam is really amazing
<MercurialAlchemi> the UI is really extremely pleasant, with the nice ASCII symbol
<MercurialAlchemi> symbols
jeffmo has quit [Quit: jeffmo]
ncthom91 has quit [Quit: Textual IRC Client: www.textualapp.com]
xet7 has quit [Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )]
AlexRussia has joined #ocaml
psy_ has quit [Ping timeout: 260 seconds]
samrat has quit [Ping timeout: 264 seconds]
psy_ has joined #ocaml
psy_ has quit [Max SendQ exceeded]
psy_ has joined #ocaml
samrat has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 260 seconds]
greves has joined #ocaml
samrat has quit [Ping timeout: 260 seconds]
sailorswift has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 245 seconds]
contempt has quit [Remote host closed the connection]
contempt has joined #ocaml
ollehar has joined #ocaml
<ollehar> If someone feel like it I'd really appreciate some feedback on this one: http://stackoverflow.com/questions/32008548/how-would-you-design-a-garbage-collector-for-php
<ollehar> (Before the mods close it)
struktured has quit [Ping timeout: 260 seconds]
samrat has joined #ocaml
mort___ has joined #ocaml
<mrvn> ollehar: That's easy. I would change php into ocaml and then the problem is already solved.
<ollehar> mrvn: boo
<ollehar> well, I already plan to use the ocaml gc, so...
grouzen has joined #ocaml
antkong__ has joined #ocaml
antkong has quit [Ping timeout: 272 seconds]
antkong__ is now known as antkong
<mfp> ollehar: you can try in the Lambda The Ultimate forum
<ollehar> mfp: I actually thought about that... Hm. Thanks, will try.
antkong has quit [Ping timeout: 265 seconds]
antkong has joined #ocaml
kakadu has joined #ocaml
lordkryss has joined #ocaml
antkong has quit [Ping timeout: 246 seconds]
antkong has joined #ocaml
OnkV has quit [Ping timeout: 250 seconds]
AlexRussia has quit [Ping timeout: 246 seconds]
AlexRussia has joined #ocaml
Haudegen has joined #ocaml
rand000 has joined #ocaml
<ollehar> "Avoid design discussions"
<ollehar> Bah.
antkong has quit [Ping timeout: 250 seconds]
antkong__ has joined #ocaml
Haudegen has quit [Ping timeout: 245 seconds]
xificurC has quit [Ping timeout: 265 seconds]
Haudegen has joined #ocaml
sgnb` has quit [Ping timeout: 246 seconds]
sh0t has joined #ocaml
sgnb` has joined #ocaml
mort___ has quit [Quit: Leaving.]
rand000 has quit [Quit: leaving]
slicefd has joined #ocaml
octachron has joined #ocaml
ollehar1 has joined #ocaml
ollehar has quit [Ping timeout: 250 seconds]
samrat has quit [Ping timeout: 272 seconds]
sailorswift has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tennix has quit [Ping timeout: 250 seconds]
AltGr has left #ocaml [#ocaml]
samrat has joined #ocaml
alpen has joined #ocaml
Simn has joined #ocaml
izaak has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
samrat has quit [Ping timeout: 246 seconds]
QuanticPotato has joined #ocaml
tennix has joined #ocaml
tennix has quit [Changing host]
tennix has joined #ocaml
pootler has joined #ocaml
ivali has joined #ocaml
breadmonster has joined #ocaml
<ivali> Hello, i've never read ocaml before. Can anyone explain what does this line mean? val add : t -> t -> t
<ivali> I failed to google it.
<asmanur> It declares a function add of type t → t → t: It takes two values of type t (whatever it means) and returns a value of type t
<asmanur> Is it in a .mli or in a module signature?
<tennix> perhaps you should read an ocaml tutorial first
<ivali> so, why not put it (t -> t) -> t to remove ambiguity?
<ivali> ok, i'll read a tutorial, thanks!
<asmanur> (t -> t -> is t -> (t -> t), not what you've written)
<asmanur> +t
BitPuffin|osx has joined #ocaml
<tennix> it's not functions like imperative languages that take 2 arguments
<tennix> Real World OCaml book explains well about this
<ivali> the first link in the topic is pretty good also
antkong__ has quit [Quit: antkong__]
ivali has quit [Ping timeout: 240 seconds]
tane has joined #ocaml
nullcatxxx_ has joined #ocaml
nullcatxxx_ has quit [Ping timeout: 255 seconds]
darthez has joined #ocaml
izaak has quit [Quit: izaak]
ryanartecona has joined #ocaml
nullcatxxx_ has joined #ocaml
izaak has joined #ocaml
sh0t has quit [Ping timeout: 260 seconds]
<nullcatxxx_> i forgot what "|->" means when reading TAPL ... http://imgur.com/o4Pcn2m
<nullcatxxx_> would someone give me a quick definition..?
<ggole> There's an index in the back
izaak has quit [Ping timeout: 252 seconds]
izaak has joined #ocaml
<nullcatxxx_> ...
<nullcatxxx_> thanks..........
<nullcatxxx_> even have an index for symbols.. sweet
<ggole> It has the definitions for (most?) of the syntax
jao has joined #ocaml
<nullcatxxx_> thanks
<nullcatxxx_> no there is no index for it...
<ggole> Oh :/
<ggole> Yeah, there are a bunch of symbols but not that one.
mea-culpa has joined #ocaml
<mfp> nullcatxxx_: IIRC, that is read as "if in environment GAMMA, t is of type T, then in environment GAMMA, t is of type T"
<mfp> oh, misread, it's got an arrow
<nullcatxxx_> ok it's in p210, sec 16,1
<nullcatxxx_> nvm
<mfp> nullcatxxx_: end of 16.2.1 in p217
<nullcatxxx_> thanks
ryanartecona has quit [Quit: ryanartecona]
breadmonster has quit [Ping timeout: 246 seconds]
darthez has left #ocaml [#ocaml]
contempt has quit [Remote host closed the connection]
contempt has joined #ocaml
lordkryss has quit [Quit: Connection closed for inactivity]
QuanticPotato has quit [Ping timeout: 244 seconds]
izaak has quit [Quit: izaak]
izaak has joined #ocaml
QuanticPotato has joined #ocaml
tennix has quit [Ping timeout: 272 seconds]
tennix has joined #ocaml
tennix has joined #ocaml
sh0t has joined #ocaml
<ollehar1> is there a llvalue for "generare nothing"
<ollehar1> for llvm
<ollehar1> ?
<ollehar1> I have a Noop (no op) in my parse tree.
<ggole> Just skip it?
<ollehar1> how?
<ollehar1> in the pattern match :P
<ollehar1> the function returns a llvalue
<ollehar1> *an
<ggole> You might want to change that, then
<ollehar1> or remove it when creating my typed ast
<ggole> Otherwise, how do you handle emitting multiple instructions?
<ollehar1> you mean lists?
<ollehar1> there's a Block that have type stmt list
<ggole> If you are returning a list, you can just return an empty one, solving your problem :)
<ollehar1> wait, maybe yes
<ollehar1> I can intercept the Block earlier.
<ollehar1> or the Noop, I mean.
<ollehar1> eh, the Noop is the missing "else" block
<ollehar1> I'm generating an empty block for now.
<ollehar1> maybe it will explode in my face.
<ggole> I imagine blocks need at least a terminating instruction
<ggole> (If you mean empty apart from that, it should be fine. Compilers introduce empty blocks routinely.)
izaak has quit [Quit: izaak]
<ollehar1> I imagine that too.
QuanticPotato has quit [Ping timeout: 244 seconds]
mrm has joined #ocaml
mea-culpa has quit [Remote host closed the connection]
sh0t has quit [Ping timeout: 250 seconds]
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
sigjuice has quit [Quit: ZNC - http://znc.in]
sigjuice has joined #ocaml
sigjuice has quit [Remote host closed the connection]
sigjuice has joined #ocaml
nullcatxxx_ has joined #ocaml
nullcatxxx_ has quit [Client Quit]
slash^ has joined #ocaml
nullcatxxx_ has joined #ocaml
<gasche> so OCaml trunk has colored error and warning messages
<gasche> congratulations to companion_cube (except for the rebasing skills :p)
<gasche> this may be the most impactful feature of 4.03
mea-culpa has joined #ocaml
darkf has quit [Quit: Leaving]
QuanticPotato has joined #ocaml
<adrien> gasche: I hope he did it for Windows too
dmbaturin has joined #ocaml
<octachron> gasche, I would have thought that flambda was a good contender for that title :p
octachron has quit [Quit: Leaving]
<gasche> adrien: no windows-specific support but it may work in Cygwin environment
<gasche> lately I've been thinking of trying to use libuv in the compiler
<gasche> (among many things which might be useful, they have ANSI escapes emulation for Windows)
sh0t has joined #ocaml
breadmonster has joined #ocaml
dmbaturin has quit [Ping timeout: 264 seconds]
dmbaturin has joined #ocaml
<adrien> gasche: then he must be spanked!
<adrien> (just kidding: I clearly told him to not spend time on that)
<adrien> libuv for what exactly btw?
<adrien> (I'm at the camp so I'm not always online, expect some latency)
<gasche> "whatever it can do"
<gasche> (eg. portable colors in the terminal)
AlexRussia has quit [Read error: Connection reset by peer]
mea-culpa has quit [Remote host closed the connection]
Haudegen has quit [Ping timeout: 265 seconds]
ivali has joined #ocaml
slicefd has quit [Quit: Leaving]
Haudegen has joined #ocaml
sailorswift has joined #ocaml
jao has quit [Ping timeout: 244 seconds]
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
QuanticPotato has quit [Ping timeout: 264 seconds]
Haudegen has quit [Ping timeout: 260 seconds]
nullcatxxx_ has joined #ocaml
Haudegen has joined #ocaml
<breadmonster> What's the http library in OCaml called?
<breadmonster> I think I'm using Core, so I'm not sure if there's one there.
<tane> http client?
<breadmonster> tane: Cool.
<tane> that was an actual question, do you need a http client library or a http server foundation? :)
<breadmonster> Umm, client I think.
<breadmonster> I'm trying to use Facebook's graph API.
<tane> cohttp can be used with core's async afair
nullcatx_ has joined #ocaml
<tane> although i dunno if "keep-alive" and some connection pooling is implemented now, which would be rather nice to have for actual api usage
<breadmonster> tane: I'm not trying to do something complicated, just a bit of JSON shoving.
<breadmonster> trying to write a chat client.
<tane> yeah, that'd be possible
<tane> still i find it rather annoying to open up new tcp connections for each request
<tane> especially in long-polling chat applications
nullcatxxx_ has quit [Ping timeout: 245 seconds]
<breadmonster> what would you suggest instead?
<tane> there's not much you can do
<smondet> breadmonster: could be useful to you: https://github.com/yetanotherion/fbgraph_ml
<breadmonster> smondet: Oh thanks!
psy_ has quit [Ping timeout: 245 seconds]
nullcatx_ has quit [Ping timeout: 244 seconds]
psy_ has joined #ocaml
psy_ has quit [Max SendQ exceeded]
psy_ has joined #ocaml
QuanticPotato has joined #ocaml
cdidd has quit [Ping timeout: 260 seconds]
cdidd has joined #ocaml
QuanticPotato has quit [Client Quit]
nullcatxxx_ has joined #ocaml
ygrek has joined #ocaml
nullcatxxx_ has quit [Ping timeout: 272 seconds]
AlexRussia has joined #ocaml
shinnya has joined #ocaml
justgage has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
justgage has quit [Quit: WeeChat 1.2]
ygrek has quit [Ping timeout: 260 seconds]
swgillespie has joined #ocaml
cdidd has quit [Ping timeout: 245 seconds]
ysangkok has joined #ocaml
sh0t has quit [Ping timeout: 260 seconds]
AlexRussia has quit [Ping timeout: 240 seconds]
cdidd has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
swgillespie has joined #ocaml
ggole has quit []
justgage has joined #ocaml
Haudegen has quit [Ping timeout: 265 seconds]
<justgage> I'm quite new to ocaml but I'm wondering how to use the Core Monad to implement a State monad. Any pointers/tutorials?
grouzen has quit [Ping timeout: 246 seconds]
nullcatxxx_ has joined #ocaml
<nullcatxxx_> by turning a formerly nonexhaustive pattern matching construct to exhaustive, compiler can do better optimization? like removing runtime check? Page 17 of http://gallium.inria.fr/~fpottier/publis/fpottier-regis-gianas-typed-lr.pdf
<nullcatxxx_> i don't know this about the ocaml compiler..
MercurialAlchemi has joined #ocaml
nullcatxxx_ has quit [Client Quit]
Haudegen has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<ollehar1> shouldn't a GC collect as little memory as possible each time it collects?
<flux> ollehar1, isn't that number zero?
<ollehar1> e.g., for generational GC, divide the heap in more than two segments.
<ollehar1> flux: yes, but if program runs out of memory.
<flux> so when program requires x bytes of memory, it should not try to GC more than x bytes of memory?
<ollehar1> right
<ollehar1> that would lead to a lot of collections, though.
<ollehar1> but is many small collections worse than one big?
<flux> I believe it is
<ollehar1> because of the mark phase?
<flux> well, it is certainly a culprit
<ollehar1> hm
<flux> you can try tuning OCaml GC parameters and see how it behaves in your test program
<Drup> ollehar1: a lot of minor collections a not a problem
<Drup> /a/are/
<ollehar1> Drup: why?
<Drup> because minor collections are fast
<Drup> If you have a shiton of short lived objects, you are going to be fine
<Drup> If you have a shiton of objects that survive the minor collection, then you have an issue :)
<ollehar1> Drup: assuming generational GC?
<Drup> well, yes, otherwise "minor" doesn't even mean anything
<ollehar1> java has young heap, survivor 1 and survivor 2 and then old
<ollehar1> why not just have N?
<Drup> apparently, damien doliguez tried multiple generations for the OCaml GC and the results were very underwelming
<ollehar1> hm ok
octachron has joined #ocaml
<ollehar1> but why do we have to mark all heap before we collect? can't we just stop when we've marked a certain size?
<ollehar1> and then collect.
<ollehar1> (assuming mark-and-sweep)
<ollehar1> also assuming a hard cap of max memory.
<ollehar1> hm
swgillespie has joined #ocaml
nullcatxxx_ has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
izaak has joined #ocaml
swgillespie has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
cdidd has quit [Remote host closed the connection]
izaak has quit [Quit: izaak]
izaak has joined #ocaml
izaak has quit [Client Quit]
nullcatxxx_ has quit [Quit: gone...]
nullcatxxx_ has joined #ocaml
izaak has joined #ocaml
cdidd has joined #ocaml
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
cdidd has quit [Remote host closed the connection]
swgillespie has joined #ocaml
tane has quit [Quit: Verlassend]
ivali has quit [Ping timeout: 264 seconds]
<ollehar1> any specific reason while for-loops in ocaml is restricted?
<ollehar1> or is it just, "this won't be used anyway"
nullcatxxx_ has joined #ocaml
breadmonster has quit [Ping timeout: 246 seconds]
izaak has quit [Quit: izaak]
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Tamae has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
sailorswift has quit [Ping timeout: 240 seconds]
cdidd has joined #ocaml
justgage has quit [Ping timeout: 250 seconds]
izaak has joined #ocaml
octachron has quit [Quit: Leaving]
MercurialAlchemi has quit [Ping timeout: 272 seconds]
Simn has quit [Read error: Connection reset by peer]
swgillespie has joined #ocaml
izaak has quit [Quit: izaak]
izaak has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
izaak has quit [Quit: izaak]
izaak has joined #ocaml
izaak has quit [Client Quit]
swgillespie has joined #ocaml
sailorswift has joined #ocaml
yomimono has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
swgillespie has joined #ocaml
madroach has quit [Ping timeout: 264 seconds]
madroach has joined #ocaml
swgillespie has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
kakadu has quit [Remote host closed the connection]
q66[lap] has joined #ocaml