<kaustuv>
OCaml in Debian unstable has this patch applied already.
<zorun>
yep
<zorun>
but it's not released yet, so on other systems ...
lopex has joined #ocaml
<thelema>
hcarty: what server doesn't provide dependency information? oasis-db?
<pkl>
thank you (distro is arch)
<pkl>
I am not sure how to add a patch within godi.
ski has joined #ocaml
dnolen has quit [Quit: dnolen]
pkl has quit [Read error: Connection reset by peer]
jderque has quit [Quit: leaving]
avsm has quit [Quit: Leaving.]
joelr has quit [Quit: joelr]
ecc has joined #ocaml
<hcarty>
thelema: Yes
<hcarty>
oasis-db only provides the source archive in the info file
<thelema>
for batteries?
<hcarty>
For batteries or, as far as I can tell, anything else
<thelema>
hmm, maybe gildor broke this...
<hcarty>
gildor: ping
<thelema>
hcarty: you're right.. huh.
<thelema>
hmm, th eoasis info file has deps...
<thelema>
maybe if we packaged the current batteries (which has an _oasis file), it'd have deps...
<hcarty>
thelema: The _oasis file in the archive, or something else?
<thelema>
(and it'd have newer batteries)
<thelema>
in what was uploaded to make the package on the server
avsm has joined #ocaml
<thelema>
grr, I need an edit button to edit packages.
<hcarty>
thelema: Was that in one of the links gildor gave ~a few weeks ago? I don't have them handy at the moment.
<thelema>
the admin page doesn't seem to work for me at the moment, and I don't think it ever was able to get into the details of a package, just to organize them between stable, testing, unstable
<thelema>
this should make your odb work for batteries at least
<hcarty>
thelema: Ok, thanks
<gildor>
pong
<thelema>
gildor: hey, welcome back. Did you have a good vacation?
<gildor>
hcarty, thelema: I think the current batteris tarball don't include an _oasis, that is the reason of the problem
<gildor>
thelema: nice vacation, totally offline and I have a huge backlog of mails
<hcarty>
gildor: Ok, thanks - that makes sense
<thelema>
gildor: can I get an edit interface for packages?
<gildor>
thelema: and I a moving to a new home tomorrow
<hcarty>
gildor: Congratulations :-)
<gildor>
thelema: what kind of edit interface of packages ?
<gildor>
hcarty: thx
<thelema>
specifically, I need to be able to rename them and tweak their deps
<gildor>
thelema: humm, it should be done by creating a simple _oasis and repackaging the tarball with version + oasisX (e.g. 1.3.0oasis1)
<gildor>
thelema: repackaging server side, of course
<gildor>
thelema: and the interface to edit _oasis should be online
<thelema>
well, I guess I'll have to start supporting oasisX versions...
<gildor>
thelema: that is part of the plan, but for now I am working on the CLI
<gildor>
thelema: you can do it by hand (repackaging client side) and upload the resulting tarball
<thelema>
Why is it important that it's server side?
<gildor>
thelema: this will be a POC, until I have time to create the interface
<thelema>
I'll just do it client side for now, I guess.
<gildor>
thelema: server side, because it will be easier for people to edit, but you can do it client side and upload the result
<thelema>
are you sure? text file editing is pretty mature technology client side...
<thelema>
hmm, it's not too bad to just expose the _oasis as a text field and reparse... is it?
<gildor>
thelema: on the long term, this will also allow to fix simple stuff like description
<gildor>
thelema: yes, this is just a matter of textarea + submit
<thelema>
short term solution: one big textarea for the entire _oasis file?
<gildor>
thelema: but you also have checks to do
<thelema>
sure, if it doesn't parse, give errors and ask for resubmit..
<gildor>
thelema: e.g. if you fix description, no need to repackage
<thelema>
what edits would need repackaging?
<gildor>
thelema: indeed, this is what I intend to
<gildor>
thelema: everything that involves deps/build
<thelema>
because the revision number must be bumped?
<gildor>
thelema: in fact, you should consider what doesn't need to repackage: change in description, synopsis, author, copyright
<gildor>
thelema: yes
<gildor>
thelema: if the way it builds change, we should bump the version
<thelema>
version 1: only allow edits that don't require repackaging
<thelema>
and I'm not sure about the deps issue - if the deps change and it still compiles...
<thelema>
maybe not a version bump
<gildor>
thelema: bah, version change is not a big deal with odb ;-)
<thelema>
true, I'm just trying to save you work in the long run - having a million versions of each package... :(
<thelema>
and these changes *need* to be made upstream, otherwise we'll have the GODI/Debian different-META file problem
<gildor>
thelema: million of version, I don't think it will be the case, maybe 2 or 3 versions probably
<thelema>
editing oasis files in the oasis-db doesn't seem like a good strategy if the oasis files are the canonical "how to install"
<gildor>
thelema: oasis-db stores _oasis.pristine and _oasis to be able to make a diff of them
<thelema>
so you can test your changes easily, and submit the diff back to the maintainer? hmmm...
impy has joined #ocaml
oriba has left #ocaml []
lopex has quit [Ping timeout: 240 seconds]
lopex has joined #ocaml
mnabil has quit [Read error: Connection reset by peer]
mnabil has joined #ocaml
hto has joined #ocaml
joelr has joined #ocaml
joelr has quit [Client Quit]
<thelema>
is it possible to get a stack trace for #! ocaml scripts?
<hcarty>
thelema: It is when using ocamlscript, but I don't think it is (without patching OCaml) when using the ocaml binary
<rproust>
thelema: wouldn't "let () = Printexc.record_backtrace true;;" just after the #!ocaml work?
<hcarty>
thelema: Someone did release a patch to allow backtraces in the toplevel
<rproust>
(I'm not sure I got what you meant though…)
<rproust>
rproust: no it wouldn't work
<thelema>
rproust: it doesn't work for me.
<thelema>
hcarty: thanks. I guess I should look into ocamlscript
<hcarty>
thelema: I highly recommend it. It's a very nice tool.
<thelema>
it'd be great except I won't depend on it for odb
<thelema>
back to old school debugging then...
<hcarty>
thelema: You could use it for odb development, then fall back to bare ocaml once everything is done
<thelema>
seems like a bunch of hassle to track down a not-found exception
<hcarty>
I'm thinking three or four Not_found's in to the future :-)
<hcarty>
But it's just a suggestion - it really may not be worth it
<hcarty>
On a tangent - ocamlscript would be a wonderful thing to use in OCaml tutorials. It avoids many of the compilation troubles many OCaml beginners can have.
<hcarty>
Having a four or five line "Hello world!" which uses Batteries and requires no explicit compilation step could remove a few hurdles.
joewilliams_away is now known as joewilliams
<thelema>
hcarty: one way to deal with compilation troubles is to unify dependency handling between the toplevel and compiled programs
<thelema>
i.e. support #use (and #require) for compiled programs
ftrvxmtrx has quit [Remote host closed the connection]
ftrvxmtrx has joined #ocaml
<dcolish>
i have found the requirement of myocamlbuild and or _tags to be a little rough, especially when trying to link against C
avsm has quit [Quit: Leaving.]
* thelema
would just like at least some syntax to be changable based on *in-file* incantations. This means changing the parsing strategy, though.
thelema has quit [Ping timeout: 240 seconds]
ymasory has joined #ocaml
romanoffi has quit [Quit: Leaving.]
ocp has quit [Ping timeout: 258 seconds]
eikke has quit [Ping timeout: 252 seconds]
thelema has joined #ocaml
<hcarty>
thelema: ocamlscript could potentially be used as a basis for that kind of operation
Snark has quit [Quit: Ex-Chat]
jderque has joined #ocaml
ocp has joined #ocaml
eikke has joined #ocaml
pdhborges has joined #ocaml
pdhborges has left #ocaml []
eikke has quit [Ping timeout: 240 seconds]
apropos has joined #ocaml
<thelema>
hcarty: its support of findlib does produce a 90% solution. I wonder how/if it works with camlp4
<hcarty>
thelema: It works well. I believe it enables camlp4 by default
<hcarty>
I've used ocamlscript with the syntax extensions from Batteries, for example
apropos has quit [Ping timeout: 240 seconds]
<hcarty>
On a side note - the syntax Yaron Minsky shows in the comment bluestorm linked to from the Batteries list is rather nifty looking
mnabil has quit [Read error: Connection reset by peer]
mnabil has joined #ocaml
mnabil has quit [Read error: Connection reset by peer]
mnabil has joined #ocaml
mnabil has quit [Read error: Connection reset by peer]
mnabil has joined #ocaml
mnabil has quit [Read error: Connection reset by peer]
philtor has joined #ocaml
<hcarty>
thelema: Unless I misunderstood and you meant bluestorm's ideas rather than those from the blog post
mnabil has joined #ocaml
mnabil has quit [Read error: Connection reset by peer]
mnabil has joined #ocaml
mnabil has quit [Read error: Connection reset by peer]
<thelema>
I don't see how annotating the AST and doing AST -> AST translation gets me to my goal of having all the context for compiling a chunk of code *inside* the file that code's in.
mnabil has joined #ocaml
mnabil has quit [Read error: Connection reset by peer]
<thelema>
but ocamlscript isn't compatible with either the toplevel or the normal compilation process (ocamlbuild, etc) needed for large-project compilation
mnabil has quit [Read error: Connection reset by peer]
mnabil has joined #ocaml
mnabil has quit [Read error: Connection reset by peer]
npouillard has quit [Quit: leaving]
mnabil has joined #ocaml
mnabil has quit [Read error: Connection reset by peer]
<hcarty>
I'll add the ocamlscript example to the wiki
<hcarty>
ocamlscript is more an ocamlbuild replacement for smaller projects (maybe up to a few files) than it is something you would us in addition to ocamlbuild
<hcarty>
I've started a lot of projects with ocamlscript, then transitions to ocamlbuild once the initial idea was properly tested
hto has quit [Ping timeout: 276 seconds]
olauzon has joined #ocaml
munga has quit [Read error: Operation timed out]
brendan has quit [Quit: leaving]
brendan has joined #ocaml
<hcarty>
thelema: I've added three examples using ocamlscript - one with vanilla Batteries, one with a syntax extension and one with threaded Batteries (but no thread use)
avsm has joined #ocaml
<flux>
hmph, fedora has woefully few ocaml libraries in its repositories
<thelema>
flux: odb might make that a non-issue
<dcolish>
is odb a potential replacement for godi?
<thelema>
dcolish: I don't think of it that way - it assumes ocaml and findlib as prerequisites, unlike godi
<thelema>
dcolish: but it does do the whole make/install/dep handling dance like GODI
<thelema>
It's currently set to use oasis-db's package repo as backend, which needs much love in terms of uploading properly tagged packages
<flux>
yeah, godi covers also non-ocaml libraries. it is sort of a distribution inside an os in itself. similar to cygwin.
<flux>
whereas I understand oasis is more akin to CPAN
<flux>
although
<dcolish>
ah ok
<flux>
afaik, you can upgrade Perl from CPAN as well..
<thelema>
flux: true.
<dcolish>
i've always treated GODI like a PyPi style dist tool and run into trouble
philtor has quit [Ping timeout: 264 seconds]
<thelema>
I imagine GODI doesn't interact so well with things outside the GODI world, whereas odb is designed to have no internal state of its own. (no package database)
<thelema>
that said, godi will re-compile all your ocaml libraries when you upgrade ocaml releases
<thelema>
odb doesn't have a way to do this at the moment
<flux>
I guess META should be enough to know what to recompile?
<thelema>
(and I can't think of any way to do this)
<dcolish>
i'm ok with that, i think a simple package installer is extremely useful. the more complex distro-style management tools are always tougher to use and write packages for
<thelema>
I guess I could just try to force-reinstall every findlib package
<flux>
thelema, hm, ocamlfind will just give you a list of packages, retrieve&recompile?-)
<flux>
maybe there should be a database
<thelema>
somehow I don't like that solution, but I guess it would work...
<flux>
or atleast some flag such as 'installed by oasis'
<flux>
could be distributed similarly to the META files
<thelema>
odb currently supports force installs (although this doesn't remove the old package), it could manually replace packages given a list of them
impy has quit [Quit: impy]
<hcarty>
thelema: A 60% solution could be to provide a way to have odb dump a command line which would replicate the currently installed packages
<hcarty>
thelema: For example, "ocaml odb.ml --replay" could print "ocaml odb.ml batteries camomile ..."
<hcarty>
It's probably not a pressing issue at this point in odb's development
<thelema>
ah, that's a nice idea. it could take the list of packages available on the server and the list of installed packages, intersect them and print a command for the rest.
<thelema>
s/the rest/those/
eikke has joined #ocaml
impy has joined #ocaml
npouillard has joined #ocaml
npouillard has quit [Read error: Connection reset by peer]
npouillard has joined #ocaml
npouillard has left #ocaml []
fremo__ has quit [Ping timeout: 248 seconds]
fremo__ has joined #ocaml
fremo__ has quit [Ping timeout: 240 seconds]
avsm has quit [Quit: Leaving.]
fremo__ has joined #ocaml
<jonafan>
ocamljs is crazy
<sheets>
jonafan: how's that?
<jonafan>
well, maybe it's not crazy, but i don't think it's worth my efforts to make class types for so much stuff
<adrien>
seeing the backlog, godi is really stable and actually works well with things from outside godi
<sheets>
class types for so much stuff? are you wrapping some javascript?
waern_ has quit [Ping timeout: 252 seconds]
<jonafan>
well, i'm trying to do some webgl stuff
fremo__ has quit [Ping timeout: 240 seconds]
<jonafan>
and the included class types only work for 2d drawing contexts
pdhborges has joined #ocaml
pdhborges has left #ocaml []
<thelema>
adrien: good to know about godi.
<jonafan>
i know i don't have to redo the entire webgl spec, but there's a lot of matrix stuff
<jonafan>
a lot of stuff i need to tell ocamljs about
<sheets>
jonafan: yes. you will either need to begin the bindings (and write the class types) or write a little bit of javascript to deal with the stateful nastiness that is GL and shovel model parameters into it from the ocaml
<sheets>
jonafan: matrix stuff? i only know of the uniform types?
<jonafan>
there's a matrix library i'm using
<jonafan>
i suppose i could/should rewrite it in ocaml
hto has joined #ocaml
<jonafan>
further complicating matters, i'm relatively clueless about GL
<sheets>
you could wrap it in ocaml using inline js if that is easier to do piecemeal than writing class types
fremo__ has joined #ocaml
<hcarty>
adrien: I agree. It's just a little heavy to get setup initially.
<hcarty>
adrien: That said, I haven't taken the time to learn the command line syntax for GODI's tools. My guess is that doing everything through godi_console slows me down.
<adrien>
yeah, mostly because you have to wait 15 seconds every time you load it probably ;p
<hcarty>
adrien: The biggest downside to GODI is that its packages are rather heavy. godiva helps, but there is still a fair amount of effort involved.
<adrien>
I've done my first godi package and found it OK (although I started with godiva, and had to read a notable amount of doc), but now I'm not sure how to actually submit it (and I don't have enough time to handle that well right now but that's another story)
fremo__ has quit [Ping timeout: 240 seconds]
jderque has quit [Quit: leaving]
<thelema>
adrien: I'm in a similar situation - to get odb working with the oasis backend, I'll have to create _oasis files for a number of packages I don't maintain.
<thelema>
And I'm no _oasis expert.
<adrien>
worse is probably when you want the "make install" to do something that the official package doesn't do =/
<thelema>
Yup, packages that don't provide a findlib-enabled make target are going to be a problem
<adrien>
pretty much
fremo__ has joined #ocaml
<adrien>
(oh, need sleep)
<thelema>
luckily there's few of them, and since I'm creating new tarballs for them, I'll hack that in somewhere
impy has quit [Quit: impy]
<adrien>
yeah, fewer and fewer, and I guess that oasis/* will convert the remaining people
<adrien>
q
<mehdid>
do anyone knows how could I find the source of a GODI package?