gildor changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | OCaml 3.12.1 http://bit.ly/nNVIVH
waterfowl has quit [Quit: waterfowl]
pilki has joined #ocaml
<hcarty> thelema: ocamlbrew now reports errors when they occur and directs the user to check out the log file for more information on the failure
<thelema> hcarty: yes, that's something we should have to do, push the oasis-db changes upstream
<thelema> yay, error checking!
<hcarty> :-)
<hcarty> There was error checking before... just not reporting when one came up
<hcarty> thelema: Agreed re: submitting changes upstream
<hcarty> ocamlbrew is almost ready to be Legitimately Useful
pilki has quit [Quit: This computer has gone to sleep]
bobzhang has joined #ocaml
<bobzhang> does anyone know how to use ocamlyacc to do context-senstive parsing? I
<bobzhang> mean before the component of symbols to be parsed do some
<bobzhang> actions. Thanks :)
mcclurmc has quit [Excess Flood]
mcclurmc has joined #ocaml
<thelema> bobzhang: before the component of symbols? I don't understand.
<bobzhang> thelema: yes, I found a way to walk around it. I mean my actions should be done before the production be parsed
spearalot has joined #ocaml
<thelema> bobzhang: that seems like an odd request to me, but I'm happy you've found a way to do what you want.
<bobzhang> thelema: yes, my grammar is context-sensitive
<bobzhang> I split the grammar into small pieces, and do some actions in each small pice
<thelema> bobzhang: the normal way to do context sensitive grammars in yacc is to overmatch and throw exceptions in the actions when the match was wrong
<bobzhang> thelema: thanks :p
spearalot has quit [Quit: Computer has gone to sleep]
joewilliams has quit [Remote host closed the connection]
bobry has quit [Remote host closed the connection]
lopex has quit [Read error: Connection reset by peer]
spearalot has joined #ocaml
mcclurmc has quit [Excess Flood]
mcclurmc has joined #ocaml
joewilliams has joined #ocaml
lopex has joined #ocaml
bobry has joined #ocaml
emmanuelux has joined #ocaml
mcclurmc has quit [Excess Flood]
mcclurmc has joined #ocaml
bobzhang has quit [Ping timeout: 252 seconds]
mcclurmc has quit [Excess Flood]
mcclurmc has joined #ocaml
fantasticsid has joined #ocaml
spearalot has quit [Quit: Computer has gone to sleep]
ftrvxmtrx has quit [Ping timeout: 240 seconds]
ftrvxmtrx has joined #ocaml
dsheets has quit [Ping timeout: 244 seconds]
NihilistDandy has quit [Quit: Linkinus - http://linkinus.com]
NihilistDandy has joined #ocaml
pilki has joined #ocaml
pilki has quit [Ping timeout: 244 seconds]
ankit9 has joined #ocaml
raichoo has joined #ocaml
ftrvxmtrx has quit [Ping timeout: 240 seconds]
ftrvxmtrx has joined #ocaml
waterfowl has joined #ocaml
letrec has joined #ocaml
sebz has joined #ocaml
raichoo has quit [Ping timeout: 268 seconds]
raichoo has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
sebz has joined #ocaml
sebz has quit [Client Quit]
fridim_ has quit [Ping timeout: 268 seconds]
ftrvxmtrx has quit [Ping timeout: 240 seconds]
ftrvxmtrx has joined #ocaml
kmc has joined #ocaml
fantasti` has joined #ocaml
raichoo has quit [Read error: Connection reset by peer]
fantasti` has quit [Client Quit]
fantasticsid has quit [Ping timeout: 240 seconds]
fantasti` has joined #ocaml
pango__ has joined #ocaml
fantasti` has quit [Client Quit]
pango_ has quit [Ping timeout: 240 seconds]
sebz has joined #ocaml
ftrvxmtrx has quit [Quit: Leaving]
sebz has quit [Client Quit]
NihilistDandy is now known as NihilistDandy|aw
sebz has joined #ocaml
raichoo has joined #ocaml
bitbckt has quit [Quit: out]
bitbckt has joined #ocaml
fantasticsid has joined #ocaml
joewilliams has quit [Excess Flood]
lopex has quit [Max SendQ exceeded]
ttamttam has joined #ocaml
edwin has joined #ocaml
ftrvxmtrx has joined #ocaml
joewilliams has joined #ocaml
spearalot has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
lopex has joined #ocaml
milosn has quit [Ping timeout: 240 seconds]
milosn has joined #ocaml
sebz has joined #ocaml
ulfdoz_ has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
ulfdoz has quit [Ping timeout: 252 seconds]
ulfdoz_ is now known as ulfdoz
snarkyboojum has quit [Ping timeout: 252 seconds]
snarkyboojum has joined #ocaml
sebz has joined #ocaml
raichoo has quit [Quit: leaving]
_andre has joined #ocaml
destrius has quit [Quit: Leaving.]
larhat has joined #ocaml
<adrien> when building, the "inconsistent assumptions" stuff is only impacted by .mli files, right?
<adrien> and if I have A.mli, B.mli and a module C, if B.mli depends on A.mli and C depends on B; if I modify A.mli and recompile the module B, do I also have to recompile C?
<adrien> (actually I'm pretty sure I'll have to do that; bah)
kmc has quit [Quit: Leaving]
larhat has quit [Quit: Leaving.]
fantasticsid has quit [Ping timeout: 240 seconds]
sebz has quit [Quit: Computer has gone to sleep.]
sebz has joined #ocaml
sebz has quit [Ping timeout: 244 seconds]
<hcarty> And let.foo is back out again...
<adrien> I don't understand: "no consensu on proposal"? which proposal?
<hcarty> adrien: I would guess some combination of the syntax and functionality
<adrien> but has there been any public discussion?
<hcarty> Probably among the core development team
<hcarty> I haven't seen anything public
<hcarty> Aside from the commits :-)
<adrien> ok, a bit frustrating
waterfowl has quit [Ping timeout: 244 seconds]
waterfowl has joined #ocaml
fanasticsid has joined #ocaml
fanastic` has joined #ocaml
fanasticsid has quit [Ping timeout: 240 seconds]
fanastic` has quit [Remote host closed the connection]
oc13 has joined #ocaml
ttamttam has left #ocaml []
fantasticsid has joined #ocaml
fridim_ has joined #ocaml
zorun has quit [Read error: Connection reset by peer]
fridim_ has quit [Ping timeout: 268 seconds]
zorun has joined #ocaml
spearalot has quit [Quit: Computer has gone to sleep]
Kakadu has joined #ocaml
spearalot has joined #ocaml
fantasticsid has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
raichoo has joined #ocaml
bitbckt has quit [Quit: out]
bitbckt has joined #ocaml
raichoo has quit [Ping timeout: 248 seconds]
raichoo has joined #ocaml
mcclurmc has quit [Excess Flood]
mcclurmc has joined #ocaml
NihilistDandy|aw has quit [Quit: Leaving...]
acidrain has joined #ocaml
mcclurmc has quit [Excess Flood]
letrec has quit [Ping timeout: 252 seconds]
mcclurmc has joined #ocaml
acidrain has quit [Remote host closed the connection]
letrec has joined #ocaml
<edwin> adrien: I think you have to recompile everything that depends on A (indirectly) if you build cmx files
<edwin> because cmx contains inline info, and compiling B might've inlined something from A
<edwin> which in turn could get inlined in C
<edwin> or at least thats what ocamldep tells me, the .cmo files depend on the .cmi-s only, but the .cmx depend on the other .cmx
<adrien> it's tempting me to not install cmx files then :P
<edwin> don't know if ocaml can detect inconsistencies with .cmx though, I think its only limited to .cmi
<adrien> at worst, it could be a missed opportunity for inlining, no?
<adrien> and linking will be "fresh" each time
raichoo has quit [Remote host closed the connection]
raichoo has joined #ocaml
pilki has joined #ocaml
raichoo has quit [Ping timeout: 240 seconds]
raichoo has joined #ocaml
iago has joined #ocaml
<edwin> I think at worst you'll have and old copy of an inlined function
<edwin> but currently ocamlopt doesn't inline too much
<edwin> anyway, aren't you using ocamldep output to determine what to rebuild?
<edwin> that should be accurate
<adrien> I have a set of folder which have packed modules inside (one folder = one pack); I build a pack then I install it locally with ocamlfind and compile against that installed copy
<adrien> ocamlbuild handles deps and rebuilding inside each folder
<adrien> my issue is only between the folders
<adrien> well, "only"
<adrien> also, the order is quite simple but I don't want to start making awful makefiles
<edwin> can't ocamlbuild be used to compile everything? i.e. don't restrict to a folder
<edwin> or are the folders individual libs?
<adrien> I have several files with the same name
<adrien> in different packs
<adrien> but ocamlbuild doesn't handle that
<edwin> won't an ocamlbuild plugin like that work?
<edwin> but if all the files belonging to pack X are in directory X then the .mlpack approach should work, no?
<edwin> are those split into further directories too?
<adrien> it doesn't really restrict the interface as much as packs do since you can access Foo directly instead of having to go through Pack.Foo
<adrien> and the issue with plugins is that I've never written any and it's probably not a good intro, and I'm using oasis and mixing everything can get quite confusing
<adrien> I have .mlpack (and .mli) files with ocamlbuild
<edwin> then how about that, you just write a .mlpack file
<edwin> but do you have the .mlpack in the subdir or the root?
<hcarty> adrien: How do you build your packed library with oasis? Are you using a patched version?
<adrien> it's the patch which is on the forge but in a sane format (git) and with a few things fixed
<adrien> edwin: currently the .mlpack files are in subdirs; I have to test something
<edwin> try moving to root, and adding explicit subdir/ before each file you reference
<edwin> then it might "just work" to build from root
<adrien> yeah, I'm going to try 1- without oasis, 2- with oasis added and 3- in my project
smondet has joined #ocaml
BiDOrD_ has joined #ocaml
BiDOrD has quit [Ping timeout: 240 seconds]
Boscop has joined #ocaml
pilki has quit [Quit: This computer has gone to sleep]
<adrien> I often feel stupid when I'm using ocamlbuild
<vivanov> in batteries, is 'f x |> g ' equivalent of 'let a = f x in g a' ?
<thelema> vivanov: yes
<vivanov> i use 'RMutex.synchronize ~lock f x |> g ' a lot and dont want the locking happen in g
<vivanov> thelema: ok thx a lot
<thelema> the associativity of that should be (sync ~lock f x) |> g
<vivanov> thelema: '(sync ~lock f x) |> g' is equivalent of 'sync ~lock f x |> g' right?
<adrien> I think I'm giving up with ocamlbuild for today
<edwin> yeah, the wiki helps with ocamlbuild, but its incomplete
<adrien> well, in my case, I've tried: mkdir a && touch a/x.ml && echo "a/X" > foo.mlpack && ocamlbuild foo.cmo
<adrien> not working
<edwin> adrien: <a/x.cmx>: for-pack(Foo)
<edwin> in _tags
<edwin> or in fact just 'touch _tags'
<edwin> and it'll work for .cmo
<adrien> doh!
<adrien> touching the file solved it, thanks
<edwin> weird that a missing _tags file makes such a difference
<edwin> maybe it doesn't use some built-in rules when _tags is missing
<edwin> but for building .cmx you'll need the _tags rule
<edwin> unless oasis already adds it?
<adrien> oasis currently needs a patch to handle packing; but the patch handles -forp-ack
<adrien> s/p-/-p/
<adrien> edwin: adding -r to ocamlbuild solves the issue without requiring a _tags file
pilki has joined #ocaml
<adrien> even though --help says: -r Traverse directories by default (true: traverse)
letrec has quit [Ping timeout: 240 seconds]
<edwin> it probably means that -r is equivalent to true: traverse in _tags, and not that recursion is by default on
<edwin> confusing way to write a help message
<adrien> hahaha, could be that indeed :P
<edwin> tahts why we need all of this supported in oasis, then people don't have to deal with ocamlbuild details themselves
<adrien> there's something I have really managed with oasis: defining libraries that are used for an application
<edwin> maybe I should contribute some patches to oasis when I have some time
<adrien> meaning: I want to build foo.cmxa using these options and bar.cmxa using these; and I want to build baz.native which links against foo and bar
<edwin> there are some things that I'm missing, like better handling of C library dependencies
<adrien> edwin: oh? how so?
<edwin> well lets say I write a binding to library X
<edwin> and people who compile my lib don't have X installed
<edwin> and they get an error saying that something.h is missing
<edwin> or something.so is missing
<edwin> it'd be good if you get a message during configure
<edwin> saying what library you require (and maybe what version? but thats harder)
<adrien> ah, agreed
<edwin> thats something thats easy to do with autoconf (for some definition of easy)
<adrien> well, oasis needs support for pkg-config
<edwin> more than pkg-config, not every lib has pkg-config (well it does on Linux, but apparently not on the Mac)
<edwin> just checking for .h and doing a link-test like autoconf would be the way I think
<edwin> and you can get defaults via pkg-config (if it knows about the package)
<edwin> or via cmdline flags
<adrien> pkg-config defines more things
pilki has quit [Quit: This computer has gone to sleep]
<edwin> yeah linker flags, preprocessor flags, etc.
<thelema> vivanov: yes, |> has very low precedence
<adrien> so in case you could use pkg-config, you'd rather use both
<edwin> sure
<edwin> just saying there should be a way to override from cmdline, like --with-libfoo=/path/to/libfoo
<adrien> but it would be great if you contributed pkg-config support =)
<edwin> yeah, I should manage my free time better (to have more of it). Right now I'm hacking on the ocaml compiler
<edwin> playing with inlining
<edwin> hopefully I can write something useful, and then move on to something else
<edwin> (like making oasis support the stuff I'm missing)
<vivanov> thelema: great thx a lot :)
Kakadu has quit [Quit: Konversation terminated!]
<adrien> bah:
<adrien> findlib: [WARNING] Interface x.cmi occurs in several directories: b, a
<adrien> Error: Unbound value B.X.id
<adrien> one of the .cmi shadows the other one
<edwin> why is it using x.cmi, shouldn't it be using the pack?
<thelema> adrien: use prefixes instead of directories to disambiguate ocaml modules.
ftrvxmtrx has quit [Quit: Leaving]
<thelema> clearly, the ocaml compiler doesn't handle identically named modules
<adrien> edwin: good point!
<adrien> thelema: properly packed it should be good
<thelema> IMNSHO, packing is a poor hack
<adrien> I think I'd prefer namespaces but they're not there (yet)
<hcarty> thelema: It's a poor hack with no good alternative at this point
<thelema> hcarty: prefixing.
<adrien> the issue is really that I have two groups of modules which are going to have the same names
<hcarty> thelema: IMNSHO that's a roughly equally poor hack :-)
<thelema> hcarty: ok, fair enough.
<hcarty> Prefixing is an easier hack to reason about though. So perhaps the hackishness is not truly equal.
<adrien> and I want a clear separation between the modules: I want the guarantee I won't use the "wrong" module and that's what I'm getting with packing because it's quite rigid
<edwin> -pack Build an object file (.cmx and .o/.obj files) and its associated compiled interface (.cmi)
<edwin> so you should have a .cmi file for the packed module
<hcarty> It is a royal pain needing to have Array, BatArray, MyArray, etc. floating around.
<adrien> edwin: hmm, I see I made something completely useless (and bad actually)
<adrien> hah: the actual (and first) issue was that I had written "let y =" while I meant "let id =" =)
Submarine has joined #ocaml
<adrien> \o/
* adrien hugs edwin
<edwin> does it work now?
<adrien> yeah =)
<edwin> :)
* adrien kicks edwin for not "forcing" him to do it that way earlier on :P
<adrien> going to try on the actual project now: caravel
iago has quit [Quit: Leaving]
smondet has left #ocaml []
ikaros has joined #ocaml
<vivanov> my program starts lots of threads by Thread.create but 'top' command shows that the program uses only one core. why doesnt the program use all the cores?
<thelema> vivanov: ocaml threads can only use one core
<thelema> short reason: the GC only can run in a single core
<vivanov> any way around thius ? using other thread packages ?
<thelema> hcarty: ok, fair enough.
raichoo has quit [Quit: leaving]
<thelema> hcarty: ignore
<thelema> vivanov: ocamlnet's netmulticore
<vivanov> thelema: thx ill have a look
<vivanov> adrien: thx
<adrien> vivanov: along with the usual answer: "starting several processes is often a good solution too"
jamii has joined #ocaml
<jamii> would kill for shift_left_logical
<jamii> :(
<hcarty> vivanov: There are a number of other multi-process options, including Functory and preludeml which has some parallel map, iter and fold operations
<hcarty> jamii: lsl I think
<jamii> hcarty: sorry, Int32.shift_left_logical is what I need
<adrien> parmap too
<vivanov> ok ill explore the options. im simply looking for alternative of Thread.create.
<jamii> actually....
<jamii> ocaml doesnt have circular shift at all
<thelema> jamii: nope. neither does C. But things work out.
<adrien> it sounds pretty high-level
<jamii> thelema: according to wikipedia, most c compilers will recognize the standard idiom and turn into the right instruction
<jamii> oh well
<thelema> jamii: granted. benchmark then tell us how much performance you lose from not having this optimization
<jamii> thelema: :)
<thelema> jamii: are you doing crypto?
<jamii> thelema: 10 minutes of coding/testing :-P
<jamii> thelema: no, compressed bitmaps
<thelema> really? with rotates... hmmm
<adrien> I didn't expect a dedicated instruction to be available but I guess that it's rule 34 of x86: if you can think of it, it exists
<edwin> would make more sense to add a new primitive op for it, rather than trying to infer back from sources
<jamii> I'm sure I can figure out how to do without
<edwin> well you can implement it yourself, and you'll loose a tiny bit of speed
<jamii> edwin: I think the idea is to optimize code that was written before the new instructions showed up
<adrien> edwin: actually I'm not there yet with oasis + packs in subfolders because oasis' BuildDepends is effectless
<adrien> ok: tagging with "pkg_lablgtk2" did it but now I'm wondering how to do it "cleanly"
<adrien> gildor: about oasis, when making module packs for a folder named, I create "A.mlpack" in "." and write "a/X" in it; I then define the corresponding library with "Path: ." and "Modules: A"; I also add "BuildDepends: lablgtk2" but it has no effect; adding "<a/*.ml{,i}>: pkg_lablgtk2" to _tags solves the issue; do you think it's the right approach here?
<adrien> (hope this was clear enough)
<adrien> I'll also get in touch with whoever submitted the original patch
Boscop has quit [Ping timeout: 240 seconds]
<adrien> right, it looks like the current patch doesn't handle packs with folder at all; hopefully it should be quite easy to od
_andre has quit [Quit: leaving]
dsheets has joined #ocaml
sepp2k has joined #ocaml
smerz has joined #ocaml
tautologico has joined #ocaml
<adrien> edwin: ocamlobjinfo on a .cmx file shows it has a CRC for the implementation
<edwin> adrien: for imported modules?
<edwin> ah Implementations imported
<edwin> ok, so I guess it _could_ find mismatches there
<adrien> File _build/lib/misc.cmx
<adrien> Name: Misc
<adrien> CRC of implementation: 1181172b0fd496de106180c6ae5ffb7a
<adrien> and implementations imported too, yes
<edwin> yeah, got it
<edwin> and found this code: raise(Error(Inconsistent_implementation(name, user, auth)))
<edwin> so loosk all good
<adrien> now I'm wondering what "Approximation", "Currying functions" and "Apply functions" are
<edwin> Approximation is used for inlining (if there is inlining info)
<thelema> currying functions help for partial application
<thelema> and apply functions apply a fixed number of parameters to a curried function
<thelema> edwin: I didn't know that about approximation
<adrien> ah, makes sense: approximation gives the code size of the function body?
<adrien> thelema: thanks; the output format is still a bit surprising however (only the number of occurences of such functions)
<edwin> I don't know what approximations without inline info do, but approximations with inline info actually contain the ulambda representation (not printed by ocamlobjinfo)
<edwin> 8: function camlString__index_1113 arity 2 (closed) (inline) -> _;
<adrien> (0: function camlLib__Misc__fun_1038 arity 1 -> _)
<edwin> so where it says inline, it actually has the implementation of the index function in ulambda (or clambda) form
velov has joined #ocaml
<adrien> hmmm, my fun 1038 function isn't terribly small however
<edwin> thats why it has no (inline) annotation
<edwin> adrien: have a look at asmcomp/clambda.mli
<edwin> type value_approximation
<edwin> it tells you if the function is a closure, a tuple, integer, constant pointer, or unknown
<edwin> I think the integer is useful if a function is known to always return a constant value (but has some other side-effect)
<edwin> and knowing that its a closure is probably needed by the native compiler
<adrien> oh: "E: File _tags need a backup, but all filenames for the backup already exist"; oasis has created 10 backups so far =)
<edwin> so about your fun_1038 I think it only knows that it takes 1 paramter, and thats it
<adrien> (I think it creates backups even when not needed)
<edwin> lol, didn't know about backups
<adrien> (but I don't have a rule for "needed")
<adrien> edwin: it's because I have stuff outside of the oasis-generated code
<adrien> edwin: oh, thanks; I'll try to look a bit inside the compiler when I have some time
<adrien> ah, got my project to build using packs
<adrien> and oasis and ocamlbuild, in a single pass
<adrien> it required that I have all the .mlpack files at the root of the project however
<adrien> for each library, Path has to be "." and then, I put module paths relative to _oasis in Modules
ftrvxmtrx has joined #ocaml
oc13 has quit [Ping timeout: 268 seconds]
<hcarty> adrien: Can you post the _oasis somewhere as an example?
<adrien> hcarty: it will be on git quite soon
<hcarty> adrien: I look forward to it :-)
pango__ has quit [Ping timeout: 240 seconds]
pango__ has joined #ocaml
Anarchos has joined #ocaml
<thelema> adrien: odb can now install from git trees (doesn't handle dependencies, though)
<thelema> adrien: echo dep lablgtk2 git http://clone/address >> ~/.odb/packages
<hcarty> thelema: Do you have a plan for how you will implement dependency support? Maybe something manual, like a CSV list of findlib dependencies at the end of the definition
<adrien> thelema: great! :-)
<thelema> hcarty: two plans: 1) dirty parse _oasis file, 2) change packages format to allow "deps=foo,bar,baz" inline
<adrien> (s/CSV/JSON/)
<thelema> adrien: sorry, no json
<hcarty> adrien: JSON is a bit more difficult to parse without library support :-)
<thelema> adrien: only the most extremely simple parsing, usually revolving around Str.split (Str.regexp " +") ...
<adrien> I have s-expressions in yypkg and decided to move to json because the "web" stuff would be better with it and could be used by a server directly
* thelema doesn't care about the web
<adrien> but I guess you can more easily create JSON from a CSV
<thelema> and does care about staying under 500 LOC
<adrien> :-)
<thelema> and it's not a CSV file, it's just comma-separated values
<thelema> the list of deps is like "oUnit(>=1.0),batteries,pcre"
velov has quit [Quit: Computer has gone to sleep]
ankit9 has quit [Quit: Leaving]
<hcarty> An odb-installable odb-heavy version could always be made which depends on oasis, yojson, and loads of other goodies.
<adrien> would odb really need special support in order to make distribution packages? wouldn't exporting OCAMLFIND_DESTDIR be enough?
<thelema> ick. why?
<hcarty> But someone would have to need it enough to write the code
<thelema> adrien: I don't know.
<hcarty> thelema: oasis - for proper parsing of _oasis files
<hcarty> thelema: Anything else - if there's a use for it, it could be used
<thelema> hcarty: bah, I already have dirty-parsing of _oasis files for deps in 11 LOC
<adrien> at least for slackware, we only need some kind of DESTDIR support when installing
<thelema> adrien: then I think odb would do everything you need
<thelema> adrien: I imagine this wouldn't suffice for a .deb or .rpm
<adrien> thelema: it's definitely worth a try
<hcarty> adrien: Why odb over oasis for this task?
<adrien> thelema: well, slackbuilds do some extra work but the "middle" of the script is always the same: configure, make, make install DESTDIR=$PKG
<hcarty> adrien: Just cuious... I think one of gildor's goals with oasis was automated package generation
<adrien> hcarty: actually it depends whether automatic downloading of archives is wanted or not ;-)
<adrien> hcarty: it's true the additional layer is not a requirement
<adrien> I need to finish my build system stuff and go to bed I think
NihilistDandy has joined #ocaml
jamii has quit [Read error: Connection reset by peer]
spearalot has quit [Quit: Computer has gone to sleep]
pango__ has quit [Ping timeout: 252 seconds]
<adrien> weeeeeeeeeeee
<adrien> 38 files changed, 345 insertions(+), 33372 deletions(-)
<adrien> hcarty: http://git.ocamlcore.org/cgi-bin/gitweb.cgi?p=caravel/caravel.git;a=blob;f=src/_oasis and http://git.ocamlcore.org/cgi-bin/gitweb.cgi?p=caravel/caravel.git;a=blob;f=src/_tags#l74
pango__ has joined #ocaml
<adrien> hcarty: oh, and this: sed -e '/include/ d' _tags > tags_0 && mv tags_0 _tags
<adrien> otherwise ocamlbuild gets paths to _inside_ the packs
<adrien> (it removes the lines which mention "include" in _tags)
<pango__> with sed -i you don't need tags_0
<adrien> but it's a gnu-ism iirc
<adrien> and a very hand one
<pango__> maybe
<adrien> very handy*
<adrien> I think I got yelled at by someone running openbsd once
raichoo has joined #ocaml
<edwin> hmm, can I restrict the type of a Map's values?
<edwin> or should I just use a Hashtbl in that cas?
<pango__> Haven't used OCaml much lately, but iirc both Hashtbl and Map are parametric vs. the type of the values they contain, won't make any difference
ftrvxmtrx has quit [Read error: Connection reset by peer]
ftrvxmtrx has joined #ocaml
BiDOrD has joined #ocaml
BiDOrD_ has quit [Ping timeout: 255 seconds]
<adrien> better: pmake 1.57s user 0.54s system 89% cpu 2.355 total
edwin has quit [Remote host closed the connection]
ftrvxmtrx has quit [Quit: Leaving]
waterfowl has quit [Quit: waterfowl]
jamii has joined #ocaml
letrec has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
Morphous_ has quit [Ping timeout: 240 seconds]
mcclurmc has quit [Excess Flood]
emmanuelux has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
Morphous_ has joined #ocaml
raichoo has quit [Quit: leaving]
lusory has joined #ocaml
mcclurmc has quit [Excess Flood]
mcclurmc has joined #ocaml
letrec has quit [Remote host closed the connection]
letrec has joined #ocaml
ikaros has quit [Quit: Ex-Chat]
waterfowl has joined #ocaml
mcclurmc has quit [Excess Flood]
mcclurmc has joined #ocaml
ztfw has joined #ocaml
bobzhang has joined #ocaml
<ztfw> Is there a natural way to remove the warning that comes with declaring values through pattern matching such as let [foo; bar] = …?
<bobzhang> -w a?
<thelema> ztfw: if you can, return a tuple instead of a list