antegallya has quit [Remote host closed the connection]
letrec has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
sebz_ has joined #ocaml
<thelema>
dsheets: oasis generates a myocamlbuild.ml file that takes care of findlib; no -use-ocamlfind is needed
<thelema>
dsheets: use the tag pkg_foo to add a package for a file
emmanuelux has quit [Ping timeout: 240 seconds]
pilki has joined #ocaml
philtor has quit [Ping timeout: 252 seconds]
pilki has quit [Quit: Leaving]
bwright has joined #ocaml
bwright has quit [Quit: leaving]
bwright has joined #ocaml
sebz_ has quit [Quit: Computer has gone to sleep.]
philtor has joined #ocaml
ulfdoz has quit [Ping timeout: 276 seconds]
sebz_ has joined #ocaml
philtor has quit [Ping timeout: 260 seconds]
Snark has joined #ocaml
lamawithonel has joined #ocaml
lamawithonel__ has quit [Ping timeout: 240 seconds]
ftrvxmtrx has quit [Quit: Leaving]
bwright has quit [Quit: leaving]
Submarine has quit [Ping timeout: 248 seconds]
Cyanure has joined #ocaml
cago has joined #ocaml
edwin has joined #ocaml
sebz_ has quit [Quit: Computer has gone to sleep.]
sebz has joined #ocaml
ftrvxmtrx has joined #ocaml
ftrvxmtrx has quit [Client Quit]
sebz has quit [Quit: Computer has gone to sleep.]
sebz has joined #ocaml
ftrvxmtrx has joined #ocaml
raichoo_ has joined #ocaml
raichoo_ is now known as raichoo
<maufred>
Hey, do you guys know a "binding" to communicate between a soft written un ocaml and one written un php, in order to exchange data ? I'm trying 'protocol buffer' but I'd like some return of experience.
sebz has quit [Quit: Computer has gone to sleep.]
orbitz has quit [Read error: Operation timed out]
orbitz has joined #ocaml
avsm has joined #ocaml
sebz has joined #ocaml
<adrien>
btw, I gave up on archimedes + cairo_gtk
<adrien>
and I hate Cairo's API
<adrien>
the basic cycle for Cairo is "create a surface [which outputs to file/gl/...], get a context for it, send operations to do to the context, commit operations"; that is also the way to do a surface copy; i.e. it's horribly complicated for some tasks
<flux>
maufred, I guess the alternatives to evaluate are protocol buffers (piqi), json(json-wheel) and xml(xmlm), possibly even xml-rpc(xmlrpc-light), but I haven't tried interfacing with php at all
<adrien>
I also couldn't get it to reuse the same context which means I had to create one for each frame I wanted to draw; it costs 5 to 10ms here and I want > 30FPS
<flux>
it's really that costly to create a context?
<flux>
I thought cairo was able to give that performance
<adrien>
and finally, it actually doesn't match archimedes at all since it does scalable graphics but with archimedes, when you have a bigger surface to write to, you want to add more details to it; you don't simply want to scale the image
<adrien>
I probably did some things wrong but I don't think the API matches "animated" plotting
<adrien>
flux: I'm working on a quite slow laptop (E-350 APU; probably the same perf as the _most_ recent Atom CPUs from intel; i.e. average laptop CPU from 2/3 years ago)
<adrien>
but it should be plenty fast!
<adrien>
I made code that goes through a billion points per second (to get the data) and cairo destroys my performance
<adrien>
I'm going to use Gdk to do it; it might be deprecated and gone in gtk+3 but it probably won't trigger a nervous breakdown like cairo did
<flux>
just use opengl :)
<flux>
not sure if Gdk is going to be any faster for tens of millions of points to manipulate per frame
<f[x]>
maufred, you can compile ocaml to php extension or simply communicate php with ocaml via e.g. php_serialize or json
<adrien>
flux: hmmm, no? :P
<adrien>
flux: well, Gdk doesn't have that many points to handle and that's the point of archimedes
<adrien>
basically, archimedes handles lots of points by not displaying them all (unlike absolutely everything else!): you give it a few functions and the data and it's going to sample some of the data
_andre has joined #ocaml
<maufred>
I already used JSON, but it's a bit too slow, so I'd try something else like 'binary exchange'
<adrien>
maufred: which kind of data do you have?
<maufred>
adrien: almost all : string, int, array, list ... (on the php side it's dirty, they use object ;) )
<flux>
maufred, if you want more efficient transfer, then perhaps protobuf is the way to go
<adrien>
and at which rate do you exchange data?
<flux>
I haven't tried it in OCaml though
avsm has quit [Quit: Leaving.]
<maufred>
adrien: I don't know exaclty, I would say 'a lot' but it does'nt help
<adrien>
if json is too slow, how much too slow is it?
<maufred>
On the caml side, I can create a 5 MB file (JSON object), and on the php side, you have to parse this file and then import the data ... In a binary format, I would like a common shared file smaller
<flux>
maufred, evaluate alternatives by benchmarking is the only way to know the right solution :)
<maufred>
flux: yes, I'm doing this. If I have some results, I'll tell you
<maufred>
Thanks !
sebz has quit [Quit: Computer has gone to sleep.]
thizanne has quit [Ping timeout: 244 seconds]
BiDOrD has joined #ocaml
BiDOrD_ has quit [Ping timeout: 245 seconds]
ttamttam has joined #ocaml
Julien_T has joined #ocaml
Julien_T has quit [Ping timeout: 272 seconds]
Ptival has quit [Read error: Connection reset by peer]
avsm has joined #ocaml
<adrien>
I did a quick test with Archimedes_graphics which is intended for toplevel use; in particular it can't reuse the same window
<flux>
and?
<adrien>
compared to cairo, initialization takes the same time, plotting is the same and showing is faster
<adrien>
it's a bit hard to give good numbers because the programs ends up segfaulting and I'm not properly displaying everything (it's a very rough test)
<adrien>
archimedes_graphics.ml is 724 lines-long; it can probably be adapted quite easily to Gdk but there's quite a lot of code
thizanne has joined #ocaml
thizanne has quit [Ping timeout: 276 seconds]
ftrvxmtrx has quit [Read error: Connection reset by peer]
Cyanure has quit [Ping timeout: 244 seconds]
ftrvxmtrx has joined #ocaml
chrilisch has joined #ocaml
chrilisch has quit [Quit: Leaving]
ttamttam has quit [Read error: Connection reset by peer]
ttamttam has joined #ocaml
ttamttam has quit [Read error: Connection reset by peer]
ttamttam has joined #ocaml
ttamttam has quit [Read error: Connection reset by peer]
ttamttam has joined #ocaml
pango has quit [Ping timeout: 252 seconds]
ttamttam has quit [Read error: Connection reset by peer]
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
iago has joined #ocaml
Kakadu has joined #ocaml
Julien_T has joined #ocaml
pango has joined #ocaml
thizanne has joined #ocaml
thizanne has quit [Ping timeout: 276 seconds]
thizanne has joined #ocaml
oriba has joined #ocaml
ikaros has joined #ocaml
Kakadu has quit [Quit: Konversation terminated!]
mcclurmc has quit [Excess Flood]
mcclurmc has joined #ocaml
metasyntax|work has joined #ocaml
Julien_T has quit [Ping timeout: 248 seconds]
<Drakken>
Is there a simple way to create a background process in *nix and get its process id?
<NaCl>
Drakken: new program or a thread?
<flux>
drakken, Unix.create_process?
oriba has quit [Quit: oriba]
<NaCl>
the answer is probably going to be what flux said
<Drakken>
NaCl new program. I'm not using Lwt yet, so I guess my only other alternative to threaded io is to use os processes.
<flux>
drakken, you want new instances of your current process?
<flux>
drakken, then Unix.fork () is for you
zorun has quit [Quit: leaving]
<Drakken>
NaCl/flux how do you put the process in the background? Does create_process take a "&" arg?
<Drakken>
flux no, it's a different program.
<flux>
create_process does it automatically as far as I can understand
zorun has joined #ocaml
<Drakken>
flux it's interferring with the parent process's io.
<flux>
drakken, it can do that, yes
<flux>
drakken, you can close or reassign the file descriptors to prevent that
<flux>
drakken, if Unix.create_process isn't able enough, you can always do it 'by hand' with fork+exec (not a lot more work, and you get a lot more control)
<Drakken>
hmmm...
<Drakken>
flux how do you change the file descriptors?
<flux>
drakken, there is Unix.dup2 and Unix.close
<Drakken>
flux okay, I'll check that out.
emmanuelux has joined #ocaml
raichoo has quit [Read error: Connection reset by peer]
raichoo has joined #ocaml
ikaros has quit [Quit: Ex-Chat]
Drup has joined #ocaml
raichoo has quit [Quit: leaving]
ikaros has joined #ocaml
silver has joined #ocaml
Julien_T has joined #ocaml
joewilliams has quit [Remote host closed the connection]
lopex has quit [Remote host closed the connection]
bobry has quit [Remote host closed the connection]
rby has quit [Ping timeout: 240 seconds]
rby has joined #ocaml
cago has quit [Quit: Leaving.]
lopex has joined #ocaml
Xizor has joined #ocaml
Submarine has quit [Remote host closed the connection]
ulfdoz has joined #ocaml
bobry has joined #ocaml
avsm has quit [Quit: Leaving.]
Julien_T has quit [Quit: Julien_T]
letrec has quit [Ping timeout: 252 seconds]
sepp2k has joined #ocaml
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
mcclurmc has quit [Excess Flood]
mcclurmc has joined #ocaml
mcclurmc has quit [Excess Flood]
mcclurmc has joined #ocaml
raichoo has joined #ocaml
ftrvxmtrx has quit [Ping timeout: 272 seconds]
raichoo has quit [Quit: leaving]
milosn has joined #ocaml
avsm has joined #ocaml
tautologico has joined #ocaml
sebz has joined #ocaml
milosn has quit [Ping timeout: 240 seconds]
milosn has joined #ocaml
Tobu has quit [Ping timeout: 252 seconds]
milosn has quit [Read error: Operation timed out]
raichoo has joined #ocaml
_andre has quit [Quit: leaving]
Tobu has joined #ocaml
milosn has joined #ocaml
raichoo has quit [Ping timeout: 272 seconds]
raichoo has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
sepp2k has quit [Quit: Leaving.]
sepp2k has joined #ocaml
ttamttam has joined #ocaml
gildor has joined #ocaml
alxbl has joined #ocaml
alxbl has quit [Changing host]
alxbl has joined #ocaml
Snark has quit [Quit: Quitte]
sebz has joined #ocaml
sebz has quit [Client Quit]
raichoo has quit [Ping timeout: 252 seconds]
<gildor>
anyone ready to do some testing with godi ?
<thelema>
gildor: no godi here.
raichoo has joined #ocaml
avsm has quit [Ping timeout: 240 seconds]
<gildor>
hcarty is not using godi ?
avsm has joined #ocaml
avsm has quit [Client Quit]
<thelema>
gildor: I think he's using his ocamlbrew + odb
<gildor>
thelema: BTW, oasis switch from extlib to batteries
<thelema>
gildor: I noticed the commit.
<thelema>
I hope we don't break too many interfaces with the upcoming 2.0 release
<gildor>
I am still a bit lost
<thelema>
a bit lost in batteries?
<gildor>
thelema: whatever, this is not a strong dependency for now
* adrien
has a godi available
<gildor>
there will be at most 10 files to change if batteries change
<thelema>
gildor: yes, it looked like just a trivial change of module names
<thelema>
gildor: Maybe sometime batteries will figure out how to move our build system to oasis.
<gildor>
thelema: yes a bit lost in batteries, I play a little bit with BatEnum and stuff like that
<gildor>
thelema: I am trying to play a little bit with BitSet right now
<gildor>
thelema: I forked batteries in github, I'll probably help you on the oasis stuff, if I have time
<thelema>
gildor: maybe this documentation (for 2.0beta) will make things easier to understand
<gildor>
adrien: I just release ounit 1.1.1 through godi
<gildor>
adrien: can you upgrade and tell me if everything is ok ?
<gildor>
(3.12 release)
<adrien>
updating the list
<thelema>
gildor: We're in a bit of a mess with some logic in myocamlbuild.ml and other logic in make. Luckily we're dropping one of our (now 3) test systems, so this should clean up a bit.
<adrien>
do you have a test?
<thelema>
gildor: I looked at the commits for ounit 1.1.1 and didn't see any important changes; did I miss them?
<gildor>
thelema: no this is trivial change
<gildor>
mostly bug fixing
<thelema>
gildor: ok.
<gildor>
adrien: no just try to upgrade
ttamttam has quit [Remote host closed the connection]
<gildor>
adrien: I am not an expert at GODI packaging, so I'd prefer to test
<adrien>
apparently, apps-janestreet-patdiff, godi-batteries, godi-bin-prot, godi-janestreet-*, godi-sexplib all depend on ounit
<adrien>
(they got selected for auto-rebuild)
<gildor>
adrien: and you don't know but you'll have to make a lot more testing than this one
<gildor>
;-)
<gildor>
adrien: (i.e. -> oasis deps + oasis)
<adrien>
gildor: no probe but tomorrow; I'll have much much much more time
raichoo has quit [Ping timeout: 248 seconds]
<adrien>
problem*
<gildor>
adrien: ok
<gildor>
is pveber around ?
<adrien>
well, I can do some tonight but not a huge amount of testng
<gildor>
do someone what is the the nickname of Francois Berenger ?
raichoo has joined #ocaml
<adrien>
oh... if it's building janestreet-core stuff, it's going to take a while to compile
sebz has joined #ocaml
sepp2k has quit [Quit: Leaving.]
ftrvxmtrx has joined #ocaml
avsm has joined #ocaml
<flux>
meh, it used to be simple to generate manual pages out of batteries, but now it appears to need some neeper ocamlbuildfu
* gildor
ads using oasis-db web interface to browse deps of a package is great
<thelema>
flux: ?? `make doc`
<gildor>
^^^: sorry for the advertisement
<flux>
thelema, it generates man-pages in addition to html?
<thelema>
flux: oh, manual pages... hmmm...
<flux>
it appears I'm the only person left still using man :)
<thelema>
flux: apparently
<thelema>
what's the ocamlbuild target for ocamldoc man pages?
<thelema>
ah, you probably just need to `make batteries.odocl` - this file is auto-generated, instead of being yet another place that new modules need to be listed
<adrien>
I like man pages ;-)
<thelema>
thta said, the page that generates the index.html is now in that 'yet another place for new modules' category
<flux>
thelema, I already have batteries.odocl, it's the list of modules
<flux>
but I don't have the manual pages :)
<flux>
curiously I also have ./_build/batteries.docdir/man.stamp
<flux>
hmm
<flux>
rm ./_build/batteries.docdir/man.stamp; ocamlbuild -j 3 batteries.docdir/man starts to do -something-
<flux>
well, it created the stam file again, but not actual man pages
<thelema>
from ocamlbuild docs: "note that generating documentation in formatos other than HTML or from implementations is not supported"
<flux>
gah
<thelema>
I guess this has been improved since those docs were written
<flux>
I wonder if that's up-to-date, as the ocamlbuild -documentation suggests otherwise
<thelema>
that's still from the feb 2007 documentation
<flux>
se only five years ago..
<thelema>
:)
<thelema>
afaik, I only did a minor tweak on the documentation generation for the index file ... ah, maybe I can fix that pretty easily
<flux>
I'd be happy if you did :)
<flux>
even happier if debian maintainer took a note :)
<flux>
(so: make a biiiig changelog entry about that!)
<thelema>
flux: when did this last work for you?
<flux>
thelema, it must have been long time ago. actually at that time it was even integrated, so I guess it's been broken ever since omake was dumped: http://git.ocamlcore.org/cgi-bin/gitweb.cgi?p=batteries/batteries.git;a=commitdiff;h=3afedec5629eca0a8d744e254a71a876b93571e1
<adrien>
gildor: well, oasis and what depended on it built fine
<thelema>
flux: ah. well...
<gildor>
adrien: oasis is not yet released through GODI, how have you make it ?
<adrien>
gildor: heh, meant ounit, sorry for the confusion ;p
* adrien
didn't sleep very well
sebz has quit []
antegallya has joined #ocaml
<thelema>
:( need to dep-sort .mli files input to ocamldoc
<thelema>
probably needs to build all before generating man - fixing
<thelema>
well, testing first
<thelema>
yup, testing fix...
<flux>
is there an install rule for those?
<thelema>
how to install? just copy to /use/local/man/?
<thelema>
*usr
<flux>
I suppose copy to /usr/local/man/man3/ yeah
<tautologico>
if you use emacs, info is way better than man pages :)
<thelema>
tautologico: you'll have to add info doc support to batteries - I have work to do now.
<flux>
does ocamldoc even support info?
<tautologico>
yes
<flux>
I guess that'd be useful then as well :)
<tautologico>
I generate info from the std lib docs and add it to my info path on emacs, then bind it to s-D
<flux>
actually it would be even greater if tuareg's documentation lookup features were enhanced
<tautologico>
there's even a support for looking up symbols, though it doesn't work very well for ocaml
<tautologico>
flux: I'm kinda working on having better docs in emacs
<flux>
I use it a lot at times (the tuareg thing) but it's such a pain to configure, that I rarely bother
<tautologico>
flux: what do you use?
<thelema>
flux: what? you mean my amazing skills of clicking through the batteries documentation in firefox would be wasted? :)
<flux>
thelema, well.. I don't consider a web browser a particularly great quick-lookup-mechanism, but perhaps it's a skill to learn..
<flux>
hmm, simply "add package for documentation" in tuareg could do wonders..
<flux>
(it currently has a way to add paths for documentation, that is, the path for *.mli files to search)
<thelema>
"/tFoo\n/bar" does a good job of looking up BatFoo.Bar
<flux>
but of course, I imagine tuareg will fail with simple module aliases already
<tautologico>
flux: oh I see... and then it shows the mli, right?
<flux>
tautologico, yes, at the right position if lucky :)
<thelema>
flux: true - batteries renaming magic does make automated doc lookup uglier
<flux>
for example List.map and C-h -> bang, list.mli open at the right spot
<tautologico>
it's not hard to do that with the info docs
<flux>
thelema, actually one of the reason I like manual pages is emacs C-m List -> page open
<tautologico>
I spent some time trying to do that with functions already available in emacs (info-lookup package), but it doesn't work well
<flux>
but I often do it from the shell as well
<flux>
I guess ocamlspotter might be able to provide some better symbol information for this purpose
Submarine has quit [Quit: Leaving]
<tautologico>
maybe
<flux>
actually it should be able to jump right into the source, not sure if it can do the same with the mli files as well
<flux>
sadly, ocamlspotter is a bit difficult
<flux>
and it's not packaged in debian :)
<tautologico>
the best emacs solution would be a SLIME-like thing or compiler plugins, if the compiler supported them
<flux>
but I'll be off to get some best ideas while I sleep. happy hacking on the documentation :)
<tautologico>
I don't know how much of slime would be doable in ocaml right now
<flux>
hmm, you would want an ocaml compiler to stay around so you could interrogate it from emacs?
<flux>
or perhaps just simply with a toplevel.. but it doesn't easily put out the information one might want for this use.
<flux>
but, really, sleep now :), bye
<thelema>
maybe one of the ILs could be parsed by emacs
<tautologico>
right now I think it would have to be something like a toplevel
<tautologico>
and it would have to gather and keep more metadata about defined names than the ocaml compilers keep... I don't know much about the compiler IR forms though
ulfdoz has quit [Ping timeout: 245 seconds]
pango has quit [*.net *.split]
pango has joined #ocaml
raichoo has quit [Quit: leaving]
<gildor>
adrien: ok, everything is pushed, you can try to install oasis using GODI
avsm1 has joined #ocaml
<adrien>
gildor: the fileutils package is 0.4.2 while you've made 0.4.3 btw
<adrien>
building now
avsm has quit [Ping timeout: 244 seconds]
oriba has joined #ocaml
<gildor>
adrien: well 0.4.3 is mainly about oasis-ification
<gildor>
AFAIR
<adrien>
ok
<adrien>
oasis and the deps built fine
<gildor>
perfect
<gildor>
adrien: thx for all
<adrien>
np :-)
<adrien>
and I'm particulary happy to have ocaml-fileutils through godi ;-)
<tautologico>
does oasis on godi require to build labgl and lablgtk?
<dsheets>
It doesn't appear that ocamlbuild provides a way to reference a collection of menhir grammars. Menhir also does not appear to provide a way to specify a collection of grammar modules in a single file (include,etc). I had worked around this by using the flag -menhir "menhir —stdlib .." to ocamlbuild.
<dsheets>
How do I represent this to OASIS? Do I need to do something with modules? Can I use ocamlbuildflags?
<thelema>
dsheets: I think you can modify myocamlbuild.ml to add this
<thelema>
(outside the oasis-generated part)
emmanuelux has quit [Remote host closed the connection]
<dsheets>
thelema: oasis intelligently merges a present myocamlbuild.ml with its generated one?
<avsm1>
dsheets: just add your bits to the end of the myocamlbuild.ml, after the oasis marker. it'll be preserved
<thelema>
dsheets: what avsml said
<dsheets>
cool, ok
<tautologico>
why do oasis depend on lablgl and lablgtk?
emmanuelux has joined #ocaml
edwin has quit [Remote host closed the connection]
<tautologico>
oh, it's ocamlgraph
<gildor>
tautologico: that because you have selected ocamlgraph_viewer
<gildor>
tautologico: otherwise there is no deps on lablgtk/labgl (there is a lot of small deps, but not that much ;-)
Tobu has quit [Ping timeout: 272 seconds]
gildor has quit [Quit: leaving]
<adrien>
does anyone have a windows machine and could compile something for me? no dep besides ocaml itself
<adrien>
actually, forget that, I'm going to bed :P
anryx has joined #ocaml
anryx has quit [Read error: Connection reset by peer]
Tobu has joined #ocaml
silver has quit [Remote host closed the connection]
<bobzhang1988>
thelema: I was curious that why batteries does not build .cmo files for each module, link with batteries.cma makes the executable so big?