<Drakken>
so oasis-db is up and running but oasis isn't bundled with the ocaml installation?
<Drakken>
thelema could you explain why I would want to do that?
schme has joined #ocaml
schme has quit [Changing host]
schme has joined #ocaml
arubin has joined #ocaml
<Drakken>
or I can just figure it out and bug you some more tomorrow.
<thelema>
Drakken: I'm back
<thelema>
oasis-db is up and in *beta*
<thelema>
the server has been flaky lately, and the company behind it has had its only employee hired by google.
<thelema>
oasis is also in early beta, and development has stalled for the same reason.
<thelema>
This said, an ocaml distribution that packages the compiler, oasis and odb isn't a bad idea.
<thelema>
lastly, that command downloads odb.ml and uses that to download and install oasis
<thelema>
(plus all of oasis' dependencies)
ski has quit [Read error: Operation timed out]
<Drakken>
thelema I got the mechanics of the command, I'm just asking why: what does oasis do, what does odb do, how do they interact, which do I use to download software, is odb.ml the closest thing there is right now to a standard installation process, or is there some other standard but it's not as good...line break
ski has joined #ocaml
<Drakken>
... and is there anything else I should about to install software. I'm just trying to get a feel for what the current state of things is.
<thelema>
okay...
struktured has quit [Ping timeout: 276 seconds]
<thelema>
odb downloads and installs packages from oasis-db
<thelema>
as far as standard installation processes, "configure && make && make install" is as much a standard that ocaml has
<Drakken>
also, I can ask again tomorrow if that works better for you
<thelema>
some libraries have [make opt] and [make byte] targets to make just native code or bytecode
<Drakken>
I mean the standard for getting stuff from oasis-db
<thelema>
oasis does two things (from what I understand). 1) it keeps package metadata (author, license, etc)
<Drakken>
I know about cpan and cabal, but now I have two programs, odb and oasis.
<thelema>
odb is the only automated way to download and install packages from oasis-db
<Drakken>
what does oasis do?
<thelema>
oasis was meant to be more like cabal
<Drakken>
but cabal is the tool I use to download stuff
<Drakken>
oh wait, I guess it's cabal-install
<Drakken>
oops
<thelema>
the second thing oasis does is produce a setup.ml script that will do everything needed for configuring, building and installing a package
<thelema>
I don't know cabal, and only have experience with cpan for installing packages, not creating a cpan package
<thelema>
so odb is like cabal-install, and oasis is like cabal?
<Drakken>
yes?
<Drakken>
I guess it must be.
<thelema>
odb is like cpan-lite for downloading packages.
<Drakken>
but I definitely remember using cpan to download
<Drakken>
perl stuff
<Drakken>
so what's the status of odb.ml?
<Drakken>
is that the l33test way of installing odb?
<thelema>
it's stable. There's some ideas for adding functionality, and plenty of limitations, but it works for a lot of oasis-db packages
<thelema>
odb doesn't need any inistallation - it's a single file. I copy it to my ~/bin directory and chmod 755 it
<Drakken>
shouldn't odb be included in the ocaml distribution?
<thelema>
odb was created since the last release of ocaml (iirc). Official support for odb would imply official support for oasis-db, which could entail a lot more work for the ocaml compiler authors
<thelema>
There's some more work coming from the ocaml community to build ocaml distributions (especially for windows), and I guess I should contact their developers to get odb included.
<Drakken>
is there any question of (not) supporting oasis-db, or is just not integrated w/the distribution yet?
<thelema>
many people don't use odb for installing packages; there's a previous system called GODI that is more complete and has its own set of packages.
<thelema>
GODI is more complete than odb in that godi can install simultaneous versions of ocaml with different sets of packages simultaneously in a system
<thelema>
(yes, GODI can install ocaml itself)
<thelema>
odb is much simpler, assuming that ocaml and findlib are already installed, but it doesn't assume that the user has permission to install into the system-wide findlib dir.
<thelema>
so it allows local installations of packages
<thelema>
(by default)
<thelema>
GODI doesn't support oasis at all, and uses its own metadata format, godiva
<Drakken>
so does it depend on which system each project author supported?
<thelema>
otoh, oasis is probably better than GODI, as it provides tools to automatically generate a cross-platform build system from its _oasis file
<thelema>
actually, most project authors historically haven't supported either, and godi people have (afaik) forked each package with a few extra patches each time they added it to GODI
<thelema>
oasis is new, so a few newer projects have started with _oasis build systems
<thelema>
oasis also retrofits onto existing systems reasonably, with a way to attach to an existing build system.
<Drakken>
I saw an oasis line in one of the archimedes files. I'm just trying to figure out the right/best way to install it w/all its dependencies.
<thelema>
oasis-db doesn't require an oasis file, and odb supports makefiles, omakefiles and oasis build systems
sebz has quit [Quit: Computer has gone to sleep.]
<thelema>
Drakken: the best way to install archimedes is 1) install lablgtk2 using findlib, 2) use odb to install archimedes (and the rest of the deps)
<Drakken>
Okay, that's fine.
<Drakken>
The first line of INSTALL.txt in the archimedes download says [(* OASIS START *)]
sebz has joined #ocaml
<Drakken>
The second line has a "digest" number, looks suspiciously similar (also commented)
<Drakken>
Now how do I figure out the installation procedure for other packages in general without having to annoy you every time?
<thelema>
that means it was auto-generated by oasis from the _oasis
<thelema>
If the package has an _oasis file, the installation is likely "ocaml setup.ml -configure", "-build", "-install"
<thelema>
if the package has an OCamlMake file, the installation is "omake" "omake install"
<thelema>
otherwise, it's configure, make, make install
<thelema>
as for deps, if you're not using GODI or odb, then you're resolving deps by hand
<thelema>
running odb with no arguments will list the packages that odb can install
<Drakken>
Sorry, I don't mean installation literally, I mean downloading and dependencies
<Drakken>
okay, I guess that's a good start
<Drakken>
so if it's not in the list, try godi or download manually & read INSTALL?
<Drakken>
(for dependencies)
sebz has quit [Quit: Computer has gone to sleep.]
<thelema>
godi isn't really something you can try - it takes over and manages your whole ocaml system
sebz has joined #ocaml
<thelema>
as far as hunting down packages, the ocaml hump is an officially maintained list of packages
<thelema>
and detecting dependencies - I usually just run 'make' and if it fails, I try to figure out the dep from the error.
<Drakken>
oh great...
<thelema>
yes, this is why I'm helping gildor with oasis - ocaml has some parts that are still in the dark ages
peddie has quit [Ping timeout: 240 seconds]
<thelema>
library management is still one of those; despite all the good work with findlib, there's still too many important libraries that don't even ocamlfind install
<Drakken>
good enough. have I pestered you enough for one day?
peddie has joined #ocaml
<Drakken>
anyway, I think I have enough info to keep busy for a while.
EmmanuelOga has quit [Ping timeout: 244 seconds]
JdpB42 has joined #ocaml
<JdpB42>
hello
<dsheets>
hello
gnuvince has quit [Quit: ""]
Drakken has left #ocaml []
hto has joined #ocaml
ankit9 has joined #ocaml
superbobry has quit [Read error: Operation timed out]
superbobry has joined #ocaml
arubin has quit [Quit: arubin]
musically_ut has quit [Read error: Connection reset by peer]
reynir has quit [Ping timeout: 240 seconds]
ulfdoz has joined #ocaml
lamawithonel has quit [Ping timeout: 240 seconds]
reynir has joined #ocaml
lamawithonel has joined #ocaml
ankit9 has quit [Remote host closed the connection]
ulfdoz has quit [Ping timeout: 248 seconds]
ankit9 has joined #ocaml
avsm has joined #ocaml
<sgnb>
flux: it was a coincidence
sebz has quit [Quit: Computer has gone to sleep.]
sebz has joined #ocaml
fschwidom has joined #ocaml
hto has quit [Ping timeout: 240 seconds]
hto has joined #ocaml
_michi_ has joined #ocaml
<_michi_>
Hi all, I am looking for help to build camlimages from source.
<_michi_>
with the omake way
<_michi_>
any helpful soul on there?
<_habnabit>
maybe if you ask a question
Associat0r has quit [Quit: Associat0r]
avsm has quit [Quit: Leaving.]
<_michi_>
ok let's do that :)
<_michi_>
I want to port camlimages to FreeBSD and therefore need to translate the make configure ; make all; make install mantra in omake parlance
<_michi_>
I could achieve build of camilages with omake install
<_michi_>
but I need to split installation and build procedure
<_michi_>
and got no clue from the OMakefile
<_michi_>
so is there a more or less well established to require the build of files
<_michi_>
?
<_michi_>
the obvious `omake all` did not make it
ftrvxmtrx has joined #ocaml
<_habnabit>
is there a setup.ml file?
<_michi_>
no there is not: in the op directory I have OMakefile, OMakeroot and OMyMakeroot, the latters are included by the former (AFAIU)
<_michi_>
s/op direcectory/top directory/
maufred_ has quit [Ping timeout: 245 seconds]
maufred has joined #ocaml
edwin has joined #ocaml
hto has quit [Quit: Lost terminal]
hto has joined #ocaml
<gildor>
thelema: why the server has been flaky lately ?
<adrien>
_michi_: first, which version of camlimages are you using? from which website
<adrien>
NaCl: about pausing and more advanced job control in flamel, it's mostly because I've triggered a lot of genome creations by mistake and it's still rendering (12 done out of 20 or 21
<adrien>
)
ftrvxmtrx has quit [Read error: Connection reset by peer]
ftrvxmtrx has joined #ocaml
<sgnb>
_michi_: why would you need to do anything special for FreeBSD?
<_michi_>
yes the latest from the website
<_michi_>
in FreeBSD software is supposed to be *built then installed
<sgnb>
as everywhere else
<_michi_>
*there is nothing very special here
<_michi_>
yes I just to want to separate the steps
<hcarty>
thelema: There was some talk in the Batteries world about adding something along the lines of type comparison_t = Less_than | Equal | Greater_than along with modules and functions to use this type (rather than <0, 0, >0)
<thelema>
hcarty: yes, gasche has a prototype in it.
<hcarty>
thelema: Do you think that will make it into 2.0?
<thelema>
since it can go in 2.1, there's no big hurry for 2.0
<hcarty>
That works out well
mcclurmc has quit [Excess Flood]
mcclurmc has joined #ocaml
dsheets has joined #ocaml
rwmjones has quit [Read error: Operation timed out]
<_habnabit>
it makes me smile whenever I look at it.
<bitbckt>
nice. :)
ftrvxmtrx has joined #ocaml
raichoo has joined #ocaml
rwmjones has joined #ocaml
<Anarchos>
_habnabit clever
<Anarchos>
_habnabit you remove 1 element from l1 and 2 from l2, so number of items removed from l1 is the half of lenght of l2 (+/-1 for odd length), is that the correct analysis ?
adrien has quit [Quit: weeeeeeeee]
<_habnabit>
right
adrien has joined #ocaml
<Anarchos>
_habnabit but it is not python ;)
<_habnabit>
indeed it isn't
<Anarchos>
_habnabit my first order proof verifier is in good shape
<Anarchos>
_habnabit thanks to curry-howard, it is easy to do propositional lenghty proofs
<Drakken>
Hello, caml coders.
<Anarchos>
Drakken hi
<Drakken>
What's the point of creating a local scope without binding anything? i.e. [let _ = ...] or [let () = ...]
<Drakken>
if !repository <> "stable" && !repository <> "testing" && !repository <> "unstable" then (print_endline "Error: Repository must be stable, testing or unstable."; exit 1);
<Drakken>
if !godi then print_endline "GODI_LOCALBASE detected, using it for installs";
<Drakken>
()
<Drakken>
from odb.ml
<adrien>
I guess it's the entry point for the program
ttamttam` has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<adrien>
since all top-level statements are evaluated at program startup, this '()' gets evaluated and therefore, the code it "contains" gets evaluated
<Anarchos>
Drakken for side effects : let () = read_entry ....
<Drakken>
that's in thelema's github repository
<adrien>
if you have only function declarations in your code, ocaml will happily return immediately
<Anarchos>
Drakken just spot the "Arg.parse cmd_line ..." at the beginning :)
<Drakken>
Anarchos okay I spotted it. Now what?
<Anarchos>
as adrien said this is I/O, executed when the "let () =" definition is evaluated
<Drakken>
as opposed to what?
<Drakken>
What happens without the scope?
<hcarty>
Drakken: If it works, you would probably need ;; after that block
<thelema>
at the toplevel, `foo;;bar;;` is valid, also `let () = foo let () = bar`
Anarchos has quit [Read error: No route to host]
<Drakken>
so it's just a syntactic alternative to the double semicolons?
<thelema>
more or less
<thelema>
at the toplevel, at least.
Anarchos has joined #ocaml
vivanov has quit [Quit: Lost terminal]
ftrvxmtrx has quit [Read error: Connection reset by peer]
zorun has quit [Quit: leaving]
morolin has quit [Ping timeout: 244 seconds]
zorun has joined #ocaml
ftrvxmtrx has joined #ocaml
<Drakken>
In the makefile of the emacs subdirectory of the ocaml installation directory tree...
<Drakken>
The install target sets the variable xxx, then tests $$2.
<Drakken>
And it's surprised when it doesn't find anything.
ftrvxmtrx has quit [Read error: Connection reset by peer]
ygrek has quit [Remote host closed the connection]
ygrek has joined #ocaml
fschwidom has quit [Remote host closed the connection]
ikaros has joined #ocaml
ygrek has quit [Ping timeout: 248 seconds]
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
edwin has quit [Remote host closed the connection]
avsm1 has quit [Quit: Leaving.]
raichoo has quit [Quit: leaving]
hto has quit [Quit: Lost terminal]
hto has joined #ocaml
hto has quit [Client Quit]
hto has joined #ocaml
hto has quit [Client Quit]
djcoin has joined #ocaml
<djcoin>
Hi all/Bonjour :) Im looking for the best book (pdf or printed) I may find to start learning OCaml, I speak french and I have some background in Python, Javascript, C, already tried caml at school
lusory has joined #ocaml
<djcoin>
Thanks a lot for any insights !
ztfw has joined #ocaml
<brendan>
don't know them all, but I liked the jason hickey book
Morphous has quit [Read error: Connection reset by peer]
<Qrntzz>
I, for one, enjoyed practical ocaml by smith
<djcoin>
Thanks !
Cyanure has quit [Remote host closed the connection]
<bitbckt>
the Hickey book and the O'Reilly France book (as you speak French) are good. Practical OCaml is widely held to be terribly written.
<bitbckt>
and, obviously, the official manual.
<bitbckt>
djcoin: ^^
<djcoin>
All right, im currently reading Introduction to Ocaml by Hickey
<djcoin>
bitbckt: the Développement d'applications avec Objective Caml book ?
<djcoin>
are you french btw ?
<djcoin>
just curious :)
hto has joined #ocaml
<bitbckt>
djcoin: Yes, that book. No, I'm not French.
Anarchos has joined #ocaml
<djcoin>
ok, thanks! - you just escaped several questions about 'jobs' in ocaml - :)
<bitbckt>
I'll breathe a sigh of relief at my escape.
<djcoin>
nice acting :)
<bitbckt>
hehe
Morphous has joined #ocaml
ikaros has quit [Quit: Ex-Chat]
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
avsm has joined #ocaml
ftrvxmtrx_ has quit [Ping timeout: 244 seconds]
ftrvxmtrx has joined #ocaml
avsm has quit [Quit: Leaving.]
dnolen has joined #ocaml
struktured has joined #ocaml
Drakken has left #ocaml []
struktured has quit [Ping timeout: 252 seconds]
djcoin has quit [Quit: WeeChat 0.3.2]
struktured has joined #ocaml
sepp2k has quit [Remote host closed the connection]