adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml MOOC http://1149.fr/ocaml-mooc | OCaml 4.02.3 announced http://ocaml.org/releases/4.02.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
pyon has quit [Quit: Loops are hard, let's GOTO shopping!]
ncthom91 has joined #ocaml
pyon has joined #ocaml
groovy2shoes has quit [Quit: Leaving]
ncthom91 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
kakadu has quit [Remote host closed the connection]
madroach has quit [Ping timeout: 246 seconds]
madroach has joined #ocaml
jonludlam has quit [Remote host closed the connection]
lokien_ has quit [Quit: Connection closed for inactivity]
tobiasBora has joined #ocaml
manizzle has joined #ocaml
lobo has quit [Quit: leaving]
Denommus has joined #ocaml
struk|desk|away is now known as struk|desk
groovy2shoes has joined #ocaml
struk|desk2 has joined #ocaml
struk|desk has quit [Ping timeout: 255 seconds]
groovy2shoes has quit [Quit: Leaving]
FreeBirdLjj has joined #ocaml
Guest8835 is now known as c-c
<sgronblo> pierpa: did you notice anything else where my solution seemed significantly different from yours?
Denommus has quit [Ping timeout: 246 seconds]
struk|desk2 is now known as struk|desk|away
Stalkr_ has joined #ocaml
Stalkr^ has quit [Ping timeout: 265 seconds]
Stalkr_ has quit [Quit: Leaving...]
JacobEdelman has joined #ocaml
psy_ has joined #ocaml
<pierpa> sgronblo: your archive_map is not as efficient as possible. If your solution works on the simplified tests but can't do the full problem, *maybe* that's the cause.
<pierpa> sgronblo: also, there the #ocamlmooc channel for talking about the mooc :)
teknozulu has joined #ocaml
Algebr` has joined #ocaml
egbarron has joined #ocaml
<teknozulu> What's an idiomatic way to handle situations where you have to add a pattern match branch just to appease the compiler/make the match exhaustive? Right now I have a list of lists. I match on it with "hd :: tl", and after concating tl I have two lists. I then do something like let [a; b] = List.map [hd; concated] ..., which caused a non-exhaustive pattern match
<pierpa> -> assert false
struk|desk|away is now known as struk|desk2
<teknozulu> I'd really, really like not having to match separately on _ when its clear that the map call will return a list of length two
<teknozulu> am I just going to have to deal with it?
<pierpa> anyway, using lists of fixed length, seems fishy to me
<Algebr`> does lldb work with native ocaml programs
<Algebr`> yes, using lists of fixed length is fishy. Can also just satisfy compiler with _ -> assert false
<teknozulu> Well, there initially isn't a list of fixed length. There is a list of lists, and I'm concatenating its tail to create one list, while the head is the other
<Algebr`> so a tuple of lists
psy_ has quit [Remote host closed the connection]
nullcatxxx_ has joined #ocaml
<Algebr`> is this available to use? https://hal.inria.fr/hal-01245840/document
egbarron has left #ocaml ["Textual IRC Client: www.textualapp.com"]
struk|desk2 is now known as struk|desk|away
NingaLeaf has quit [Ping timeout: 250 seconds]
<sgronblo> pierpa: the channel seems kinda dead
<sgronblo> i was able to run the klotski file locally though and after 31 mins it also died because of stack overflow but i did not get a final stacktrace
<sgronblo> maybe im missing some flags
<pierpa> flags?
<please_help> you need the 'b' flag to get a stacktrace (and compile with -g).
ygrek has joined #ocaml
kushal has joined #ocaml
mac10688 has quit [Ping timeout: 272 seconds]
johnelse has quit [Ping timeout: 276 seconds]
kushal has quit [Quit: Leaving]
kushal has joined #ocaml
cantstanya is now known as frank
frank is now known as cartwright
struk|desk|away is now known as struk|desk2
johnelse has joined #ocaml
johnelse is now known as Guest99656
<sgronblo> please_help: does it work with ocaml or do i have to compile using ocamlc?
ygrek has quit [Ping timeout: 272 seconds]
<Algebr`> sgronblo: maybe this PDF will be helpful, http://oud.ocaml.org/2012/slides/oud2012-paper5-slides.pdf
shinnya has joined #ocaml
lostman has joined #ocaml
<lostman> got a question about react+js_of_ocaml+tyxml. about a year ago when I looked into this it was based on signals. now it's using reactiveData RList. That seems to be a major pain. Suppose I have a signal of a div. how do I make use of it? R.Html5.div wants and RList; and if I convert my signal to RList using RList.singleton_s then the result is broken (it
<lostman> keeps appending elements)
<lostman> any pointers?
struk|desk2 has quit [Remote host closed the connection]
nullcatxxx_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
pierpa has quit [Ping timeout: 272 seconds]
darkf has joined #ocaml
MercurialAlchemi has joined #ocaml
cody` has joined #ocaml
Sorella has quit [Quit: Connection closed for inactivity]
JacobEdelman has quit [Quit: Connection closed for inactivity]
s1n4 has joined #ocaml
nullcatxxx_ has joined #ocaml
<Algebr`> do the ocamlpro internships pay and how long are they
ggole has joined #ocaml
<NhanH> Is there a recommend library for websocket? I'm trying to use https://github.com/vbmithr/ocaml-websocket but it seems to have issue with ppx_deriving and camlp4
Algebr` has quit [Ping timeout: 240 seconds]
<MercurialAlchemi> NhanH: don't think there is another websocket library
<NhanH> hmm, in that case, is there an example/ suggested version I could use that library on?
<NhanH> I'm trying 4.01.0 and 4.02.03 (the newest)
<NhanH> on 4.01, I can import websocket, but then something is wrong with lwt
<NhanH> on 4.02, it's all wonky with ppx_deriving
<lostman> NhanH: I've been using vbmirhr's websocket with lwt and ppx and it works fine
<lostman> are you using lwt.ppx and not camlp4?
<NhanH> lostman: I'm using camlp4
<NhanH> lostman: can you let me know which version you're using all of them on?
<lostman> I don't think ppx and camlp4 work well together
<NhanH> yeah, I did not intentionally try to use ppx
<lostman> The OCaml toplevel, version 4.02.3, and ocaml-websocket built from source
<lostman> can you switch your lwt to ppx?
<NhanH> I have no idea how I get ppx one
<NhanH> hmm, how would I do that?
<NhanH> I was using opam to manage and install them
<lostman> I just put:
<lostman> true: \
<lostman> package(ppx_deriving, ppx_deriving.std), \
<lostman> package(ppx_deriving_yojson, ppx_deriving_yojson.runtime), \
<lostman> package(lwt.ppx, js_of_ocaml.ppx)
<lostman> in my _tags
<NhanH> thanks, I will try that
<lostman> and then you need to use ppx lwt syntax (let%lwt = ... instead of lwt = ... and so on)
antkong_ has quit [Quit: antkong_]
<adrien> gasche: sorry, unsurprisingly ran out of time; I've started looking at the changes and I'm wondering whether you're only targetting gnu make or posix make
<adrien> compat*
nullcatxxx_ has quit [Ping timeout: 272 seconds]
nullcatxxx_ has joined #ocaml
Algebr` has joined #ocaml
Algebr` has quit [Ping timeout: 260 seconds]
<edwin> mrvn: I think it was kakadu with the %(l)d format problem
ely-se has joined #ocaml
rwmjones|holiday is now known as rwmjones
tmtwd has joined #ocaml
kakadu has joined #ocaml
sgnb has joined #ocaml
teknozulu has quit [Ping timeout: 260 seconds]
ely-se has quit [Quit: leaving]
lokien_ has joined #ocaml
clockish has quit [Quit: bye]
clockish has joined #ocaml
d0nn1e has quit [Ping timeout: 256 seconds]
d0nn1e has joined #ocaml
antkong_ has joined #ocaml
<ggole> Ooh, it's always exciting when you discover a new error message.
<companion_cube> :D
cody` has quit [Quit: Connection closed for inactivity]
dsheets has joined #ocaml
<kakadu> tactics/hipattern.ml: OCaml abstract syntax tree implementation file (Version 019)
<kakadu> How should I deserialize it for debugging purposes?
<companion_cube> deserialize what?
<kakadu> AST
<kakadu> Parsedtree to be more precise
<companion_cube> oh, the OCaml parsetree itself? I don't know if there's a parser for it
<kakadu> I thought maybe it is serialized using Marshal module...
<companion_cube> I don't know where your tactics dir comes from
<kakadu> coq
<companion_cube> sooooo it's the Coq AST, not the OCaml one...
<kakadu> Nooooooooo
<kakadu> I'm compiling coq
<kakadu> it is an OCaml AST after camlp5r invocation
<companion_cube> then maybe it uses marshal, indeed, afaik .vo files are marshallized AST
<companion_cube> I meant, it's an AST representing Coq terms, written in OCaml
larhat1 has joined #ocaml
larhat1 has quit [Client Quit]
zpe has joined #ocaml
tmtwd has quit [Ping timeout: 240 seconds]
Algebr` has joined #ocaml
Algebr` has quit [Ping timeout: 250 seconds]
ggole_ has joined #ocaml
ggole has quit [Ping timeout: 265 seconds]
_andre has joined #ocaml
sh0t has joined #ocaml
ely-se has joined #ocaml
<Drup> lostman: use the dev version of reactiveData
<Drup> it's a known bug, we haven't done a release yet
<companion_cube> hmm, looks like ocaml.org doesn't explain how to get backtraces
kakadu has quit [Remote host closed the connection]
kakadu has joined #ocaml
BitPuffin has joined #ocaml
lokien_ has quit [Quit: Connection closed for inactivity]
ggole__ has joined #ocaml
ggole_ has quit [Ping timeout: 245 seconds]
antkong_ has quit [Quit: antkong_]
ggole_ has joined #ocaml
ggole__ has quit [Ping timeout: 240 seconds]
ggole__ has joined #ocaml
JacobEdelman has joined #ocaml
ggole_ has quit [Ping timeout: 276 seconds]
Algebr` has joined #ocaml
avsm has joined #ocaml
Algebr` has quit [Ping timeout: 240 seconds]
kakadu has quit [Remote host closed the connection]
kakadu has joined #ocaml
kdas_ has joined #ocaml
kushal has quit [Ping timeout: 276 seconds]
kdas_ has quit [Read error: Connection reset by peer]
kushal has joined #ocaml
Haudegen has quit [Ping timeout: 256 seconds]
mort___ has joined #ocaml
kakadu has quit [Remote host closed the connection]
kakadu has joined #ocaml
dsheets has quit [Ping timeout: 260 seconds]
thesnowdog1 has quit [Ping timeout: 260 seconds]
thesnowdog1 has joined #ocaml
Haudegen has joined #ocaml
BitPuffin|osx has quit [Ping timeout: 246 seconds]
thesnowdog1 has quit [Ping timeout: 264 seconds]
thesnowdog1 has joined #ocaml
Stalkr_ has joined #ocaml
ggole_ has joined #ocaml
mac10688 has joined #ocaml
ggole__ has quit [Ping timeout: 260 seconds]
mac10688 has quit [Read error: Connection reset by peer]
adwhit has joined #ocaml
<adwhit> hi, I'm having trouble with core. It appears to be installed but when I try to compile it can't seem to find it?
<adwhit> ocamlfind opt -thread -package core thing.ml
<kakadu> -linkpkg
<adwhit> No implementations provided for the following modules: Core_kernel referenced from thing.cmx Core referenced from thing.cmx
<adwhit> ah, thanks
dsheets has joined #ocaml
<adwhit> that's the second time I've got bitten by that!
<MasseR> adwhit: how come ocamlfind opt, instead of ocamlbuild?
ryanartecona has joined #ocaml
octachron has joined #ocaml
Sorella has joined #ocaml
<adwhit> MasseR: I'm a newbie and don't really understand ocamlbuild
<adwhit> ocamlbuild -pkg core thing.native throws a tonne of strange errors
<MasseR> adwhit: by choosing ocamlfind instead of ocamlbuild you have chosen to climb the tree butt first :)
<MasseR> adwhit: ocamlbuild -use-ocamlfind -pkg core thing.native
<MasseR> Or even, corebuild thing.native
<MasseR> (corebuild is just a shell wrapper over ocamlbuild)
<adwhit> MasseR: I'm sure you're right! It seems to work with "ocamlbuild -tags thread -use-ocamlfind -pkg core thing.native" but that doesn't seem any easier than ocamlfind...
<MasseR> adwhit: it handles building and linking, etc. for you
<MasseR> It's good to know how to do the build manually, but if you are a noob as you said, focus on the code first, and build internals later
<MasseR> In my opinion
<adwhit> MasseR: "corebuild thing.native" seems to work and is actually possible to remember, I'll use that :)
<MasseR> adwhit: to be honest, core seems to require a bit more flags to build
<MasseR> cat $(which corebuild)
<adwhit> :/
<adwhit> Yuck: -cflags "-w A-4-33-40-41-42-43-34-44"
malc_ has joined #ocaml
<blub> thats just turning on a bunch of warnings
<Drup> core doesn't require anything
adwhit has quit [Ping timeout: 252 seconds]
<Drup> it's just the coding style recomended by jst/core
Algebr` has joined #ocaml
Algebr` has quit [Ping timeout: 255 seconds]
adrien has quit [Quit: leaving]
adrien has joined #ocaml
igoroliveira has joined #ocaml
sh0t has quit [Quit: Leaving]
pyon is now known as fix-pyon-t
FreeBirdLjj has quit [Remote host closed the connection]
yomimono has joined #ocaml
sz0 has joined #ocaml
ryanartecona has quit [Ping timeout: 264 seconds]
<orbitz> Does anyone know what ctypes.foreign actually does? All I can find is that it's a virtual package but I don't undertand what it's enabling.
<mrvn> dlopens argv[0] and looks up symbols for the functions you call.
<mrvn> (and fails here)
<orbitz> So it opens up iself (my progarm) and loads symbols in it, is that correct?
<dsheets> orbitz it enables libffi-based dynamic calls and passing closures/functions as function pointers to c
<mrvn> that's what it looks like to me in strace
<orbitz> dsheets: does that mean Ican use closuers as callbacks?
<dsheets> dynamic bindings rather than dynamic calls
<dsheets> orbitz, yes
<orbitz> Ohh wonderful. I'm tryign to wrap libuv for a fun project in ctypes and that would be helpful
<dsheets> you must make sure to keep a reference to the closure, however! otherwise, bad things happen
<orbitz> dsheets: is that libffi functionality or someting ctypes-foreign is doign?
<mrvn> orbitz: you can call C functions without having to write stubs, access C structures, use ocaml functions as callback and in newer versions even generate C stubs for too complex functions.
<dsheets> is what libffi functionality?
<mrvn> orbitz: ctypes-foreign is the ocaml side for libffi so to speak
<orbitz> dsheets: closuers as callbacks
<orbitz> mrvn: i know what ctypes does, but what was unclear to me is waht ctypes.foreign does, because the opam package description is not helpful.
<dsheets> orbitz, ctypes-foreign/ctypes.foreign uses libffi to generate a stub function which has a stable function pointer
<orbitz> And why I would need it
jrslepak has joined #ocaml
<dsheets> ctypes.foreign also uses libffi's call frame generation to allow dynamic calls but that it is rather rare that this is necessary rather than a convenience to avoid stub gen build systems with 4+ stages
<dsheets> s/but that/but/
<orbitz> dsheets: Cool, so if I want callbacks which are closures, I need ctypes.foreign
<orbitz> is taht correct?
<dsheets> if you cross the interface frequently or quickly, you should move to stub gen which will remove the ctypes.foreign dep and libffi. if you need callback support, you need ctypes.foreign and libffi even if you don't use dynamic bindings
<dsheets> orbitz, that is correct
<orbitz> Is thsi documented anywhere?
<orbitz> ctypes documentation is great, I just coudln't seem to find this
<dsheets> orbitz, i don't know... i'm sure jeremy would appreciate an issue with the bits that are missing info and where you expected to find them
profan_ is now known as profan
<orbitz> dsheets: thanks.
yomimono has quit [Quit: Leaving]
<dsheets> 0.5.0 should come out soon with improved docs and other goodness
psy_ has joined #ocaml
psy_ has quit [Max SendQ exceeded]
psy_ has joined #ocaml
<mrvn> dsheets: do you know if one has to do anything special when using Ctypes.Foreign with c++ (other than extern "C")
zpe has quit [Ping timeout: 246 seconds]
zpe has joined #ocaml
rbocquet has quit [Quit: WeeChat 1.1.1]
<dsheets> mrvn, I don't know much about that. Maybe exceptions will hurt you?
<mrvn> dsheets: I get an unresolved symbol at runtime for the function
<dsheets> have you name-mangled?
<mrvn> dsheets: extern "C"
<dsheets> but you get an unresolved symbol at run-time? where are you putting extern "C"?
<dsheets> ahh, are you linking this file statically?
<mrvn> whatever oasis / ocamlbuild does
<dsheets> yeah, you need to tell the linker to keep the symbols in the table otherwise they are local and can't be bound with libffi :-/
<dsheets> your solutions are to pass more linker flags (ld -E) or use stub gen
rbocquet has joined #ocaml
FreeBirdLjj has joined #ocaml
fix-pyon-t is now known as quater-nyan
<mrvn> how do I do that? With "CCLib: ... -E" complains about -E being unknown and with "CCLib: ... --clib -E" gcc: error: unrecognized command line option '-cclib'
govg has joined #ocaml
<mrvn> s/comaplins/ocamlfind complains/
Algebr` has joined #ocaml
Algebr` has quit [Ping timeout: 246 seconds]
ggole__ has joined #ocaml
ggole_ has quit [Ping timeout: 250 seconds]
<dsheets> mrvn, -cclib?
ggole has joined #ocaml
<mrvn> dsheets: the ocamlfind option to pass linker options
<dsheets> yes, i believe it has one dash
<mrvn> gcc: error: unrecognized command line option '-cclib'
pierpa has joined #ocaml
ggole__ has quit [Ping timeout: 256 seconds]
<dsheets> oh, you need -Wl,-E
<mrvn> yeah, but I don't get that far
<dsheets> it looks like it makes it to gcc
<mrvn> but with -cclib in front
psy_ has quit [Read error: No route to host]
<dsheets> i thought CCLib: ... -E complained about -E being unknown to gcc?
<mrvn> "NativeOpt: -cc g++ -cclib -Wl,-E" seems to get accepted.
<mrvn> Fatal error: exception Dl.DL_error("./test.native: undefined symbol: qApplication_constructor")
<dsheets> ok, no idea, i don't use oasis for reasons like this
lokien_ has joined #ocaml
<mrvn> No such symbol in test.native. :(
<dsheets> do the symbols show up in nm --dynamic?
<dsheets> or, did the symbol set change?
<dsheets> it may be that the symbol export option isn't making it to the .o link
<dsheets> and only the final one
<mrvn> 000000000043bce0 T camlQT5__QApplication__qApplication_init_1093
larhat has quit [Quit: Leaving.]
<mrvn> _build/src/qt5/QT5.o doesn't contain it anymore, only the qApplication_stubs.o
larhat has joined #ocaml
<dsheets> can you turn on -classic-display for ocamlbuild or similar to get the actual command lines executed?
<mrvn> and libQT5_stubs.a
tmtwd has joined #ocaml
<mrvn> /usr/bin/ocamlfind ocamlmklib -o src/qt5/QT5_stubs -lQt5Widgets -lQt5Gui -lQt5Core -lstdc++ src/qt5/src/QApplication_stubs.o
<mrvn> how do I get -E in there?
<dsheets> `flag ["c"; "ocamlmklib"] & A"-Wl,-E"` in myocamlbuild.ml?
<dsheets> dispatch begin function After_rules -> flag...
<dsheets> dunno how to do it via the _oasis file
<orbitz> I do wish ctypes namespaced itself a bit better.
<mrvn> Actually will that even help? It's putting qApplication_constructor into the libQT5_stubs.a file so it isn't dynamic.
<dsheets> mrvn, try it and see? the use of -E is to put non-dynamic symbols in the dynamic table. I think that includes archives but I'm not sure.
s1n4 has quit [Ping timeout: 272 seconds]
<mrvn> Fatal error: exception Dl.DL_error("./test.native: undefined symbol: qApplication_constructor")
<mrvn> I don't see how -E has any effect on building the .a file
<dsheets> hmm you're right. it should be here: /usr/bin/ocamlfind ocamlopt -g -I src/qt5 -linkpkg -package ctypes.foreign src/qt5/QT5.cmxa src/test/test.cmx -o src/test/test.native
<mrvn> I think the symbol isn't pulled in from the .a file at all because nothing in the test.native.o file uses it.
<dsheets> or in the cmxa link flags?
boegel has quit [Ping timeout: 260 seconds]
<mrvn> /usr/bin/ocamlfind ocamlopt -a -cclib -lQT5_stubs -cclib -lQt5Widgets -cclib -lQt5Gui -cclib -lQt5Core -cclib -lstdc++ -cc g++ -cclib -Wl,-E src/qt5/QT5.cmx -o src/qt5/QT5.cmxa
<mrvn> already in there
boegel has joined #ocaml
jeffmo has joined #ocaml
<dsheets> mrvn, when you do ocamlobjinfo QT5.cmxa it shows up in the extra options line?
<mrvn> Extra C object files: -lQT5_stubs -lQt5Widgets -lQt5Gui -lQt5Core -lstdc++ -Wl,-E -Wl,-E
exm has left #ocaml [#ocaml]
<dsheets> -ccopt instead of -cclib? I think they should result in identical invocations but... maybe not
Johann has quit [Ping timeout: 245 seconds]
ely-se has quit [Quit: leaving]
w1gz has quit [Ping timeout: 265 seconds]
boegel has quit [Ping timeout: 265 seconds]
<mrvn> I don't think that is the problem. The last link stage simply never pulls in the qApplication_constructor from the QT5_stubs.a because nothing from the file is referenced.
Algebr` has joined #ocaml
<dsheets> are you on Ubuntu?
<mrvn> Debian
<mrvn> Adding -Wl-E to the test.native link command makes no change though.
<dsheets> hmmm... it could be -Wl,--no-as-needed would help
<dsheets> which would force the link even if the objects aren't referenced
w1gz has joined #ocaml
<mrvn> nope
<dsheets> Ubuntu moved to --as-needed and it caused havoc but i don't know of others
<dsheets> do any of the symbols show up in the local sym table?
<mrvn> no
Johann has joined #ocaml
boegel has joined #ocaml
<mrvn> + gcc -o 'src/test/test.native' '-Lsrc/qt5' '-L/usr/lib/ocaml/ctypes' '-L/usr/lib/ocaml' '/tmp/camlstartup03cac0.o' '/usr/lib/ocaml/std_exit.o' 'src/test/test.o' 'src/qt5/QT5.a' '/usr/lib/ocaml/ctypes/ctypes-foreign-unthreaded.a' '/usr/lib/ocaml/ctypes/ctypes-foreign-base.a' '/usr/lib/ocaml/ctypes/ctypes.a' '/usr/lib/ocaml/str.a' '/usr/lib/ocaml/bigarray.a' '/usr/lib/ocaml/unix.a' '/usr/lib/ocaml/stdlib.a' '-lQT5_stubs'
<mrvn> Those symbols realy should end up in the binary.
FreeBirdLjj has quit [Remote host closed the connection]
w1gz has quit [Ping timeout: 250 seconds]
zpe has quit [Remote host closed the connection]
w1gz has joined #ocaml
<dsheets> They are in QT5_stubs.a and QT5.a and reffed from QT5.cmxa?
<mrvn> only QT5_stubs.a
<mrvn> but '-Wl,-E' '-Wl,--no-as-needed' '-lQT5_stubs' should put them all into the symbols table, right?
<dsheets> i believe that should link them regardless of use and then put them all in the local and dynamic tables
<mrvn> me too. but nothing.
<dsheets> you can also do -Wl,-E,--no-as-needed i think
<mrvn> looks like it's a gcc/ld problem.
<dsheets> when you re-run the gcc by hand with the linker flags, do they show up?
<mrvn> 1) what flags? 2) can't, the tempfiles are gone
<dsheets> they should still be in _build?
<mrvn> '/tmp/camlstartup03cac0.o'
<dsheets> the gcc line from before didn't have the -Wl,-E in it
<mrvn> it has it 3 times
<dsheets> oh, hmm... dunno what that is. is it normal?
cyraxjoe_ is now known as cyraxjoe
<dsheets> + gcc -o 'src/test/test.native' '-Lsrc/qt5' '-L/usr/lib/ocaml/ctypes' '-L/usr/lib/ocaml' '/tmp/camlstartup03cac0.o' '/usr/lib/ocaml/std_exit.o' 'src/test/test.o' 'src/qt5/QT5.a' '/usr/lib/ocaml/ctypes/ctypes-foreign-unthreaded.a' '/usr/lib/ocaml/ctypes/ctypes-foreign-base.a' '/usr/lib/ocaml/ctypes/ctypes.a' '/usr/lib/ocaml/str.a' '/usr/lib/ocaml/bigarray.a' '/usr/lib/ocaml/unix.a' '/usr/lib/ocaml/stdlib.a' '-lQT5_stubs
<dsheets> i don't see it here
<mrvn> line too long
<lostman> is there any way to get core_kernel working with js_of_ocaml?
<Drup> it's supposed to work already, I think ?
<Drup> what's the issue ?
sz0 has quit [Quit: My computer has gone to sleep. ZZZzzz…]
<lostman> I get an exception at runtime when I try to use anything from core_kernel
<dsheets> mrvn, indeed :-( i am stumped
<rks`> what's the exception?
<lostman> one second, I'll look it up
<lostman> 0,248,Assert_failure,-11,0,src/core_int63.ml,9,9
<Drup> krkrkr
<Drup> rks`, I give you the honor.
<dsheets> js doesn't have integers only floats so only 53 bits of int so 64 bit numbers aren't gonna happen. use a 32-bit core_kernel build and it should probably work
<rks`> :(
Denommus has joined #ocaml
<lostman> how do I get a 32-bit core_kernel?
<Drup> dsheets: it should not happen, though, core_kernel is supposed to be portable (including to js)
<Drup> (it keeps breaking, though)
<dsheets> yeah, it probably shouldn't happen but you'd have to do something tricksy in the build system and specify somehow that you want to target js
<dsheets> lostman, probably by hacking the core_kernel build system to disable the 64-bit detection and force 32-bit
<lostman> ugh
<lostman> instead of "any way" I should've asked for "easy way" ;)
<dsheets> and that may not work if there are more assumptions about the availability of int63/int64
<Drup> yeah, you can also not use core_kernel for js, since it's going to blow up the size of your js file ridiculously
<dsheets> or not use js because it doesn't have actual integers :-(
<lostman> but alternatives are... poor? I was looking for date manipulation library but couldn't find any
<dsheets> what kind of dates?
<lostman> core_kernel has the kitchen sink. does blow up the size though
<lostman> date-time with millisecond precision
<dsheets> lostman, ptime
<dsheets> d
<dsheets> goes to picosecond, supports rfc3339
<dsheets> should work on js
<Drup> that's for time, though, not date manipulation and timezone crazyness
<dsheets> "date manipulation" is kinda vague
<Drup> I don't remember if calendar runs well in js
<dsheets> http://calendar.forge.ocamlcore.org/ but i've never used it
tane has joined #ocaml
<Drup> it's rather comprehensive, but the API is not the best I have ever used
<lostman> I'll have a look at ptime. maybe I can combine it with calendar. i want to be able to say thinks like "there's XYZ days/min/hours before this event in the future" but also easily parse any date formats, including those that have better than 1 second precision
avsm has quit [Quit: Leaving.]
Armael has joined #ocaml
<lostman> calendar can't deal with less than second
Armael has quit [Client Quit]
Algebr` has quit [Remote host closed the connection]
Algebr` has joined #ocaml
<Drup> hum, you could pair a date with a field for sub-second informations
<Drup> nullcatxxx_: for your yet-to-be parser combinators library, do you assume a lexer ?
<Drup> lostman: the only other time library I know is odate, but I can't judge the quality
<Drup> date library*
tane has quit [Ping timeout: 255 seconds]
avsm has joined #ocaml
<mrvn> dsheets: can the Ctypes stubs generator be used to wrap c++ classes?
<dsheets> mrvn, not yet
<lostman> actually, why does core_kernel blow up the js size so much? shouldn't there be some dead code elimination going on? if I only use String for instance (split function is rather handy and there isn't one in stdlib)
<Algebr`> if all you want is split then just rip it out from stringext
<Drup> js_of_ocaml does more code elim than normal ocaml, but you can't eliminate side effectuf things, or even when there is an actual dependency.
<Drup> (or just use containers)
<Drup> containers plays nicely with js_of_ocaml (and with code size, for that matter)
<lostman> is contaienrs an alternative to core/batteries?
<Drup> yeah, it's smaller though
<Drup> (and no, batteries doesn't plays nicely with js_of_ocaml)
<lostman> last time I tried batteries worked ok with jsoo; haven't used it heavily though. BatList and BatMap maybe
<lostman> I'll check out containers though
tane has joined #ocaml
Haudegen has quit [Ping timeout: 240 seconds]
dsheets has quit [Ping timeout: 250 seconds]
jgjl has joined #ocaml
egbarron has joined #ocaml
sz0 has joined #ocaml
Haudegen has joined #ocaml
avsm has quit [Quit: Leaving.]
<Algebr`> Why doesn't ocaml use doxygen?
lokien_ has quit [Quit: Connection closed for inactivity]
ygrek has joined #ocaml
infinity0 has quit [Ping timeout: 276 seconds]
infinity0 has joined #ocaml
avsm has joined #ocaml
infinity0 has quit [Remote host closed the connection]
_andre has quit [Quit: leaving]
infinity0 has joined #ocaml
avsm has quit [Ping timeout: 240 seconds]
mort___ has quit [Ping timeout: 250 seconds]
<Leonidas> I wonder whether xmlm works in js_of_ocaml. Anyone tried?
<Drup> xmlm is pure ocaml and doesn't use unix, no reason it shouldn't work
BitPuffin has quit [Ping timeout: 265 seconds]
<Leonidas> Yeah, I had high hopes.
avsm has joined #ocaml
infinity0 has quit [Ping timeout: 250 seconds]
<Leonidas> I could rewrite my Coffeescript crap to js_of_ocaml then :)
BitPuffin|osx has joined #ocaml
malc_ has quit [Quit: leaving]
infinity0 has joined #ocaml
Algebr` has quit [Ping timeout: 255 seconds]
infinity0 has quit [Remote host closed the connection]
nullcatx_ has joined #ocaml
nullcatxxx_ has quit [Ping timeout: 246 seconds]
infinity0 has joined #ocaml
nullcatx_ has quit [Ping timeout: 256 seconds]
ggole has quit []
nullcatxxx_ has joined #ocaml
<nullcatxxx_> Drup : for now, yes. because Jeremy and I decide to try LR, not PEG
<Drup> which lexer were you planning on using ?
<nullcatxxx_> sedlex
<nullcatxxx_> the parser should be generated by MetaOCaml, but MetaOCaml has lots of limitation. it is very hard to generate parser
<nullcatxxx_> first, there should be no stack. no explicit stack data structure. This one is already very hrad
<nullcatxxx_> hard*
darkf has quit [Quit: Leaving]
<nullcatxxx_> other problems include cross-stage-persistence, let-rec-and generation, etc...
<Drup> I know, I read your report
<nullcatxxx_> ......
<Drup> :D
<nullcatxxx_> the most fruitless report I've ever written
<Drup> I disagree
<Drup> knowing that something doesn't work/is much harder than expected is very usefull
<Drup> especially why it's hard
<please_help> Algebr`: ocamldoc is very similar to doxygen, isn't it? Doxygen seems to be more tailored toward languages that look like C.
<nullcatxxx_> there is some progress recently
<Drup> your problem is not unique, I have pretty much the same kind of issues with functoria
<Drup> (well, metafunctoria)
<Drup> =)
<nullcatxxx_> this is a LR(1) parser with no explicit stack data structure involved..
<Drup> (I have a disco imagine in my mind everytime I say "meta functoria", all because of samoht)
<Drup> image*
<nullcatxxx_> but generating this using MetaOCaml is hard. Also, notice that MetaOCaml doesn't support generating pattern matching...
<Drup> oh really ? didn't know that
<nullcatxxx_> so I need to use nested if-else ( and also let rec generation is very ugly)
<Drup> my issue was more due to functors :3
<Drup> plenty of things to improve on metaocaml !
teknozulu has joined #ocaml
<Drup> we just have to found many more PHDs students
<companion_cube> find or fund?
<nullcatxxx_> for example? anything you'd like to see MetaOCaml improve
<nullcatxxx_> ...
<Drup> companion_cube: :D
<nullcatxxx_> by the way, i think I need to get a persistent IRC client. any suggestion?
<Drup> I use ZNC
<nullcatxxx_> ok let me see..
sz0 has quit [Quit: Bye.]
<nullcatxxx_> "plenty of things to improve on metaocaml" for example?
<Drup> well, I was refering to all we just said
<nullcatxxx_> ok..
Haudegen has quit [Ping timeout: 265 seconds]
jonludlam has joined #ocaml
nullcatxxx_ has quit [Quit: gone...]
nullcatxxy_ has joined #ocaml
<nullcatxxy_> nice.. but now my VPS ip is exposed...
<ygrek> yes, it is already reported to the authorities
<blub> yikes...
tristero has joined #ocaml
avsm has quit [Quit: Leaving.]
yomimono has joined #ocaml
Haudegen has joined #ocaml
BitPuffin has joined #ocaml
<edwin> nullcatxxy_: you can ask for an unaffiliated cloak in #freenode. it won't make your ip impossible to find out but it'll be hidden by default
<nullcatxxy_> thanks..
<edwin> thats what I use with my ZNC
struk|desk has joined #ocaml
avsm has joined #ocaml
nullcatxxy_ has quit [Ping timeout: 240 seconds]
nullcatxxx_ has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 256 seconds]
larhat1 has joined #ocaml
nullcatxxx_ has quit [Ping timeout: 264 seconds]
Algebr` has joined #ocaml
Algebr` has quit [Remote host closed the connection]
Algebr` has joined #ocaml
BitPuffin has quit [Remote host closed the connection]
nullcatxxx_ has joined #ocaml
Algebr` has quit [Remote host closed the connection]
nullcatxxx_ has quit [Ping timeout: 265 seconds]
Denommus` has joined #ocaml
teknozulu has quit [Ping timeout: 250 seconds]
octachron has quit [Quit: Leaving]
nullcatxxx_ has joined #ocaml
nullcatxxx_ has quit [Quit: ZNC 1.6.2 - http://znc.in]
jgjl has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
nullcatxxx_ has joined #ocaml
<mehdi___> I have a type 'a t = A : int t | B : 'a t -> 'a list t, I want to write a function let rec f = function A -> () | B x -> f x, it is rejected because ex#0 list is not compatible with type int. I can make the type checker happy by using a wrapper type u = C : 'a t -> u, but it's a bit combersome, any other idea?
<mrvn> mehdi___: GADTs need to be type annotated nearly always
<nullcatxxx_> try let rec f : type a. a t -> unit = ...
<mehdi___> I tried, the problem is not type annotations
<mehdi___> something list will never be compatible with int
nullcatxxx_ has quit [Client Quit]
<mehdi___> wait, you're right
nullcatxxx_ has joined #ocaml
<mehdi___> I thought : 'a. was like : type a. thanks!
<mrvn> # let rec f : type a. a t -> unit = function A -> () | B x -> f x;;
<mrvn> val f : 'a t -> unit = <fun>
<companion_cube> mehdi___: it is in some cases :((
<companion_cube> I don't know why the syntax is inconsistent on this point
ely-se has joined #ocaml
<mrvn> companion_cube: 'a is an exists and type a is a for all iirc.
<mrvn> sometimes they are the same
micro___ is now known as micro_
tane has quit [Ping timeout: 260 seconds]
<nullcatxxx_> here is a slide in which Jacques Garrigue introduced the syntax: http://www.math.nagoya-u.ac.jp/~garrigue/papers/inria2011.pdf
<nullcatxxx_> the syntax for gadt
jgjl has joined #ocaml
yomimono has quit [Ping timeout: 272 seconds]
jgjl has quit [Client Quit]
tane has joined #ocaml
<mehdi___> a question of scope, indeed
<mehdi___> interesting, if I add a third case C : int t to my type, I cannot match both A and C in the same pattern A | C -> (), I have to copy the body A -> () | C -> ()
<nullcatxxx_> yes
<nullcatxxx_> i remember it's Drup who told me about this.
minus4 has joined #ocaml
tane has quit [Quit: Verlassend]
d0nn1e has quit [Ping timeout: 246 seconds]
d0nn1e has joined #ocaml
Denommus` has quit [Ping timeout: 245 seconds]
Denommus` has joined #ocaml
mort___ has joined #ocaml
mort___ has left #ocaml [#ocaml]
avsm has quit [Quit: Leaving.]
Algebr has joined #ocaml
minus4 has quit [Quit: minus4.info]
<Algebr> I really don't understand why this crap is happening, /lib/lwt/ppx_lwt: not found. I put in opam file >= 4.02.3 and for lwt { >= "2.5.1"} and still this.
<Drup> ppx_tools is installed ?
<Algebr> yes
minus4 has joined #ocaml
<Algebr> this is with an oasis non dynamic setup, do I also need to put these versionings in the _oasis file?
<Drup> gné ? what are you trying to do ? It's completely unreleated to oasis
<Algebr> I am just trying to install my package, that's all. I put in the opam file it needed to be >= 4.02.3 and that lwt { >= "2.5.1" } and yet i still get this build error.
<Drup> show me, I need to test.
JacobEdelman has quit [Quit: Connection closed for inactivity]
<Drup> what's plist ?
avsm has joined #ocaml
<Drup> it installed fine here, your lwt opam install is buggy.
<Algebr> just as you typed that I think I realized the problem.
<Algebr> The opam install was a nix installed opam, but the ocaml packages were opam installed ones.
<Algebr> It was never really explained on nix on whether if installing a package manager whether to use it or a nix sanctioned package, i guess the answer is the latter.
Denommus` has quit [Ping timeout: 260 seconds]
Denommus` has joined #ocaml
avsm has quit [Quit: Leaving.]
Pepe__ is now known as Pepe_
ely-se has quit [Quit: Leaving...]
mac10688 has joined #ocaml
struk|desk is now known as struk|desk|away
Haudegen has quit [Ping timeout: 240 seconds]
lokien_ has joined #ocaml
<Algebr> removed nix version, used plain opam, worked fine.
Stalkr_ has left #ocaml ["Linkinus - http://linkinus.com"]