flux changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 4.00.1 http://bit.ly/UHeZyT | http://www.ocaml.org | Public logs at http://tunes.org/~nef/logs/ocaml/
tane has quit [Quit: Verlassend]
jcao219 has quit [Ping timeout: 256 seconds]
<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
<flux> m4b, so a type that is either T or P set?
<flux> a set of wat?
<flux> +h
<ski> "The OCaml system Documentation and user’s manual - Part II The OCaml language - Language Extensions - 7.8 Recursive modules" <http://caml.inria.fr/pub/docs/manual-ocaml/manual021.html#toc75>
<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
<m4b> ok
<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
<adrien_oww> unlike svn which takes the day
<avsm> It did take a bit of messing around to get that conversion working; https://github.com/ocaml/ocaml.org-scripts/tree/master/vcs-sync/svn-ocaml
<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 ...
<gasche> I didn't get your opinion on http://caml.inria.fr/mantis/view.php?id=5547
<adrien_oww> (since these other tools would have sane build procedures and would use ocamlfind to install)
<gasche> (enable -use-ocamlfind by default)
<gasche> I think camlp4 and ocamlbuild may be split from the core distribution eventually
<adrien_oww> btw, garrigue doesn't want to have to have ocamlfind all the time
<adrien_oww> but he's considering it's an unnecessary extra step when trying new compiler builds
<adrien_oww> which I agree with but it doesn't have to be annoying
<gasche> well ocamlfind is quite small compared to ocamlbuild/camlp4/ocamldoc
<gasche> it's lunch time now
<gasche> but avsm and adrien_oww , I'm interested on opinions on ocamlbuild
<gasche> I'm dedicating some time this week to triage its feature request / bug reports
<gasche> and maybe fix some of them
<gasche> so anything constructive about what improvements should be made will be appreciated
<adrien_oww> oh? you're going to make it not spawn bash on windows? \o/
<adrien_oww> (hahaha, sorry, that was too easy)
<gasche> I don't think there is an easy way to do that
<gasche> as for complex ways, I need a windows expert to do it, hint hint adrien
<adrien_oww> it's well-documented
<gasche> well send us a patch?
ggole has joined #ocaml
<gasche> lunch
<adrien_oww> f00d
<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
<avsm> so that editing _tags isn't needed
<gasche> that's already done by wmeyer, I think
<avsm> oh? i missed that
<gasche> I had missed it as well
<gasche> let me find the commit
<gasche> I found that out while looking at the testsuite wmeyer added to ocamlbuild; neat stuff
<avsm> ahh
<avsm> so, hrm, to use lwt i need: ocamlbuild ocamlc -syntax camlp4o -use-ocamlfind -package lwt.unix -package lwt.syntax
<gasche> yes
<avsm> it's got to be possible to simplify that. it's a pity that the lwt.syntax isn't sufficient
<avsm> ocamlbuild -pkg lwt.unix,lwt.syntax would be the ideal command line here
<gasche> well enabling -use-ocamlfind by default was one way to help shorten those lines
<gasche> but it may not be necessary
talzeus has joined #ocaml
talzeus has quit [Remote host closed the connection]
<avsm> yeah, i'm just thinking about how it ought to look
<gasche> I like the process
<avsm> lunch first, though.
<gasche> I think it's unwise to play a guessing game with the ocamlfind command line
vivanov has joined #ocaml
vivanov has quit [Read error: Connection reset by peer]
<gasche> currently we have both -syntax camlp4o and -package lwt.syntax because ocamlfind won't work without the -syntax
<gasche> it would be better to fix that at the ocamlfind level, I think
<gasche> so that ocamlfind ocamlc -package camlp4.syntax works
<gasche> lwt.syntax
vivanov has joined #ocaml
vivanov has quit [Read error: Connection reset by peer]
<avsm> having a syntax convention seems reasonable enough
<gasche> hm
<gasche> I was thinking of adding a feature, in META files, to activate some predicates
<gasche> (I'm not sure if that's not already possible)
<gasche> the downside is that taking advantage of this requires rewriting META files
vivanov has joined #ocaml
vivanov has quit [Read error: Connection reset by peer]
<gasche> but if you control the OPAM repo you can do that rather easily
<gasche> what do you think of the idea?
Tobu has quit [Remote host closed the connection]
<avsm> i think we'll be putting in some infrastructure to make OPAM-wide patching easier
<avsm> the OCAMLPARAM feature is very useful towards this
<avsm> (except for the implicit module open that snuck into that, which i'm a bit nervous about)
<Drup> (speaking of oasis, what should I modify to add a licence ?)
<gasche> Drup: no idea, grep the source code
<gasche> I wonder whether the licence handling isn't done by a dependency though
<gasche> avsm: if I was in charge, OCAMLPARAM would be blasted away from the incoming release
<gasche> I don't think it's in shape for inclusion, and there is no consensus about it
<avsm> it's certainly coming in very late
<avsm> it's a pity he didn't put the absolute minimal scaffolding in
<avsm> because controlling flags like -g and -p is incredibly useful
<avsm> so ocamlfind builds without camlp4 now with 1.4?
<avsm> that'll let me add a base-camlp4 to OPAM
vivanov has joined #ocaml
vivanov has quit [Read error: Connection reset by peer]
<gasche> that's the goal
<Drup> ok, I finally find it
<gasche> if I understood correctly, Gerd kept the old parser implementation around, but it's not a compile-time dependency
Tobu has joined #ocaml
<gasche> (we did tests and the parser seem equivalent for all non-erroneous inputs we could find)
* avsm leaves OPAM compiling on OS X Mavericks and finally goes for lunch
vivanov has joined #ocaml
<Drup> gasche: do you want to go back to the previous macaque conversation ? :)
<gasche> rather tomorrow
<gasche> I'm looking at OCaml right now
<Drup> ok
jbrown has quit [Ping timeout: 245 seconds]
f[x] has joined #ocaml
ygrek has quit [Ping timeout: 255 seconds]
vext01 has quit [Quit: newsnap]
fraggle_laptop has joined #ocaml
jbrown has joined #ocaml
y has joined #ocaml
y is now known as Guest42264
ollehar1 has joined #ocaml
f[x] has quit [Ping timeout: 255 seconds]
beckerb has joined #ocaml
zzz_ has quit [Ping timeout: 245 seconds]
Kakadu_ has joined #ocaml
zzz_ has joined #ocaml
talzeus has joined #ocaml
Tobu has quit [Remote host closed the connection]
<bobry> I wonder why OASIS doesn't use GitHub for issue tracking?
Tobu has joined #ocaml
Kakadu has quit [Quit: Page closed]
Kakadu_ has quit []
vivanov has quit [Quit: leaving]
mattrepl has joined #ocaml
Kakadu has joined #ocaml
asmanur_ has quit [Ping timeout: 248 seconds]
asmanur has joined #ocaml
Tobu_ has joined #ocaml
Tobu has quit [Ping timeout: 256 seconds]
Tobu_ is now known as Tobu
eikke has joined #ocaml
Watcher7|off is now known as Watcher7
weie has quit [Quit: Leaving...]
osnr has joined #ocaml
osnr has quit [Changing host]
osnr has joined #ocaml
ollehar has quit [Ping timeout: 240 seconds]
shinnya has joined #ocaml
weie has joined #ocaml
csakatoku has joined #ocaml
talzeus has quit [Remote host closed the connection]
ski has quit [Ping timeout: 256 seconds]
darkf has quit [Quit: Leaving]
mattrepl has quit [Quit: mattrepl]
smondet has joined #ocaml
fayden has quit [Read error: No route to host]
<dsheets> will warning 44 definitely be in 4.01?
ollehar has joined #ocaml
raichoo has quit [Quit: leaving]
<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
mattrepl has joined #ocaml
<DMA> I tried make clean && echo Seems O
<DMA> *OK
eikke has quit [Ping timeout: 246 seconds]