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/
zbroyar has quit [Quit: Leaving.]
<wmeyer> I did Drup sorry, Adrien is also waiting!
<wmeyer> let me reopen this now
<Drup> it's ok
<wmeyer> what was the bug number?
steshaw has joined #ocaml
turnersr has quit [Quit: Leaving]
<Drup> strange, I don't find it
<wmeyer> please update the bug Drup
<wmeyer> thank you
<Drup> update ?
<wmeyer> yes, add a comment saying we want type checking of the builtins
<wmeyer> I can do it, but that was your idea (which I thought about, but didn't realize how important it is)
<Drup> mantis is really not user friendly :|
talzeus has quit [Remote host closed the connection]
TDJACR has joined #ocaml
zRecursive has joined #ocaml
TDJACR has quit [Quit: ZNC - http://znc.in]
TDJACR has joined #ocaml
walter|r has joined #ocaml
zRecursive has quit [Remote host closed the connection]
walter|r has quit [Read error: Connection reset by peer]
walter|r has joined #ocaml
madroach has quit [Ping timeout: 264 seconds]
<pippijn> wmeyer: ping
<pippijn> ok, never mind
<wmeyer> pong pippijn
<pippijn> ok
<pippijn> wmeyer: travis
<pippijn> will you set up travis for your account?
<pippijn> if not, I'll fork treematch and do it on mine
<wmeyer> OK
madroach has joined #ocaml
<pippijn> I've been putting more of my projects into CI
<pippijn> all those have a debian package now
<pippijn> and when I get my ubuntu dev machine back, I'll put those in the ppa, as well
<wmeyer> done!
<pippijn> ok
<pippijn> and is treematch enabled?
<pippijn> in your account, you can flip a switch
talzeus has joined #ocaml
mfp has quit [Ping timeout: 240 seconds]
<pippijn> wmeyer: is it enabled?
<pippijn> looks like it
<wmeyer> ok i toggled
<wmeyer> but it does not seem to do anything
<pippijn> when did you toggle?
<wmeyer> now
<pippijn> ah
<pippijn> meh
<pippijn> ok
<pippijn> maybe now
<pippijn> yes
<pippijn> wmeyer: you were wrong
<pippijn> wmeyer: you did not toggle "now"
<pippijn> wmeyer: you toggled before I said "looks like it"
<wmeyer> Ah ok
<pippijn> ok
TDJACR has quit [Quit: ZNC - http://znc.in]
structuralist has joined #ocaml
<pippijn> wmeyer: good
<pippijn> wmeyer: the build is green
TDJACR has joined #ocaml
<wmeyer> pippijn: thanks
turnersr has joined #ocaml
<wmeyer> I will commit something over the weekend
<pippijn> ok
zRecursive has joined #ocaml
osa1 has joined #ocaml
TDJACR has quit [Quit: Quit]
TDJACR has joined #ocaml
ygrek_ has joined #ocaml
walter|r has quit [Read error: Connection reset by peer]
TDJACR has quit [Quit: Quit]
walter|r has joined #ocaml
q66 has quit [Quit: Leaving]
chrisdotcode has joined #ocaml
yacks has joined #ocaml
TDJACR has joined #ocaml
shinnya has quit [Ping timeout: 264 seconds]
talzeus has quit [Remote host closed the connection]
talzeus has joined #ocaml
ygrek_ has quit [Ping timeout: 245 seconds]
dsheets has quit [Ping timeout: 246 seconds]
walter|r has quit [Read error: Connection reset by peer]
walter|r has joined #ocaml
ygrek_ has joined #ocaml
breakds has joined #ocaml
chrisdotcode has quit [Ping timeout: 256 seconds]
turnersr has quit [Ping timeout: 240 seconds]
turnersr has joined #ocaml
dnm has quit []
pkrnj has joined #ocaml
turnersr has quit [Quit: Leaving]
walter|r has quit [Read error: Connection reset by peer]
walter|r has joined #ocaml
yacks has quit [Ping timeout: 240 seconds]
yacks has joined #ocaml
ben_zen has quit [Ping timeout: 248 seconds]
chrisdotcode has joined #ocaml
UnixJunkie has joined #ocaml
<UnixJunkie> hi
breakds has quit [Remote host closed the connection]
<UnixJunkie> I will soon add some functions in BatSet and BatList and BatArray
<UnixJunkie> a cartesian product function in BatSet and BatList
yacks has quit [Quit: Leaving]
<UnixJunkie> a dichotomic search in (a sorted) BatArray
<UnixJunkie> No votes against this?
<UnixJunkie> Any votes for also?
<UnixJunkie> Like someone else than me that thinks it would be useful
<UnixJunkie> I already have the need for them so...
j0sh has quit [Ping timeout: 256 seconds]
j0sh has joined #ocaml
dnm has joined #ocaml
<UnixJunkie> There is no more Legacy.Pervasives in batteries?
<UnixJunkie> The doc says:
<UnixJunkie> "When using open Batteries, BatFoo will replace Foo, so that the new functions are easily available without a Bat prefix on the module name. As well, BatPervasives is opened into the global namespace. Finally, the previous versions of replaced modules are available in the Legacy module, i.e. Legacy.Unix and Legacy.Pervasives. "
<UnixJunkie> bye
UnixJunkie has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
darkf has quit [Quit: Leaving]
dnm_ has joined #ocaml
chrisdotcode has quit [Ping timeout: 246 seconds]
dnm has quit [Ping timeout: 276 seconds]
dnm_ is now known as dnm
asmanur has quit [Ping timeout: 264 seconds]
asmanur has joined #ocaml
TDJACR has quit [Quit: Quit]
TDJACR has joined #ocaml
TDJACR has quit [Client Quit]
pkrnj has quit [Ping timeout: 246 seconds]
chrisdotcode has joined #ocaml
TDJACR has joined #ocaml
ggole has joined #ocaml
pkrnj has joined #ocaml
Arsenik has joined #ocaml
wagle has quit [Remote host closed the connection]
bondar has joined #ocaml
<zRecursive> bye
zRecursive has left #ocaml []
skchrko has quit [Quit: Leaving]
<adrien> wmeyer: ah, expect the next patch soon; I need to test it on windows and *bsd but I haven't used anything special afaict
<adrien> (well, I hope)
<adrien> wmeyer: and did I mention it was a big patch? :P echo @ . /home/adrien/projects/ocaml/ocaml/config/ocamlcomp; PS4=""; set -x; ${CAMLC_BIN}
<adrien> ergh
<adrien> 31 files changed, 229 insertions(+), 140 deletions(-)
wagle has joined #ocaml
ygrek_ has quit [Ping timeout: 276 seconds]
walter|r has quit [Read error: Connection reset by peer]
walter|r has joined #ocaml
Arsenik has quit [Remote host closed the connection]
pkrnj has quit [Quit: Textual IRC Client: www.textualapp.com]
ttamttam has joined #ocaml
zpe has joined #ocaml
Yoric has joined #ocaml
zpe has quit [Ping timeout: 248 seconds]
Neros has quit [Ping timeout: 264 seconds]
Arsenik has joined #ocaml
djcoin has joined #ocaml
UnixJunkie has joined #ocaml
bondar has quit [Ping timeout: 276 seconds]
zarul has joined #ocaml
osa1 has quit [Ping timeout: 245 seconds]
cago has joined #ocaml
ygrek_ has joined #ocaml
zpe has joined #ocaml
hcarty has quit [Ping timeout: 246 seconds]
hcarty has joined #ocaml
Neros has joined #ocaml
Simn has joined #ocaml
chambart has joined #ocaml
zpe has quit [Ping timeout: 245 seconds]
chrisdotcode has quit [Ping timeout: 248 seconds]
skchrko has joined #ocaml
zpe has joined #ocaml
dnm_ has joined #ocaml
dnm has quit [Ping timeout: 256 seconds]
Neros has quit [Ping timeout: 245 seconds]
steshaw has quit [Quit: Leaving]
Yoric has quit [Ping timeout: 246 seconds]
Drup has quit [Quit: Leaving.]
UnixJunkie has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
zarul has quit [Quit: Leaving]
zarul has joined #ocaml
bondar has joined #ocaml
Neros has joined #ocaml
Neros has quit [Remote host closed the connection]
Neros has joined #ocaml
rossberg has joined #ocaml
yacks has joined #ocaml
ttamttam has quit [Read error: Connection reset by peer]
ttamttam has joined #ocaml
ttamttam has quit [Read error: Connection reset by peer]
ttamttam has joined #ocaml
niko has quit [Read error: Connection reset by peer]
thomasga has joined #ocaml
niko has joined #ocaml
ontologiae has joined #ocaml
Arsenik has quit [Ping timeout: 276 seconds]
structuralist has quit []
Yoric has joined #ocaml
mfp has joined #ocaml
dtg_ has joined #ocaml
dtg has quit [Ping timeout: 268 seconds]
void64 has joined #ocaml
Kakadu has joined #ocaml
structuralist has joined #ocaml
ygrek_ has quit [Ping timeout: 248 seconds]
void64 has quit [Read error: Operation timed out]
bondar has quit [Ping timeout: 256 seconds]
structuralist has quit []
Sim_n has joined #ocaml
dch has joined #ocaml
Neros has quit [Ping timeout: 245 seconds]
walter|r has quit [Read error: Connection reset by peer]
walter|r has joined #ocaml
Simn has quit [Ping timeout: 276 seconds]
skchrko has quit [Ping timeout: 246 seconds]
dsheets has joined #ocaml
bondar has joined #ocaml
skchrko has joined #ocaml
ttamttam has quit [Quit: ttamttam]
osa1 has joined #ocaml
osa1 has quit [Client Quit]
q66 has joined #ocaml
ontologiae has quit [Ping timeout: 246 seconds]
bondar has quit []
niko has quit [Read error: Connection reset by peer]
niko has joined #ocaml
_andre has joined #ocaml
void64 has joined #ocaml
niko has quit [Ping timeout: 620 seconds]
niko has joined #ocaml
breakds has joined #ocaml
void64 has quit [Ping timeout: 264 seconds]
structuralist has joined #ocaml
ben_zen has joined #ocaml
talzeus has quit [Remote host closed the connection]
chambart has quit [Ping timeout: 246 seconds]
Drup has joined #ocaml
void64 has joined #ocaml
walter|r has quit [Read error: Connection reset by peer]
walter|r has joined #ocaml
AltGr has joined #ocaml
<fryguybob> In an educational setting where students are going to be exposed to ocaml for a couple of projects durring the semester, should I use just what comes with building the source from http://caml.inria.fr/ or should I include https://github.com/ocaml-batteries-team/batteries-included ?
<adrien_oww> which platform are you going to use? how is ocaml going to be installed?
<fryguybob> adrien_oww: Building from source and installed to a non-standard directory.
<adrien_oww> and the students are able to install new libs?
tane has joined #ocaml
<fryguybob> adrien_oww: We would like the students to not have to bother with installing anything, just using the compiler from /.../bin/ocamlc
ben_zen has quit [Ping timeout: 256 seconds]
<adrien_oww> yeah, it's much better
<adrien_oww> you only mention Batteries, but could other libs be beneficial too?
<fryguybob> adrien_oww: The projects we have in mind are really simple, but if nobody uses vanilla ocaml I would rather expose them to a common base that everyone uses or is familiar with.
<adrien_oww> most of the time, I wouldn't try to expose beginners to the fairly small OCaml standard library
<adrien_oww> would probably waste time
<gasche> adrien_oww: what do you mean by "exposing students to the stdlib"?
<adrien_oww> small* stdlib
<gasche> yep, but what wastes time?
<adrien_oww> basically, if a student has to ask himself "where is this String.find_substring", it's time wasted
<ggole> Being able to do IntSet = Set.Make(Int) is nice, too
<gasche> adrien_oww: so you're saying that you don't want students to re-implement functions that exist in Batteries?
<adrien_oww> not for projects
<gasche> fryguybob: I'd have separate (and somewhat conflicting) comments
<gasche> re. "idiomatic community usage", a lot of people in the OCaml community still go from the bare stdlib with their own additions to it
<fryguybob> gasche: Excellent :D
amirmc has joined #ocaml
<gasche> (you'll find that essentially none of the "big" OCaml projects use Core or Batteries)
<gasche> so that's not an issue
Sim_n has quit [Read error: Connection reset by peer]
<gasche> re. tooling, remaining in the land of the stdlib will make things easier by not requiring, for example, to install ocamlfind
<Drup> (and most of the reimplement a complement to the standard library ....)
<gasche> if you plan to teach the inner working of the compilation process (production of .cmi, then .cmo, then linking into an exec), not having too many external dependencies help
<gasche> if you have a good story with ocamlfind in place and don't plan to break that blackbox open, relying on external packages is fine and relatively easy
<adrien_oww> I'd use ocamlfind: you can still use the stdlib without and if it happens to be needed because another lib is needed, it'll take much more time
<fryguybob> In particular one thing I find missing from the standard lib is something simple like splitting a string by a separater. I can't find it in the standard lib, but it is right where I would expect it in batteries.
<gasche> finally, re. missing features, I think it depends on the kind of projects you have in mind (everything with multimedia will need outside libs), but my personal experience is that the stdlib is often enough for the mathy stuff I did in school
<gasche> the upside of the stdlib is that it is small enough that students can get a grasp of the general thing, and that it encourages them to implement stuff on their own instead of finding it prepackaged
<gasche> (Caml Light didn't even have List.filter; I first complained when teaching with Caml Light, but then was happy to have my students re-implement it for pedagogical purposes)
<gasche> the upside of Batteries is that they'll find more stuff in, but looking for stuff in it may also feel more difficult and potentially overwhelming
<gasche> but also you'll need to make the compilation process a bit more magical
mort___ has joined #ocaml
<rks`> well
<adrien_oww> ocamlfind -verbose
<rks`> looking for stuff should be easy with merlin :-'
<adrien_oww> :D
<Drup> batteries documentation is clear and easy to browse, I would say it's better documented than the standard library
<gasche> I think that if I were you, I would go for a "less is more" approach; try to setup a environment that can grow with libs they would need (so definitely ocamlfind, and if possible a package manager such as Debian/Godi/Opam), but possibly only expose them to a subset for a first step
<gasche> if you only go for the stdlib and find out later than a student needs, say, camlimages, he/she's going to get into a world of pain
* adrien_oww would do the same
<adrien_oww> (maybe with Batteries though)
<gasche> if the environment is in place, you can expose them to richer libs and tooling as you discover the needs
<gasche> hm
<gasche> I'm not sure "less is more" is an appropriate name for what I was saying
<adrien_oww> "don't overwhelm beginners"?
milosn has joined #ocaml
structuralist has quit []
Neros has joined #ocaml
Drup has quit [Ping timeout: 246 seconds]
void64 has quit [Ping timeout: 248 seconds]
Kakadu has quit [Ping timeout: 250 seconds]
chambart has joined #ocaml
ontologiae has joined #ocaml
amirmc has quit [Quit: Leaving.]
amirmc has joined #ocaml
<pippijn> gasche: do you know the rationale behind BatUTF8's highly incompatible and degrading changes between 1 and 2?
manud has quit [Read error: Connection reset by peer]
manud has joined #ocaml
hellome has quit [Remote host closed the connection]
hellome has joined #ocaml
void64 has joined #ocaml
zbroyar has joined #ocaml
<gasche> pippijn: I don't know this part well, but I guess that would be to make installation easier
<gasche> Camomile relies on runtime data that was painful to deploy to our users
<gasche> asmanur: I would like to know which changes you had to do for your code to work on 4.01, where can I look?
<pippijn> gasche: I mean things like BatUTF8.adopt being gone
<pippijn> gasche: and the type no longer being private
<pippijn> gasche: and lots of functionality that only relies on UTF8 decoding (like of_enum) being gone
<gasche> apparently you know far more about BatUTF8 than I do, so your best bet is to look at the mailing-list archives and commit messages
<pippijn> ok
Kakadu has joined #ocaml
kaka22 has joined #ocaml
<kaka22> hi guys
<pippijn> hi
<kaka22> i am trying to interface ocaml with a c library. a question:
<kaka22> there is a mismatch between string of ocaml with string of C
<kaka22> in Ocaml: string can have null value, while in C that is not possible
n06rin has joined #ocaml
<kaka22> so how to transfer a string that might have NULL char to C?
<kaka22> there is a function named String_val() for C to get string from Ocaml, but in case string in Ocaml have NULL char, that will be trouble
<kaka22> any idea?
<adrien_oww> gasche: we need to improve camomille :P
<rgrinberg> kaka22: how come you aren't using ocaml-ctypes?
<rgrinberg> i know it can handle automatic conversion cstring <-> ocaml string
<asmanur> (that's unfair, there is probably a bugfix in it)
<rgrinberg> but I'm not sure if it handles that case
<kaka22> rgrinberg: i dont want dependency
<kaka22> that ocaml-wrapping-c doc is simple enough
<kaka22> still i have some doubt on the string transfered from Ocaml to C
<kaka22> char *s = String_val(v);
<kaka22> ^^^ this will be troublesome
<rgrinberg> there are some interesting stubs tehre ^
<rgrinberg> perhaps you will find them useful
<kaka22> i see. so i might need to switch to ocaml-ctypes, which i dont really want to
<rgrinberg> kaka22: I'd recommend it
talzeus has joined #ocaml
<rgrinberg> so far it's been very convenient and easy to use for me
<rgrinberg> the only friction was from setting up the build process
talzeus has quit [Remote host closed the connection]
<rgrinberg> i'd also recommend using the HEAD and not the opam version
talzeus has joined #ocaml
<Kakadu> char *s = String_val(v);
<Kakadu> I think that s can't be NULL
<rks`> rgrinberg: what problem did you have with "build process" ?
<Kakadu> In case of OCaml empty string it will be "\n"
<kaka22> Kakadu: yes s cant have NULL in C. that is why i have problem with String_val()
<def-lkb> Kakadu: '\0'
<Kakadu> I dont' see any problem
<kaka22> Kakadu: but string in Ocaml can has "\x00" inside
<rgrinberg> rks`: there are some c compiler flags that must be passed in ubuntu. i wasn't aware of that before
<rgrinberg> also i couldn't
<kaka22> Kakadu: ok, this string is legal in OCaml: "\x00Hello". this string cannot be accepted in C
<rgrinberg> link the library without specifying the ?from param in the foreign calls explictly
<kaka22> so i cannot transfer \x00Hello to C using String_val()
<def-lkb> 1. ocaml strings can contain any character
<Kakadu> Guys, are these string not transferable to C?
<def-lkb> 2. their representation ensure that they are zero-terminated when interpreted as C-strings
<kaka22> Kakadu: i have no idea how to, except to use ocaml-ctypes (???)
<def-lkb> These strings are transferable, but they can be moved by the GC
amirmc has quit [Read error: Connection reset by peer]
<def-lkb> So you can use these as-is on C side only if it's atomic wrt to ocaml runtime
amirmc has joined #ocaml
ygrek_ has joined #ocaml
<ggole> Look for 'exchanging raw data'
<kaka22> def-lkb: so any recommendation, besides switch to ocaml-ctypes? (which is the last choice for me)?
<kaka22> oh i see that ....
<def-lkb> kaka22: follow advices on ggole link :)
<kaka22> ok, problem solved. thank guys!!
cow-orker has quit [Remote host closed the connection]
void64 has quit [Read error: Operation timed out]
<kaka22> hmm not yet. in the example at that link, they dont say how to copy data from Ocaml to C, but only from C to Ocaml
<gasche> rgrinberg: there are no "big plans" for ocamlbuild, mostly development/maintenance going along as it should
<kaka22> caml_copy_string() copy C raw data to Ocaml string var.
<gasche> I decided to devote some of my time to it this summer
<gasche> I didn't get very far, but still got some work done
<kaka22> but how can i copy Ocaml string to C?
skchrko has quit [Quit: Leaving]
<gasche> wmeyer has also done some much-needed maintenance work earlier in the year
<rks`> gasche: question for you
<gasche> if you want to follow the development, you can follow the ocamlbuild commits on the OCaml SVN, and the discussions on the OCaml bugtracker (you can filter to get only ocamlbuild-related issues)
<rks`> I'm looking at transl_function in bytecomp/translcore.ml
<gasche> re. future plans, I have a branch that is not yet merged with some changes, but I mostly plan to document, clarify and optimize what is already there -- and fix bugs
<def-lkb> kaka22: String_val will give you a char*
<def-lkb> You know everything you need to.
<def-lkb> caml_string_length will give you the length of the string at this address
<kaka22> def-lkb: the problem is i dont know the size of the string. it is cut until NULL in C
<rks`> and there is some stuff to flatten tuples that are taken as parameters
<kaka22> oh never see this caml_string_length function
<kaka22> this is then enough, yes
<def-lkb> :)
<rks`> however, the flattening appears only if the first pattern of the list (i.e. the first of your mutually recursive definitions?) is a tuple
<kaka22> def-lkb: thanks!
<rks`> and I was wondering why that was
<def-lkb> kaka22: np :)
<rks`> isn't implied somewhere that every function of the list takes a tuple as an argument?
<rks`> (it looks like it since Matching.flatten_pattern fails if that's not the case)
<rks`> but hm, why is that?
<gasche> I don't know this part of the translation well
<gasche> but my guess would be that the clever closure representation of mutually recursive functions works may better if all functions in the block have similar representation
darkf has joined #ocaml
<gasche> hm wait
<gasche> I was reading the code wrong
<gasche> rks`: it's not the first pattern of the recursive definition
<rks`> oh?
<gasche> it's the first pattern of the list of clauses after "function"
<gasche> well
<rks`> ah
<gasche> I'm not sure but it makes much more sense
<rks`> my bad
<kaka22> ... typedef uintnat mlsize_t;
<gasche> out of curiosity, why are you looking at this?
<kaka22> so what is this uintnat? uint32, or uint64?
<rks`> gasche: parameter names were lost in that case
<rks`> I did a small patch for that already
<rks`> but I'm trying to understand the code better
<gasche> if you can write good comments around the part you fought to understand, put them as patches on the bugtracker
bondar has joined #ocaml
<rks`> well, I didn't understand because I don't know the AST that well
mort___ has quit [Quit: Leaving.]
<rks`> (the AST documentation would be nice though)
thomasga has quit [Quit: Leaving.]
<rks`> ( def-lkb just proposed documenting that )
<gasche> well Alain has done that in his branch, which should be in trunk
void64 has joined #ocaml
<gasche> but it's the AST, not the typedtree I guess
<gasche> (but they're quite close)
<rks`> well, that's already nice
<rks`> no need for us then :)
<gasche> extension_points was merged in trunk a couple of days ago I think
<gasche> rgrinberg: feel free to ask if you have any more specific questions, or even contribute bugreport/patches if you want to influence the direction in which things go
<rks`> ( def-lkb might still add comments for typedtree specific things however)
<gasche> of course, that would be appreciated
<def-lkb> ( rks` has almost finished commenting bytecomp/* )
<rks`> D
<rks`> :D*
<gasche> those comments are definitely welcome on the bugtracker
<gasche> they will have to go through the corresponding maintainers if the people eyeballing them see any chance they may be ill-formulated at places, but that's fair
<rks`> of course
<gasche> also I'm not fond of the lazy in your patch; why don't you pass the string to send to Indent.create instead?
n06rin has quit [Read error: Connection reset by peer]
<gasche> hm
<gasche> in fact I would expect sensible_pat_name to return an option
<gasche> and both name_pattern and your local use to match on the return, calling Indent.create in the None case
n06rin has joined #ocaml
<gasche> (using lazyness in the compiler is not taboo, but as all more complex features it's always better if you can do the same thing while remaining simple)
<kaka22> guys, i follow the ocaml-wrapping-c, and it says i should always declare OCAMLparam<N> for input args. however, the compiler complains: ...
<kaka22> undefined reference to 'CAMLparam3'
<kaka22> why is that??
<gasche> kaka22: did you import memory.h as the doc says?
<wmeyer> adrien: apologises. I will try to get the patchs in ASAP.
<pippijn> hi wmeyer
<wmeyer> hi pippijn
<kaka22> gasche: indeed i missed that, thanks!
<wmeyer> i am leaving soon so see you later
amirmc has quit [Quit: Leaving.]
mort___ has joined #ocaml
amirmc has joined #ocaml
amirmc has quit [Client Quit]
wmeyer has left #ocaml []
<rks`> gasche: why not.
Yoric has quit [Ping timeout: 256 seconds]
<pippijn> almost all my projects are in travis CI now :) yay
<adrien_oww> :)
void64 has quit [Ping timeout: 240 seconds]
<pippijn> and they have preliminary debian packages
<pippijn> when I get my dev machine back, I'll make proper ones
void64 has joined #ocaml
<rgrinberg> gasche: thanks i will check that out
<pippijn> all green \o/
skchrko has joined #ocaml
<gasche> rgrinberg: I have a development branch for ocamlbuild that has some changes not publicly visible (mostly because I'm concentrating on the 4.01 release now instead of getting my branch into trunk), that mostly center around documentation and better user experience (eg. warnings when tags are not used by any rule and are thus probably typos)
<gasche> it will hopefully land in a few days/weeks in any case
<rgrinberg> thanks taht sounds very good
<rgrinberg> i also appreciate your effort to document ocamlbuild (on github)
<rgrinberg> what i'm most interested in with is if there are plans for further integration with ocamlfind
<rgrinberg> for example META generation
chrisdotcode has joined #ocaml
<gasche> there are some open discussions about this on the bugtracker
<rgrinberg> lately i've been getting the feeling that all i use oasis for is a glorified wrapper for ocamlbuild adn ocamlfind
<rgrinberg> something that could easily be replaced a simple makefile if i wasn't too lazy to write it
<gasche> I'm personally rather happy to let oasis take care of these aspects
iZsh has quit [Ping timeout: 264 seconds]
<gasche> (and some of the recent changes should make it easier for oasis to interact with ocamlbuild in such a way that oasis users have control of their ocamlbuild system, without lot of generated boilerplate that makes you not want to touch it)
<pippijn> does oasis make META files with multiple packages in it?
<pippijn> like foo.syntax, foo.extra, ...
<rgrinberg> for example i don't anything much more complicated than the following setup: https://github.com/c-cube/sequence
<rgrinberg> including all that auto generated stuff seems like over fkill
kaka22 has quit [Quit: Leaving]
<rgrinberg> i see, that sounds good the boiler plate is my number 1 problem with oasis
iZsh has joined #ocaml
<rks`> gasche: you could have told romain that merlin was what he was looking for
<rks`> :-'
<gasche> I'm not sure
<gasche> but you should consider doing that, yes
<gasche> hm
<rks`> I'm too shy, I wouldn't dare :-'
Drup has joined #ocaml
n06rin has quit [Read error: Connection reset by peer]
Neros has quit [Ping timeout: 248 seconds]
hellome has quit [Read error: Connection reset by peer]
ontologiae has quit [Ping timeout: 256 seconds]
hellome has joined #ocaml
turnersr has joined #ocaml
Simn has joined #ocaml
cago has left #ocaml []
ben_zen has joined #ocaml
hellome has quit [Read error: Connection reset by peer]
hellome has joined #ocaml
n06rin has joined #ocaml
hellome has quit [Remote host closed the connection]
hellome has joined #ocaml
shinnya has joined #ocaml
<adrien> gasche: btw, why would parallelization on windows be unable with ocamlbuild?
<rks`> if by unable you meant impossible, I don't think that's what he said
<rks`> he just said « nobody implemented it » (well... that's the way I understand it)
<adrien> I know make (at least some of the builds) can't do it
<adrien> but I don't really understand how it's different
<ggole> Doesn't have fork
<adrien> but it can start processes
<adrien> and you're starting new compiler processes anyway
<ggole> Right, but the semantics are quite different.
<adrien> I mean, all of the fork() would be followed by an exec()
<adrien> you can track the PIDs; what more is needed? =/
<ggole> Depends on whether you're doing Unixy stuff like keeping fds open
void64 has quit [Ping timeout: 256 seconds]
chambart has quit [Ping timeout: 246 seconds]
void64 has joined #ocaml
Kakadu has quit [Quit: Page closed]
<adrien> yeah, definitely
<adrien> still, I can't help but wonder what the issue is :)
Yoric has joined #ocaml
Yoric has quit [Ping timeout: 248 seconds]
void64 has quit [Quit: Leaving]
ulfdoz has joined #ocaml
Yoric has joined #ocaml
talzeus has quit [Read error: Connection reset by peer]
mort___ has quit [Quit: Leaving.]
mort___ has joined #ocaml
Yoric has quit [Ping timeout: 248 seconds]
tane has quit [Remote host closed the connection]
tane has joined #ocaml
Yoric has joined #ocaml
n06rin has quit [Quit: Leaving.]
ollehar has joined #ocaml
mort___ has quit [Quit: Leaving.]
djcoin has quit [Quit: WeeChat 0.4.0]
testcocoon has quit [Quit: Coyote finally caught me]
Yoric has quit [Ping timeout: 248 seconds]
dsheets has quit [Read error: Operation timed out]
testcocoon has joined #ocaml
ygrek_ has quit [Ping timeout: 248 seconds]
testcocoon has quit [Quit: Coyote finally caught me]
testcocoon has joined #ocaml
Yoric has joined #ocaml
Yoric has quit [Ping timeout: 248 seconds]
Yoric has joined #ocaml
turnersr has quit [Ping timeout: 248 seconds]
turnersr has joined #ocaml
watermind has joined #ocaml
Yoric has quit [Ping timeout: 248 seconds]
Yoric has joined #ocaml
turnersr has quit [Read error: Connection reset by peer]
turnersr has joined #ocaml
zarul has quit [Remote host closed the connection]
ggole has quit []
zarul has joined #ocaml
Arsenik has joined #ocaml
turnersr has quit [Ping timeout: 248 seconds]
turnersr has joined #ocaml
dnm_ has quit [Ping timeout: 256 seconds]
dnm has joined #ocaml
_andre has quit [Quit: leaving]
AltGr has quit [Quit: Konversation terminated!]
Yoric has quit [Ping timeout: 248 seconds]
turnersr has quit [Ping timeout: 245 seconds]
turnersr has joined #ocaml
<adrien> gasche: can you confirm that ocamldoc on windows (except the cygwin port) runs ocamldoc during builds?
tani has joined #ocaml
<adrien> (well, I'll try in my VM but I can't find how it'd be doing otherwise)
<adrien> will have to check it tries to use ocamldoc.opt too
tane is now known as Guest82557
Guest82557 has quit [Killed (moorcock.freenode.net (Nickname regained by services))]
tani is now known as tane
walter|r has quit [Quit: This computer has gone to sleep]
chambart has joined #ocaml
Myk267 has quit [Quit: Myk267]
structuralist has joined #ocaml
Arsenik has quit [Remote host closed the connection]
dch has quit [Quit: how now brown cow?]
dnm_ has joined #ocaml
dnm has quit [Ping timeout: 252 seconds]
gildor has joined #ocaml
<gasche> adrien: confirm that ocamldoc runs ocamlc?
<gasche> (I can't confirm anything about Windows as I don't have a Windows machine to test on)
<gildor> hi
<gasche> re. ocamlbuild + windows, maybe I got it wrong and it can in fact parallelize on Windows
<gasche> hi gildor
<gildor> need help with typing
<gasche> :]
<companion_cube> hello!
* companion_cube back to a place with proper wifi
<gasche> gildor: I suppose you haven't followed the development, but by 4.01 it should be possible for a myocamlbuild.ml file to depend on external libraries, and in particular ocamlfind packages
<gildor> I try to hide a type test in a .mli but I still would like to be able to build in another compilation unit
<gildor> gasche: good news
<gasche> I hope that it may enable a way to have OASIS not generate too much code in a user's ocamlbuild, but only a call to (some) oasis-library-provided plugin initialization functions
<gildor> gasche: well
<gasche> (a user's myocamlbuild.ml)
<gildor> gasche: I was thinking to embed ocamlbuild call directly in OASIS and just have no myocamlbuild / _tags / whatever files
<gildor> i.e. don't use ocamlbuild as a program but as a library
<gasche> I think technically this could be feasible, but I'm not personally convinced this is a good idea
<gasche> as an ocamlbuild contributor, I like the idea that whatever useful stuff is put into OASIS ocamlbuild plugin can also benefit non-oasis plugins
<gasche> as an OASIS user, I'm satisfied to know that under the magic, there is a build system that I understand and can use independently
<gildor> my problem is that I want to convert from OUnit1 test to OUni2 test
<gildor> but OUnit2.mli only provides type test
<gildor> gasche: too bad I was planning to create oasis-ninja to have another build system using ninja
<gasche> that's fine, it's nice that oasis users have a choice of build system supported by oasis
<gasche> I'm not saying they should be bound to ocamlbuild
<gasche> but currently I like the idea that if I want to tweak some compilation aspect of an OASIS project, I can tweak the underlying ocamlbuild project that works like any ocamlbuild project I know
<gildor> gasche: well oasis-ninja was in my brain something like a build system on its own, using ninja (low-level)
<gasche> if OASIS moves to a special flavor of ocamlbuild built from ocamlbuildlib, it will be much less clear to users how to do that
<gildor> gasche: but this is a "dream" project
<gildor> gasche: welll there are some people that keep refering to OASIS as a build system and I feel concerna about that
cdidd has quit [Read error: Connection reset by peer]
<gildor> gasche: anyway, you made a valid point, I'll avoid doing that
<gildor> (mean use directly ocamlbuild)
<gildor> (mean use directly ocamlbuildlib)
cdidd has joined #ocaml
<gasche> regarding your typing problem
<gasche> you could add the (OUnit.test -> OUnit2.test) conversion function to OUnit2.ml
<gasche> so that it lives inside the abstraction boundary and sees that they are the same
Simn has quit [Quit: Leaving]
<gasche> in the more general case I would do stuff like having OUnit_impl.ml and OUnit2_impl.ml modules with no type abstraction/encapsulation, and then OUnit.ml and OUnit2.ml modules that include those and have a stricter .mli
<gildor> gasche: good idea, but I run into various other quirks
<gasche> then you have to enforce that most of your software uses OUnit and OUnit2, but some select part can live at the level of the _impl versions instead (to not be limited by abstraction boundaries) and be referred to by the .mli of OUnit and OUnit2
<gildor> gasche: because OUnit2 disclose too little information and ounit1 is using the same underlying modules (OUnitTest, OUnitCore) but given the fact it doesn't disclose type test and type test_Ctxt
<gildor> I cannot reuse all the other module
<gildor> I made up my mind, type test = OUnitTest.test in OUnit2.mli
tom39341 has joined #ocaml
<gildor> no documentation and no access, except if you decide to use the underlying module
path[l] has joined #ocaml
<path[l]> hi, is it possible to declare a function with a variable number of arguments in ocaml
<gasche> path[l]: no it's not
<gasche> (at least not in the way you probably mean it)
<path[l]> hmm ok fair enough :)
<gasche> is there a specific reason why you're asking this?
<jpdeplaix> gasche: how does it works (the external libs with ocamlbuild) ?
<path[l]> yeah, Im making some changes to an ocaml codebase where we do extensive pattern matching
<path[l]> and end up calling a function sometimes of the form
<path[l]> f e1; f e2; etc
<path[l]> and I replaced it with List.iter f [e1; e2; ]
<path[l]> but I thought there might be a nicer way
<jpdeplaix> path[l]: iter seems fine to me
<path[l]> hehe yeah I guess that works
<gasche> jpdeplaix: a -plugin-tags compilation option
<jpdeplaix> gasche: is it not documented in the man :/
<jpdeplaix> it's*
<gasche> well certainly not in the manual of the previous version of OCaml
<jpdeplaix> I'm using the rc1
<jpdeplaix> it's documented in the --help, but not in the man
<jpdeplaix> (or I missed something)
<gasche> indeed, it's not in the manpage yet
hcarty has quit [Ping timeout: 276 seconds]
<gasche> in any case, it's only an experimental feature so far
hcarty has joined #ocaml
niko has quit [Quit: leaving]
niko has joined #ocaml
dsheets has joined #ocaml
mort___ has joined #ocaml
zpe has quit [Remote host closed the connection]
saml has quit [Quit: Leaving]
piotrm0 has joined #ocaml
<piotrm0> does anyone have experience using ocaml sdl ?
mort___ has quit [Quit: Leaving.]
<gildor> for those interested in OUnit: http://le-gall.net/sylvain+violaine/blog/index.php?post/2013/09/06/OUnit-2.0-progress%2C-August-2013
brendan has quit [Ping timeout: 264 seconds]
brendan has joined #ocaml
amirmc has joined #ocaml
amirmc has quit [Client Quit]
ulfdoz has quit [Read error: Operation timed out]
chrisdotcode has quit [Ping timeout: 245 seconds]
wormphlegm has quit [Ping timeout: 256 seconds]
wormphlegm has joined #ocaml
tane has quit [Quit: Verlassend]
chambart has quit [Ping timeout: 264 seconds]
<path[l]> hi can I get some help with this http://pastebin.com/bTxsxBe1
<Drup> what help do you need ?
<path[l]> Im new to ocaml, and the solution I wrote didnt work. I tried to replace it with
<path[l]> -> match x with
<path[l]> | t1 -> something; ()
<path[l]> | t2 -> something else; ()
<path[l]> but that doesnt work
<companion_cube> http://pastebin.com/JSP7WMpj like this?
<path[l]> ah
<path[l]> I understand
<path[l]> thanks
<path[l]> whats the difference between when I do
<path[l]> x = function
<path[l]> and have a match
<path[l]> or do let x p = match x with
<Drup> path[l]: " x = function" is strictly equivalent with "x y = match y with"
<Drup> not x
<path[l]> got it
<companion_cube> path[l]: function is a shortcut for pattern matching on the last argument
<companion_cube> but here you need to pattern match against two of them
<path[l]> thanks, that makes sense to me :)
Neros has joined #ocaml
piotrm0 has quit [Remote host closed the connection]
chrisdotcode has joined #ocaml
ivan\ has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
ivan\ has joined #ocaml
chrisdotcode has quit [Ping timeout: 264 seconds]
structuralist has quit []
piotrm0 has joined #ocaml
turnersr has quit [Quit: Leaving]