adrien 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-lang.org | Public logs at http://tunes.org/~nef/logs/ocaml/
watermind has quit [Ping timeout: 246 seconds]
watermind has joined #ocaml
eikke has quit [Ping timeout: 264 seconds]
hongboz has joined #ocaml
eikke has joined #ocaml
everyonemines has joined #ocaml
Xizor has quit [Remote host closed the connection]
X1z0r has quit [Remote host closed the connection]
TDJACR has quit [Ping timeout: 264 seconds]
TDJACR has joined #ocaml
ikaros has quit [Quit: Ex-Chat]
everyonemines has quit [Quit: Leaving.]
hongboz` has joined #ocaml
myx_ has quit [Ping timeout: 255 seconds]
ousado has quit [Remote host closed the connection]
ousado has joined #ocaml
ousado has quit [Changing host]
ousado has joined #ocaml
madroach has quit [Ping timeout: 244 seconds]
madroach has joined #ocaml
lolcatho1t has joined #ocaml
lolcatho1t has quit [Client Quit]
lolcathost has quit [Read error: Connection reset by peer]
weie has joined #ocaml
eikke has quit [Ping timeout: 265 seconds]
lolcathost has joined #ocaml
jamii has quit [Ping timeout: 272 seconds]
watermind has quit [Remote host closed the connection]
watermind has joined #ocaml
hongboz` has quit [Ping timeout: 244 seconds]
hongboz has quit [Ping timeout: 272 seconds]
fayden has quit [Ping timeout: 265 seconds]
fayden has joined #ocaml
lolcathost has quit [Ping timeout: 255 seconds]
lolcathost has joined #ocaml
lolcathost has quit [Read error: Connection reset by peer]
TDJACR has quit [Ping timeout: 260 seconds]
TDJACR has joined #ocaml
lolcathost has joined #ocaml
lolcathost has quit [Ping timeout: 255 seconds]
TDJACR has quit [Ping timeout: 252 seconds]
TDJACR has joined #ocaml
hongboz has joined #ocaml
lolcathost has joined #ocaml
lolcathost has quit [Ping timeout: 264 seconds]
Yoric has joined #ocaml
watermind has quit [Quit: Konversation terminated!]
TDJACR has quit [Ping timeout: 255 seconds]
TDJACR has joined #ocaml
lolcathost has joined #ocaml
hongboz has quit [Ping timeout: 244 seconds]
lolcathost has quit [Ping timeout: 248 seconds]
astertronistic has joined #ocaml
jewel has joined #ocaml
BobDole has joined #ocaml
<BobDole> What's the easiest way to detect if there's a duplicate in a list?
<astertronistic> sorting or hashing, usually
<astertronistic> at least conceptually
<BobDole> there's no one liner like just convert to a set and check the lengths to see if any were removed?
<astertronistic> hmm, maybe
jewel has quit [Ping timeout: 250 seconds]
ulfdoz has joined #ocaml
<astertronistic> let rec dup_in_sorted_list eq list = match list with [] -> false | [_] -> false | x::(y::xs) -> if eq x y then true else dup_in_sorted_list eq (y::xs);;
<BobDole> yea that should do it. i guess there aren't much shorter implementations
<astertronistic> yeah, haskell could probably do it
<astertronistic> I'm sure ocaml can too
<astertronistic> I just don't know enough yet
<BobDole> hmm ok thanks
answer_42 has joined #ocaml
ulfdoz has quit [Ping timeout: 272 seconds]
mye has joined #ocaml
srcerer has quit [Ping timeout: 260 seconds]
myx has joined #ocaml
fusillia has joined #ocaml
thomasga has joined #ocaml
chambart has joined #ocaml
Yoric has quit [Ping timeout: 260 seconds]
djcoin has joined #ocaml
Yoric has joined #ocaml
Snark has joined #ocaml
Kakadu has joined #ocaml
mika1 has joined #ocaml
AltGr has joined #ocaml
AltGr has quit [Client Quit]
Cyanure has joined #ocaml
AltGr has joined #ocaml
ftrvxmtrx has joined #ocaml
BobDole has quit [Ping timeout: 260 seconds]
ontologiae has joined #ocaml
BiDOrD_ has joined #ocaml
BiDOrD has quit [Ping timeout: 250 seconds]
chambart has quit [Ping timeout: 246 seconds]
mcclurmc_away is now known as mcclurmc
larhat has joined #ocaml
Yoric has quit [Ping timeout: 244 seconds]
astertronistic has quit [Remote host closed the connection]
groleo has joined #ocaml
<testcocoon> thelema: is it necessary to set OCAMLRUNPARAM=b to get a correct stack when debugging with ocamldebug?
_andre has joined #ocaml
<adrien_oww> you can also do it in code: see Printexc (the module)
testuni has joined #ocaml
mye has quit [Quit: mye]
chambart has joined #ocaml
beckerb has joined #ocaml
andre___ has joined #ocaml
_andre has quit [Ping timeout: 260 seconds]
ollehar has joined #ocaml
ollehar has quit [Client Quit]
ollehar has joined #ocaml
ollehar has quit [Client Quit]
ollehar has joined #ocaml
ollehar has quit [Client Quit]
mika1 has quit [Quit: Leaving.]
<testcocoon> adrien_oww: my question is concerning oqamldebug: if I readdy understand oqamldebug should set OCAMLRUNPARAM=b before executing ocamldebug
eikke has joined #ocaml
<adrien_oww> ah, that, yeah
<thomasga> testcocoon: normally no
<thomasga> you just need -g
<testcocoon> is this also true for remote debugging?
<thomasga> I don't see how remote debugging could change something here
<thomasga> you need an executable with the debug symbols
<thomasga> but
<thomasga> I don't know very well about ocamldebug so I might be completely wrong :p
<mcclurmc> hi thomasga. i was creating a new opam package yesterday, when i noticed that 'opam config -list-vars' didn't return anything. is there something wrong with my configuration? how can I debug this?
<testcocoon> OK. I will let the code so. Setting OCAMLRUNPARAM can be do by the user at the moment.
groleo has left #ocaml []
answer_42 has quit [Remote host closed the connection]
answer_42 has joined #ocaml
logicgeezer_ has joined #ocaml
ikaros has joined #ocaml
<thomasga> mcclurmc: this bug is fixed in the 0.9
<mcclurmc> awesome, i'll upgrade
<thomasga> but
<thomasga> if you upgrade, you'll get the new command line interface
<thomasga> I know this is not ideal, but I have to do this change before the beta ...
<thomasga> hopefully it will not break too badly your install scripts ...
<mcclurmc> thomasga: well, i'll have to learn sometime
<mcclurmc> no, i won't be changing our build environment opam, just my local
<mcclurmc> haven't bothered to script anything with opam personally yet
<thomasga> ha ok, so I guess it's fine then :-)
<mcclurmc> so doing 'opam upgrade' won't get me to 0.9? do I have to install that manually?
<thomasga> it is much nicer than the previous one
mye has joined #ocaml
justdit has joined #ocaml
myx has quit [Ping timeout: 244 seconds]
mika1 has joined #ocaml
myx has joined #ocaml
testuni has quit [Ping timeout: 245 seconds]
watermind has joined #ocaml
justdit has quit [Ping timeout: 260 seconds]
justdit has joined #ocaml
Guest33485 is now known as micro_
weie has quit [Quit: Leaving...]
fraggle_laptop has quit [Remote host closed the connection]
fraggle_laptop has joined #ocaml
ocp has joined #ocaml
Yoric1 has joined #ocaml
gnuvince has quit [Ping timeout: 265 seconds]
mcclurmc is now known as mcclurmc_away
lolcathost has joined #ocaml
gnuvince has joined #ocaml
mcclurmc_away is now known as mcclurmc
<mcclurmc> thomasga: is opam 0.9 published yet? i built master from OCamlPro and it advertises 0.8.2, and doesn't show me -list-vars
larhat has quit [Quit: Leaving.]
<thomasga> mcclurmc: have you run ./configure ?
<thomasga> I've merged 0.9 to master this morning
<thomasga> 'opam config list'
fusillia has quit [Ping timeout: 272 seconds]
smondet has joined #ocaml
<mcclurmc> thomasga: whoa, lots of config vars now
<mcclurmc> aha, 'opam config list globals' is what i want
larhat has joined #ocaml
Yoric1 has quit [Ping timeout: 265 seconds]
<thomasga> mcclurmc: have you seen the nice help screen ?
<thomasga> :-)
<mcclurmc> yeah, it's much cleaner now
<mcclurmc> good work, dude
<mcclurmc> the opam package in opam-repo doesn't point to 0.9.0 yet, does it?
mika1 has quit [Quit: Leaving.]
Cyanure has quit [Ping timeout: 245 seconds]
<thomasga> not yet
tane has joined #ocaml
<thomasga> I'll release 0.9 at the end of the week hopefully
<thomasga> and that should starts the beta ...
<hcarty> thomasga: Do you expect 0.9.0 to work without an existing OCaml installation?
<thomasga> I hope to fix that yes
<thomasga> (it doesn't work atm)
<hcarty> thomasga: Cool, thanks. I got a request to add a flag to ocamlbrew to build OCaml + opam, but if opam will be able to do that on its own then that's wonderful.
jpdeplaix has quit [Ping timeout: 264 seconds]
djcoin has quit [Quit: WeeChat 0.3.9.2]
jpdeplaix has joined #ocaml
mika1 has joined #ocaml
larhat has quit [Quit: Leaving.]
Kakadu has quit []
cdidd has quit [Remote host closed the connection]
mika1 has quit [Quit: Leaving.]
jewel has joined #ocaml
Cyanure has joined #ocaml
ocp has quit [Ping timeout: 250 seconds]
tac has joined #ocaml
tane has quit [Quit: Verlassend]
lolcathost has quit [Read error: Connection reset by peer]
lolcathost has joined #ocaml
gnuvince has quit [Ping timeout: 260 seconds]
ftrvxmtrx has quit [Quit: Leaving]
ontologiae has quit [Ping timeout: 255 seconds]
Kakadu has joined #ocaml
ontologiae has joined #ocaml
eikke has quit [Read error: Operation timed out]
beckerb has quit [Ping timeout: 245 seconds]
jamii has joined #ocaml
lolcathost has quit [Read error: Connection reset by peer]
lolcathost has joined #ocaml
<thomasga> hcarty: it works now :-)
<wmeyer`> thomasga: The new command line interfaces is just awesome.
<thomasga> thx!
<wmeyer`> Definitely Cmlinder is brilliant for tooling - if I ever want to write a tool I will use it :-)
<thomasga> yup, cmdliner is very neat
<wmeyer`> thomasga: Did you thin about the opam-git package?
<thomasga> yes, I'm planning to look at it tomorrow
<thomasga> it's already there actually
<wmeyer`> thx! Great.
<thomasga> you can do: opam pin opam git:/....
<thomasga> and that works
<wmeyer`> yeah, probably it can do it easily
<wmeyer`> cool
<thomasga> but you can only use the master branch for now on
<wmeyer`> but then remembering git url is the chalenge
<wmeyer`> yep
<thomasga> well
<thomasga> if you pin it you have to remember the git url once :-)
mcclurmc is now known as mcclurmc_away
<wmeyer`> oh, OK
AltGr has quit [Quit: Konversation terminated!]
wmeyer` is now known as wmeyer
<thomasga> I'll just add the concept of branch/checkout before the beta
<thomasga> doing more than that will require a bit more of thinking
<wmeyer> thomasga: branches are essential for trying out features
<thomasga> yup
<wmeyer> if you want that, then it makes things so much easier for you :-)
<wmeyer> although i was happy to type make
<thomasga> and checkout are essential for reproductability
<thomasga> *checkouts*
<thomasga> anyway, I need to go, I'll look at that tomorrow :-)
<wmeyer> thanks thomasga have good day!
thomasga has quit [Quit: Leaving.]
milosn has quit [Ping timeout: 260 seconds]
milosn has joined #ocaml
lolcathost has quit [Quit: leaving]
lolcathost has joined #ocaml
a|i has joined #ocaml
a|i has quit [Changing host]
a|i has joined #ocaml
<a|i> can ocaml call compiled c code directly?
<a|i> something like the way luajit doest it: http://luajit.org/ext_ffi.html
<Kakadu> yes if I have understanded `directly` reight
<a|i> Kakadu: by direct, I mean the above.
<a|i> without creating a wrapper for each and every c function manually.
<Kakadu> It seems it can't
<a|i> how does ocaml work on ios? does it first compile to portable c?
<Kakadu> it compiles to native code
<a|i> how come ocaml has such good support for targeting ios arm arch? there are many more mainstream languages that do not support ios.
<Kakadu> Some people have created pathces
everyonemines has joined #ocaml
ontologiae has quit [Ping timeout: 265 seconds]
smondet has quit [Read error: Operation timed out]
gnuvince has joined #ocaml
chambart has quit [Ping timeout: 264 seconds]
answer_42 has quit [Remote host closed the connection]
answer_42 has joined #ocaml
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
emmanuelux has joined #ocaml
a|i has quit [Quit: a|i]
smondet has joined #ocaml
lolcathost has quit [Quit: leaving]
lolcathost has joined #ocaml
everyonemines has quit [Quit: Leaving.]
andre___ has quit [Quit: leaving]
milosn has quit [Ping timeout: 244 seconds]
mye has quit [Quit: mye]
leoncamel has quit [Ping timeout: 265 seconds]
jewel has quit [Ping timeout: 248 seconds]
Yoric1 has joined #ocaml
<ousado> hmm.. conditional compilation based on ocaml version. is that possible?
lolcathost has quit [Ping timeout: 255 seconds]
<thelema> ousado: not easily. batteries prefilters its source files before compilation to deal with this
<thelema> ousado: there's some camlp4 that will do this as well.
a|i has joined #ocaml
<ousado> thelema: thanks
<thelema> testcocoon: I think it is, but I don't use ocalmdebug, so I don't really know.
<testcocoon> thelema: never mind.
<thelema> testcocoon: ok.
lolcathost has joined #ocaml
myx has quit [Quit: ушёл]
<testcocoon> thelema: but may be you should have a try with oqamldebug ;)
<thelema> testcocoon: I've been pretty happy with gdb
<thelema> and lots of debug printing
<testcocoon> thelema: beleave me: trying it is adpopting it
<ousado> a|i: part of the reason might be that writing ocaml is fun
gnuvince has quit [Ping timeout: 255 seconds]
TDJACR has quit [Remote host closed the connection]
<a|i> ousado: it's he lack of community that worries me.
<ousado> lack?
<a|i> well, small community.
<a|i> no package manager.
<thelema> a|i: opam
<a|i> sparse libraries.
<thelema> (and odb)
<a|i> thelema: which package manager is the official one?
<thelema> a|i: you may be surprised at what libraries there are. But yes, there's not everything under the sun.
<ousado> a|i: I'd worry about the (lack of) community last in case of ocaml
<thelema> a|i: no official package manager.
<thelema> a|i: the language developers are trying to leave that to the community to decide.
<ousado> it's super-easy to find highly knowledgeable people
<a|i> due to the sparse libraries, I asked how easy it is to call c functions as directly as possible. ousado said a manual wrapping is required for each function.
<ousado> no that was in #haxe :)
<ousado> but ocaml has a similar CFFI
<a|i> ousado: opst, it was : Kakadu: It seems it can't
<pippijn> ocaml requires manual wrapping for almost every function
<pippijn> every function that passes/returns traced pointers and/or integers needs wrapping
<a|i> see, sparse libraries and manual wrapping don't get along well.
<a|i> I don't mind the libs being sparse as long as I can easily call external ones.
<ousado> a|i: what are you evaluating these languages for?
<a|i> ousado: high performance image processing.
<thelema> a|i: what libraries do you want access to?
<a|i> thelema: many new/old libraries are in c/c++. I'd like to call them, without the pain of development in c/c++.
<a|i> but performance cannot be sacrificed here, so ruby/pyhton are out (they need manual wrapping anyway).
<a|i> also, with fp, implementing many algorithms feels more natural.
<a|i> haskell has better support for automating binding to c.
<a|i> but haskell is not as mobile friendly as ocaml.
<thelema> a|i: good luck with haskell.
Xizor has joined #ocaml
<a|i> thelema: never used haskell, but it seems they somehow got a bigger community.
<a|i> bigger community doesn't mean the language is better, it means they got the marketing right.
<a|i> and bigger community means more libraries.
<a|i> it's strange why ocaml never got there, it's a nice language.
ocp has joined #ocaml
<PM> a|i: performance can be a problem in python, but the ctypes modules can help you to to write bindings
<thelema> a|i: they've been much more inclusive when it comes to compiler changes for a long time. OCaml has recently had some sort of change in how easy it is to get new code into the core compiler
<a|i> PM: there are a lot of small prints with cython.
<PM> anyway, you may want to use cython for some cases
<PM> ah
<a|i> thelema: how do those changes affect the end ocaml user?
<ousado> a|i:how many libraries will you have to interface?
<a|i> ousado: unlimited :) the framework I'm thinking of would have a plugin architecture.
<thelema> a|i: much more convenience functions in the compiler itself (record field module inference, spell checking identifiers), but also some important infrastructure (compiler libs exposed) that allow for much better development tools.
<ousado> a|i: it's likely that you can automate a big part of CFFI code generation
<a|i> ousado: automating cffi is such a general problem.
<ousado> but your preferences seem to be somewhat conflicting
<a|i> how come it doesn't exist?
<a|i> specially when the lib are sparse, and ffi automation can help with that a lot.
<a|i> ousado: what conflict?
<ousado> you mean "why isn't there a 100% solution"
<a|i> ousado: 'automated' solution. even swig is not automated enough these days.
<a|i> luajit ffi is very close to automated ffi: http://luajit.org/ext_ffi.html
<ousado> a|i: big community, functional language, seamless C-bindings
<a|i> ousado: that's optimised, not conflicted :)
<ousado> first two are rare enough
<ousado> not to speak of the last two
<ousado> but all three..
<a|i> you could replace fp with high performance.
<a|i> so luajit kind of check all the boxes.
<ousado> if you drop community you can have ATS
<a|i> but lua is so minimal.
<thelema> a|i: then use C.
<a|i> thelema: sure c is an option. I was just wondering if there is a difference between 2012 and 1974.
<thelema> C isn't stuck in the 70's.
<a|i> thelema: what's new in c?
<a|i> ousado: thanks, didn't know about ATS.
<pippijn> ATS has easy C FFI
<pippijn> and ATS is generally awesome
<pippijn> but yeah, community :)
<ousado> 12 people in ##ats :)
<a|i> now this is conflicting: being awsome and having no community. how does that happen?
<ousado> lots of dependent and linear types
<a|i> how industrial friendly is ATS? is it one of those acaddemic/hobby languages?
<ousado> a|i: it translates to C
<pippijn> a|i: people are barely grasping functional programming
<a|i> thelema: that's a very small change. a modern labguage should at least come with gc.
<pippijn> a|i: ATS has type level computations
<pippijn> a|i: ATS does have a GC
<pippijn> ah
<pippijn> C will never have a GC :)
<a|i> pippijn: that was for c11.
<thelema> a|i: you have to pay for the GC in performance.
<ousado> if you want , if not it doesn't
<madroach> why is BatNum not reachable via Num after 'open Batteries_uni'? Is this on purpose or missing in batteries_uni.ml ?!?
<thelema> madroach: this may be a mistake, what version are you using?
<pippijn> why does ocaml have tagged integers? is that historical?
<thelema> pippijn: for GC simplicity and efficiency
<madroach> thelema: 1.5.0, but it's not included in the current github version either.
<orbitz> ATS also has one of the worst syntax around
<pippijn> orbitz: that's true
<pippijn> and a real argument for me
<pippijn> actually that is *the* argument for me not to play with it more
<orbitz> It seems pretty neat otherwise
<a|i> pippijn: you just said ATS is awsome, and now you agree that it has one of the worst syntax?
<ousado> how would you do all that stuff without lots of syntax?
<thelema> madroach: fixing now
<pippijn> a|i: the semantics are awesome
<pippijn> a|i: the syntax could use some work
<ousado> actually it's quite consistent, just very very rich
<pippijn> but that's just my taste, really
<pippijn> t@ype
<pippijn> I'm very unhappy about special characters splitting up words
<a|i> 'I wonder if there are languages who have the reliability of Haskell's type system, but are suitable for C/C++ stuff..' http://news.ycombinator.com/item?id=4545649
<madroach> thelema: Another observation: I can use BatNum in toplevel, but when compiling using ocamlc I get undefined global 'BatNum'.
<ousado> a|i: heh doublec there is almost the entire community :)
<orbitz> But didn't you hear? Haskell is going to solve global software crisis.
<ousado> a|i: but the mailing list is quite responsive
<a|i> ousado: is he the 'haskell dons' of ats?
<ousado> he's one of the few users
<ousado> who blog about it
<ousado> with your set of requirements I recommend to try it
<thelema> madroach: odd; investigating
<ousado> I use ATS and I like it
<a|i> would the c code generated by these languages be always more efficient than hand witten c code?
<ousado> it's a bit like the functional version of C++
<ousado> why would it?
<a|i> wiki: 'The performance of ATS has been demonstrated to be comparable to that of the C and C++ '
<a|i> if it compiles o c, what does the above means?
<orbitz> it scores well in the language shootou
<a|i> to*
<a|i> is it ats -> c -> native, or ats -> native?
<thelema> a|i: it means that there's no overhead for using it for things that C do naturally.
<ousado> a|i: it means that it doesn't penalize you for boxing or stuff
<thelema> if one compiled haskell via C to native, it'd certainly run slower than plain C
<thelema> for basically the same program
<a|i> what is the difference between haskell compiled to c and plain c?
<thelema> a|i: because if you were asked to write a C program that did the same thing as the haskell one, you wouldn't write it the way that a codegen from haskell would write it.
<orbitz> a|i: there is generally a penalty for automatically converting a higher level of abstraction to a lower language
gnuvince has joined #ocaml
<a|i> so the codegen is not as optimised as handwriten?
<thelema> consider your point of view, but instead of looking at C, look at assembly.
<thelema> *everything* compiles to assembly, so they must all be the same speed
<orbitz> a|i: generally the goal is to remove any such penalty
<thelema> but they're in practice not.
<thelema> Fortran can often compile to better assembly than C because of lack of pointers
<a|i> here is a language which does the reverse: http://halide-lang.org/ it claims that the generated c code is much more efficient than hand written c.
<a|i> and the language itself was written in ocaml :)
<thelema> a|i: sure; same as FFFTW - OCaml code that generates extremely fast C code.
<ousado> a|i: look a language written for you
<a|i> ousado: sure, except it doesn't support gpu on mobile :)
<a|i> that's my target.
<ousado> so add it
<a|i> it's not trivial at all.
Snark has quit [Quit: Quitte]
<thelema> a|i: might be easier than finding your perfect language already written. (except for C, which is somehow "not good enough")
<a|i> how old is ats?
<ousado> a few years
<ousado> a single dev
<a|i> thelema: haliade is not a complete laguage, it's an embed dsl. and it embeds in c/c++.
<a|i> it cannot handle all algorithm implementations.
answer_42 has quit [Ping timeout: 276 seconds]
<thelema> :( halide is being ported to C++
<a|i> wat?
<ousado> thelema: the compiler??
<thelema> yes
<ousado> O_O
<a|i> where does it say?
<a|i> ocaml doesn't play nice on windows?
<thelema> not so much. If you want ocaml on windows, you can use F#
<thelema> It works, it's just really difficult to get the right build environment set up.
<a|i> no windows, no community.
<a|i> just this case is a perfect example.
<ousado> who uses windows as dev environment
<a|i> sadly, the majority.
<thelema> Again, in the last year, there's been packaging of a windows binary, but as library distribution is mostly "compile on target system", this is... incomplete.
<a|i> they're porting the whole compiler because it's difficult on windows. that means majority.
<ousado> well, this is a special thing
<ousado> graphics drivers
<ousado> and stuff
<ousado> here on freenode my guess is that maybe 5% use windows as dev environment
Submarine has quit [Ping timeout: 272 seconds]
<thelema> ousado: much corporate development is done under windows.
<thelema> i.e. projects that the public doesn't know about
<madroach> thelema: Shouldn't Num be added to Legacy modules, too?
<thelema> madroach: I thought I saw it there already
<thelema> madroach: ah, it's not there on 1.5
<ousado> yes, that's probably true
<thelema> madroach: can you run ocamlobjinfo _build/src/batteries.cma | grep ": BatNum"
<madroach> thelema: it includes BatNum. Why?
<thelema> madroach: that shows that your batteries.cma has the batnum module in it, so BatNum should be available in bytecode linking if you include batteries.cma on the command line; what's your command line?
<madroach> thelema: ah, I have not yet installed it. The installed batteries.cma has it, batteries_uni.cma misses it. With your changes they both contain it.
<thelema> odd; batteries_uni.mllib has BatNum in it.
jamii has quit [Ping timeout: 250 seconds]
<thelema> well, I might be pushing v1.5.1 shortly.
jamii has joined #ocaml
<madroach> its not possible to include only the */, +/ ... infix operaters in batteries?!? That's not nice :(
<thelema> madroach: what is it that you want?
chambart has joined #ocaml
<madroach> I want */ and //, but still need my native int * and /.
<thelema> Num has <foo>/ operators, yes
<thelema> include Num.Infix?
<thelema> oh, but that overwrites your * and /?
gnuvince has quit [Quit: Remember when men were men and regular expressions recognized regular languages?]
<madroach> yep.
<thelema> let (+/), (-/), ( */ ), (//), ( **/ ) = Num.((+/), (-/), ( */ ), (//), ( **/ ))
<madroach> ok. That's not too bad. Looks almost like perls use :)
<thelema> :) it is a *lot* of sybmols with few letters.
<adrien> APL FTW!
<thelema> I think we can easily have another module with just the <foo>/ operators; does anyone have a good name for it?
gnuvince has joined #ocaml
<madroach> thelema: why override the integer operators at all?
<thelema> TaggedInfix?
<thelema> madroach: it's often convenient to do: Num.(a + b * c)
Kakadu has quit []
Cyanure has quit [Remote host closed the connection]
<thelema> madroach: that's the theory, at least.
<madroach> Looks good. That's the first time I see this Module.( ... ) syntax. Very nice...
<thelema> madroach: yes, it was added in ... 3.12, I think.
<madroach> thelema: like let open M in, I guess
<thelema> yes, just different syntax
Yoric1 has quit [Ping timeout: 245 seconds]
<thelema> Num is the only module with suffixed arithmetic operators that isn't open by default, right?
<madroach> What about Nativeint?
<thelema> madroach: what's the suffix for nativeint?
<thelema> I don't see any operators defined in the base lib.
<madroach> What do you mean by suffixed?
<thelema> like the *. or +/
<thelema> float has ., num has /
<madroach> ok. I then I guess its true. I know of no others.
jamii has quit [Ping timeout: 250 seconds]
milosn has joined #ocaml
<madroach> thelema: Should Num satisfy the Number.Numeric module type?
<thelema> Legacy.Num, probably not because of operations. BatNum probably should.
<thelema> include (BatNumber.MakeNumeric(BaseNum): BatNumber.Numeric with type t = Num.num and module Infix := Infix)
<thelema> so Num satisfies a modified Numeric type.
ocp has quit [Quit: Leaving.]
<thelema> did we forget to export some part of this in the .mli?
<madroach> I don't see the MakeNumeric
<madroach> but I'm still on the 1.x branch.
<thelema> ah, I'm on master, one sec
<thelema> include BatNumber.MakeNumeric(BaseNum)
<thelema> it's there in 1.x as well
<madroach> yes it is. But not in the html api docs. Strange.
<thelema> that include doesn't go into the .mli
<thelema> it provides a bunch of things that are in the api
<madroach> Yes, sure. I just can't find any of the Make... functors or the NUMERIC_BASE module type in the html documentation. Now that I looked in the mli, too. I found it.
jamii has joined #ocaml
<madroach> well, thanks a lot for your prompt help thelema!
<thelema> you're welcome
iZsh has quit [Ping timeout: 245 seconds]
tane has joined #ocaml
iZsh has joined #ocaml
gasche has quit [Read error: Connection reset by peer]
gasche has joined #ocaml
chambart has quit [Quit: Quitte]
eikke has joined #ocaml
lolcathost has quit [Quit: cya peepls]
jamii has quit [Ping timeout: 264 seconds]
gasche has quit [Read error: Connection reset by peer]
gasche has joined #ocaml
Yoric has joined #ocaml
gnuvince has quit [Ping timeout: 244 seconds]
Xizor has quit [Remote host closed the connection]
a|i has quit [Quit: a|i]
tane has quit [Quit: Verlassend]
Yoric has quit [Ping timeout: 265 seconds]
smondet has quit [Ping timeout: 255 seconds]
milosn has quit [Ping timeout: 272 seconds]
rwmjones has quit [Ping timeout: 250 seconds]
watermind has quit [Quit: Konversation terminated!]
lolcathost has joined #ocaml
milosn has joined #ocaml
tac has quit [Ping timeout: 245 seconds]
rwmjones has joined #ocaml
gnuvince has joined #ocaml
ikaros has quit [Quit: Ex-Chat]
milosn has quit [Ping timeout: 246 seconds]
lolcathost has quit [Ping timeout: 244 seconds]
lolcathost has joined #ocaml
emmanuelux has quit [Quit: emmanuelux]
eikke has quit [Ping timeout: 272 seconds]