<rgrinberg>
back to Go, It's unreal that language is getting any sort of following today
<rks__>
:D
eikke has quit [Read error: Operation timed out]
djcoin has quit [Quit: WeeChat 0.4.0]
breakds has joined #ocaml
csakatoku has joined #ocaml
ollehar has quit [Ping timeout: 245 seconds]
csakatok_ has joined #ocaml
Watcher7 is now known as Watcher7|off
csakatoku has quit [Ping timeout: 256 seconds]
amiller_ has joined #ocaml
madroach has quit [Ping timeout: 248 seconds]
Neros has quit [Ping timeout: 256 seconds]
madroach has joined #ocaml
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
wmeyer has joined #ocaml
<wmeyer>
morning
Zeev has joined #ocaml
Watcher7|off is now known as Watcher7
cdidd has quit [Ping timeout: 260 seconds]
cdidd has joined #ocaml
breakds has quit [Remote host closed the connection]
darkf has joined #ocaml
q66 has quit [Remote host closed the connection]
talzeus has joined #ocaml
wmeyer has quit [Read error: Operation timed out]
weie has quit [Quit: Leaving...]
dsheets has quit [Read error: Operation timed out]
shinnya has quit [Read error: Operation timed out]
weie has joined #ocaml
osnr has quit [Quit: Leaving.]
Drup has quit [Quit: Leaving.]
Zeev has quit [Read error: Connection reset by peer]
Zeev has joined #ocaml
mattrepl has quit [Quit: mattrepl]
m4b has joined #ocaml
<m4b>
if I want to define a type with a constructor that takes an OCaml Set of that type, is this possible? i.e., something like: type t = T | P of t <set>. I can't seem to figure out what the type would look like, since the set module requires a type to instantiate it in the first place...
<m4b>
my reason is I want to represent a sum of terms as a set of terms; similarly for a multiplication of terms
<m4b>
this might work: module TermSet = Set.Make( struct let compare = Pervasives.compare type t = One | Zero | Var of string | Inv of t| Plus of t | Mult of t end )
<m4b>
?
<ski>
m4b : see the above link
<m4b>
ski: ok thanks, will check it out.
<m4b>
flux: so, for example, in haskell it is common to have a constructor take a Set or a Map type, instead of a list, for its type; I was hoping to represent addition of terms as a set, similarly multiplication of terms as a set, instead of lists, or tuples.
<m4b>
and my example doesn't seem to be working
<m4b>
ski: so, looking at the link, I don't really understand the example.
<ski>
it builds a module `A' with a type `t' at the same time as calling the functor `Set.Make' (on the module `A') to build a module `ASet' with a type `t' that represents a set of elements of type `A.t'
<ski>
note how module `A' uses `ASet.t' to define `A.t', and also uses `ASet.compare' to define `A.compare'
<m4b>
motherofgod.jpg
<ski>
i thought this was what you wanted to do ?
<m4b>
ski: thank you, I will have to think about this for a bit; I've got it syntactically compiling
ttamttam has joined #ocaml
<m4b>
ski: it is; I think it's going to work, just very unfamiliar with this
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
<m4b>
I don't understand the syntax in this line though: and ASet : Set.S with type elt = A.t
<m4b>
why is ASet : Set.S ?
ttamttam has left #ocaml []
<ski>
`Set.S' is the signature of the set manipulating module constructed by the `Set.Make' functor
<ski>
the ` with type elt = A.t' annotation is to make sure the module system knows the element type of these sets is the type `A.t'
<m4b>
ski: thank you, coffee shop is closing, must go, but appreciate your comments :D
<ski>
yw
osnr has quit [Ping timeout: 256 seconds]
m4b has quit [Ping timeout: 252 seconds]
f[x] has joined #ocaml
derek_c has joined #ocaml
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
pootler_ has quit [Ping timeout: 248 seconds]
osnr has quit [Ping timeout: 256 seconds]
Yoric has joined #ocaml
f[x] has quit [Ping timeout: 241 seconds]
Yoric has quit [Ping timeout: 256 seconds]
gautamc has quit [Read error: Connection reset by peer]
pootler_ has joined #ocaml
gautamc has joined #ocaml
ulfdoz has joined #ocaml
ttamttam has joined #ocaml
Yoric has joined #ocaml
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
osnr has quit [Ping timeout: 276 seconds]
ulfdoz has quit [Quit: deprecated]
Watcher7 is now known as Watcher7|off
ontologiae_ has joined #ocaml
ygrek has joined #ocaml
mcclurmc has joined #ocaml
csakatoku has joined #ocaml
csakatok_ has quit [Ping timeout: 256 seconds]
adrien_o1w has joined #ocaml
adrien_oww has quit [Ping timeout: 248 seconds]
hkBst has joined #ocaml
hkBst has quit [Changing host]
hkBst has joined #ocaml
pootler_ has quit [Ping timeout: 252 seconds]
ontologiae_ has quit [Ping timeout: 252 seconds]
derek_c has quit [Quit: leaving]
adrien_o1w is now known as adrien_oww
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
darkf_ has joined #ocaml
eikke has joined #ocaml
darkf has quit [Ping timeout: 246 seconds]
darkf_ is now known as darkf
cago has joined #ocaml
mika1 has joined #ocaml
ggole has joined #ocaml
eikke has quit [Ping timeout: 255 seconds]
ttamttam has quit [Quit: ttamttam]
ttamttam has joined #ocaml
osnr has quit [Ping timeout: 240 seconds]
pootler_ has joined #ocaml
rossberg_ has quit [Read error: Connection reset by peer]
mcclurmc has quit [Ping timeout: 255 seconds]
<gasche>
ygrek: good job on 0install!
rossberg has joined #ocaml
djcoin has joined #ocaml
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
ontologiae_ has joined #ocaml
osnr has quit [Ping timeout: 248 seconds]
remyzorg has joined #ocaml
remyzorg has quit [Client Quit]
remyzorg has joined #ocaml
remyzorg has left #ocaml []
raichoo has joined #ocaml
remyzorg has joined #ocaml
<gasche>
adrien: any idea when your cross-compile patches could get back in shape?
Kakadu has joined #ocaml
<remyzorg>
gasche : we speak yesterday about opam env in emacs and i find what is the real problem
<ygrek>
gasche, purely accidental
<adrien_oww>
gasche: I started on them yesterday actually; turned out I had rm'ed my ocaml repo
<ygrek>
and I don't think it matters anyway
<adrien_oww>
so I spent the evening cloning again :D
<adrien_oww>
anyway, I'll be replaying them and rebasing them afterwards fairly soon now
<remyzorg>
gasche : the problem is not emacs, but the Makefile function 'shell' used in the default generated Makefile from eliom-distillery. It seams that this function doesn't use any env
<gasche>
hm
<gasche>
adrien_oww: you did not use git-svn, right?
<gasche>
because git clone github/ocaml/ocaml is the better way now
<adrien_oww>
I do
<adrien_oww>
hmmm
<gasche>
the problem with git-svn alone is that the commit hashes are not stable
<adrien_oww>
well, I wasn't so sure so I ran it
<gasche>
besides it's slower than cloning an already-converted repo
<gasche>
ok
<gasche>
anyway
<adrien_oww>
but running it through git will be pretty quick
<avsm>
we also had to map svn -> git branches in the script, instead of making them tags
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
talzeus has quit [Remote host closed the connection]
<gasche>
avsm: I am looking at your old .pp.ml ocamlbuild feature request right now
<gasche>
not sure if you personally care anymore
<gasche>
but it's in fact not that simple to do
<gasche>
the problem being that ocamlfind doesn't allow to call only the preprocessor easily (no "ocamlfind camlp4" command)
talzeus has joined #ocaml
<gasche>
(if I had looked at that a week earlier, I'd have considered implementing it in OCamlfind before the release)
Tobu has quit [Remote host closed the connection]
<gasche>
that said
<avsm>
yeah, hm.
osnr has quit [Ping timeout: 256 seconds]
<gasche>
it is possible to achieve something similar using the new -dsource option
<avsm>
my real problem with ocamlbuild -use-ocamlfind is how slow it is
<gasche>
that is emulate "ocamlfind camlp4" by using "ocamlfind ocamlc -dsource" instead
<avsm>
for the bigger projects, we run ocamlfind at configure time and just cache the various camlp4 options on a per-project bassis
<gasche>
could this workflow be integrated into ocamlbuild itself?
<gasche>
I suspect the caching could be done at the ocamlfind level
<gasche>
but I don't know what your performance profiles are
<gasche>
(is the cost in creating all those shell processes?)
<avsm>
I started on this (with a set of ocamlbuild rules to run configure scripts, that are then read by other files during the build)
<avsm>
it did work up to one point: i no longer needed -use-ocamlfind (which is a bit of an evil option)
namoamitabuddha has joined #ocaml
<gasche>
we are discussing enabling it by default for the next release
<avsm>
the cost is forking, yes. It's very expensive on modern hardware
<avsm>
i find it odd that, after all the effort into making ocamlbuild have a dynamic dataflow graph, that -use-ocamlfind isn't simply a set of rules
<avsm>
why's it so deeply embedded into ocamlbuild?
Tobu has joined #ocaml
<avsm>
Both JS and Citrix use pre-forking these days i notice (JS in Jenga, Citrix in xapi)
skchrko has quit [Quit: Leaving]
<adrien_oww>
-use-ocamlfind conflicts with oasis iirc
<avsm>
ah yes, that's right. it generates its own rules
<avsm>
the biggest thing ocamlbuild needs is a way to compose and distribute myocamlbuild rules
<avsm>
i've been trying to explain how this works in RWO and, frankly, gave up. It just doesn't work very well at the moment without a mult-plugin system rather than one monolithic myocamlbuild file
mcclurmc has joined #ocaml
<companion_cube>
avsm: forking is very fast on unix, isn't it?
<companion_cube>
it's copy on write etc.
Yoric has quit [Ping timeout: 255 seconds]
<avsm>
64-bit, the page table copy cost is rather high
<avsm>
and a gc touches more pages than usual
<avsm>
a pathological case is a gc cycle triggering right after a fork
<pippijn>
11:14 < avsm> the biggest thing ocamlbuild needs is a way to compose and distribute myocamlbuild rules
<pippijn>
amen
<pippijn>
avsm: I did this with an additional custom preprocessor
<pippijn>
like oasis
<pippijn>
it adds all system-wide rules to every myocamlbuild.ml
<companion_cube>
what do you use the myocamlbuild.ml for?
<avsm>
pippijn: yeah, me too: sed :-)
<pippijn>
I don't understand the question
<pippijn>
avsm: I have something like OASIS_START/END in there, too
<adrien_oww>
I'll amen too to being able to compose myocamlbuild rules
<avsm>
pippijn: code anywhere, or just for your own use?
<avsm>
pippijn: i'd love for (e.g.) atdgen to install a custom rule and make that available system-wide
<avsm>
and mirage/xen for that matter
<adrien_oww>
:-)
<pippijn>
avsm: just my own use, although I wanted to publish it
<adrien_oww>
avsm: could that go into the ocamlfind META files?
remyzorg has quit [Ping timeout: 250 seconds]
<pippijn>
avsm: it's exactly for atdgen and the likes
<pippijn>
because I write tools that generate code
<pippijn>
and I use atdgen :)
* avsm
encourages pippijn to put that online. very useful!
<avsm>
adrien_oww: quite possibly. ocamlfind is a bit like the ocaml module system: you just have to drink it and see what happens sometimes
<companion_cube>
pippijn: the question is, what do you need myocamlbuild
<pippijn>
companion_cube: for custom rules
<pippijn>
companion_cube: for code generating tools
<companion_cube>
oh
<pippijn>
I have several such tools
<adrien_oww>
avsm: I am wondering if the META could carry enough information to explain how to convert a file, say .ml4.xstrp4, into a .ml
<adrien_oww>
and already have the syntax
<adrien_oww>
or something similar that would cover most uses (but not all)
<gasche>
so
<gasche>
we're discussing having -use-ocamlfind enabled by default because it's very convenient
<gasche>
and would help beginners to use the tool
gal_bolle has joined #ocaml
ggole has quit [Ping timeout: 256 seconds]
<gasche>
avsm: what would you see instead of -use-ocamlfind?
ygrek has quit [Ping timeout: 252 seconds]
<gasche>
if one disable this option, OCamlbuild will somehow emulate parts of it calling `ocamlfind query` itself (and caching such calls)
<gasche>
but I don't find it very sane to reproduce the ocamlfind logic inside ocamlbuild
<avsm>
gasche: wouldn't turning it on by default introduce a dependency on an external package in the core compiler?
<gasche>
well it could optionally be disabled of course
<avsm>
several things use ocamlbuild without ocamlfind (most notably, oasis, which calls it directly)
<adrien_oww>
that definitely wouldn't match how things are done in ocamlfind to boostrap
<avsm>
yes, but that would totally break backward compat. how is it even an option to consider breaking ocamlbuild backwards compat?
<adrien_oww>
as far as I'm concerned, I think ocamlfind could be part of the core distribution
<adrien_oww>
(and ocamldebug, ocamldoc, camlp4, ... outside of it)
<adrien_oww>
(but all using ocamlfind)
<avsm>
indeed; it makes more sense to either integrate ocamlfind, or split out ocamlbuild+ocamlfind
<avsm>
or install an ocamlbuildf or some other variant name that activates the option by defaul
<adrien_oww>
I definitely wouldn't mind installing ocaml (compiler only), then ocamlfind, then ocamldebug, then ocamldoc, then camlp4, then labltk, then ...
<adrien_oww>
well, I'd rather put the *argv[] -> char* conversion in mingw-w64 so that anyone can use it
<adrien_oww>
and then bind to it from ocaml
<adrien_oww>
the fftw godi package is pure crap
<adrien_oww>
> /bin/sh: /usr/local/stow/ocaml-cvs/bin/ocamldep: No such file or directory
<vbmithr>
adrien_oww: try the OPAM package ?
Zeev has left #ocaml []
ontologiae has joined #ocaml
ontologiae_ has quit [Ping timeout: 252 seconds]
jonafan has quit [Read error: Operation timed out]
<gal_bolle>
why is opam so slow when a package is versionned with darcs? Are there bugs / missing features of darcs causing that?
<gal_bolle>
(not complaining, just wondering what darcs can do better for opam)
skchrko has joined #ocaml
<avsm>
not sure. i dont use darcs personally. a bug report with a little profiling would be helpful if it's really bad (with —debug output to see what commands are being run)
jonafan has joined #ocaml
csakatoku has quit [Remote host closed the connection]
talzeus has quit [Remote host closed the connection]
dsheets has joined #ocaml
Yoric has joined #ocaml
Tobu has quit [Remote host closed the connection]
talzeus has joined #ocaml
Tobu has joined #ocaml
Drup has joined #ocaml
_andre has joined #ocaml
q66 has joined #ocaml
namoamitabuddha has quit [Quit: WeeChat 0.3.8]
talzeus has quit [Remote host closed the connection]
breakds has joined #ocaml
talzeus has joined #ocaml
ygrek has joined #ocaml
talzeus has quit [Remote host closed the connection]
Neros has joined #ocaml
Kakadu has quit [Read error: Operation timed out]
ollehar has joined #ocaml
Kakadu has joined #ocaml
<gasche>
avsm: I'm not sure how much enabling -use-ocamlfind by default would break compatibility
<avsm>
should just try a bulk opam build with an ocamlbuild shell script that adds the option i guess
<avsm>
ocamlot is almost up and running to help with that sort of thing. just interface cleanups atm
<gasche>
aha, do you have a rough timeline?
<gasche>
(no OCamllabs May monthly report yet :(
<avsm>
my bad. hyper busy with RWO
<avsm>
a few days to get builds rolling. need to get all the machine pools sorted
<avsm>
tedious sysadmin
<gasche>
what I understand is that -use-ocamlfind defines parametrized flags package(), syntax(), predicates(), and then changes the names of the compilers to "ocamlfind <command>" instead of <command>
jayprich has joined #ocaml
<gasche>
flag addition may conflict with user-imported OCamlbuild plugins, as those of OASIS, so that has to be checked
<gasche>
and the use of "ocamlfind ..." for all compilation will definitely have an observable impact (not sure how it could break backward-compatibility though)
<gasche>
a middle-ground would have been to prepend "ocamlfind" to the command only when one of the ocamlfind-specific options is passed
osnr has joined #ocaml
<avsm>
why isn't ocamlfind just a tag that is filled into the command-line hole if needed?
<gasche>
but I'm not sure whether that would be a safe change for everyone
<avsm>
with a priority to the start of the command of course
<avsm>
if -package is used, then the start of the cmd-line gets a ocamlfind prepended
<avsm>
that would seem to be more in keeping with the tag and vpath system in the rest of ocamlbuild
<gasche>
I don't see the fact of having ad-hoc logic to handle ocamlbuild as problem (as long as it's conditioned on the "ocaml" tag, of course)
<gasche>
but if it can be done elegantly with few changes to the rest of the system, why not
<gasche>
in any case, there is the issue that "ocamlfind ocamlc foo" and "ocamlc foo" may not call the same compiler, if the user played with his PATH, or ocamlfind's variables
osnr has quit [Ping timeout: 260 seconds]
<avsm>
that complexity just comes from ocamlbuild's attempts to hardcode a compiler and not just depend on the PATH
<avsm>
it would be far easier if ocamlbuild just used the ocamlc on the PATH
<gasche>
I don't understand that part (though I suspect it may come from bootstrapping needs)
<avsm>
right. but bootstrapping doesn't really work anyway, so i'd prefer a Makefile bootstrap and a simpler ocamlbuild
<gasche>
why not
<gasche>
if we get people to work on that
<avsm>
the thing that's always stopped me from contributing to ocamlbuild is the desire to delete half of it first ;-)
<avsm>
it's certainly going up my priority queue though
<gasche>
well
<gasche>
do you have some specific issues that I could have a look at, on the bugtracker or elsewhere?
<avsm>
it's the whole experience of using ocamlfind packages and sytnax
<avsm>
syntax extensions
<avsm>
try writing a short tutorial on how to build a library using lwt, and you'll see what i mean
<gasche>
I've been looking at the "syntax extension" part yesterday
<avsm>
so integrating -syntax would be very useful indeed
<dsheets>
There are a number of opam packages that appear to use warnings-are-errors and simultaneously trigger warning 44. This causes them to fail in 4.01.0+dev16 but work fine in 4.00.1
Yoric has quit [Ping timeout: 256 seconds]
jayprich has quit [Ping timeout: 256 seconds]
csakatoku has quit [Remote host closed the connection]
csakatoku has joined #ocaml
ollehar1 has quit [Read error: Operation timed out]
csakatoku has quit [Ping timeout: 246 seconds]
cago has left #ocaml []
mika1 has quit [Quit: Leaving.]
Guest42264 has quit [Ping timeout: 252 seconds]
ollehar1 has joined #ocaml
ollehar has quit [Ping timeout: 252 seconds]
<flux>
as I've learned to evangelize: do not distribute sources that do warnings-as-errors
<flux>
it would be better to just eliminate them for a system like opam.
hkBst has quit [Quit: Konversation terminated!]
<dsheets>
each package has build system autonomy, though
ttamttam has quit [Quit: ttamttam]
<flux>
well, each package intending to distribute packages for people other than the developers of the package should drop it :)
<flux>
it's not like it can ever be fixed to be future proof.
<flux>
(well, there actually was a suggestion to '-W up-to-this-number', maybe it was even implemented)
redfire has quit [Quit: WeeChat 0.3.8]
fayden has joined #ocaml
Drup has quit [Ping timeout: 256 seconds]
gal_bolle has quit [Quit: Konversation terminated!]
gasche has quit [Read error: Operation timed out]
fraggle_laptop has quit [Read error: Operation timed out]
gasche has joined #ocaml
ski has joined #ocaml
fraggle_laptop has joined #ocaml
<avsm>
dsheets: we just need to fix those or tell upstream, annoyingly
<avsm>
warnings-as-errors in a release is plain annoying, but i can see why people forget to turn it off
<dsheets>
yes, the right course seems to notify upstream to change in next release and cap current packages at 4.00.1
cdidd has quit [Remote host closed the connection]
<dsheets>
avsm, unless it is allowable to change a published package for build system brokenness
Neros_ has joined #ocaml
<avsm>
dsheets: prefer not to maintain local patches if we can help it
<avsm>
in the long term, it's better to educate the maintainers so it doesn't happen again
<avsm>
and this particular thing crops up EVERY release
pippijn_ has joined #ocaml
eikke has quit [Ping timeout: 260 seconds]
pippijn has quit [Ping timeout: 246 seconds]
Kakadu has quit [Ping timeout: 246 seconds]
Neros has quit [Ping timeout: 246 seconds]
Fnar has quit [Ping timeout: 246 seconds]
Fnar has joined #ocaml
Drup has joined #ocaml
csakatoku has joined #ocaml
remyzorg has joined #ocaml
remyzorg has quit [Ping timeout: 250 seconds]
csakatoku has quit [Ping timeout: 276 seconds]
raichoo has joined #ocaml
osa1 has joined #ocaml
<osa1>
as a starter, which build system should I use for my OCaml projects? I'm proficient in GNU Make, but I never used OCamlMake, OCamlBuild etc.
remyzorg has joined #ocaml
beckerb has quit [Ping timeout: 240 seconds]
<orbitz>
osa1: doing it in Make will be a constant struggle (I prefer make as well), but lots of people like OcamlBuild
<Drup>
the OCamlMakefile works quite well
<Drup>
I find it easier to use, but far less convenient and powerful than ocamlbuild, at least without hacking into the makefile
<orbitz>
yes, i've had success with OcamlMakefile
<osa1>
does ocamlbuild download and link dependencies automatically? like Haskell's Cabal?
<orbitz>
no, it's a build system
<adrien>
no build system does that
<orbitz>
use opam for taht
<adrien>
and actually, as orbitz said, it's a build system and not a package manager
<orbitz>
well, rebar does that adrien (and it sucks)
<adrien>
that sounds pretty awful for ocaml
<osa1>
"no build system does that" << is that really true? even CMake downloads dependencies
<orbitz>
osa1: sounds terrible
<orbitz>
rebar is for erlang, and it does that, and we try to avoid it as much as posisble because it's so terrible
remyzorg has quit [Ping timeout: 250 seconds]
ollehar1 has quit [Ping timeout: 260 seconds]
ontologiae has quit [Read error: Operation timed out]
<osa1>
orbitz: why does it sound terrible?
jayprich has joined #ocaml
<avsm>
the mirage build frontend does download dependencies automatically. it's surprisingly useful
<adrien>
how long does mirage take to compile? :P
<adrien>
and I find this fairly brittle
<adrien>
net breaks, build systems for packages won't like it, websites go down, files get moved
Yoric has joined #ocaml
<avsm>
it just invokes opam at the configure phase
<dsheets>
the secret is caching and uhh naming things?
pootler_ has quit [Ping timeout: 240 seconds]
<adrien>
I meant: I expect the time needed to build the dependencies is small compared to the time building openmirage mirage itself and it's therefore not as annoying
emmanuelux has joined #ocaml
venk` has joined #ocaml
gour has joined #ocaml
venk has quit [Ping timeout: 248 seconds]
jayprich has quit [Ping timeout: 246 seconds]
csakatoku has joined #ocaml
ollehar has joined #ocaml
gautamc has quit [Read error: Operation timed out]
csakatoku has quit [Ping timeout: 246 seconds]
<ggole>
Sigh, pattern matching on named constants should not be so clumsy.
dsheets has quit [Ping timeout: 252 seconds]
Watcher7 is now known as Watcher7|off
pootler_ has joined #ocaml
ygrek has joined #ocaml
Watcher7|off is now known as Watcher7
pootler_ has quit [Ping timeout: 252 seconds]
pootler_ has joined #ocaml
ontologiae has joined #ocaml
ygrek has quit [Ping timeout: 252 seconds]
osnr has quit [Quit: Leaving.]
osa1 has quit [Quit: Konversation terminated!]
Yoric has quit [Ping timeout: 255 seconds]
skchrko has quit [Quit: Leaving]
mcclurmc has quit [Read error: Operation timed out]
csakatoku has joined #ocaml
ggole has quit [Ping timeout: 260 seconds]
csakatoku has quit [Ping timeout: 248 seconds]
tane has joined #ocaml
mattrepl has joined #ocaml
Kakadu has joined #ocaml
eikke has joined #ocaml
tane has quit [Quit: Verlassend]
ttamttam has joined #ocaml
pootler_ has quit [Ping timeout: 248 seconds]
mattrepl has quit [Quit: mattrepl]
ttamttam has left #ocaml []
testcocoon has quit [Quit: Coyote finally caught me]
Yoric has joined #ocaml
testcocoon has joined #ocaml
<gour>
does ocaml have the same/similar requirement as f# to have source files in certain order so that one can build the project?
csakatoku has joined #ocaml
<Kakadu>
gour: Not really
<Kakadu>
in F# you should sort files by hand
<Kakadu>
OCaml has ocamldep tool which generated dependecies. This info is used by build system (ocamlbuild, make, etc.)
csakatoku has quit [Ping timeout: 252 seconds]
<gour>
i also thought the same, but when asked in #fsharp someone replied that "OCaml has the same requirements"
<gour>
Kakadu: is oasis getting better at becoming general-purpose build tool?
<Drup>
the correct answer is more like "yes, but we have tools to do it automatically" ;)
<Kakadu>
gour: Don't think so
<gour>
Kakadu: will OPAM become such a tool or stay just as package manager?
<Kakadu>
I hope that it will stay
<gour>
:-)
<gour>
so, ocamlbuild is still recommended build tool?
<Kakadu>
I think si
<Kakadu>
so*
<Kakadu>
It sucks if you have many non-OCaml code
<Kakadu>
like Coq
<Drup>
gour: you can also use oasis to do all the "upper level" stuff and ask it to use ocamlbuild to do the actual build.
<Kakadu>
also It sucks if you want to generate code in compile time and build it
<gour>
i reas a bit about ctypes lib allowing one not to go too low-level in order to use/call, 3rd party C libs, is it true?
jayprich has joined #ocaml
skchrko has joined #ocaml
ygrek has joined #ocaml
pootler_ has joined #ocaml
tane has joined #ocaml
raichoo has quit [Quit: leaving]
djcoin has quit [Quit: WeeChat 0.4.0]
karswell has quit [Remote host closed the connection]
karswell has joined #ocaml
csakatoku has joined #ocaml
ollehar1 has joined #ocaml
rwmjones has quit [Ping timeout: 264 seconds]
csakatoku has quit [Ping timeout: 248 seconds]
_andre has quit [Quit: leaving]
rwmjones has joined #ocaml
drwhom has joined #ocaml
ollehar has quit [Ping timeout: 248 seconds]
drwhom has quit [Quit: Leaving]
weie has quit [Read error: Connection reset by peer]
weie has joined #ocaml
weie has quit [Client Quit]
Kakadu has quit []
dsheets has joined #ocaml
gour has left #ocaml []
ollehar has joined #ocaml
jknick has quit [Quit: Lost terminal]
ollehar has quit [Ping timeout: 248 seconds]
csakatoku has joined #ocaml
csakatoku has quit [Ping timeout: 256 seconds]
pippijn_ is now known as pippijn
mcclurmc has joined #ocaml
tane has quit [Quit: Verlassend]
breakds has quit [Quit: Konversation terminated!]
brendan has quit [Read error: Operation timed out]
brendan has joined #ocaml
Yoric has quit [Ping timeout: 255 seconds]
eikke has quit [Ping timeout: 256 seconds]
eikke has joined #ocaml
Tobu has quit [Ping timeout: 256 seconds]
Tobu has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
bkpt has joined #ocaml
gautamc has joined #ocaml
jonafan has quit [Ping timeout: 256 seconds]
jonafan has joined #ocaml
csakatoku has joined #ocaml
csakatoku has quit [Ping timeout: 252 seconds]
mehdid has quit [Read error: Operation timed out]
breakds has joined #ocaml
mehdid has joined #ocaml
gildor has joined #ocaml
DMA has joined #ocaml
<DMA>
Hello. I came across a program named mp3packer and it's written in OCaml (which I don't know). There is a compiled Win executable that I wasn't able to run with wine and haven't found a way to compile the source code in Linux. Anyone knows how?
<Drup>
DMA: in the makefile, change the .obj to .o in the second line.
<Drup>
(and the .exe to nothing, if you want)
<Drup>
after that, it compiles but I didn't test it :)
<DMA>
Mmmh... the thing is I don't even know how the OCaml compiler is named XD
<DMA>
I don't know what package to look for
<Drup>
DMA: well, "ocaml" would be a start
<DMA>
And "ocaml compiler" is the second step, but I'm still not sure.
<DMA>
It's not like "gcc" that seems a lot more common
<DMA>
I guess there are various OCaml compilers?
venk` is now known as vpit3833
<Drup>
DMA: no really, just the "ocaml" package in your distribution, it's enough.
smondet has quit [Quit: bye]
<DMA>
There are a lot of ocaml* commands available. ocamlc? I guess ocamlbuild.native is invoked by ocamlc depending on the options used
<Drup>
DMA: yes, everything is package in the standard ocaml distribution
<DMA>
According to man ocamlc, it compiles bytecode, not native code
<Drup>
DMA: why you don't just use the makefile in the source of mp3packer ?
<DMA>
because... i don't a thing about compiling on Linux, more than "./configure; make; make install" (to make it short)
<DMA>
Does that mean that even if I use ocamlc, the makefile tells it to produce native code?
<Drup>
that's fortunate, just modify the makefile as I said earlier and do the "./configure; make; make install"
ontologiae has quit [Ping timeout: 276 seconds]
<Drup>
(The native compiler is ocamlopt, and it's the one used in the makefile)
<DMA>
The thing is... there is no configure script here. Just a bunch of .ml and a couple of .c files
<DMA>
But there is the makefile
<DMA>
But... dunno how to invoke the compiler. Got an error when trying ocamlopt mp3packer.ml
<Drup>
DMA: did you do this : "(01:02:03) Drup: DMA: in the makefile, change the .obj to .o in the second line." ?
<DMA>
Yep
<DMA>
Or, well... no. That seems to be already covered (I guess) by a "IfDef ComSpec \n #Windows \n O=.obj \n ... \n else \n O=.o"
<DMA>
Should I change it anyway?
<Drup>
yes, you should.
<DMA>
ok
<DMA>
Error: Unbound module Mp3read
emmanuelux has quit [Quit: emmanuelux]
<DMA>
There's a mp3read.ml file as well. I don't understand how the compiler knows what objects to compile first so others that call those don't break
<DMA>
Should I use something like --include . ?
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
<Drup>
DMA: It compiled out of the box for me, so I don't really now what's specific on your system
<Drup>
DMA: could you give me the output of "ocamlc -v" ?
<DMA>
The Objective Caml compiler, version 3.11.2
<DMA>
Standard library directory: /usr/lib/ocaml
<Drup>
that's quite old :/
<DMA>
Debian...
gautamc has quit [Quit: Leaving.]
<DMA>
Debian 6, but still Debian
gautamc has joined #ocaml
<DMA>
Time to move to 7.. or change distro
<Drup>
indeed
<DMA>
But the command is right? ocamlopt mp3packer.ml should do it all?
<Drup>
DMA: the makefile works fine for me
Watcher7 is now known as Watcher7|off
<DMA>
I'm not saying it doesn't. The problem could be the OCaml version I have. If I run "ocamlopt mp3packer.ml" on a CentOS (or sth else) with a newer/current version it'd probably work, right?
Watcher7|off is now known as Watcher7
<Drup>
not alone, no.
<DMA>
Well, in the directory where all the source files are
<Drup>
Using the makefile will also probably work and I really don't work to explain you the command line interface of the compiler. I'm not sure why you absolutely want to do it by invoking the compiler.
<Drup>
don't want*
<DMA>
Then I guess I still don't know which one the compiler (to native code) is XD. Isn't it ocamlopt? Should I stick to ocamlc and pass it some option so it doesn't generate bytecode but native code?
<DMA>
I tried running make(1) and got makefile:80: .depend: No such file or directory
<DMA>
This is sad, haha
<Drup>
make clean && make
<DMA>
same thing
<Drup>
huum
<DMA>
the error is actually being thrown this time by make clean