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
Morphous has quit [Ping timeout: 252 seconds]
Morphous has joined #ocaml
ulfdoz_ has joined #ocaml
yeaok has joined #ocaml
ulfdoz has quit [Ping timeout: 240 seconds]
ulfdoz_ is now known as ulfdoz
yeaok has quit [Quit: Leaving]
biotchplz has joined #ocaml
sepp2k has quit [Remote host closed the connection]
arubin has quit [Quit: arubin]
oriba has quit [Quit: oriba]
beginner has quit [Quit: This computer has gone to sleep]
iago has quit [Quit: Leaving]
struktured has joined #ocaml
scrappy_doo_ has quit [Ping timeout: 252 seconds]
scrappy_doo_ has joined #ocaml
Morphous has quit [Ping timeout: 240 seconds]
scrappy_doo_ has quit [Ping timeout: 248 seconds]
Morphous has joined #ocaml
scrappy_doo_ has joined #ocaml
scrappy_doo_ has quit [Ping timeout: 240 seconds]
lamawithonel has joined #ocaml
Plex has quit [Quit: night]
EmmanuelOga has quit [Ping timeout: 244 seconds]
beginner has joined #ocaml
lamawithonel has quit [Remote host closed the connection]
<rgrinberg> How do you copy a file in ocaml using the standard library? Modules Sys and Unix don't seem to have such a function.
ftrvxmtrx has joined #ocaml
<rgrinberg> date
biotchplz has quit [Quit: Leaving]
<_habnabit> nothing in the standard library
<adrien> rgrinberg: FileUtils is a pretty good library
<adrien> it has that
<rgrinberg> adrien: Thanks, I'll take a look.
ttamttam has joined #ocaml
pilki has joined #ocaml
gasche has joined #ocaml
edwin has joined #ocaml
roha has joined #ocaml
zorun has quit [Quit: leaving]
zorun has joined #ocaml
gasche has quit [Ping timeout: 240 seconds]
Kakadu has joined #ocaml
<Kakadu> hi all!
ttamttam has quit [Remote host closed the connection]
<Kakadu> man, is this phares is coorect for mathematical text: `We can deal with another class of shadowing properties where by-step errors are going to zero if the index goes to infinity` ?
<Kakadu> phrase*
Snark has joined #ocaml
<sgnb> edwin: doesn't all you say also apply to camlp5?
sebz has joined #ocaml
<edwin> it does, but if its not part of the official distribution it'll make it harder for newcomers to find out about it / use it
<edwin> having camlp4o/camlp5o quality syntax errors in the core parser would be great nevertheless
<sgnb> sure
sebz has quit [Client Quit]
<sgnb> so I guess you wouldn't agree with what I would like to suggest
sebz has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
gasche has joined #ocaml
<adrien> is there a way to tell ocamlc where to write its output file? I don't want it to write the .cmo file in the same dir as the .ml file
milosn has quit [Read error: Connection reset by peer]
<edwin> sgnb: what is your suggestion?
<adrien> grrr; or maybe I can be more intelligent than ocaml
milosn has joined #ocaml
<adrien> had to use symlinks
<edwin> adrien: wouldn't -o work?
<edwin> hmm apparently not
<adrien> it's understandable that you can't change the filename but I had hoped it would have been possible to change the destination dir
<adrien> actually, it shouldn't be a big issue to make ocamlc/ocamlopt accept a directory as argument to -o when compiling (and not linking)
<edwin> what build system are you using?
<adrien> ocamlfind ocamlc =)
<edwin> I mean why do you need the cmo in a separate dir?
<adrien> because I'll remove them right after: I'm dynlinking the cmo in order to gain access to data structures that they define
<sgnb> edwin: to split the official distribution into several components (camlp4 comes to mind, but ocamlbuild could also benefit from that), so that (eventually) some components could be taken over by people outside the core team... it's what happend with ocsigen and lwt... I haven't (yet) taken time to write it down formally
<adrien> sgnb: ocamlbuild would make a circular dependency however; but I think it's a pretty good idea overall
<adrien> I'm not saying anything about camlp4 vs. camlp5 however
<sgnb> ocaml doesn't use (seriously) ocamlbuild itself
<adrien> it builds with ocamlbuild and the make-based build system hasn't been kept up-to-date afaik
<pilki> wow, so someone else than Gerard actually uses the revised syntax!
<adrien> cmalp5 uses it too
<adrien> and a few others I think
<adrien> well, all software by Daniel de Rauglaudre afaik
<edwin> sgnb: well external people could be given restricted committ access to ocamlbuild, camlp4, ocamldoc, etc.
<edwin> sgnb: with git it'd be easier as ocamlbuild could be a submodule
<edwin> still I think that the official distribution should come with ocamlbuild, camlp4|5, ocamldoc, _and_ findlib
<pilki> and I agree with the proposal of sgnb : ocamlbuild has nothing to do inside the distribution
<edwin> pilki: only used while learning, the revised syntax has some issues when you combine multiple syntax extensions
<pilki> pulling it outside, and stoping the "it would be so awesome to bootstrap ocaml with ocamlbuid"
<edwin> some don't like the revised syntax :(
<adrien> git submodules are a bit limited currently but if components were kept in separate svn trees, it'd be pretty nice and much more workable
<pilki> would allow to make it more usefull for the rest of the world
roha has quit [Ping timeout: 244 seconds]
<adrien> I want a middle-ground between the two syntaxes ='(
<sgnb> my point was just to make e.g. ocamlbuild a separate project, with a different release schedule, etc.
<edwin> isn't ocamlbuild used currently to build the stdlib even if you type "make world" now?
<sgnb> the circular dependency between ocamlbuild and ocaml doesn't look like a big deal
<edwin> adrien: yeah with svn they could use svn:externals
<edwin> sgnb: it could still be hosted at inria, just maintained by different people, yes
<adrien> true: gcc has introduced C++ in the base compiler and they have one rule: all releases must be buildable with the previous (or two previouses?) release(s)
<adrien> makes it possible to rewind everything and build again if needed
<sgnb> it would be easier with ocaml, where you can just provide bytecode executables for bootstrapping
<sgnb> (I mean, this is already done!)
<adrien> sgnb: I was against different release schedules at first but I've been severely bitten by ocamlbuild's bug with -thread and ocamlfind in 3.12.0; having them separate would have made the fix available months earlier
<adrien> yup, it's even eaasier with ocaml
<sgnb> in Debian terms, dependency loops that involve arch:all packages are not a problem
<edwin> sgnb: I think in the end its only a documentation issue. It should be easy for beginners to download a package, build it, and have a reasonably usable OCaml system
<edwin> Debian (and Fedora) users notwithstanding, they can just get whatever they need from the package manager ;)
ikaros has joined #ocaml
Kakadu has quit [Read error: Operation timed out]
Kakadu has joined #ocaml
ulfdoz has quit [Ping timeout: 240 seconds]
ulfdoz has joined #ocaml
eikke has joined #ocaml
ulfdoz has quit [Ping timeout: 252 seconds]
ulfdoz has joined #ocaml
<gasche> sgnb, I'm not sure the link between "part of the official package" and "hard to contribute to" is as strong as you think
<gasche> in my experience, Nicolas Pouillard and Xavier Clerc are open to outside contribution (Nicolas is maybe less reactive as he has a PhD to write..)
<gasche> (and you certainly have not missed that the licensing terms of both are much better than the rest of the OCaml distribution; not that I think it changes much in this case)
<gasche> (... now I feel bad for using IRC as a side-channel to public discussion)
milosn has quit [Ping timeout: 240 seconds]
milosn has joined #ocaml
<adrien> (you can also sum up any discussion happening here on the caml-list too)
eikke has quit [Ping timeout: 252 seconds]
<sgnb> gasche: I think it is more than you think :-)
<adrien> I find it nicer and easier to dig in a smaller codebase
<sgnb> gasche: tying camlp4 and ocamlbuild to ocaml itself makes it hard to upgrade them without upgrading ocaml itself
<sgnb> gasche: and upgrading ocaml itself IS a big deal in distributions (e.g. Debian)
<sgnb> it's difficult to discuss constructively on the caml-list with Gabriel Scherer's logorrhea
Anarchos has joined #ocaml
<gasche> sgnb, where do you think the nick "gasche" comes from?
<gasche> (I agree the logorrhea is maybe too much; that said, it's been a long time since camlp4 status was last discussed publicly; it's better to discuss it on the list, even with volume, than to keep private observations private)
<sgnb> gasche: I didn't make the connection :-) but still
<gasche> I'm not exactly sure why you think volume is an enemy of being constructive
<gasche> camlp4 is already a separate package in debian; you're saying that it would be easier if the split was done in the official distribution as well?
<sgnb> camlp4 is not a separate source package in debian
<adrien> gasche: the discussion is quite fast-paced: for the past few days, every time I've been a bit bored or wanted a small break from my current work, I've checked my emails and it's been working pretty well :P
<gasche> (I'm not familiar anymore with your internal cuisine to ensure proper recompilation on OCaml version bumps; is it not possible to mark a minor release as not changing binary compatibility, to avoid repackaging dependencies ?)
<sgnb> minor releases do break binary compatbility
<gasche> adrien, yes, and I didn't discuss camlp4 before there was a separate header/thread about it
<gasche> I think only a minority of ocaml users are interested in camlp4 matters, no one is forced to read this subdiscussions
<gasche> sgnb, I understand your "separate releases" argument; it's quite good and you should make your point on the list
<pilki> ♥ ah, the ocaml community, the love between the member ♥
<adrien> gasche: I didn't say the discussion was not interesting ;-)
<gasche> I'm not exactly sure how it compares to my own arguments, but they're orthogonal anyway
<gasche> adrien, indeed, I took no offen[cs]e
<gasche> lunch time anyway
<sgnb> gasche: I already spend so much time reading your mails (and arguing with you here) that I don't have much time left to write a proper mail to the list (I too have a PhD to write...)
<adrien> =)
<adrien> bon app' =)
<sgnb> and "diplomacy" takes also a lot of time...
<adrien> (along with english being a foreign language for most of us)
<Anarchos> sgnb what is the title of your thesis ?
<sgnb> Anarchos: Towards a certification of Coq's extraction (or something like that... it's in French)
<Anarchos> sgnb i am french but i understand the matter :)
yezariaely has joined #ocaml
<edwin> hmm can't camlp4's parser be used as _the_ parser in ocamlc, and ocamlc would only take the AST output by camlp4?
<edwin> that would reduce the burdain of update when new language features have to be added: only camlp4 needs to be changed
<gasche> that would make ocaml proper depend on a big, hairy, complex piece of code, maintained by someone with, uh, a strong character
<gasche> I agree with you that camlp4 parser's error reporting is generally excellent, better than the ocaml parser
<gasche> but the simplicity of the yacc grammar is also a selling point
<gasche> also, from what I heard, changing camlp4 to accomodate new language changes is not at all trivial
<gasche> there is the burden of synchronization, yes, but mostly the issue is with the fragility of its internal parsing machinery
<edwin> I guess automatically converting the yacc grammar to camlp4's internal one is out of the question?
<sgnb> edwin: I though as much
<sgnb> (I mean, about using only camlp4 for parsing)
ulfdoz has quit [Ping timeout: 268 seconds]
<gasche> I don't know if anyone besides Daniel knows of camlp4 semantics; I don't think converting the yacc grammar in a trivial way would preserve the properties
<gasche> plus there is the fact that camlp4's ocaml grammar is built as a diff on top of the camlp4 revised grammar
ulfdoz has joined #ocaml
<edwin> hmm, how about adding some error tokens to the yacc grammar, and making it call out to camlp4 only in that case, see if camlp4 can parse a terminal, and then continue with its own parsing?
<gasche> ( sgnb, I don't think we are "arguing", in that I generally agree with what you say )
<gasche> edwin, do you have a proposal that is even more complex than this one? :-)
<edwin> of course that'd make camlp4 maybe a dynlinked module, and not a separate tool
<gasche> I could understand the idea of "when the yacc grammar fail, call camlp4 independently to get a better error message and display it if <some heuristic> finds it legit"
<gasche> tighter interleaving is asking for troubles
<gasche> and none of that is resilient on the long term
<edwin> well another option would be to adopt a parser generator that allows for syntax extension, while still resembling a yacc syntax. I think dypgen is close to that but it generates GLR parsers (so O^3 worst case)
<edwin> then camlp4 syntax extensions would be dypgen grammar extensions, but again converting the yacc grammar is not trivial
testcocoon has quit [Quit: Coyote finally caught me]
<gasche> you are suggesting to rewrite camlp4 in a less fragile way; what Alain and Gerd (and I) suggest is to drop the idea of ocaml syntax extensibility altogether
<gasche> I would instead add controlled extensibility points to the real OCaml grammar (quotations, annotations, and possibly mixfixes)
<edwin> well as long as your proposal can implement the popular camlp4 extension I'm happy
<edwin> would something like pa_monad be possible with it?
<gasche> see my answer to wojciech
<edwin> how about bitstring?
<edwin> it resembles ocaml record syntax somewhat
<edwin> except you have to generate code from it
<gasche> iirc., bitstring should be quotations, and maybe already is
<gasche> but edwin, I don't claim that *all* current uses of camlp4 would be expressible with those lighter extension points
<gasche> that's the point: have less expressive tools that are more robust
<gasche> we would have to let go some of the things; for example pa_lwt in its current form wouldn't be expressible (or through horrible annotation hacks that I don't wish to promote)
ftrvxmtrx has quit [Quit: Leaving]
<edwin> I think a sensible course of action would be to have your extension points released, some existing syntax extensions converted
<gasche> indeed
<edwin> and then when camlp* has no major users, deprecate it
<edwin> just dropping camlp4 and forcing everyone to move to a new way of doing things, without even knowing if its possible is not very useful
<gasche> I absolutely agree, and said such
<edwin> so that means camlp4 will still have to be maintained for some time, until the transition is made
<gasche> now, sgnb certainly isn't pushing camlp4-out-of-ocaml as a way to *deprecate* it
<gasche> different person interpret out-of-tree in a different way; I suspect Alain would see that as deprecation, but sgnb sees distribution/flexibility advantages
<gasche> it's great if the same action can please people for different reasons, but I'm afraid it could turn into a painful misunderstanding later
<gasche> btw., if that can answer your former question, the revised syntax is not going away soon, there are large codebase depending on it
ulfdoz has quit [Ping timeout: 244 seconds]
<edwin> what does ocaml itself parse? the original syntax or the revised one?
<edwin> well I guess the original one?
ulfdoz has joined #ocaml
<gasche> (as pilki said, Gérard Huet uses it for all its code)
<gasche> ocaml parses the original syntax; there is no support for revised syntax outside camlp4
<gasche> (that said it would be relatively easy to write a yacc parser for the revised syntax, which is much less ambiguous, and add it to the compiler, if that was needed, but I don't think it will)
<edwin> revised syntax is more newbie friendly, but thats it. I wouldn't mind if ocaml would parse that instead of the original syntax, but there is too much code out there to change that now
<gasche> all things camlp4-related make deployment and adoption difficult
<edwin> I think delimiting sequence of statements with { }, and the [ ] delimiting for match helps a great deal, and perhaps they could be added to the original syntax
<gasche> plus you don't want to try to combine camlp4 and ocamldoc, you really don't
<edwin> that way new code could be written using these features, without relying on camlp4r
<gasche> I wouldn't advise revised syntax to a beginner for those reasons, regardless of its technical merits
testcocoon has joined #ocaml
sepp2k has joined #ocaml
<gasche> edwin, I think people do not really like the idea of having two different syntaxes (for valid reason), and it is difficult to evolve the "classic syntax" without breaking compatibility and running into endless unproductive debates
<gasche> language design it's hard, let's go shopping^W contributing to other parts of the OCaml community and ecosystem
<adrien> imho, such changes can't happen without OCaml reaching a new major version (so OCaml 4)
<pilki> in ocaml4, we'll have GADT"s, dynamic typing, multicore GC, a real open source license, an open developement process, a loving community that agrees on most things
<pilki> and we'll all run naked in the fields with birds all around
<adrien> I can already see the Changelog for 4.0: "2038-01-20: world domination achieved"
ulfdoz has quit [Read error: Operation timed out]
ulfdoz has joined #ocaml
<gasche> pilki, I don't really understand your comment on the "loving community", but the rest seems actually reachable (not sure about "dynamic typing", but Alain's proposal for dynamic type information is reasonable)
<edwin> GADTs are a nice addition, I still haven't fully grasped how to use them
<edwin> would it be possible to use GADTs to implement something like this: http://bentobako.org/david/blog/index.php?post/2011/12/02/A-draft-of-library-to-handle-physical-units-in-OCaml
<edwin> i.e. typecheck use of physical units at compile time
<gasche> no.
<gasche> GADTs are about knowing a bit more, locally, about the types at hand
<gasche> it adds equality constraint to the type environment, no additional computational power at the type level
<gasche> for physical units, you need arithmetic computation at the type level
<gasche> that said, one technique when the type layer isn't powerful enough is to write terms that prove the computation, by reflecting it in the type layer; GADTs may be useful for that (but the existing signature language is already satisfying), see Tim Sheard's Omega
<edwin> yes, I looked at Omega briefly
<edwin> but I'll need to look again :)
kk58 has joined #ocaml
<kk58> let tuple3 a b c = (a, b, c) ;;
<kk58> let t3c = tuple3 'c' ;;
<kk58> so far, so good.
<kk58> t3c 1 ;; (* call the partial function with an int and ignore the value *)
<thelema> t3c puts 'c' as the first arg, and isn'y fully polymorphic because it's not a function
<thelema> well, it is a function, but not defined as a function, so the compiler doesn't generalize the '_a types to 'a
<kk58> ah. thanks, I'll look. 'b getting set to int is confusing, a bit.
<thelema> kk58: let t3c x = tuple3 'c' x
<kk58> b and c are unbound, okay.
<kk58> it's a 'real' function and not a 'partial' function... hmmm.
<thelema> if you want, you can do `let t3x b c = tuple3 'c' b c`
eikke has joined #ocaml
<kk58> the lema : that is ... wildly cool!
eikke has quit [Ping timeout: 252 seconds]
<kk58> have your cake and eat it too. If you want a function that has a fixed type, but don't know what it will be, you can fix the type as you get the information. If you never get the info, you can just make it polymorphic.
<thelema> kk58: yup, ocaml is cool that way.
eikke has joined #ocaml
<pilki> (having to manually do eta expansion is not that cool, but it's a minor pain :))
eikke has quit [Ping timeout: 252 seconds]
<adrien> and ocaml 4 will have read-only strings by default (or at least string literals that aren't shared =) )
<gasche> adrien, "at least" looks like it's a middle-point compromise
<adrien> gasche: my current "issue" is with this kind of code:
<adrien> type t = { x : string };;
<adrien> let narta () = { x = "weeee" };;
<gasche> I know the issue
Tianon has quit [Quit: irc going down]
<gasche> but making a design error a bit less bad by sacrificing performances does not look like an excellent idea
<adrien> yes, I meant that using functions from String isn't terribly nice in this case
<adrien> storing a read-only copy of the string and copy it when needed doesn't seem terribly slower
<gasche> Error: This expression has type (ex#10, b) gfmt
<gasche> but an expression was expected of type (ex#10, b) gfmt
<gasche> The type constructor ex#10 would escape its scope
roha has joined #ocaml
avsm has joined #ocaml
eikke has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
roha has quit [Ping timeout: 248 seconds]
arubin has joined #ocaml
roha has joined #ocaml
Anarchos has joined #ocaml
EmmanuelOga has joined #ocaml
raichoo has joined #ocaml
kk58 has left #ocaml []
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
sepp2k has quit [Ping timeout: 240 seconds]
sepp2k has joined #ocaml
beginner has quit [Changing host]
beginner has joined #ocaml
sebz has joined #ocaml
yezariaely has quit [Quit: Leaving.]
<hyperboreean> Is there a way I can append directories to OCaml's search path from within the Caml toplevel ?
<pango> according to documentation, #directory "path"; does that
<thelema> hyperboreean: yes; #directory "foo";;
ChristopheT has joined #ocaml
<hyperboreean> so, I built ocaml-redis and installed it in /usr/local/lib/ocaml/3.11.2/ocaml-redis; shouldn't the toplevel detect that? also, if ocaml-redis uses the Str module, why should I manually load it? I get "Error: Reference to undefined global `Str'" and it just works after I load the str module
<hyperboreean> and thanks for your help
<adrien> no; but ocamlfind/findlib/topfind will
<adrien> where is your ocaml installation from? distribution packages? if so, which one?
Snark has quit [Quit: Quitte]
<hyperboreean> adrien: yes, debian squeeze
<thelema> hyperboreean: try `#use "topfind";; #require "ocaml-redis";;`
<adrien> why do you say you installed it in "/usr/local/lib/ocaml/3.11.2/ocaml-redis" specifically?
<hyperboreean> adrien: because I installed with Oasis (I think)
<hyperboreean> thelema: that works for the toplevel, thanks
<hyperboreean> and if I want to link that against my client code I should run "ocamlfind ocamlc -package ocaml-redis -linkpkg mycode.ml -o mycode" ?
<adrien> for bytecode, yes
<hyperboreean> thanks
<adrien> hyperboreean: I've seen ocaml-redis uses oasis but I've been surprised with the path (and I think it hasn't necessarily put all files there)
<hyperboreean> adrien: that's true, it didn't
<hyperboreean> it currently fails with some local library import
raichoo has quit [Quit: leaving]
<hyperboreean> I don't use OCaml very often (actually almost at all), but when I come back to it, I am always amazed by how hard it is to get up to speed new programmers with the way packages are installed compared with mainstream languages
<hyperboreean> nevertheless, it feels more mature than the scripting languages that I am using right now
<pilki> if you have time to lose, you can read the mailing list, and you'll see that a lot of people are concerned by the packaging problem !
<thelema> hyperboreean: the language is good, the infrastructure is... spartan
<pilki> only a few can reach the language
<pilki> most give up before that
<pilki> :p
<thelema> ocamlfind helps a lot, but many important libraries don't use it.
<pilki> is there even a nice page explaining
<pilki> 1) how to package nicely for oasis or godi and ocamlfind
<hyperboreean> thelema: that's how I feel it too ... perl has perlbrew, python has pythonbrew (though it's a very young project), ruby has rvm - I am looking forward to the moment when Ocaml will have something similar, though it does seem a little harder to achieve
<pilki> 2) how to install all those nicely packaged things ?
<thelema> pilki: ocamlfind doesn't need anything but a META file and the right command to do the install
<thelema> hyperboreean: ocaml's non-dynamic nature makes these things harder - no runtime reflection
<pilki> thelema : so it needs something :)
<hyperboreean> pilki: I am not really sure, all the articles and blogs I've read dive right into the language, rather than the language's infrastructure
<thelema> pilki: it's not comparable to godi and oasis
ChristopheT has left #ocaml []
<thelema> pilki: and godi and oasis both use it to get their job done
<pilki> thelema : my parenthesing was bad
ulfdoz has quit [Ping timeout: 255 seconds]
<pilki> I was saying documentation for (godi or oasis) and ocamlfind
<thelema> pilki: ah
<thelema> oasis docs are not bad, and it generates everything ocamlfind related, so you don't need to know it.
ulfdoz has joined #ocaml
<hyperboreean> thelema: I understand that, maybe some clean blog posts about how to get things running could help? For example, I totally like ocaml pro's cheat sheets.
<adrien> hyperboreean: I don't think there is an introduction to ocaml tools
Anarchos has joined #ocaml
<adrien> so many people start by using makefiles, calling ocamlc/ocamlopt directly and hard-coding paths
<adrien> "thelema : ocamlfind helps a lot, but many important libraries don't use it." <- I've been protected by godi: which ones do you have in mind?
<thelema> adrien: lablgtk2
<adrien> thelema: besides that one? (you can actually get the right behaviour quite easily afaict)
<adrien> thelema: how did you learn about ocaml_skeleton?
<thelema> adrien: comments on HN, iirc
gasche has quit [Ping timeout: 240 seconds]
<adrien> I don't think I had seen that before; quite a shame
<thelema> besides lablgtk2, a bunch of old libraries I've been digging up. various stdlib replacements, ulib, most of this: http://pauillac.inria.fr/cdk/newdoc/htmlman/cdk_toc.html
<thelema> adrien: it wouldn't be a bad thing to contribute to, flesh out with *lots* of details and explanation
<thelema> adrien: I have a fork, but haven't made any changes
<adrien> thelema: agreed
<hyperboreean> and how should I go about adding ocaml-redis as a dependency to a project, without having it installed system wide?
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
eikke has quit [Ping timeout: 240 seconds]
<adrien> hyperboreean: as long as ocamlfind can find it, you're good; install the package with OCAMLFIND_DESTDIR (the env var) set to some writable location and OCAMLPATH set to the same variable
<adrien> see "man findlib.conf"
<hyperboreean> adrien: thanks, looking
<adrien> (I've been using that to handle sub-components of my code as separate libraries recently)
<adrien> (I only need to make that when library "foo" is recompiled and reinstalled, code depending on it gets recompiled too)
sebz has quit [Quit: Computer has gone to sleep.]
phat4life has joined #ocaml
<phat4life> why doesn't this work for calculating if something is prime? let isp (a,b) = match b with | 2 -> (a mod 2) > 0 | g -> ((a mod g) > 0) && isp(a,(g-1));;
<phat4life> it works up until (11,10)
phat4life has quit [Client Quit]
<thelema> huh, left quick
<hyperboreean> if I am not being wrong, I think he missed a "rec"
<thelema> yup
<adrien> and probably ended up with a previous definition of his function
<thelema> the toplevel is good for that
<adrien> it would probably warrant a dedicated warning (only enabled by default in the toplevel)
<thelema> yup
<adrien> bbl =)
Anarchos has joined #ocaml
eikke has joined #ocaml
sebz has joined #ocaml
sebz has quit [Client Quit]
sebz has joined #ocaml
Kakadu has quit [Quit: Konversation terminated!]
<NaCl> adrien: first one has ore more stuff
Smerdyakov has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
sebz has joined #ocaml
Xizor has joined #ocaml
sebz has quit [Ping timeout: 255 seconds]
pilki has quit [Quit: Leaving]
EmmanuelOga has quit [Ping timeout: 244 seconds]
tomprince has quit [Ping timeout: 244 seconds]
ikaros has quit [Quit: Ex-Chat]
tomprince has joined #ocaml
eikke has quit [Ping timeout: 268 seconds]
EmmanuelOga has joined #ocaml
eikke has joined #ocaml
tomprince has quit [*.net *.split]
arubin has quit [*.net *.split]
samposm_ has quit [*.net *.split]
smango has quit [*.net *.split]
NaCl has quit [*.net *.split]
bacam has quit [*.net *.split]
Anarchos has quit [*.net *.split]
rbancroft has quit [*.net *.split]
jonafan has quit [*.net *.split]
pheredhel has quit [*.net *.split]
zmoazeni has quit [*.net *.split]
shachaf has quit [*.net *.split]
jknick has quit [*.net *.split]
Qrntzz has quit [*.net *.split]
mal`` has quit [*.net *.split]
thizanne has quit [*.net *.split]
othiym23 has quit [*.net *.split]
alxbl has quit [*.net *.split]
ccasin has quit [*.net *.split]
bnwr has quit [*.net *.split]
hcarty has quit [*.net *.split]
srcerer has quit [*.net *.split]
f[x] has quit [*.net *.split]
hyperboreean has quit [*.net *.split]
orbitz has quit [*.net *.split]
Obfuscate has quit [*.net *.split]
foocraft has quit [*.net *.split]
EmmanuelOga has quit [*.net *.split]
roha has quit [*.net *.split]
avsm has quit [*.net *.split]
zorun has quit [*.net *.split]
dsheets has quit [*.net *.split]
mbac has quit [*.net *.split]
bzzbzz has quit [*.net *.split]
haelix has quit [*.net *.split]
willb has quit [*.net *.split]
companion_cube has quit [*.net *.split]
Asmadeus has quit [*.net *.split]
testcocoon has quit [*.net *.split]
ski has quit [*.net *.split]
bwright has quit [*.net *.split]
Derander has quit [*.net *.split]
caligula_ has quit [*.net *.split]
noj has quit [*.net *.split]
eikke has quit [*.net *.split]
ousado has quit [*.net *.split]
joewilliams has quit [*.net *.split]
mlh has quit [*.net *.split]
edwin has quit [*.net *.split]
mcclurmc has quit [*.net *.split]
wagle has quit [*.net *.split]
g0dmoney- has quit [*.net *.split]
ftrvxmtrx_ has quit [*.net *.split]
taupin has quit [*.net *.split]
waern has quit [*.net *.split]
rossberg has quit [*.net *.split]
bitbckt has quit [*.net *.split]
pcjoby has quit [*.net *.split]
dcolish has quit [*.net *.split]
_habnabit has quit [*.net *.split]
milosn has quit [*.net *.split]
struktured has quit [*.net *.split]
tlockney has quit [*.net *.split]
svenl has quit [*.net *.split]
TaXules has quit [*.net *.split]
Pepe_ has quit [*.net *.split]
thelema has quit [*.net *.split]
rwmjones has quit [*.net *.split]
malouin_ has quit [*.net *.split]
mehdid has quit [*.net *.split]
zzz_ has quit [*.net *.split]
flux has quit [*.net *.split]
pango has quit [*.net *.split]
The_third_man has quit [*.net *.split]
brendan has quit [*.net *.split]
diml has quit [*.net *.split]
nimred has quit [*.net *.split]
snarkyboojum has quit [*.net *.split]
gildor has quit [*.net *.split]
patronus_ has quit [*.net *.split]
emias has quit [*.net *.split]
explodus has quit [*.net *.split]
Xizor has quit [*.net *.split]
ulfdoz has quit [*.net *.split]
beginner has quit [*.net *.split]
jonludlam has quit [*.net *.split]
jlouis has quit [*.net *.split]
deavid has quit [*.net *.split]
chambart has quit [*.net *.split]
wieczyk has quit [*.net *.split]
hnrgrgr has quit [*.net *.split]
adrien has quit [*.net *.split]
wtetzner has quit [*.net *.split]
orbitz_ has joined #ocaml
alxbl has joined #ocaml
f[x] has joined #ocaml
bnwr has joined #ocaml
othiym23 has joined #ocaml
shachaf_ has joined #ocaml
eikke has joined #ocaml
EmmanuelOga has joined #ocaml
Anarchos has joined #ocaml
roha has joined #ocaml
avsm has joined #ocaml
testcocoon has joined #ocaml
zorun has joined #ocaml
ski has joined #ocaml
mcclurmc has joined #ocaml
bwright has joined #ocaml
rbancroft has joined #ocaml
jonafan has joined #ocaml
dsheets has joined #ocaml
ousado has joined #ocaml
joewilliams has joined #ocaml
mlh has joined #ocaml
pheredhel has joined #ocaml
zmoazeni has joined #ocaml
caligula_ has joined #ocaml
wagle has joined #ocaml
mbac has joined #ocaml
companion_cube has joined #ocaml
bzzbzz has joined #ocaml
noj has joined #ocaml
Asmadeus has joined #ocaml
willb has joined #ocaml
haelix has joined #ocaml
Derander has joined #ocaml
Qrntzz has joined #ocaml
g0dmoney- has joined #ocaml
ftrvxmtrx_ has joined #ocaml
taupin has joined #ocaml
waern has joined #ocaml
rossberg has joined #ocaml
bitbckt has joined #ocaml
pcjoby has joined #ocaml
dcolish has joined #ocaml
_habnabit has joined #ocaml
thizanne has joined #ocaml
shachaf_ is now known as shachaf
Qrntzz has quit [Changing host]
Qrntzz has joined #ocaml
samposm_ has joined #ocaml
smango has joined #ocaml
NaCl has joined #ocaml
bacam has joined #ocaml
foocraft has joined #ocaml
jknick has joined #ocaml
tomprince has joined #ocaml
Obfuscate has joined #ocaml
hcarty has joined #ocaml
mehdid has joined #ocaml
zzz_ has joined #ocaml
flux has joined #ocaml
arubin has joined #ocaml
ccasin has joined #ocaml
srcerer has joined #ocaml
pango has joined #ocaml
The_third_man has joined #ocaml
brendan has joined #ocaml
diml has joined #ocaml
nimred has joined #ocaml
snarkyboojum has joined #ocaml
gildor has joined #ocaml
patronus_ has joined #ocaml
emias has joined #ocaml
explodus has joined #ocaml
hyperboreean has joined #ocaml
milosn has joined #ocaml
struktured has joined #ocaml
tlockney has joined #ocaml
svenl has joined #ocaml
TaXules has joined #ocaml
Pepe_ has joined #ocaml
thelema has joined #ocaml
rwmjones has joined #ocaml
malouin_ has joined #ocaml
ikaros has joined #ocaml
hyperboreean is now known as Guest81719
mal`` has joined #ocaml
wieczyk has joined #ocaml
adrien has joined #ocaml
ulfdoz has joined #ocaml
hnrgrgr has joined #ocaml
wtetzner has joined #ocaml
beginner has joined #ocaml
chambart has joined #ocaml
srcerer has quit [Ping timeout: 252 seconds]
deavid has joined #ocaml
jonludlam has joined #ocaml
jlouis has joined #ocaml
ftrvxmtrx has joined #ocaml
Guest81719 has quit [Read error: Operation timed out]
* thelema just got a 5x speedup (2m:40 -> 32s) on ocamldoc by editing findlib.conf
<adrien> thelema: for batteries? :o
<thelema> yes
<adrien> NaCl: but it's surprsing how close they are
<adrien> thelema: \o/
<adrien> ocamldoc takes around 10 minutes on my laptop
<adrien> (or used to at least)
<thelema> I'm happy it doesn't take 2:40 on my laptop anymore.
<thelema> although FWIW, that's not a clean [make doc], but one with just a single changed file.
<thelema> Whatever ocamldoc does at the toplevel (cross-referencing or something) takes it a *long* time
<adrien> I definitely welcom any improvement
<adrien> it was a big pain
<thelema> adrien: add the line `ocamldoc="ocamldoc.opt"` to the end of your findlib.conf
erasereraser has joined #ocaml
<thelema> wow, it's running a rediculously nested List.map...
<adrien> ah... using the .opt one; I think I had seen this but I have never used it
<adrien> thelema: what about exporting OCAMLFIND_COMMANDS="ocamldoc=ocamldoc.opt" instead?
erasereraser has quit [Quit: ALL ABORD THE MANTRAIN]
<thelema> adrien: probably will work - I stopped reading the findlib.conf manual when I found how to run ocamldoc.opt instead of just ocamlopt
<thelema> I have some backtraces for ocamldoc - it's got some nasty nested List.map going on
roha has quit [Ping timeout: 244 seconds]
<NaCl> adrien: indeed
<thelema> http://pastebin.com/2acuCeZg sadly it doesn't rewrap the text
* NaCl lulz at ocamldoc.opt
sebz has joined #ocaml
<thelema> something bad is going on in cross_associate...
<adrien> thelema: nicely unreadable
<adrien> thelema: I think I'll start using the .opt stuff quite soon for my own software
<adrien> still need one build system improvement however
<thelema> adrien: better backtrace, same unreadableness: http://pastebin.com/eJuneKSP
<thelema> back later
<adrien> thelema: oldify and alloc in the trace? does it take a lot of memory? maybe you could try passing some GC params through the OCAMLRUNPARAM env var
<adrien> and back later too: bedtime =)
sebz has quit [Quit: Computer has gone to sleep.]
sebz has joined #ocaml
roha has joined #ocaml
Smerdyakov has quit [Quit: Leaving]
roha has quit [Ping timeout: 255 seconds]
<eikke> is there any way to write something like "type 'a foo = (forall 'x) Const of 'a * ('x -> 'a)" in ocaml?
Qrntzz has quit [Changing host]
Qrntzz has joined #ocaml
Qrntzz has quit [Changing host]
Qrntzz has joined #ocaml
everyonemines has joined #ocaml
eikke has quit [Ping timeout: 252 seconds]
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]
ikaros has quit [Quit: Ex-Chat]
orbitz_ has quit [Quit: Reconnecting]
orbitz has joined #ocaml
sepp2k has quit [Remote host closed the connection]
destrius has joined #ocaml
avsm has quit [Quit: Leaving.]
sysop_fb has joined #ocaml
destrius has quit [Quit: Leaving.]
destrius has joined #ocaml