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
joncfoo has quit [Ping timeout: 240 seconds]
rgrinberg has joined #ocaml
emery has quit [Disconnected by services]
q66[lap] has quit [Quit: Textual IRC Client: www.textualapp.com]
emery_ has joined #ocaml
q66[lap] has joined #ocaml
Simn has quit [Quit: Leaving]
rgrinberg has quit [Quit: Leaving.]
madroach has quit [Ping timeout: 250 seconds]
madroach has joined #ocaml
NoNNaN has quit [Remote host closed the connection]
jabesed has joined #ocaml
<companion_cube> nojb: nice to see this PR about re
NoNNaN has joined #ocaml
<nojb> companion_cube: thanks
<nojb> companion_cube: please do comment on the PR if you can - it is really helpful
<companion_cube> I don't have time now, but I'll try to, indeed
<nojb> sure, no worries :)
rgrinberg has joined #ocaml
thomasga has quit [Quit: Leaving.]
badon has quit [Disconnected by services]
badon_ has joined #ocaml
badon_ is now known as badon
<nuki> Hi companion
<companion_cube> hi
<rgrinberg> companion_cube: i'm merging ok? https://github.com/ocaml/ocaml-re/pull/47
vfoley- has joined #ocaml
<companion_cube> rgrinberg: sure
<companion_cube> looks good and not to hard to revert if problematic :p
manud has joined #ocaml
hugomg has quit [Ping timeout: 256 seconds]
q66[lap] has quit [Quit: Textual IRC Client: www.textualapp.com]
q66[lap] has joined #ocaml
<rgrinberg> companion_cube: soon enough we'll have an re release
<rgrinberg> with all of your nice changes
abbe is now known as abbe_
abbe_ is now known as abbe
emery_ has left #ocaml ["later"]
manud has quit [Quit: Be back later ...]
BitPuffin has quit [Ping timeout: 264 seconds]
willy__ has joined #ocaml
willy_ has quit [Ping timeout: 252 seconds]
nullcat_ has joined #ocaml
<nullcat_> rgrinberg: hi, about cohttp's http performance and profiling harness I am working on, Anil said "we lack confidence in some of the edges of the implementation when it comes to clients and servers issuing odd requests". Does anything odd really happen as far as you know?
<rgrinberg> you mean, do i know of any particular bugs?
eyyub1 has quit [Ping timeout: 240 seconds]
<rgrinberg> nullcat_: one interesting bit i'd like to know is the relative performance of the lwt server vs the async server
<nullcat_> yes
<rgrinberg> nullcat_: if i knew any bugs i'd definitely report them
<rgrinberg> if i had to extrapolate from past bugs though we had a lot of bugs from:
<rgrinberg> 1. http 1.1 pipelining'
<rgrinberg> 2. large inputs (body, headers, etc.)
<nullcat_> for performance test, maybe we can try http://slides.com/maximsokhatsky/n2o#/7 you sent to us before?
<nullcat_> but i don't know what kind of stress testing tool they used though
<rgrinberg> that mostly tests websockets performance i believe
<nullcat_> em ok. we should test http request?
<rgrinberg> you mean test the client performance?
<nullcat_> 18:10:44] rgrinberg:nullcat_: one interesting bit i'd like to know is the relative performance of the lwt server vs the async server
<nullcat_> server performance
rand000 has quit [Quit: leaving]
<rgrinberg> so what do you mean by "we should test http request"?
<rgrinberg> you mean serving http requests?
<rgrinberg> if so, then yes
nojb has quit [Quit: nojb]
<nullcat_> yes yes
<nullcat_> handling http requests
<rgrinberg> also checkout this for examples of what to benchmark: https://www.techempower.com/benchmarks/
<rgrinberg> these guys have done quite a bit of benchmarking, using their examples would be nice.
<rgrinberg> and adding ocaml to that list wouldn't hurt
willy__ has quit [Quit: This computer has gone to sleep]
<nullcat_> oh cool thx
<nullcat_> this is the part of the tests I did before the final exam
nojb has joined #ocaml
<rgrinberg> are you going to report bugs on some of these?
<rgrinberg> or more investigation needed
<rgrinberg> also, lwt please ^_^
<rgrinberg> nobody uses async :D
nojb has quit [Client Quit]
<nullcat_> this is one of the Mirage's pioneering project I decide to work on
<nullcat_> magnet:?xt=urn:btih:e2580e23cd8484ca06cd24e1de75966dfb6d348f&tr.0=http://tracker.ktxp.com:6868/announce&tr.1=udp://tracker.ktxp.com:6868/announce
<nullcat_> ah sorry
<rgrinberg> haha
<nullcat_> this one...
<nullcat_> that one is anime's magnet link...
<nullcat_> that is awkward(థ౪థ)
<rgrinberg> dont worry i wont click
<rgrinberg> will not know if its hentai
<rgrinberg> but if whitequark wants to verify...
<nullcat_> not hentai relax...
<rgrinberg> anyway, i read that page
<nullcat_> yes
travisbrady has joined #ocaml
nojb has joined #ocaml
nojb has quit [Client Quit]
<nullcat_> Can I work on this with you and Anil as mentors <(='_'=)?>
nojb has joined #ocaml
nojb has quit [Client Quit]
nojb has joined #ocaml
<rgrinberg> sure :D prepare to learn lots of ppx
manud has joined #ocaml
<nullcat_> yeah i'd love to. I remember whitequark wrote a tutorial on ppx. I need to read it again :) and he has some project using ppx
<nullcat_> definitely gonna check them out
manud has quit [Client Quit]
waneck has quit [Ping timeout: 245 seconds]
manud has joined #ocaml
manud has quit [Client Quit]
mcc has joined #ocaml
<mcc> y'all i just offloaded a whole bunch of the functions of my interpreter onto self-hosted code!
<mcc> ...my test suite now runs six times slower.
travisbrady has quit [Quit: travisbrady]
nojb has quit [Quit: nojb]
<struktured> congratulations....?
<mcc> Thank you! :(
nojb has joined #ocaml
myyst has quit [Ping timeout: 272 seconds]
myyst has joined #ocaml
emery_ has joined #ocaml
lordkryss has quit [Quit: Connection closed for inactivity]
darkf has joined #ocaml
kapil__ has joined #ocaml
jabesed has quit [Ping timeout: 244 seconds]
mcc has quit [Quit: This computer has gone to sleep]
nonuby has quit [Ping timeout: 258 seconds]
dmbaturin_ is now known as dmbaturin
aviraldg has joined #ocaml
nuki has quit [Ping timeout: 252 seconds]
lostman_ has joined #ocaml
<lostman_> hi all. I'm getting this cryptic message "ocamlfind: Package `lwt.ppx' not found"
<Drup> nullcat_, rgrinberg: I was considering making sedlex run on bigarray
<lostman_> I'm trying to compile ocaml-websocket from the git repo
<nojb> lostman_: make sure that you have lwt 2.4.6 or later installed
<nullcat_> oh i see
<lostman_> nojb: ah, I see. got 2.4.5 it seems. let me upgrade
<Drup> lostman_: note: 2.4.6 is broken on mac, master works though.
<Drup> nullcat_: I would be interested by such contribution :p
<lostman_> oh, thanks for pointing this out
<nullcat_> oh I am not very familiar with bigarray and ppx yet. I am learning. but I am glad if I can make any contribution
<lostman_> is there quick way to install master through opam?
<nullcat_> and I would like to
<lostman_> like brew install --HEAD
<nojb> lostman_: opam pin add lwt https://github.com/ocsigen/lwt
<lostman_> cool
<Drup> nullcat_: sedlex is quite close to fullfuling this project, except it's currently running on a simple array, not a bigarray :p
<nullcat_> em i see
<Drup> but doing the adaptation shouldn't be too hard
<nullcat_> I am not an expert in OCaml. May I ask the difference between bigarray and simple array? What's the advantage of it?
emery_ has left #ocaml ["Leaving"]
<Drup> there are various consideration related to C bindings about bigarray, but for the purpose of parser, the main thing is that a bigarray and a slice are the same thing, from the OCaml point of view
<Drup> so bigarrays are a nice way to do non-copying parsers
<Drup> (this is possible because bigarrays are not moved by the GC, as opposed to arrays)
q66[lap] has quit [Ping timeout: 250 seconds]
q66[lap] has joined #ocaml
aviraldg has quit [Quit: Leaving]
aviraldg has joined #ocaml
aviraldg has quit [Max SendQ exceeded]
<rgrinberg> Drup: help review nojb's re unicode pr
<rgrinberg> if you got time of course :D
<Drup> Sorry, but I'm gonna exceptionally relax for a few days =')
aviraldg has joined #ocaml
aviraldg has quit [Client Quit]
<rgrinberg> what is more relaxing than sitting back and bike shedding about other people's hard work at your leisure
<rgrinberg> =)
<Drup> depends if you have to rebase the said work to make it readable
<Drup> :<
<rgrinberg> i'm comfortable with rebasing although i have to say the ui for doing it is not the best
<rgrinberg> especially for complicated jobs
<Drup> (don't worry, it was a stab at the cohttp PR)
<rgrinberg> sometimes it's easier just to reset everything to your working copy and redo the commits
<Drup> (about the UI ... magit!)
<rgrinberg> ah, i figured dinosaure2 related :D
<rgrinberg> how does magit help?
<Drup> You should try it, it will explains itself x)
travisbrady has joined #ocaml
travisbrady has quit [Quit: travisbrady]
<rgrinberg> Drup: no thanks, i like my wrists
<rgrinberg> but i know someone else who needs rebase lessons ;)
<Drup> It's not a modifier-heavy interface
<Drup> (on the contrary)
nonuby has joined #ocaml
samrat has joined #ocaml
mcc has joined #ocaml
<mcc> Is there a better way to do this? let rawRethisAssignObject v = match v with
<mcc> | ClosureValue({this=ThisBlank}) -> (match v with ClosureValue(v) ->
<mcc> | _ -> v
<mcc> ClosureValue({v with this=ThisReady}) | _ -> failwith "impossible")
<lostman_> are js_of_ocaml ints 32bit?
<mcc> errrp sorry i was trying to paste a pastie to that code, not the code itself :(
<mcc> lostman_: i do not have knowledge of js_of_ocaml, but if the ints are 64 bit that would be fairly difficult to implement in js i think.
nojb has quit [Quit: nojb]
araujo has quit [Quit: Leaving]
<lostman_> I'm trying out js_of_ocaml. the standard library is very OOP. I ran into a problem when parsing JSON
<lostman_> Uncaught 0,248,Yojson.Json_error,10,Line 1, bytes 283-292: Int overflow '6600557990'
<mcc> yeuch
<lostman_> it seems to me js_of_ocaml is a rock-solid compiler. but are there any projects or libraries using it?
<lostman_> I'm just tinkering with putting together Facebook React, react (the OCaml library) and js_of_ocaml. Seems to me it could be a nice combo
ontologiae has joined #ocaml
<Drup> lostman_: look at eliom's reactive dom
<Drup> and yes, jsoo's ints are int 32 (or something like that)
<lostman_> jsoo?
<Drup> jsoo doesn't have ints, so it cheats by encoding them in parts of a floats and fiddling with the bits so that it's still not completely uneeficient
<lostman_> I'm not terribly familiar with OCaml and ecosystem
<Drup> js_of_ocaml :p
<Drup> it's the "official" shortcut :p
<lostman_> oh, good to know!
<lostman_> many things are terribly undocumented
<lostman_> I looked at eliom a while ago and it is rather impressive
<lostman_> but good luck figuring it out from scratch!
<Drup> mcc: use "as" ?
<Drup> lostman_: that's why there are tutorials :)
<lostman_> good luck going through the tutorials ;-)
nojb has joined #ocaml
<Drup> why ?
<lostman_> when I was looking at it half of the tutorials didn't quite work
<Drup> and you didn't report it ? :)
<lostman_> types of this or that function were slightly different
<lostman_> I think they were written when eliom was 3.0 and didn't quite transition to 4.0
<Drup> also those should be fixed since
<Drup> if you find others, please report them.
<lostman_> is there any plan for eliom to use websockets for the backend to frontend communication?
<Drup> yes and no, depends for what
<lostman_> like when you can just get a channel from backend to frontend
<lostman_> and it automatically glues it together
<Drup> we currently use comet for such chanels. Replacing that by websocket is on the todolist
<Drup> but it works perfectly well
<lostman_> I find ajax/comet quite wonky in practice
<lostman_> (nothing to do with eliom)
<Drup> It's not wonky when you don't see it ;)
<Drup> (it's pure crap when you do, though, but the point of eliom is that you don't)
<lostman_> the thing is if comet breaks it doesn't automatically reopen
<Drup> we have ~~things~~ to do that, sort of x)
<lostman_> websockets really really try to be open at all times
<Drup> but as I said, it's on the todo list, you are welcome to contribute :p)
<lostman_> so what I want is: (1) open websocket, (2) send initial image of my data, (3) send incremental snapshots
<lostman_> incremental updates that is
<lostman_> how does the reactive dom work? how is it implemented?
<mcc> drup: oh, yes, that's exactly what i wanted i think
<struktured> whitequark: I can't figure out if this is my because my constraints are wrong or the deriver has a bug in it : https://gist.github.com/struktured/eb7e2138ff0e507b3859#file-gistfile1-ml-L11-L16 . Original file is here: https://github.com/struktured/ocaml-mas/blob/master/src/mas_core.ml
<Drup> lostman_: a variation of virtual down that wasn't called like that at this time ? ^^'
<Drup> the implementation is fairly complex, unfortunatly, but in the end, it's pretty much just "an effectful react signal that modify the dom".
<lostman_> Durp: is it possible to use it without eliom? at the moment I want standalone javascript out of it
<Drup> there is an implementation inside jsoo, but it doesn't do any diffing and all that
<Drup> (I know, the documentation is a bit meh, blame ocamldoc, I tried everything I could :x)
<Drup> http://ocsigen.org/tuto/4.2/manual/reactivemediaplayer follow this tutorial, and almost everything should apply to jsoo's R module too
<lostman_> if the jsoo doesn't do dom diffing, where does it happen in eliom reactive dom? server side?
<Drup> it's just implemented differently, that's all
<struktured> whitequark: I took out [@@deriving show] parts and now it compiles.
<mcc> ok the combination of as/{with} is unstoppable, this is great
<Drup> unstoppable \O/
samrat has quit [Quit: Computer has gone to sleep.]
<Drup> lostman_: why does that surprise you ? ^^'
NoNNaN has quit [Remote host closed the connection]
NoNNaN has joined #ocaml
<lostman_> Durp: is there any way of running repl in the browser?
<Drup> you maid the mistake two times, it's not Durp :D
<lostman_> oh, sorry
<lostman_> ;-)
<Drup> made*
<lostman_> cool, thanks!
ontologiae has quit [Ping timeout: 244 seconds]
<Drup> (there is even a reactive dom example :p)
samrat has joined #ocaml
nojb has quit [Quit: nojb]
nojb has joined #ocaml
<lostman_> when I try to compile that example on my laptop I'm getting this "Error: Unbound module Tyxml_js"
<Drup> you need to call the library "js_of_ocaml.tyxml"
<lostman_> you mean in -package parameter to ocamlbuild?
myyst has quit [Ping timeout: 244 seconds]
myyst has joined #ocaml
<Drup> yes
nojb has quit [Quit: nojb]
ontologiae has joined #ocaml
dpzmick has joined #ocaml
ontologiae has quit [Ping timeout: 255 seconds]
samrat has quit [Quit: Computer has gone to sleep.]
jabroney has joined #ocaml
<lostman_> got it to compile... progress! now need to figure out how to go from "[> Html5_types.div ] Tyxml_js.Html5.elt" to "#Dom.node Js.t" so I can append it to something
vfoley- has quit [Ping timeout: 255 seconds]
cdidd has joined #ocaml
<Drup> use Tyxml_cast
jabroney has quit [Quit: Leaving.]
<lostman_> ended up with:
<lostman_> let body = Dom_html.document##body in
<lostman_> let _ = body##appendChild (Tyxml_js.To_dom.of_node div_elt) in
<lostman_> ()
<lostman_> thanks for help
kapil__ has quit [Quit: Connection closed for inactivity]
koderok has joined #ocaml
mcc has quit [Quit: /quit]
koderok has quit [Client Quit]
slash^ has joined #ocaml
dpzmick has quit [Remote host closed the connection]
samrat has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
appd has joined #ocaml
malc_ has joined #ocaml
dav_ has joined #ocaml
dav has quit [Ping timeout: 258 seconds]
rgrinberg has joined #ocaml
NoNNaN has quit [Ping timeout: 250 seconds]
_5kg has quit [Remote host closed the connection]
_5kg has joined #ocaml
vfoley- has joined #ocaml
NoNNaN has joined #ocaml
rgrinberg has quit [Quit: Leaving.]
matason has joined #ocaml
nullcat_ has quit [Ping timeout: 252 seconds]
kakadu has joined #ocaml
appd has quit [Remote host closed the connection]
MercurialAlchemi has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 240 seconds]
<adrien> gasche: \o/
<adrien> christmas present ^
appd has joined #ocaml
appd has quit [Remote host closed the connection]
manud has joined #ocaml
manud has quit [Client Quit]
manud has joined #ocaml
davine has joined #ocaml
manud has quit [Quit: Be back later ...]
matason has quit [Ping timeout: 245 seconds]
q66[lap] has quit [Ping timeout: 250 seconds]
q66[lap] has joined #ocaml
<whitequark> struktured: wrong order?
tane has joined #ocaml
nonuby has quit [Ping timeout: 245 seconds]
xavierm02 has joined #ocaml
thomasga has joined #ocaml
matason has joined #ocaml
pyon has quit [Remote host closed the connection]
pyon has joined #ocaml
oriba has joined #ocaml
Guest60314 is now known as kandu
Simn has joined #ocaml
matason has quit [Ping timeout: 250 seconds]
samrat has quit [Quit: Computer has gone to sleep.]
bbc has joined #ocaml
davine has quit [Quit: Leaving]
Reventlov has quit [Ping timeout: 272 seconds]
demonimin has quit [Remote host closed the connection]
Reventlov has joined #ocaml
demonimin has joined #ocaml
demonimin has joined #ocaml
larhat has joined #ocaml
chambart has joined #ocaml
larhat1 has quit [Ping timeout: 252 seconds]
rand000 has joined #ocaml
willy__ has joined #ocaml
willy__ has quit [Quit: This computer has gone to sleep]
BitPuffin has joined #ocaml
nojb has joined #ocaml
chambart has quit [Ping timeout: 250 seconds]
ingsoc has joined #ocaml
jabesed has joined #ocaml
avsm has joined #ocaml
willy__ has joined #ocaml
willy__ has quit [Client Quit]
hugomg has joined #ocaml
oscar_toro has joined #ocaml
oriba has quit [Quit: Verlassend]
davine has joined #ocaml
davine has left #ocaml [#ocaml]
lostman_ has quit [Quit: Connection closed for inactivity]
Hannibal_Smith has joined #ocaml
thomasga has quit [Quit: Leaving.]
milosn has joined #ocaml
appd has joined #ocaml
darkf_ has joined #ocaml
willy__ has joined #ocaml
thomasga has joined #ocaml
Yoric has joined #ocaml
darkf has quit [Disconnected by services]
darkf_ is now known as darkf
<whitequark> wow
<whitequark> clang builds ocaml SO MUCH FASTER than gcc
<whitequark> the difference between going to brew a cup of tea and yawning.
<adrien> I tried with Qt
<adrien> clang was slower
<adrien> otoh for icu's build, clang seems faster
<adrien> good, got rid of openh264's firefox plugin for sure
samrat has joined #ocaml
<adrien> whitequark: thanks for the update to #5887 (nameclash)
<whitequark> sure
<whitequark> I have one more cross-compiling patch in queue
<adrien> I'll soon try to separate build of ocamlbuild, ocamldoc and potentially others from the build of the compiler
<whitequark> would you introduce a notion of "host tools"?
<whitequark> well, host triple, really
<adrien> most probably
<malc_> whitequark: c cide should not dominate the build time.. so weird that
<adrien> for windows I had something because the output of cross-compilation had ".exe" at its end
<adrien> malc_: I think he mostly did a bootstrap
<whitequark> malc_: note that ocaml uses also the C compiler as an assembler
<whitequark> -aspp 'clang -c'
<whitequark> I bet gcc's one is slow
<malc_> adrien: shouldn't be relevant
<whitequark> parsing time for ocaml's enormous assembly listings can easily dominate this
<adrien> but I've recently seen the lack of host triplet to be an issue for autotools
<malc_> whitequark: but gas should do that, not C..
<malc_> so again, weird that
<adrien> I've never found gcc to be too slow either for full builds
<adrien> but back then there still was camlp4 to build
<whitequark> malc_: huh?
<whitequark> what do you mean "not C"?
<whitequark> I find it believable that LLVM's assembly parser is much faster than gas.
<whitequark> (clang -c defers to its internal as here, and gcc defers to gas, of course)
<malc_> whitequark: i can not argue that, no evidence either way.. but still find it hard to believe
<whitequark> (gcc -c)
<adrien> linker takes some time but it's a matter of a few seconds
HrafnA has joined #ocaml
<whitequark> linker is the same here.
HrafnA has quit [Remote host closed the connection]
jabesed has quit [Quit: Konversation terminated!]
<whitequark> well, lemme benchmark it
appd has quit [Remote host closed the connection]
<adrien> true, I meant the whole step :)
<adrien> (of producing the final executable)
<whitequark> clang: 1m20s gcc: 37s?!
<whitequark> what.
<whitequark> O_o
larhat has quit [Read error: Connection reset by peer]
larhat1 has joined #ocaml
<whitequark> ohhhh, bleargh, it fails on -j4 somewhere and eats the failure
Yoric has quit [Remote host closed the connection]
lordkryss has joined #ocaml
ingsoc has quit [Quit: Leaving.]
<whitequark> gcc: 2m59s clang: 2m26s
<whitequark> so a 30% speedup.
<whitequark> it's more noticeable on successful -j builds, actually.
malc_ has quit [Quit: Reconnecting]
malc_ has joined #ocaml
xavierm02 has quit [Ping timeout: 246 seconds]
appd has joined #ocaml
Thooms has joined #ocaml
jonludlam has quit [Quit: Coyote finally caught me]
<adrien> hmmm, -O too
<adrien> nicoo: ^ change that! :D
AlexRussia has quit [Ping timeout: 256 seconds]
demonimin has quit [Quit: No Ping reply in 180 seconds.]
demonimin has joined #ocaml
chambart has joined #ocaml
thomasga has quit [Quit: Leaving.]
daniel888 has joined #ocaml
AlexRussia has joined #ocaml
Yoric has joined #ocaml
Yoric has quit [Remote host closed the connection]
Yoric has joined #ocaml
nojb has quit [Quit: nojb]
daniel888 has quit [Quit: Leaving]
milosn has quit [Ping timeout: 240 seconds]
milosn has joined #ocaml
willy_ has joined #ocaml
Yoric has quit [Ping timeout: 265 seconds]
appd has quit [Remote host closed the connection]
demonimin has quit [Ping timeout: 258 seconds]
willy__ has quit [Ping timeout: 240 seconds]
demonimin has joined #ocaml
manizzle has quit [Ping timeout: 250 seconds]
malc_ has quit [Quit: Lost terminal]
joncfoo has joined #ocaml
nuki has joined #ocaml
appd has joined #ocaml
appd has quit [Ping timeout: 255 seconds]
demonimin has quit [Ping timeout: 246 seconds]
malc_ has joined #ocaml
demonimin has joined #ocaml
thomasga has joined #ocaml
chambart has quit [Ping timeout: 256 seconds]
appd has joined #ocaml
appd has quit [Read error: Connection reset by peer]
willy_ has left #ocaml ["Leaving"]
thomasga has quit [Client Quit]
thomasga has joined #ocaml
appd has joined #ocaml
thomasga has quit [Client Quit]
appd has quit [Ping timeout: 244 seconds]
ggole has joined #ocaml
nojb has joined #ocaml
travisbrady has joined #ocaml
travisbrady has quit [Client Quit]
travisbrady has joined #ocaml
travisbrady has quit [Client Quit]
hugomg has quit [Quit: Leaving]
axiles has joined #ocaml
seangrov` has quit [Read error: Connection reset by peer]
seangrov` has joined #ocaml
seangrov` has quit [Remote host closed the connection]
<gasche> whitequark: if you are in a benchmarking mood, an experiment I would find interesting is to measure the compilation time of camlp4 (or some other project that is slow to compile) using trunk and using the flambda branch (bootstrapped, of course)
<gasche> (measuring the auto-compilation time after bootstrap doesn't work because the sources differ)
Yoric has joined #ocaml
darkf has quit [Quit: Leaving]
Yoric has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
travisbrady has joined #ocaml
Yoric_ has joined #ocaml
Yoric__ has joined #ocaml
Yoric_ has quit [Read error: Connection reset by peer]
Yoric_ has joined #ocaml
Yoric___ has joined #ocaml
Yoric_ has quit [Read error: Connection reset by peer]
Yoric_ has joined #ocaml
Yoric has quit [Ping timeout: 272 seconds]
Yoric_ has quit [Read error: Connection reset by peer]
Yoric____ has joined #ocaml
Yoric has joined #ocaml
Yoric____ has quit [Read error: Connection reset by peer]
Yoric__ has quit [Ping timeout: 272 seconds]
Yoric_ has joined #ocaml
Yoric__ has joined #ocaml
Yoric___ has quit [Ping timeout: 265 seconds]
<whitequark> ew, camlp4
<whitequark> I prefer to measure time *not* spent compiling camlp4
<whitequark> it's a process that is very easy to optimize.
Yoric___ has joined #ocaml
emery has joined #ocaml
emery has left #ocaml ["Leaving"]
Yoric____ has joined #ocaml
Yori_____ has joined #ocaml
Yoric____ has quit [Read error: Connection reset by peer]
Yoric has quit [Ping timeout: 265 seconds]
oscar_toro has quit [Ping timeout: 245 seconds]
Yoric has joined #ocaml
matason has joined #ocaml
Yoric_ has quit [Ping timeout: 265 seconds]
jabroney has joined #ocaml
Yoric_ has joined #ocaml
Yoric__ has quit [Ping timeout: 265 seconds]
Yoric_ has quit [Read error: Connection reset by peer]
Yoric_ has joined #ocaml
Yoric___ has quit [Ping timeout: 272 seconds]
Yoric__ has joined #ocaml
demonimin has quit [Ping timeout: 258 seconds]
Yoric___ has joined #ocaml
Yori_____ has quit [Ping timeout: 265 seconds]
Yoric____ has joined #ocaml
Yoric has quit [Ping timeout: 265 seconds]
Yoric has joined #ocaml
nojb has quit [Quit: nojb]
Yori_____ has joined #ocaml
appd has joined #ocaml
Yoric_ has quit [Ping timeout: 272 seconds]
Yoric_ has joined #ocaml
Yoric__ has quit [Ping timeout: 258 seconds]
Yoric_ has quit [Read error: Connection reset by peer]
appd_ has joined #ocaml
Yoric_ has joined #ocaml
Yoric___ has quit [Ping timeout: 265 seconds]
Yoric__ has joined #ocaml
Yoric____ has quit [Ping timeout: 272 seconds]
Yoric___ has joined #ocaml
Yoric has quit [Ping timeout: 272 seconds]
Yoric___ has quit [Read error: Connection reset by peer]
travisbrady has quit [Quit: travisbrady]
Yori_____ has quit [Ping timeout: 244 seconds]
Yoric has joined #ocaml
appd has quit [Ping timeout: 244 seconds]
Yoric___ has joined #ocaml
Yoric____ has joined #ocaml
Au7Gikl has joined #ocaml
Yoric_ has quit [Ping timeout: 265 seconds]
Yoric_ has joined #ocaml
Yoric__ has quit [Ping timeout: 258 seconds]
Yoric__ has joined #ocaml
Yoric has quit [Ping timeout: 244 seconds]
Yoric has joined #ocaml
nojb has joined #ocaml
Yori_____ has joined #ocaml
Yoric___ has quit [Ping timeout: 258 seconds]
Yoric___ has joined #ocaml
Yoric____ has quit [Ping timeout: 244 seconds]
Yoric____ has joined #ocaml
Yoric_ has quit [Ping timeout: 258 seconds]
nojb has quit [Client Quit]
Yoric_ has joined #ocaml
Yoric__ has quit [Ping timeout: 265 seconds]
Yoric_ has quit [Read error: Connection reset by peer]
Yoric_ has joined #ocaml
Yoric has quit [Ping timeout: 258 seconds]
Yoric_ has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
milosn has quit [Ping timeout: 240 seconds]
Au7Gikl has quit [Quit: Page closed]
Yori_____ has quit [Ping timeout: 265 seconds]
Yoric_ has joined #ocaml
Yoric___ has quit [Ping timeout: 265 seconds]
Yoric_ has quit [Read error: Connection reset by peer]
Yoric_ has joined #ocaml
Yoric____ has quit [Ping timeout: 258 seconds]
Yoric__ has joined #ocaml
Yoric___ has joined #ocaml
Yoric____ has joined #ocaml
Yoric has quit [Ping timeout: 272 seconds]
Yoric____ has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
ontologiae has joined #ocaml
Yoric____ has joined #ocaml
Yoric_ has quit [Ping timeout: 272 seconds]
Yoric____ has quit [Read error: Connection reset by peer]
Yoric_ has joined #ocaml
Yoric__ has quit [Ping timeout: 265 seconds]
Yoric__ has joined #ocaml
Yoric___ has quit [Ping timeout: 258 seconds]
Yoric__ has quit [Read error: Connection reset by peer]
Yoric__ has joined #ocaml
Yoric has quit [Ping timeout: 244 seconds]
Yoric__ has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric__ has joined #ocaml
Yoric___ has joined #ocaml
Yoric_ has quit [Ping timeout: 265 seconds]
Yoric_ has joined #ocaml
Yoric___ has quit [Read error: Connection reset by peer]
Yoric___ has joined #ocaml
Yoric____ has joined #ocaml
Yoric___ has quit [Read error: Connection reset by peer]
Yoric has quit [Ping timeout: 265 seconds]
Yoric__ has quit [Ping timeout: 244 seconds]
Yoric has joined #ocaml
nojb has joined #ocaml
Yoric__ has joined #ocaml
Yoric___ has joined #ocaml
Yoric_ has quit [Ping timeout: 265 seconds]
Yoric_ has joined #ocaml
koderok has joined #ocaml
Yori_____ has joined #ocaml
koderok has quit [Remote host closed the connection]
Yoric____ has quit [Ping timeout: 244 seconds]
Yoric____ has joined #ocaml
Yoric has quit [Ping timeout: 265 seconds]
Yoric____ has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric__ has quit [Ping timeout: 272 seconds]
Yoric__ has joined #ocaml
Yoric___ has quit [Ping timeout: 244 seconds]
Yoric_ has quit [Ping timeout: 244 seconds]
Yoric_ has joined #ocaml
Yoric___ has joined #ocaml
Yori_____ has quit [Ping timeout: 265 seconds]
Yoric____ has joined #ocaml
Yoric has quit [Ping timeout: 244 seconds]
Yori_____ has joined #ocaml
Yoric has joined #ocaml
Yoric__ has quit [Ping timeout: 244 seconds]
nojb has quit [Quit: nojb]
Yoric__ has joined #ocaml
Yoric_ has quit [Ping timeout: 265 seconds]
Yoric__ has quit [Read error: Connection reset by peer]
struktured has quit [Ping timeout: 258 seconds]
Yoric_ has joined #ocaml
Yoric___ has quit [Ping timeout: 265 seconds]
Yoric__ has joined #ocaml
Yoric____ has quit [Ping timeout: 244 seconds]
Yoric___ has joined #ocaml
<gasche> so I measured it myself then, and the results are interesting
Yori_____ has quit [Ping timeout: 265 seconds]
<gasche> flambda is twice slower to compile native code (copious overhead was to be expected given than Pierre hasn't worked on compilation time for now)
Yoric____ has joined #ocaml
<gasche> but it's also not faster (in fact a bit slower) to compile bytecode
Yoric has quit [Ping timeout: 265 seconds]
Yoric____ has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric_ has quit [Ping timeout: 244 seconds]
Yoric_ has joined #ocaml
Yoric____ has joined #ocaml
Yoric__ has quit [Ping timeout: 244 seconds]
Yoric__ has joined #ocaml
Yoric___ has quit [Ping timeout: 265 seconds]
Yoric__ has quit [Read error: Connection reset by peer]
Yoric__ has joined #ocaml
Yoric___ has joined #ocaml
Yoric has quit [Ping timeout: 244 seconds]
Yoric has joined #ocaml
Yoric_ has quit [Ping timeout: 272 seconds]
hugomg has joined #ocaml
Yoric_ has joined #ocaml
Yoric____ has quit [Ping timeout: 265 seconds]
Yoric____ has joined #ocaml
Yori_____ has joined #ocaml
Yoric__ has quit [Ping timeout: 265 seconds]
Yoric__ has joined #ocaml
Yoric___ has quit [Ping timeout: 272 seconds]
Yor______ has joined #ocaml
Yoric has quit [Ping timeout: 272 seconds]
Yoric has joined #ocaml
Yoric_ has quit [Ping timeout: 244 seconds]
Yoric_ has joined #ocaml
matason has quit [Ping timeout: 264 seconds]
Yoric_ has quit [Read error: Connection reset by peer]
Yoric____ has quit [Ping timeout: 272 seconds]
Yoric_ has joined #ocaml
Yori_____ has quit [Ping timeout: 272 seconds]
Yoric_ has quit [Read error: Connection reset by peer]
Yoric_ has joined #ocaml
Yoric__ has quit [Ping timeout: 272 seconds]
appd_ has quit [Quit: Leaving...]
Yoric__ has joined #ocaml
Yor______ has quit [Ping timeout: 244 seconds]
Yoric___ has joined #ocaml
Yoric__ has quit [Read error: Connection reset by peer]
Yoric has quit [Ping timeout: 265 seconds]
Yoric___ has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric__ has joined #ocaml
Yoric has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric_ has quit [Ping timeout: 244 seconds]
Yoric_ has joined #ocaml
Yoric___ has joined #ocaml
Yoric____ has joined #ocaml
Yori_____ has joined #ocaml
Yoric____ has quit [Read error: Connection reset by peer]
Yoric__ has quit [Ping timeout: 258 seconds]
Yoric__ has joined #ocaml
Yoric has quit [Ping timeout: 244 seconds]
Aubil7 has joined #ocaml
Yoric__ has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric_ has quit [Ping timeout: 265 seconds]
Yoric_ has joined #ocaml
Yoric__ has joined #ocaml
Yoric___ has quit [Ping timeout: 272 seconds]
Yoric___ has joined #ocaml
Yoric__ has quit [Read error: Connection reset by peer]
Yori_____ has quit [Ping timeout: 265 seconds]
Yoric___ has quit [Read error: Connection reset by peer]
avsm has quit [Quit: Leaving.]
Yoric__ has joined #ocaml
Yoric___ has joined #ocaml
Yoric has quit [Ping timeout: 244 seconds]
nojb has joined #ocaml
Yoric_ has quit [Ping timeout: 244 seconds]
Yoric___ has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric_ has joined #ocaml
Yoric___ has joined #ocaml
Yoric____ has joined #ocaml
Yoric__ has quit [Ping timeout: 258 seconds]
Yoric__ has joined #ocaml
Yori_____ has joined #ocaml
Yoric has quit [Ping timeout: 265 seconds]
Yoric has joined #ocaml
Yoric_ has quit [Ping timeout: 258 seconds]
Yoric has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric___ has quit [Ping timeout: 265 seconds]
Yoric has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric____ has quit [Ping timeout: 244 seconds]
Yoric has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric__ has quit [Ping timeout: 258 seconds]
gdsfh1 has joined #ocaml
Yoric_ has joined #ocaml
Yori_____ has quit [Ping timeout: 272 seconds]
Yoric__ has joined #ocaml
gdsfh has quit [Ping timeout: 264 seconds]
Yoric___ has joined #ocaml
Yoric____ has joined #ocaml
Yori_____ has joined #ocaml
Yoric has quit [Ping timeout: 272 seconds]
Yoric has joined #ocaml
Yoric_ has quit [Ping timeout: 265 seconds]
Yoric_ has joined #ocaml
Yoric__ has quit [Ping timeout: 244 seconds]
Yoric__ has joined #ocaml
Yoric_ has quit [Read error: Connection reset by peer]
Yoric___ has quit [Ping timeout: 258 seconds]
Yoric_ has joined #ocaml
Yoric__ has quit [Read error: Connection reset by peer]
Yoric____ has quit [Ping timeout: 258 seconds]
matason has joined #ocaml
Yoric__ has joined #ocaml
Yori_____ has quit [Ping timeout: 265 seconds]
Yoric___ has joined #ocaml
Yoric has quit [Ping timeout: 258 seconds]
Yoric___ has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric___ has joined #ocaml
Yoric_ has quit [Ping timeout: 244 seconds]
Yoric____ has joined #ocaml
Yoric_ has joined #ocaml
Yoric____ has quit [Read error: Connection reset by peer]
Yoric__ has quit [Ping timeout: 258 seconds]
Yoric__ has joined #ocaml
Yoric has quit [Ping timeout: 244 seconds]
Yoric____ has joined #ocaml
Yoric has joined #ocaml
Yoric____ has quit [Read error: Connection reset by peer]
Yoric___ has quit [Ping timeout: 258 seconds]
Yoric___ has joined #ocaml
Yoric_ has quit [Ping timeout: 244 seconds]
Yoric____ has joined #ocaml
Yoric_ has joined #ocaml
Yoric__ has quit [Ping timeout: 258 seconds]
tharugrim has quit [Ping timeout: 240 seconds]
Yoric__ has joined #ocaml
Yori_____ has joined #ocaml
Yoric has quit [Ping timeout: 258 seconds]
tharugrim has joined #ocaml
Yoric has joined #ocaml
nojb has quit [Quit: nojb]
Yoric___ has quit [Ping timeout: 244 seconds]
matason has quit [Ping timeout: 255 seconds]
Yoric____ has quit [Ping timeout: 244 seconds]
Yoric___ has joined #ocaml
Yoric____ has joined #ocaml
Yoric_ has quit [Ping timeout: 244 seconds]
Yoric_ has joined #ocaml
Yoric__ has quit [Ping timeout: 258 seconds]
Yori_____ has quit [Ping timeout: 244 seconds]
Yoric__ has joined #ocaml
Yori_____ has joined #ocaml
Yoric has quit [Ping timeout: 265 seconds]
Yori_____ has quit [Read error: Connection reset by peer]
Yoric has joined #ocaml
Yoric___ has quit [Ping timeout: 265 seconds]
Yoric has quit [Read error: Connection reset by peer]
Yoric____ has quit [Ping timeout: 244 seconds]
Yoric has joined #ocaml
Yoric___ has joined #ocaml
Yoric has quit [Read error: Connection reset by peer]
Yoric_ has quit [Ping timeout: 258 seconds]
Yoric has joined #ocaml
Yoric__ has quit [Ping timeout: 244 seconds]
Yoric_ has joined #ocaml
Yoric__ has joined #ocaml
Yoric____ has joined #ocaml
Yori_____ has joined #ocaml
Yoric___ has quit [Ping timeout: 258 seconds]
Yori_____ has quit [Read error: Connection reset by peer]
Yoric___ has joined #ocaml
Yoric has quit [Ping timeout: 244 seconds]
Yoric has joined #ocaml
Yoric_ has quit [Ping timeout: 244 seconds]
Yoric__ has quit [Ping timeout: 244 seconds]
Yoric_ has joined #ocaml
Yoric__ has joined #ocaml
Yoric____ has quit [Ping timeout: 258 seconds]
Yoric____ has joined #ocaml
Yoric___ has quit [Ping timeout: 244 seconds]
Yoric___ has joined #ocaml
Yori_____ has joined #ocaml
Yoric___ has quit [Read error: Connection reset by peer]
Yoric has quit [Ping timeout: 244 seconds]
Yoric_ has quit [Ping timeout: 244 seconds]
Yoric has joined #ocaml
Yoric_ has joined #ocaml
<nuki> Hello, can I have your opinion about a little personnal project ?
Yoric_ has quit [Read error: Connection reset by peer]
Yoric__ has quit [Ping timeout: 258 seconds]
<nuki> It is an experience with ppx https://github.com/nukiFW/ppx_test
Yoric_ has joined #ocaml
<nuki> the documentation is'nt yet writted but you can see some examples in the examples folder
Yoric____ has quit [Ping timeout: 258 seconds]
Yoric__ has joined #ocaml
Yoric___ has joined #ocaml
Yoric__ has quit [Read error: Connection reset by peer]
Yori_____ has quit [Ping timeout: 265 seconds]
Yoric__ has joined #ocaml
Yoric___ has quit [Read error: Connection reset by peer]
Yoric has quit [Ping timeout: 258 seconds]
Yoric__ was banned on #ocaml by adrien [*!*Yoric@2a01:e35:8bdd:3c00:d110:6e12:7d4c:*]
<adrien> never remember the right mask
Yoric_ was banned on #ocaml by adrien [*!*Yoric@*]
Yoric__ was kicked from #ocaml by adrien [please fix your connection]
Yoric_ was kicked from #ocaml by adrien [please fix your connection]
<whitequark> nuki: you don't need ppx_tools for all the functions you define... Ast_helper is OK
<whitequark> (it's from compiler-libs)
<nuki> Ok thanks, I have made this choice to understand the "structures" of the AST
Aubil7 has quit [Quit: Page closed]
eyyub has joined #ocaml
<bbc> hello, I'm getting started with lwt, with opam and ocaml 4.01.0 (install fails with later compilers), and I can't get simple code to compile with ocamlc because dlllwt-unix_stubs.so is not found
<whitequark> did you do eval `opam config env` ?
<bbc> yes, I've just reset everything, ocaml and opam from archlinux, then opam init --comp=4.01.0, opam config env and ocamlfind ocamlc -syntax camlp4o -package lwt.syntax -package lwt.unix -linkpkg -o a a.ml
<whitequark> what does env|grep CAML_LD_LIBRARY_PATH output?
<bbc> nothing
<whitequark> then you did not do eval `opam config env`.
<bbc> I would not have ocamlfind otherwise but yes, something must be wrong with that
<whitequark> what does which ocamlfind output?
<whitequark> you might have ocamlfind from arch or something.
<bbc> ok, I actually have an alias for `eval (opam config env)` but it looks like it doesn't work, entering the command manually sets the env variable correctly
<bbc> I removed the ocamlfind I had from arch
<whitequark> did you forget the $ in the command above?
<whitequark> it should be $(opam config env)
<bbc> any way, I have been able to use opam without any problem before, with my alias
<bbc> it's fish syntax
<whitequark> oh
<Drup> bbc: you should put it in your .profile (or whatever the fish equivalent) and be done with it anyway, no need to type it most of the time :)
<whitequark> you need opam config env --fish then
<bbc> Drup: I'll consider this option, in the past, opam used to mess with man pages
<Drup> really ? never had issue with that. It's probably fish-specific
<bbc> yes, it probably was
<whitequark> opam still "messes" with manpages, it extends your man path
<whitequark> adrien: building ocaml with -j1000 results in very funny bugs
<whitequark> e.g.:
<whitequark> File "odoc_extension.ml", line 28, characters 13-39:
<whitequark> Error: Unbound module Odoc_type
<whitequark> Hint: Did you mean Odoc_name?
<bbc> whitequark: it used to only give access to ocaml-related man pages
<Drup> but that's all you need :D
<bbc> you have an irc client available in opam? :)
<whitequark> actually, yes
<whitequark> well, there's a library. just invoke it via utop.
<Leonidas> and dont forget to send pongs occasionally
<Leonidas> j1000? that must be an amazing system to compile things
<bbc> it's funny cause using an alias, only PATH gets updated, no new env variables
<adrien> whitequark: heh, yeah, it worked at some point but quickly became buggy again
<bbc> just typing `eval (opam confi env)` gets me all the proper env variables
<whitequark> Leonidas: I don't have 1000 cores
travisbrady has joined #ocaml
<whitequark> I just stress the dependency resolution
<Drup> let's do some flambda benchs !
* Drup jumps on the bandwagon.
<adrien> flamby? where? where?
* companion_cube slaps adrien
* adrien kicks companion_cube
anemator has joined #ocaml
travisbrady has quit [Quit: travisbrady]
<whitequark> gasche: I just had the second person interested in support for arabic in ocaml source contact me
malc_ has quit [Quit: leaving]
emperiz has joined #ocaml
struktured has joined #ocaml
travisbrady has joined #ocaml
ggole has quit [Ping timeout: 264 seconds]
MercurialAlchemi has joined #ocaml
<def`> whitequark: what does support for arabic imply?
<companion_cube> terrible unicode everywhere, I guess
<whitequark> def`: unicode identifiers, I assume
<def`> ok
<whitequark> maybe keywords
<jabroney> Is there inline documentation for the ocaml/utop REPL? I'm looking for something like python's.
<whitequark> mixing LTR/RTL is probably silly
<whitequark> jabroney: no
<def`> (how does your unicode files behave in merlin :_/?)
<whitequark> it gives off MANY ERRORS
<whitequark> actually, hmmmm
<whitequark> can merlin support -pp ?
<whitequark> oh, right, no
milosn has joined #ocaml
<def`> right I thought it was a ppx... don't know why :)
jabroney has quit [Quit: Leaving.]
nojb has joined #ocaml
NoNNaN has quit [Ping timeout: 250 seconds]
Thooms has quit [Quit: WeeChat 1.0.1]
matason has joined #ocaml
joncfoo has quit [Ping timeout: 245 seconds]
tani has joined #ocaml
BitPuffin has quit [Ping timeout: 240 seconds]
tane has quit [Ping timeout: 240 seconds]
emperiz has quit [Quit: Leaving]
manud has joined #ocaml
NoNNaN has joined #ocaml
araujo has joined #ocaml
anemator has quit [Remote host closed the connection]
manud has quit [Client Quit]
manud has joined #ocaml
manud has quit [Client Quit]
BitPuffin has joined #ocaml
<hugomg> bbc: by any chance, are you using the system instalation of 4.02? Some things work with 4.02 if you install the compiler from source from opam isntead of using the system-isntalled one.
dmiles_afk has quit [Read error: Connection reset by peer]
dmiles_afk has joined #ocaml
<bbc> hugomg: oh, I'll try that
robink_ has quit [Ping timeout: 255 seconds]
<bbc> hugomg: so you mean the 4.02.1 compiler?
<hugomg> yeah, you create a fresh switch using it like you did for 4.01
manud has joined #ocaml
psy_ has quit [Read error: No route to host]
<bbc> hugomg: it works indeed, thanks!
davine has joined #ocaml
davine has left #ocaml [#ocaml]
<hugomg> I heard it has to do with the dependency solver. not so sure why it can't work well with the system compiler though...
samrat has quit [Quit: Computer has gone to sleep.]
<whitequark> camlp4
<whitequark> packages often hardcode paths to camlp4 as being under compiler library path
travisbrady has quit [Quit: travisbrady]
<adrien> doing so has been in the doc actually I think
slash^ has quit [Read error: Connection reset by peer]
thomasga has joined #ocaml
artagnon has joined #ocaml
rgrinberg has joined #ocaml
<artagnon> get_pointer_to_global malfunctions on anonymous functions.
<artagnon> whitequark: I was right about the bug. It's not in my code.
<whitequark> specifically on anonymous functions?
<whitequark> that sounds extremely odd
<artagnon> Yeah, I know.
<whitequark> so what's the result?
<artagnon> 4l.
<artagnon> It grabs the pointer to the previous anonymous function.
<whitequark> hrm.
<whitequark> and what is the module?
<whitequark> I mean, dump it
<artagnon> Okay, one sec.
<artagnon> The module is fine, iirc.
<whitequark> hrm.
<whitequark> 3.6?
Hannibal_Smith has quit [Quit: Leaving]
<artagnon> Hm?
<whitequark> LLVM version
<artagnon> Trunk.
<whitequark> ok
<artagnon> As of 22 hrs ago.
<artagnon> Do you want to commit this failing test?
<artagnon> Should I send it to the list?
<whitequark> can you rewrite the minimal repro in C (or C++) and send it to the list?
<whitequark> I'm fairly sure this is not a bug in the OCaml bindings
<whitequark> and I have no time to reduce the rest of LLVM now
<artagnon> Right.
dav_ is now known as dav
matason has quit [Ping timeout: 240 seconds]
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
milosn has quit [Ping timeout: 265 seconds]
johnf has joined #ocaml
eyyub1 has joined #ocaml
<nojb> what does the error “the file “….cmo” is included in more than one active library ([…cma; …cma])” mean ?
eyyub has quit [Ping timeout: 240 seconds]
<nojb> it is produced by ocamlbuild
<flux> I haven't seen it, but I think you are trying to link in two .cma:s that have the same or same-named .cmo inside them. this cannot happen, because that means the modules have the same name, and that cannot be.
<rgrinberg> companion_cube: not sure how much of an ocamlbuild fan you are but: https://github.com/rgrinberg/vim-ocaml/blob/master/syntax/ocamlbuild_tags.vim
<companion_cube> I try to avoid it as much as possible
<companion_cube> everything oasis can do in place of ocamlbuild is good news to me ^^
<whitequark> companion_cube: burn, infidel
<companion_cube> ?
<whitequark> >oasis
<companion_cube> well, it does the job quite nicely
<whitequark> >nicely
<companion_cube> when assemblage is ready, I'll consider changing :p
<whitequark> are you ok with camlp4 too, eh?!
<rgrinberg> companion_cube: oasis is the greater evil than ocamlbuild
<companion_cube> no, I like oasis project description, not the actual implementation
<rgrinberg> and assemblage will probably have an ocamlbuild backend :D
<whitequark> oh, it will?
<companion_cube> but it's good for sublibraries and configure and stuff I don't want to write
<companion_cube> so for now, oasis is the only alternative I know of
<rgrinberg> whitequark: well build backends will be pluggable from what i hear
<rgrinberg> so it will be a simple matter of programming
<whitequark> companion_cube: you don't *need* configure
<companion_cube> I like configure
<companion_cube> or an equivalent
<companion_cube> if you know another way of enabling and disabling sub-libraries and binaries based on flags, I'm hearing
<companion_cube> listening*
<Drup> ocamlbuild is even less documented than oasis
<Drup> the API is crap
<companion_cube> and oasis gathers everthing in one file
<hugomg> companion_cube: what do you like about oasis. The impression I had when loooking at it was that it was pretty complicated and that I might be better off writing my build script and opam package by hand
<companion_cube> (which is good)
<companion_cube> hugomg: I write one file to describe my project, with libraries, doc, binaires, etc. and that's it
<companion_cube> I get a build system, a META, a configure script
<Drup> oasis may not be good, but bare ocamlbuild is not much better.
<whitequark> companion_cube: what topkg does.
<whitequark> you don't need a fucking configure script (some kind of idiotic catering to the mistakes of autoconf) and a persistence layer to decide to build or not build a target
<Drup> (I tend to agree with that :p)
<hugomg> can oasis also describe libraries/dependencies if Im on windows with godi instead of using opam/mirage?
<Drup> oasis doesn't care about opam/godi
<Drup> so yes
<companion_cube> I don't know what topkg does
<hugomg> if it can then maybe I should go give it another look
<whitequark> companion_cube: https://github.com/dbuenzli/topkg
<companion_cube> but when I develop, I use the configure, not opam
<rgrinberg> Drup: dont you think its easier to salvage ocamlbuild than oasis?
<Drup> rgrinberg: No.
<rgrinberg> yeah the interface is crap and its slow but you can improve those things
<rgrinberg> oasis has one decent thing about it, the _oasis file format - that's it.
<Drup> ahah
<Drup> no, not the _oasis file format
<Drup> and least not how it's done now
<whitequark> _oasis file format is not good
<rgrinberg> not g
<companion_cube> what's wrong with it?
<rgrinberg> ok, not good
<whitequark> it tries to be a programming language and fails at it very badly
<rgrinberg> but better than anything else i.e. META
<Drup> ^
<hugomg> drup: I was thinking about how oasis can spit out an opam package, which means that dependencies get downloaded if you don't have them isntalled yet. From what you said it seems it cant do that on godi :(
<whitequark> companion_cube: try to write a test that depends on a binary
<companion_cube> topkg doesn't seem to make anyhing for me
<rgrinberg> it's basically a sucky clone of the cabal format
<Drup> hugomg: it can't do that with opam either ...
<whitequark> try to write a conditional that compares versions
<whitequark> etc
<vbmithr> the only thing I use OASIS for is C bindings
<companion_cube> I don't want to write a META file
<hugomg> oh, then I must have misread something
<Drup> I know think that configuration should be done in OCaml
<Drup> and that's all.
<Drup> now*
<companion_cube> sure
<whitequark> yeah, that's the least evil
<companion_cube> when assemblage is ready I'll consider switching
<companion_cube> but certainly not to topkg
<Drup> oasis is still much better than anything else for C bindings, clearly
<Drup> *not* Ctypes
<Drup> for Ctypes, it's horrible
<rgrinberg> what's even worse is that yeah it's bad for a use case
<rgrinberg> and you can't do anything about it but hack oasis
<whitequark> you can stop using oasis
<rgrinberg> which is daunting
<whitequark> actually, you can just stop using computers, go outside, watch the stars
<rgrinberg> that's the only reasonable alternative
<Drup> you usually rather hack the underlying layer
<Drup> ie, ocamlbuild
<Drup> but it's not prettier
<whitequark> Drup: and then you have to untangle the mess that oasis makes.
<companion_cube> I still prefer writing _oasis than myocamlbuild.ml
<Drup> oasis mess or not, it would be equaly painful
AlexRussia has quit [Ping timeout: 240 seconds]
axiles has quit [Remote host closed the connection]
<rgrinberg> ocamlbuild needs an _oasis target :D
<Drup> x)
maattdd has joined #ocaml
AlexRussia has joined #ocaml
<rgrinberg> Drup: could a META file be a reasonable ocamlbuild target?
<companion_cube> even with sub-libraries, I hope
<Drup> since ocamlbuild doesn't have any information to do that, I'm not sure how you would do it
<rgrinberg> what information?
<Drup> what to put in which packages, with which dependencies
<companion_cube> well .mllib could be slightly enriched
<companion_cube> but of course half the information is in _tags
<Drup> .mllib should die
<Drup> it's pure non sense
<companion_cube> well, it's how ocamlbuild works
<companion_cube> if you want to do something clean, with a fresh start, I think assemblage is welcoming contributors
<Drup> why do you think I believe ocamlbuild is not salvageable ? >_>
<companion_cube> ocamlbuild, like ocaml, is not going to break the compatibility
<Drup> what are you trying to convince me ? :)
<companion_cube> to make assemblage work :p
<Drup> let me take some holiday before.
<rgrinberg> assemblage isn't really a build system though. at the end it generates a makefile
<whitequark> Drup: what's the problem with mllib?
<rgrinberg> which is less than ideal
<whitequark> ugh, makefiles
<whitequark> but it's at least better than ocp-build
<flux> rgrinberg, how about.. ninja!
<companion_cube> rgrinberg: it's fine
<rgrinberg> flux: not portable
<flux> I don't really have any experience, but apparently cmake can target it as well
<whitequark> flux: yay! let's make C++ a dependency of OCaml!
<companion_cube> I want a project management system that also builds stuff
<whitequark> if you mention cmake again, I will find you
<companion_cube> even if by calling Makefile
<companion_cube> make*
<whitequark> and force you to use cmake
<rgrinberg> ocamlbuild is basically our portable makefile
<rgrinberg> without crazy syntax and parallelism
<flux> whitequark, well, the topic in my view was meta build systems ;)
<Drup> generating a makefile is ok
<companion_cube> ocamlbuild's syntax is at least as crazy as Make's
<rgrinberg> companion_cube: ocaml's syntax is crazy?
<Drup> you can ensure it uses only the portable features and that // works
robink has joined #ocaml
<Drup> it's writing makefile that is insane :p
<whitequark> Drup: no amount of makefiles should be used in any builds at all
<companion_cube> no, the DSL of ocamlbuild is weirdd though
robink has quit [Changing host]
robink has joined #ocaml
<whitequark> personally I am disappointed that ocaml is no longer built with myocamlbuild
<Drup> whitequark: it never was ?
<rgrinberg> whitequark: why? it's a good first step to kick ocamlbuild out of the distribution
<rgrinberg> e.g. no ciruclar dependencies
<Drup> whitequark: camlp4 was built using ocamlbuild
<Drup> but not the compiler
<whitequark> Drup: oh, that's a pity
<whitequark> rgrinberg: I don't think it should be
<rgrinberg> whitequark: but then how do we get ocamlbuild updates in a timely manner
<whitequark> rgrinberg: do you have something you want integrated in ocamlbuild?
<Drup> and no "oh no, I can't use <feature X that makes ocamlbuild less crap> because It's only in this recent version of the compiler"
<rgrinberg> whitequark: not particularly. i do want to use the latest version of ocamlbuild on older ocaml's though
<whitequark> Drup: that's a better argument
<whitequark> rgrinberg: well, is there something you want of ocamlbuild that's only present in the latest version? :]
<Drup> (I consider you have a stockolm syndrom regarding ocamlbuild, though :>)
<rgrinberg> sure, ignoring VCS dirs by default :D
<companion_cube> oh, it doesn't?
* companion_cube used to oasis
<whitequark> rgrinberg: well, that will likely be in 4.02.2
<whitequark> companion_cube: nope, but most of the time it doesn't matter
<rgrinberg> whitequark: and will never be on 4.01 :(
<whitequark> rgrinberg: right, I somewhat forget pre-4.02 ocamls exist
<Drup> =')
MercurialAlchemi has quit [Ping timeout: 264 seconds]
MercurialAlchemi has joined #ocaml
<Drup> you know that someone in this conversation don't use ocamlbuild plugin because he wants to support ocaml < 4.01
<Drup> (and instead copy the code of the plugin :D)
<Drup> I mean, you should know, you copied the code for him :3
<companion_cube> also because I tend to avoid myocamlbuild as much as possible
<Drup> wrong argument, you would have less myocamlbuild with that
<companion_cube> maybe
<companion_cube> anyway, I can't seem to write this CCPervasives.Hashtbl thing -_-
<rgrinberg> companion_cube: one day you will hit a use case that oasis doesn't support or has some blocking bug
<rgrinberg> maybe you'll change your mind :D
<companion_cube> maybe
<Drup> rgrinberg: I did, hence my current opinion :D
<companion_cube> until then I manage to do it with _tags
maattdd has quit [Ping timeout: 265 seconds]
nojb has quit [Quit: nojb]
boadie has joined #ocaml
<artagnon> whitequark: Must I use llvm-c, or can I do the task using the C++ API?
<artagnon> GetPointerToGlobal is part of the C API.
<artagnon> It expects an EE and a ValueRef.
<whitequark> I think either will work
<nicoo> artagnon: Change what? Also, you should have used a redirect ban for Yoric
<whitequark> yeah, I know.
<artagnon> nicoo: We're trying to debug a problem with the ee.
<artagnon> whitequark: Where do I get the ValueRef from?
<nicoo> whitequark: Wouldn't -j be better than -j$A_LOT to stress the dep resolution?
<artagnon> The function type is Function *
<whitequark> nicoo: make doesn't support it
<artagnon> Also, there is a LLVMRunFunction.
<whitequark> artagnon: you can cast a LLVMFunctionRef to LLVMValueRef, I think
<whitequark> wait
<whitequark> there's no LLVMFunctionRef
<artagnon> Just a Function *
<whitequark> Function* is a C++ object
<whitequark> LLVMGetPointerToGlobal is a C function
<whitequark> you shouldn't mix the two, and why would you want to?
<artagnon> Okay ...
<artagnon> Ouch, then I have to rewrite this thing using the C API
<whitequark> or vice versa
<whitequark> there is an ExecutionEngine::getPointerToGlobal()
<nicoo> whitequark: Wut? AFAIK, it is in GNU make since before I was born
<artagnon> Oh cool.
* artagnon looks for that
<whitequark> nicoo: oh, huh
<nicoo> artagnon: Sorry, I meant to hilight adrien
<whitequark> nicoo: right, I was trying -j0
<artagnon> np, I figured as much.
<whitequark> which is the invocation for ocamlbuild
<nicoo> adrien: Change which +O thing? Also, you should have used a redirect ban for Yoric
<nicoo> whitequark: Bwahahaha
<adrien> nicoo: -O/-O2 :)
<adrien> nicoo: give me the line! :D
<adrien> btw, it's time
<artagnon> /// This function is deprecated for the MCJIT execution engine. Use
<artagnon> /// getGlobalValueAddress instead.
<artagnon> void *getPointerToGlobal(const GlobalValue *GV);
<artagnon> Damn it man. Does nothing stay constant?
kakadu has quit [Remote host closed the connection]
<artagnon> I hope I can reproduce it with GVA.
<whitequark> MCJIT did not leave a stone unturned
tani has quit [Quit: Verlassend]
travisbrady has joined #ocaml
<artagnon> GlobalValueAddress takes a string.
<artagnon> And gptg must be calling into gva code with the same string :|
<artagnon> ie. ""
<whitequark> it doesn't call gva
<whitequark> it calls dlsym
<whitequark> well, same effect
<artagnon> Well, so that's the bug.
<artagnon> What's the workaround if I want to emit anonymous functions?
<whitequark> give them names
<artagnon> Fine, I'll keep a global counter, and stringify it when I'm emitting functions.
<whitequark> exactly
<whitequark> or easier
<whitequark> just name them all "fn"
<whitequark> LLVM will take care of renaming.
<artagnon> Same problem during lookup, no?
<whitequark> no
<whitequark> anonmyous functions aren't actually renamed
<artagnon> Ah, I see.
<whitequark> in fact, they do not have any name at all, it is a figment of serialization format
<whitequark> but if you *do* give them *any* name, LLVM will ensure they are unique
<artagnon> How do I make sure that I'm not redefining the function then?
<whitequark> you can't
<artagnon> I currently look up the name before defining it.
<whitequark> I mean, you can't accidentally redefine a function
<artagnon> Hm.
BitPuffin has quit [Ping timeout: 244 seconds]
cdidd has quit [Ping timeout: 250 seconds]
<artagnon> It doesn't auto-rename :|
<whitequark> are you sure?
<whitequark> can you dump a module?
<artagnon> One sec.
<artagnon> Hm, it does. Bug in my program.
bytbox has quit [Remote host closed the connection]
robink has quit [Ping timeout: 258 seconds]
cdidd has joined #ocaml
travisbrady has quit [Quit: travisbrady]
nojb has joined #ocaml
robink has joined #ocaml
<nojb> utop # "Ñ";;
<nojb> - : bytes = "\yc3\145"
<nojb> what exactly is “\yc3”
<nojb> ?
<whitequark> '\y' 'c' '3'
<whitequark> although, hm, \y is not a valid escape
<whitequark> weird
<nojb> yeah :)
<whitequark> on my machine it is
<whitequark> - : bytes = "\195\145"
<nojb> and I don’t think it should be three bytes long, it should be a single byte if input is being interpreter as utf8
<whitequark> two bytes
<nojb> ok that looks better
MercurialAlchemi has quit [Ping timeout: 240 seconds]
<nojb> I wonder what is wrong here …
<whitequark> Ñ is U+00D1, that's over 7F
<nojb> yes precisely it should be two bytes
appd has joined #ocaml
<nojb> utop # "\195\145";;
<nojb> - : bytes = "\yc3\145"
<nojb> ??
<nojb> in fact
<nojb> utop # "\195";;
<nojb> - : bytes = "\yc3"
anemator has joined #ocaml
<nojb> I have no idea what is going on
maattdd has joined #ocaml
<whitequark> String.escaped "\195" ?
<nojb> utop # String.escaped "\195";;
<nojb> - : bytes = "\yc3"
<whitequark> that makes no sense
anemator has quit [Client Quit]
<whitequark> what about raw toplevel?
<nojb> # "\195";;
<nojb> - : string = "?"
<companion_cube> shouldn't it be some latin-1 char?
<companion_cube> - : bytes = "\195" ← I get this
<whitequark> same
<whitequark> ocaml version?
<nojb> 4.02.1
artagnon has left #ocaml [#ocaml]
vfoley- has quit [Ping timeout: 272 seconds]
<nojb> same problem with 4.01.0 switch
<nojb> very strange
nojb has quit [Quit: nojb]
diethyl_ has quit [Ping timeout: 264 seconds]
kalzz has quit [Ping timeout: 244 seconds]
<struktured> companion_cube: ping
kalzz has joined #ocaml
<companion_cube> yes?
diethyl has joined #ocaml
nojb has joined #ocaml
<struktured> companion_cube: does this function already exist and I didn't realize it? https://github.com/struktured/gen/compare/c-cube:master...master#diff-1
<struktured> companion_cube: its basically sort of like a fold exxcept it never ends up folding
BitPuffin has joined #ocaml
tharugrim has quit [Ping timeout: 244 seconds]
tharugrim has joined #ocaml
BitPuffin has quit [Ping timeout: 244 seconds]
<nojb> $ ocaml
<nojb> OCaml version 4.02.1
<nojb> # String.escaped "\195";;
<nojb> - : string = "?"
<nojb> what the hell?
<nojb> String.escaped is not supposed to output “?” as far as I can see
<struktured> I don't see that with utop at least
<nojb> I know …
<nojb> there is something fishy with my terminal or something ...
lordkryss has quit [Quit: Connection closed for inactivity]
<nojb> ok found something: if I *unset* “Set locale environment variables on startup” in my os x terminal settings window then it works as it should …
<nojb> something fishy is going on …
<nojb> I wonder if ocaml c bits consult locale env variables …