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
cdidd has quit [Remote host closed the connection]
ptc has joined #ocaml
ptc is now known as Guest49508
AltGr has joined #ocaml
BitPuffin has joined #ocaml
vanila has quit [Quit: Leaving]
enitiz has joined #ocaml
grb has joined #ocaml
enitiz has quit [Remote host closed the connection]
lnich_ has quit [Remote host closed the connection]
cdidd has joined #ocaml
lnich has joined #ocaml
Algebr has joined #ocaml
<Algebr> I'm having an annoying time getting ocaml stuff up and running on archlinux. trying to install core via opam but I get the error that camlp4orf is not found. installing camlp4 via pacman or opam doesn't fix it either
<Algebr> Now I just did opam switch 4.02.1, fwiw.
cdidd has quit [Remote host closed the connection]
dch has quit []
dch has joined #ocaml
cdidd has joined #ocaml
<Algebr> hmm, that seems to have fixed it, I guess incompatibilties between campl and the compiler on the machine via pacman
psy_ has quit [Read error: Connection reset by peer]
psy_ has joined #ocaml
Thooms has quit [Quit: WeeChat 1.0.1]
badon has quit [Quit: Leaving]
grb has quit [Remote host closed the connection]
ontologiae has quit [Ping timeout: 252 seconds]
divyanshu has quit [Ping timeout: 276 seconds]
cojy_ has quit [Ping timeout: 276 seconds]
lambdahands has quit [Ping timeout: 252 seconds]
rfv has quit [Ping timeout: 265 seconds]
n1ftyn8 has quit [Read error: Connection reset by peer]
msch has quit [Ping timeout: 265 seconds]
shinnya has quit [Ping timeout: 255 seconds]
lambdahands has joined #ocaml
rfv has joined #ocaml
lopex has quit []
lopex has joined #ocaml
divyanshu has joined #ocaml
cojy_ has joined #ocaml
n1ftyn8 has joined #ocaml
badkins has joined #ocaml
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
msch has joined #ocaml
waneck has quit [Read error: No route to host]
waneck has joined #ocaml
jabesed has joined #ocaml
grb has joined #ocaml
oskarth has quit []
oskarth has joined #ocaml
grb has quit [Ping timeout: 265 seconds]
destrius has joined #ocaml
ygrek has joined #ocaml
Denommus has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
lordkryss has quit [Quit: Connection closed for inactivity]
darkf has joined #ocaml
q66 has quit [Quit: Leaving]
enitiz has joined #ocaml
Guest49508 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
jabesed has quit [Ping timeout: 245 seconds]
ygrek has quit [Ping timeout: 255 seconds]
ygrek has joined #ocaml
marynate has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
aubergines has quit [Remote host closed the connection]
tnguyen has quit [Quit: tnguyen]
hilquias has joined #ocaml
hilquias has quit [Client Quit]
hilquias` has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
chouser has quit [Ping timeout: 265 seconds]
psy_ has quit [Ping timeout: 245 seconds]
rgrinberg has joined #ocaml
skinkitten has quit [Quit: Leaving]
MrScout_ has joined #ocaml
struktured has joined #ocaml
MrScout has quit [Ping timeout: 245 seconds]
MrScout_ has quit [Ping timeout: 245 seconds]
BitPuffin has quit [Ping timeout: 264 seconds]
psy_ has joined #ocaml
marynate has quit [Quit: Leaving]
leifw has quit []
leifw has joined #ocaml
chouser has joined #ocaml
Algebr has quit [Ping timeout: 244 seconds]
emmanueloga has quit []
emmanueloga has joined #ocaml
ptc has joined #ocaml
ptc is now known as Guest27388
Guest27388 has quit [Ping timeout: 245 seconds]
ptc_ has joined #ocaml
chouser has quit [Ping timeout: 256 seconds]
claudiuc has quit [Remote host closed the connection]
badkins has quit []
ggole has joined #ocaml
hilquias has joined #ocaml
hilquias has quit [Changing host]
hilquias has joined #ocaml
zwer_m has joined #ocaml
zwer has quit [Ping timeout: 250 seconds]
WanderingGlitch has quit [Ping timeout: 245 seconds]
enitiz has quit [Remote host closed the connection]
ptc_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
WanderingGlitch has joined #ocaml
imslavko has quit []
imslavko has joined #ocaml
tristero has quit [Ping timeout: 255 seconds]
enitiz has joined #ocaml
zwer_m_c has joined #ocaml
zwer_m has quit [Ping timeout: 250 seconds]
ygrek has quit [Ping timeout: 256 seconds]
ygrek has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
enitiz has quit [Ping timeout: 256 seconds]
tobiasBora has quit [Ping timeout: 245 seconds]
<thorsten`> when defining a type, is "type t = { mutable x : int }" just a shorthand for "type t = { x : int ref }"?
<dmbaturin> thorsten`: Not really.
<thorsten`> where's the difference? (I mean beside the syntax of accessing and writing it...)
<thorsten`> s/of/for/
<dmbaturin> Ah, you mean internally. Hhm, not sure.
<thorsten`> basically for performance
<thorsten`> I'm continuing some other's project and don't want it to become slower when switching from ref to mutable
<dmbaturin> The project uses refs in records?
tobiasBora has joined #ocaml
<thorsten`> No they are global values g1,...,g2. and I want to put them into one record which I pass around all the time
<thorsten`> Something like: type handle = { mutable g1 : bla list, ... , mutable gn : blub list }
<dmbaturin> Maybe make a microbenchmark, like for 10k ref and record updates. :)
MercurialAlchemi has joined #ocaml
jao has quit [Ping timeout: 256 seconds]
<Drup> thorsten`: it's the other way around
<Drup> ref is defined as "type 'a ref = { mutable content : 'a }"
<thorsten`> Ah, thanks :-)
tristero has joined #ocaml
<flux> well, mutable can still be faster, because of less indirection
<flux> but as always, benchmark and profile :_)
<dmbaturin> Drup: So the toplevel displaying inferred type of a ref as "something ref = {contents = something}" identical to records is not a coincedence?
badon has joined #ocaml
<Drup> no
<Drup> look in pervasive's documentation
<flux> also you can use that for pattern matching
<flux> match foo with { contents = "hello" } -> ..
<flux> ..of for constructing values if you feel that way
<flux> s/of/or/
<flux> so it's just a library feature :-)
<thorsten`> dmbaturin: are those really comparable? I mean recupd is totally different because '1 to ...' might construct a huge array/list/traversablething
<flux> thorsten`, well, it doesn't
<flux> but yeah, using the same iteration construct for both might've been better :)
<flux> also that's compating byte code, not native
<flux> (comparing.) so if one is after performance, one should compare the ocamlopt versions instead.
<dmbaturin> flux: I used bytecode to slow it down. As of the iteration, that's a good point though.
<flux> it's not just about performance, there are some functional differences as well. for example, when you make a copy of a record with mutable fields with { x with .. } the fields are actually copied, but in the 'ref' case the copied fields end up referring to the same element, so the records seem more shared
<flux> also you cannot make a function that gets access to a mutable field, but with refs you can just pass the ref to a function and it works
<flux> I mean gets access in the sense that it can reassign it etc
<flux> so it's about the amount indirection you need :)
<dmbaturin> With while loop in both tests it's like 1.292s vs 1.390s for bytecode and 0.111s vs 0.116s for native.
<Drup> dmbaturin: so basically exactly the same :p
<dmbaturin> In any case, no radical difference between the two. :)
ygrek has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
ygrek has quit [Ping timeout: 246 seconds]
tane has joined #ocaml
larhat has joined #ocaml
matason has joined #ocaml
anemator has joined #ocaml
jonludlam has quit [Quit: Coyote finally caught me]
anemator has quit [Client Quit]
<flux> but if you put multiple fields in and modify only one..
<flux> though I suppose no difference :)
<flux> but there could be some gc-related things.
matason has quit [Ping timeout: 250 seconds]
sinelaw has joined #ocaml
matason has joined #ocaml
psy_ has quit [Quit: Leaving]
Simn has joined #ocaml
ygrek has joined #ocaml
oscar_toro has joined #ocaml
larhat1 has joined #ocaml
larhat has quit [Ping timeout: 245 seconds]
ghostpl has joined #ocaml
dsheets_ has joined #ocaml
ollehar has joined #ocaml
sinelaw has quit [Ping timeout: 245 seconds]
waneck has quit [Ping timeout: 245 seconds]
ontologiae has joined #ocaml
psy has joined #ocaml
Haudegen has quit [Ping timeout: 264 seconds]
Kakadu has joined #ocaml
Haudegen has joined #ocaml
marynate has joined #ocaml
mort___ has joined #ocaml
ontologiae has quit [Ping timeout: 250 seconds]
oscar_toro has quit [Ping timeout: 245 seconds]
yomimono has joined #ocaml
_andre has joined #ocaml
AltGr has left #ocaml [#ocaml]
ontologiae has joined #ocaml
zwer_m_c is now known as zwer
stygianguest has joined #ocaml
tane has quit [Quit: Verlassend]
oscar_toro has joined #ocaml
matason_ has joined #ocaml
lordkryss has joined #ocaml
lordkryss has quit [Client Quit]
lordkryss has joined #ocaml
matason has quit [Ping timeout: 264 seconds]
<stygianguest> anyone have some experience with monads in ocaml?
ghostpl has quit [Remote host closed the connection]
<companion_cube> well, a bit, what's bothering you?
<dsheets_> they taste nothing like burritos. all lies.
<stygianguest> the performance
<stygianguest> they simply are slower than the more or less equivalent implementation using higher order functions only
<Drup> monads is a formalism/pattern, it doesn't tell you anything about performances
<stygianguest> true
<stygianguest> i'm talking about a state monad
<Drup> ah, state monad, that's more specific
<ggole> More layers = slower, usually
<Drup> it's rather a question of passing along an immutable state vs. using a mutable state
<stygianguest> indeed
<Drup> not much to do with monads
<stygianguest> except that the state i'm passing around is a builder
<Drup> then the answer is .... it depends a lot.
<stygianguest> my question would be mostly, .. i have a state monad that is implemented rather naively
<stygianguest> is there a smarter/faster way to do it
<stygianguest> i.e. i have
<stygianguest> type 'a m = S.t -> 'a * S.t
<stygianguest> where m is the monad
<stygianguest> let (>>=) m f = fun s -> let a, s = m s in f a s
<stygianguest> for bind
ghostpl has joined #ocaml
<stygianguest> and then the various put/get and return statements
<stygianguest> .. functions
oscar_toro has quit [Ping timeout: 252 seconds]
<stygianguest> i kinda would expect ocaml to inline the bind (>>=)functions
<stygianguest> if that's true i would think that the monadic version should have about the same performance as the direct implementation
<Drup> the current ocaml will not inline
<stygianguest> hm ok .. that explains some of it then ..
<companion_cube> oh, right, perf
<Drup> if you are motivated, you can try https://github.com/ocaml/ocaml/pull/132
<companion_cube> also, this style allocates a lot
<Drup> with -inline X
jave has quit [Ping timeout: 265 seconds]
jave has joined #ocaml
<stygianguest> i can try flambda.. seems easy enough with opam
<stygianguest> while wating for flambda to install. is there perhaps another way for me to find out what's going on? for example, i'd be very interested to see the size of the generated closures
iago has joined #ocaml
ygrek has quit [Ping timeout: 245 seconds]
iago has quit [Ping timeout: 255 seconds]
panini has joined #ocaml
<ggole> Look at the generated cmm, or assembly if you are familiar enough with that level
marynate has quit [Ping timeout: 245 seconds]
<stygianguest> flambda gives quite an improvement
<stygianguest> but it does so for any program, and thus the performance difference between with and without lambdas is unfortunately preserved
marynate has joined #ocaml
<stygianguest> i will have another look at the ocaml bytecode..
waneck has joined #ocaml
AlexRussia has quit [Ping timeout: 265 seconds]
yminsky has joined #ocaml
panini has quit [Ping timeout: 265 seconds]
iago has joined #ocaml
<Drup> stygianguest: 1) add -inline
Thooms has joined #ocaml
<Drup> 2) bytecode is not optimized
<Drup> at all
AlexRussia has joined #ocaml
jabesed has joined #ocaml
yminsky has quit [Quit: yminsky]
nicoo has quit [Remote host closed the connection]
nicoo has joined #ocaml
ingsoc has joined #ocaml
axiles has quit [Ping timeout: 264 seconds]
<ingsoc> i was reading it is wise to set warnings on when compiling. I am using ocamlbuild, how is this done ?
troydm has quit [Ping timeout: 264 seconds]
Thooms has quit [Ping timeout: 245 seconds]
Thooms has joined #ocaml
troydm has joined #ocaml
<acieroid> ingsoc: -cflags "-w A"
<acieroid> (look at ocamlc's man to know more about -w)
octachron has joined #ocaml
paradoja has joined #ocaml
<Drup> not cflag
<Drup> cflags if or passing warnings to the C compiler
<Drup> ingsoc: by memory, add a tag like "w(4)"
paradoja has left #ocaml [#ocaml]
psy has quit [Remote host closed the connection]
ingsoc has quit [Ping timeout: 250 seconds]
nicoo has quit [Ping timeout: 250 seconds]
zwer has quit [Ping timeout: 250 seconds]
bjorkintosh has quit [Ping timeout: 250 seconds]
badon has quit [Ping timeout: 250 seconds]
bjorkintosh has joined #ocaml
ingsoc has joined #ocaml
jonludlam has joined #ocaml
<rks`> Drup: I think you're wrong
<rks`> cflags means "compile flags" unless I'm mistaken
<rks`> at some point you had to use "-cflags -bin-annot" for example
<rks`> (of course using tags for this is probably better)
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
<Drup> ah, right, I'm always confused about it because of oasis ~~
AlexRussia has quit [Ping timeout: 256 seconds]
shinnya has joined #ocaml
ygrek has joined #ocaml
<ingsoc> I think i got disconnected and didn't see the answers (if any) ?
<ingsoc> i guess you can pass..
<ingsoc> -cflags -w,a to ocamlbuild
<ingsoc> or place...
<ingsoc> true: warn_a in _tags ?
<Drup> yes
<ingsoc> so "a" and "A" are equivalent
<ingsoc> ?
<ingsoc> btw, what is the significance that this aids with debugging ?, are there certain things that are masked by not having this enabled (I just read it was useful but the author didn;t elaborate as to why)
zwer has joined #ocaml
<Drup> I would not enable *all* warnings
<Drup> some of them are really benign
<ingsoc> do i even need to set it really ?, if so, what would you recommend I should put in _tags or pass to ocamlbuild
oscar_toro has joined #ocaml
<ingsoc> which options shoul di enable
<ingsoc> should I*
panini has joined #ocaml
nicoo has joined #ocaml
<Drup> look at the list of warnings and enables the one you like. It depends of your codding style
<acieroid> Drup: I'd say enable all the warning and disable the ones that bother you, one by one when you encounter them
<Drup> yeah, that's the other way
chouser has joined #ocaml
bytbox has quit [Remote host closed the connection]
govg has quit [Quit: leaving]
ontologiae has quit [Ping timeout: 252 seconds]
enitiz has joined #ocaml
bytbox has joined #ocaml
uris77 has joined #ocaml
panini has quit [Ping timeout: 245 seconds]
badkins has joined #ocaml
ptc has joined #ocaml
ptc is now known as Guest49554
Guest49554 has quit [Client Quit]
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
ptc_ has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
govg has joined #ocaml
martintrojer has quit [Max SendQ exceeded]
martintrojer has joined #ocaml
panini has joined #ocaml
iago has quit [Ping timeout: 265 seconds]
BitPuffin has joined #ocaml
mehdi_ has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
mehdi_ has joined #ocaml
marynate has quit [Quit: Leaving]
panini has quit [Quit: Leaving]
bytbox has quit [Ping timeout: 245 seconds]
darkf has quit [Quit: Leaving]
bytbox has joined #ocaml
bytbox has quit [Remote host closed the connection]
ygrek has quit [Remote host closed the connection]
ygrek has joined #ocaml
fraggle-boate has quit [Ping timeout: 255 seconds]
Haudegen has quit [Ping timeout: 240 seconds]
WanderingGlitch has quit [Changing host]
WanderingGlitch has joined #ocaml
Haudegen has joined #ocaml
larhat1 has quit [Quit: Leaving.]
psy has joined #ocaml
fraggle-boate has joined #ocaml
<ingsoc> In this blog post...
<ingsoc> let (|>) fn x = x fn
<ingsoc> Under the section "Handy operators" he shows what the definition of the pipe operator would be...
<ingsoc> shouldn't his be...
<ingsoc> let (|>) x fn = fn x
<rks`> :)
Algebr has joined #ocaml
<ingsoc> makes an in fix operator and first arg is the left hand side then second the right ?
enitiz has quit [Ping timeout: 256 seconds]
<rks`> yes ingsoc
<octachron> The two definitions are equivalent. "x" is just an unusal name for a function
<ggole> Those are alpha equivalent
<ggole> But yes, the naming of the second is better
<ingsoc> yeah i get it
<ingsoc> it is unfortunate naming that could lead to confusion thats all
<ingsoc> btw if you are piping to a second function that already has an argument then that function is partially applied (curried) and then that partial fucntion is returned and then applied with the remaining(last) argument "piped" in. I have not really done anything witha language with this built in although I had heard the term curry function before
<ingsoc> fundamentally why is ocaml built this way ? where you can get a partially applied function by simply returning it without all the arguments satisfied
slash^ has joined #ocaml
destrius has quit [Ping timeout: 264 seconds]
iago has joined #ocaml
<flux> ingsoc, it's a simple concept from the ML family of language: all functions accept exactly one parameter
<flux> ingsoc, it follows from that
kapil__ has quit [Quit: Connection closed for inactivity]
<flux> so when you write: let sum3 a b c = a + b + c, it's syntax candy for: let sum3 = fun a -> fun b -> fun c -> a + b + c
<flux> therefore, when you type sum3 3, a fun b -> fun c -> 3 + b + c has been returned
<flux> function call (applying an argument) can be parenthesized as thus: (((sum 1) 2) 3)
badkins has quit []
<flux> as far as I know, the same idea works in SML as well, but more often they choose to pass a single tuple as the argument instead
<ingsoc> so in this example...let sum3 = fun a -> fun b -> fun c -> a + b + c
<ingsoc> so
rgrinberg has joined #ocaml
<ingsoc> the fun accepting c has access to a and b, is this becasue of scoping via closures ?
<ingsoc> or am i missing the point
<flux> you are completely correct
<Leonidas> def`: thanks for fixing the ENV redefinition thing!
<ingsoc> flux: ^
<flux> exactly like let a = 42 in (fun () -> a) () has value 42
<ingsoc> flux: thankyou
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
ptc_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<Algebr> How do I check the type of an operator in utop? was it like ( |> )?
<flux> sure, that works
<Algebr> hmm, not working, its wanting arguments
<flux> ;;
<Algebr> also, I forgot, what is ocaml's version of apply? or haskell's $?
<Algebr> hmm, I did ( |> ) ;; and still error
<flux> I think it's @@
<flux> works for me (TM)
<flux> what kind of error?
<Algebr> utop[25]> ( |> );;
<Algebr> Error: Failure: "|> must be applied to two arguments"
<Algebr>
<flux> hmm, interesting
<flux> 4.02.0 here
<flux> I suppose you don't have some syntax extension that could interfere?-o
<Algebr> The universal toplevel for OCaml, version 1.17, compiled for OCaml version 4.02.1
<Algebr>
<Algebr> oh well, not a big deal.
ptc has joined #ocaml
ptc is now known as Guest45018
<flux> "It is likely that in the Core/utop environment, e1 |> e2 is defined with a syntax rule to be transformed immediately as e2 e1. This would explain why (>|) ;; is a syntax error" sez stackoverflow for that error
<Algebr> ah
<flux> ..on performance grounds. but I think those points are irrelevant for modern ocaml.
<rks`> |> works for me in utop, but indeed if you use core
<rks`> |> is actually a syntax extension
<rks`> (as flux said)
<rks`> flux: not just that
enitiz has joined #ocaml
<rks`> in "x |> f" if [f] accepts some optional parameters
ollehar has quit [Ping timeout: 246 seconds]
<rks`> it will type if you rewrite it to "f x" (thankfully)
<rks`> but it won't otherwise
<rks`> because (|>) expects a function of type 'a -> 'b
<rks`> but you're giving it "?some_label:'a -> 'b -> 'c"
rgrinberg has quit [Quit: Leaving.]
jao has joined #ocaml
jao has quit [Changing host]
jao has joined #ocaml
<Algebr> for merlin on emacs, is there some setq for having it always display in the minibuffer the type of the last expression from point?
Remyzorg has quit [Ping timeout: 276 seconds]
Remyzorg has joined #ocaml
<flux> maybe not, but I guess it wouldn't be super difficult to add. it would probably need to go into its own buffer - or status line - to prevent hiding other messages
<flux> nice idea anyway, I wonder how it would be to use in practice :)
<companion_cube> x |> f ?some_label:None
<flux> companion_cube, I would expect that to work. but how about (x |> f) ?some_label:None () ?
<Algebr> flux: I have that in c coding via semantic, its pretty useful, I might take it up.
<struk|work> anybody ever play with ocamlscript? looks appealing to me. http://mjambon.com/ocamlscript.html
<companion_cube> flux: no, it has to be x |> (f ?some_label:None) to type check
<companion_cube> struk|work: in my experience, just stick #!/usr/bin/env ocaml in your file
<companion_cube> and then, the usual toplevel stuff
octachron has quit [Quit: Leaving]
<rks`> companion_cube: http://paste.awesom.eu/Ibc3
<rks`> if you don't want to pass the label, you can't
vanila has joined #ocaml
<rks`> and that's annoying
<rks`> (it's a minor problem, for sure)
<rks`> (but annoying nontheless)
<rks`> (you can also do x |> (fun x -> f x) if you have a lot of optionnal parameters)
<struk|work> companion_cube: cool, good to know. thanks
<companion_cube> rks`: yes, sure
<companion_cube> that's why I wrote x |> f ?some_label:None
skinkitten has joined #ocaml
<rks`> yes yes
rgrinberg has joined #ocaml
slash^ has quit [Excess Flood]
slash^ has joined #ocaml
rand000 has joined #ocaml
Guest45018 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Haudegen has quit [Ping timeout: 264 seconds]
lordkryss has quit [Quit: Connection closed for inactivity]
rock_neurotiko has joined #ocaml
Haudegen has joined #ocaml
rock_neurotiko has quit [Remote host closed the connection]
olauzon has joined #ocaml
ghostpl has quit [Remote host closed the connection]
jwatzman|work has joined #ocaml
psy has quit [Read error: Connection reset by peer]
psy has joined #ocaml
enitiz has quit [Ping timeout: 264 seconds]
<Algebr> how can the ./foo.byte run like it does, presumably the magic numbers say use the ocaml vm?
bytbox has joined #ocaml
<vanila> i think it contains interpreter & bytecode
<Drup> usual shellbang
chinglish has joined #ocaml
<Drup> Algebr: do "head foo.byte"
iago has quit [Ping timeout: 264 seconds]
<Algebr> ah, of course.
AlexRussia has joined #ocaml
mort___ has quit [Ping timeout: 265 seconds]
<ia0> how do you dump the output of a command to a string in ocaml?
dsheets_ has quit [Ping timeout: 264 seconds]
<ia0> (using Unix.open_process_in and stuff)
<ia0> said otherwise, from an in_channel (which is not a file), how to you get a string?
<ia0> in_channel_length doesn't work
<mrvn> Check Pervasives for the IO functions on channels
ptc has joined #ocaml
<ia0> already checked
MrScout has joined #ocaml
<ia0> I don't see how to avoid a loop
ptc is now known as Guest14120
<mrvn> doubtfull you can
<mrvn> read blocks and put them in a list. And at the end reverse and join.
<ia0> or I could use a Buffer.t maybe
<ia0> let's do that, thanks
<mrvn> Which reminds me again that I hate that there is not read function that creates a string for you.
ygrek has quit [Ping timeout: 250 seconds]
Kakadu has quit [Quit: Page closed]
Algebr` has joined #ocaml
<def`> Leonidas: you're welcome :)
ggole has quit []
psy has quit [Disconnected by services]
psy_ has joined #ocaml
Algebr has quit [Ping timeout: 264 seconds]
q66 has joined #ocaml
NoNNaN has joined #ocaml
Submarine has quit [Remote host closed the connection]
dario has joined #ocaml
Guest14120 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
jpdeplaix1 is now known as jpdeplaix
leowzukw has joined #ocaml
Hannibal_Smith has joined #ocaml
chinglish has quit [Quit: Nettalk6 - www.ntalk.de]
<dario> Hallo everyone!
<dario> I have an OCamlbuild question:
<dario> How do I find out the current set of dependencies for a module from within a plugin?
<dario> I can use non_dependency to remove a dependency, for instance...
<dario> ...but how do I go about discovering the present dependencies?
tane has joined #ocaml
BitPuffin has quit [Ping timeout: 264 seconds]
<dario> To answer my own question: function Command.deps_of_tags seems to do the trick...
<dario> ...even if the Command module warns that "For system use only, not for the casual user"
<mrvn> I'm not a casual user. I'm always grimm.
bytbox has quit [Ping timeout: 244 seconds]
Kakadu has joined #ocaml
Thooms has quit [Quit: WeeChat 1.0.1]
leowzukw has quit [Remote host closed the connection]
badkins has joined #ocaml
ptc has joined #ocaml
ptc is now known as Guest27590
leowzukw has joined #ocaml
waneck has quit [Ping timeout: 240 seconds]
axiles has joined #ocaml
<Algebr`> Having a really hard time getting opam install sqlite3 to work. I do have the correct PKG_CONFIG_PATH env variable set. Fwiw, pkg-config --cflags sqlite3 returns nothing
waneck has joined #ocaml
contempt has quit [Ping timeout: 246 seconds]
Algebr`` has joined #ocaml
<Algebr``> darn, apologies if anyone replied to me, I lost connection.
Algebr` has quit [Ping timeout: 252 seconds]
contempt has joined #ocaml
Algebr`` has quit [Remote host closed the connection]
Algebr has joined #ocaml
Algebr has quit [Remote host closed the connection]
Guest27590 has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
jonludlam has quit [Ping timeout: 256 seconds]
dario has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
bytbox has joined #ocaml
ptc_ has joined #ocaml
mort___ has joined #ocaml
leowzukw has quit [Quit: Lost terminal]
rgrinberg has quit [Quit: Leaving.]
_andre has quit [Quit: leaving]
<ingsoc> is there a way to limit how much of Core is included in a project like a custom build of it so it reduces the size fo a native binary
rand000 has quit [Ping timeout: 245 seconds]
<Drup> not to use Core :D
<Drup> (you can sure Core_kernel, which is slightly smaller than core)
rand000 has joined #ocaml
rgrinberg has joined #ocaml
bytbox has quit [Remote host closed the connection]
ghostpl has joined #ocaml
oscar_toro has quit [Ping timeout: 256 seconds]
diethyl_ has quit [Ping timeout: 272 seconds]
sivoais has quit [Ping timeout: 246 seconds]
vincom2 has quit [Ping timeout: 244 seconds]
bytbox has joined #ocaml
mort___ has quit [Read error: Connection reset by peer]
mort___ has joined #ocaml
ontologiae has joined #ocaml
bytbox has quit [Ping timeout: 245 seconds]
sivoais has joined #ocaml
Haudegen has quit [Ping timeout: 264 seconds]
<MercurialAlchemi> Is there a away to specify different build dependencies with oasis, based on a flag?
sivoais has quit [Ping timeout: 255 seconds]
hilquias has quit [Remote host closed the connection]
Haudegen has joined #ocaml
claudiuc has joined #ocaml
_5kg has quit [Ping timeout: 240 seconds]
sivoais has joined #ocaml
diethyl has joined #ocaml
mort___ has quit [Quit: Leaving.]
badon has joined #ocaml
mort___ has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
<Drup> yes, but it's annoying as hell
<MercurialAlchemi> Drup: do tell
<MercurialAlchemi> oh, it involves doing gruesome things in generated code?
<Drup> no, you don't need to touch generated code
<Drup> just do ugly things in the myocamlbuild
<MercurialAlchemi> that makes all the difference, indeed
<MercurialAlchemi> thanks
<Drup> MercurialAlchemi: but really, it's very very annoying, I don't especially advise it
jonludlam has joined #ocaml
<MercurialAlchemi> Drup: what would you suggest to compile bisect only when running reports?
jwatzman|work has quit [Quit: jwatzman|work]
Anarchos has joined #ocaml
tane has quit [Remote host closed the connection]
Algebr has joined #ocaml
<Anarchos> are there multisets in the standard library ?
<Drup> MercurialAlchemi: how do you use bisect ?
<def`> implement them as map to integers
<Anarchos> def` seems reasonable but for insert/delete, i have to rebuild the whole map ?
<rks`> obviously.
<Anarchos> that doesn't sound efficient, does it ?
<MercurialAlchemi> Drup: there is a target which triggers the creation of the report, but my understanding is that the library needs to be preprocessed by bisect using camlp4/ppx for that to be useful (or to work at all)
<MercurialAlchemi> Drup: but we don't want that to happen in the normal case
<rks`> Anarchos: you could probably do that in a background job though
<rks`> obviously it will depend on your use case
<rks`> but it's not like you have a choice.
<Anarchos> rks` my use case is an implementation of the martelli-montanari algorithm for unification.
<rks`> well there you go.
<Anarchos> ok
<Anarchos> good night and thanks for the help.
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
<rks`> :)
Hannibal_Smith has quit [Quit: Leaving]
jwatzman|work has joined #ocaml
<def`> :D
ingsoc has quit [Quit: Leaving.]
oscar_toro has joined #ocaml
jbalint has quit [Quit: Bye!]
rgrinberg has quit [Quit: Leaving.]
jbalint has joined #ocaml
myyst has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
myst has quit [Ping timeout: 265 seconds]
jwatzman|work has joined #ocaml
jbalint has quit [Quit: Bye!]
jbalint has joined #ocaml
rgrinberg has joined #ocaml
olauzon has quit [Quit: olauzon]
ontologiae has quit [Ping timeout: 245 seconds]
divyanshu has quit [Ping timeout: 245 seconds]
lambdahands has quit [Read error: Connection reset by peer]
msch has quit [Read error: Connection reset by peer]
n1ftyn8 has quit [Ping timeout: 245 seconds]
cojy_ has quit [Ping timeout: 245 seconds]
rfv has quit [Ping timeout: 265 seconds]
ontologiae has joined #ocaml
divyanshu has joined #ocaml
n1ftyn8 has joined #ocaml
ontologiae has quit [Ping timeout: 255 seconds]
divyanshu has joined #ocaml
divyanshu has quit [Changing host]
n1ftyn8 has quit [Changing host]
n1ftyn8 has joined #ocaml
<Algebr> Is it ever the case that opam has something that a OS package manager doesn't have and vice versa? I'm on ArchLinux and getting: dllssl_threads_stubs.so: cannot open shared object file, but I did do opam install ssl, so now I'm seeing an AUR package for ocaml-ssl
lambdahands has joined #ocaml
jwatzman|work has quit [Remote host closed the connection]
<def`> Algebr: are you on system switch ?
jwatzman|work has joined #ocaml
<Algebr> what does that mean
Kakadu has quit [Remote host closed the connection]
<Algebr> opam switch?
<def`> yes
<Algebr> I think so
<Algebr> how can I check?
<def`> just execute $ opam switch
<Algebr> system I system System compiler (4.02.1)
<Algebr> 4.02.1 C 4.02.1 Official 4.02.1 release
<Algebr> -- -- 3.11.2 Official 3.11.2 release
<Algebr> ...
<Algebr> Does the I mean that that's the one I'm using or is that the C?
bytbox has joined #ocaml
<def`> I is installed, C is current
<def`> so, it's fine…
<def`> Is opam properly sourced in your shell?
<def`> (for instance, you can check value of $CAML_LD_LIBRARY_PATH )
<Algebr> yea, that gives me back ~/.opam/4.02.1/lib/stublibs
<def`> Ok, config seems find. So… I don't know what went wrong :|
cojy_ has joined #ocaml
<def`> fine*
rfv has joined #ocaml
msch has joined #ocaml
uris77 has quit [Quit: leaving]
Simn has quit [Quit: Leaving]
AltGr has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
mort___ has quit [Quit: Leaving.]
Algebr has quit [Ping timeout: 265 seconds]
ontologiae has joined #ocaml
hilquias has joined #ocaml
Sorella has joined #ocaml
matason_ has quit [Ping timeout: 240 seconds]
rgrinberg has joined #ocaml
ontologiae has quit [Ping timeout: 245 seconds]