Ninju1 has quit [Read error: Connection reset by peer]
osa1 has quit [Quit: Konversation terminated!]
emmanuelux has quit [Ping timeout: 240 seconds]
Mnabil has quit [Ping timeout: 244 seconds]
madroach has quit [Ping timeout: 265 seconds]
madroach has joined #ocaml
Progster has joined #ocaml
UncleVasya has quit [Quit: UncleVasya]
mariano_ has quit [Ping timeout: 240 seconds]
pango has joined #ocaml
pango has quit [Ping timeout: 252 seconds]
Submarine has quit [Ping timeout: 260 seconds]
joewilliams has quit [Max SendQ exceeded]
lopex has quit [Max SendQ exceeded]
lopex has joined #ocaml
joewilliams has joined #ocaml
Progster has quit [Ping timeout: 244 seconds]
cdidd has joined #ocaml
ankit9_ has joined #ocaml
Qrntz_ has quit [Ping timeout: 246 seconds]
Qrntz_ has joined #ocaml
aclocal is now known as brcfg
Ninju has quit [Quit: Leaving.]
eni has joined #ocaml
hkBst has joined #ocaml
hkBst has quit [Changing host]
hkBst has joined #ocaml
eni has quit [Ping timeout: 240 seconds]
ankit9_ has quit [Ping timeout: 244 seconds]
ftrvxmtrx has quit [Quit: Leaving]
djcoin has joined #ocaml
vivanov has joined #ocaml
vivanov has quit [Client Quit]
ankit9_ has joined #ocaml
mika1 has joined #ocaml
ftrvxmtrx has joined #ocaml
thomasga has joined #ocaml
caligula__ has quit [Ping timeout: 255 seconds]
caligula__ has joined #ocaml
caligula__ has quit [Read error: Connection reset by peer]
caligula__ has joined #ocaml
caligula__ has quit [Ping timeout: 244 seconds]
edwin has joined #ocaml
caligula__ has joined #ocaml
caligula__ has quit [Ping timeout: 240 seconds]
greg_dove has quit [Quit: ChatZilla 0.9.88.2 [Firefox 10.0.2/20120215223356]]
caligula__ has joined #ocaml
Mnabil has joined #ocaml
caligula_ has joined #ocaml
caligula__ has quit [Read error: Connection reset by peer]
caligula_ has quit [Ping timeout: 252 seconds]
caligula_ has joined #ocaml
caligula_ has quit [Ping timeout: 248 seconds]
caligula_ has joined #ocaml
mcclurmc_away is now known as mcclurmc
ftrvxmtrx has quit [Ping timeout: 240 seconds]
tchell has quit [Ping timeout: 264 seconds]
tchell has joined #ocaml
tchell has quit [Ping timeout: 252 seconds]
tchell has joined #ocaml
ontologiae has joined #ocaml
<ontologiae>
hello
edwin has left #ocaml []
ftrvxmtrx has joined #ocaml
ontologiae has quit [Ping timeout: 244 seconds]
djcoin has quit [Ping timeout: 244 seconds]
ontologiae has joined #ocaml
thomasga has quit [*.net *.split]
joewilliams has quit [*.net *.split]
lopex has quit [*.net *.split]
BiDOrD_ has quit [*.net *.split]
pippijn has quit [*.net *.split]
wormphlegm has quit [*.net *.split]
testcocoon has quit [*.net *.split]
rwmjones has quit [*.net *.split]
r126f has quit [*.net *.split]
dropdrive has quit [*.net *.split]
thomasga has joined #ocaml
joewilliams has joined #ocaml
lopex has joined #ocaml
BiDOrD_ has joined #ocaml
dropdrive has joined #ocaml
pippijn has joined #ocaml
wormphlegm has joined #ocaml
testcocoon has joined #ocaml
rwmjones has joined #ocaml
r126f has joined #ocaml
djcoin has joined #ocaml
emmanuelux has joined #ocaml
mcclurmc is now known as mcclurmc_away
mcclurmc_away is now known as mcclurmc
leoncamel has joined #ocaml
leoncamel has quit [Client Quit]
leoncamel has joined #ocaml
mcclurmc has left #ocaml []
ankit9_ has quit [Quit: Leaving]
pango has joined #ocaml
ankit9_ has joined #ocaml
_andre has joined #ocaml
emmanuelux has quit [Ping timeout: 248 seconds]
<hcarty>
Is it possible to change the C compiler used via _oasis?
<hcarty>
I've tried ByteOpt and NativeOpt: -cc h4cc, but that doesn't seem to do it.
<hcarty>
As in - the flag is not passed to the ocamlc call
<f[x]>
CCOpt: -x h4cc
mariano_ has joined #ocaml
Progster has joined #ocaml
Anarchos has joined #ocaml
BiDOrD_ has quit [Read error: Operation timed out]
BiDOrD has joined #ocaml
<hcarty>
f[x]: h4cc is a wrapper around gcc, so I'd like to replace calls to gcc with calls to h4cc
<f[x]>
rebuild ocaml with h4cc
<f[x]>
half joking
<hcarty>
f[x]: I'd rather not go to that extreme :-) I only want to build the .c files for this library with that wrapper.
<Anarchos>
what is h4cc ?
<f[x]>
hcarty, investigate why ByteOpt: -cc doesn't work
<f[x]>
looking at the manual - it should
<hcarty>
Anarchos: A wrapper around gcc for the HDF4 library which links/includes the appropriate directories and libraries, given how the library was built
<Anarchos>
ok
<adrien>
hmmmmm
<adrien>
it would be good to be able to set that in ocamlfind's configuration too
<hcarty>
f[x]: That's what I expected as well. I'll ping gildor and submit a bug if it is one.
<f[x]>
Anarchos, and that HDF4 library haven't heard of pkg-config?
<hcarty>
f[x]: No, sadly not.
<adrien>
I've bought a hundred letters full of anthrax, should I send them one?
<f[x]>
hcarty, you can also try to mingle with bytecomp_c_compiler
<f[x]>
i.e. ./configure --override
<adrien>
funny stuff is that we are talking about the same issues (no pkg-config support) with something else on another channel right now
<Anarchos>
where can i find modules for first order logic with axiom schemata taken into accounts ?
<hcarty>
I found some old myocamlbuild.ml code... I think I had tried to address this before.
xcombelle has joined #ocaml
<hcarty>
thelema: Will Batteries 2.x have a Batteries_uni for backwards compatibility?
<hcarty>
thelema: In this case I assume Batteries_uni would be an alias for Batteries
<iZsh>
meh, that's fairly easy to fix why should Batteries encourages ppl not to fix their code if they move to 2.0 ?
<hcarty>
iZsh: It is easy to fix, but it adds some extra consideration when a library depends on Batteries
<iZsh>
like what?
<hcarty>
If the library won't have to change otherwise when going from Batteries 1.x to 2.x, should it 'open Batteries' or 'open Batteries_uni'
<hcarty>
In the specific case I'm looking at, threads aren't required. So Batteries_uni would be fine. However, that module will presumably go away when Batteries 2.0 arrives.
<hcarty>
So the choice comes down to: (a) 'open Batteries' and accept that anything using this library (HDF4 bindings) will need to enable threads if it is also using Batteries 1.x or (b) 'open Batteries_uni' which removes that threads requirement under 1.x but breaks under 2.x.
<iZsh>
iirc thelema said there was still a difference between thread vs. no thread, but i dont log
<iZsh>
check log from 1-2d ago
<hcarty>
iZsh: There is - Batteries for no threads under 2.x
<hcarty>
iZsh: But that doesn't have to impact this particular library
Nevor has joined #ocaml
Nevor_ has joined #ocaml
Nevor has quit [Ping timeout: 240 seconds]
Ninju has joined #ocaml
Nevor_ has left #ocaml []
UncleVasya has joined #ocaml
cacho has quit [Ping timeout: 246 seconds]
smondet has joined #ocaml
cacho has joined #ocaml
<f[x]>
mfp, ping
<f[x]>
do I understand correctly that extprot allows storing 63 bit values in int on 64-bit platform
<f[x]>
as all ints are encoded as vints?
hongboz has joined #ocaml
<mfp>
f[x]: right
<f[x]>
thanks!
<mfp>
f[x]: but if you're going to have largish values, it's better to use the "long" type (mapped to Int64.t)
<f[x]>
why?
<mfp>
it's shorter than a 63-bit vint, probably faster to encode/decode, and ensures the message can be deserialized correctly w/o overflow on 32-bit platforms
<f[x]>
I want to switch from long to int : this should reduce allocation rate - shouldn't it?
<mfp>
yes
<mfp>
but unless you've got solid benchmarking evidence against long, it's better to keep it, I think
ontologi1e has joined #ocaml
<f[x]>
or maybe is it possible somehow to deserialize wire 64 bit type to ocaml 63-bit int?
<f[x]>
the majority of values will fit even in 32-bit
<f[x]>
indeed I should benchmark first
<f[x]>
ideally :)
ontologiae has quit [Ping timeout: 248 seconds]
hongboz has quit [Ping timeout: 240 seconds]
UncleVasya has quit [Read error: Connection reset by peer]
UncleVasya has joined #ocaml
silver has joined #ocaml
emmanuelux has joined #ocaml
<yezariaely>
how can I get the arguments as a complete string?
<yezariaely>
arguments to my executable
diego_diego has joined #ocaml
joewilliams has quit [Max SendQ exceeded]
lopex has quit [Max SendQ exceeded]
<f[x]>
Sys.argv
bobry has quit [Max SendQ exceeded]
ankit9_ has quit [Read error: Connection reset by peer]
<orbitz>
You would have to join it though somehow
<f[x]>
with quoting. which depends on the context of further usage
joewilliams has joined #ocaml
emmanuelux has quit [Ping timeout: 246 seconds]
lopex has joined #ocaml
bobry has joined #ocaml
ontologi1e has quit [Quit: Lost terminal]
ankit9_ has joined #ocaml
diego_diego has quit [Quit: diego_diego]
diego_diego has joined #ocaml
diego_diego has quit [Client Quit]
ftrvxmtrx has quit [Quit: Leaving]
mika1 has quit [Quit: Leaving.]
<thelema>
hcarty: my current plan is to not have a batteries_uni module in 2.0. If backwards compatibility is important, I may add a small script that does s/Batteries_uni/Batteries/
<thelema>
hcarty: as for your particular problem, I'd recommend requiring "open Batteries" and requiring threads if compiled with 1.x
ankit9_ has quit [Ping timeout: 248 seconds]
hkBst has quit [Quit: Konversation terminated!]
thomasga has quit [Quit: Leaving.]
djcoin has quit [Quit: WeeChat 0.3.2]
djcoin has joined #ocaml
ankit9_ has joined #ocaml
emmanuelux has joined #ocaml
Mnabil has quit [Ping timeout: 248 seconds]
leoncamel has quit [Remote host closed the connection]
leoncamel has joined #ocaml
emmanuelux has quit [Ping timeout: 252 seconds]
xcombelle has quit [Ping timeout: 248 seconds]
xcombelle has joined #ocaml
sivoais has quit [Quit: Lost terminal]
sivoais has joined #ocaml
djcoin has quit [Quit: WeeChat 0.3.2]
sabayonuser has joined #ocaml
xcombelle_ has joined #ocaml
xcombelle has quit [Ping timeout: 252 seconds]
thomasga has joined #ocaml
thomasga has quit [Client Quit]
<hcarty>
thelema: Thanks, that's what I'm going with.
<hcarty>
thelema: I'm not too worried about the script piece, although having a prominent section in any documentation and release notes explaining why people might get "Unbound module Batteries_uni" would be helpful :-)
sacripan has joined #ocaml
eni has joined #ocaml
leoncamel has quit [Ping timeout: 240 seconds]
<thelema>
I just added this to the top of the FAQ (I can't imagine why it wasn't there in bold already)
<thelema>
so v1.5.0 has the first FAQ entry about Batteries_uni
ankit9_ has quit [Ping timeout: 248 seconds]
UncleVasya has quit [Read error: Connection reset by peer]
ankit9_ has joined #ocaml
bobzhang has quit [Remote host closed the connection]
<fasta>
Is there a library for OCaml which enables faking a web-browser? I.e. web-automation.
<fasta>
It should have features like being able to execute custom JavaScript, open webpages, fill out forms, click on links, fake moving the mouse over some element, etc.
<fasta>
adrien: and why do you want to make caravel?
<adrien>
because others suck
<adrien>
konqueror, for instance, if your computer lags a tiny bit and you Ctrl+t to open a new tab
<dsheets>
adrien: thank you
<adrien>
if you type fast enough, say "lwn.net", and press return before it has actually opened the new tab, it'll load the URI in the old tab
<adrien>
you might dislike caravel but that's just to show how most browsers can suck
<fasta>
adrien: in chrome that doesn't happen.
<thelema>
adrien: flash in caravel?
<fasta>
I think the whole concept of a browser is broken.
<fasta>
But besides that Chrome is great.
<adrien>
thelema: in webkit-gtk
<adrien>
fasta: other issues
<adrien>
too simple
<fasta>
adrien: ?
<fasta>
adrien: how are you going to handle the lack of system threads?
<adrien>
there are system threads
<adrien>
but they don't run at the same time except under some conditions
<adrien>
also, lwt has nice things
<fasta>
adrien: some conditions?
<adrien>
ocaml code isn't going to be the bottleneck; webkit(-gtk) will
<adrien>
fasta: imagine a thread does a Unix.read that blocks; that won't block other threads
<adrien>
while Unix.read is in the C code that is
<orbitz>
So far I have found lwt to be a superior experience than Async
<fasta>
If you want to implement a parallel datastructure in which different threads can access different paths independently, how would that work in OCaml?
<fasta>
Can something like that be done via jocaml?
<fasta>
I just don't quite can comprehend why a research language > 20 years after C doesn't do system threads.
<orbitz>
so you have a CPU bound problem and want to process it on multiple cores?
<orbitz>
ocaml has system threads
<fasta>
orbitz: by system threads I mean those which use more than one core.
<fasta>
orbitz: that is, not mere interleaving of one core.
<orbitz>
What you mean is you don't understand why ocaml has a GIL
<fasta>
orbitz: I don't quite get why a compiler can have an interpreter lock either :)
<dsheets>
GGCL?
<orbitz>
Are you talking about ocaml or ocamlc now?
<orbitz>
or do you mean a compiled language?
<fasta>
orbitz: by 'ocaml' I mean any translation/interpreter which understands the ocaml language.
<fasta>
orbitz: you are free to chose whichever you want in your advantage.
<orbitz>
fasta: right, i am confused because you said you don't get why a "compiler" can hav ean interpter lock
<fasta>
orbitz: well, ocamlc would be the compiler and that would also have it if 'Ocaml' has it.
<thelema>
fasta: OCaml's GC can't run concurrent with other OCaml code.
<fasta>
orbitz: or at least, that's how I always understood it.
<orbitz>
fasta: Yes, i just don't undrestand why you single out compiler htere, a compielr is just a program. do you mean you don't understand why the ocaml runtime has a GIL?
<dsheets>
GGCL
<fasta>
orbitz: yes
<thelema>
fasta: since any code can call into the GC (for allocation), all OCaml threads have to run one at a time
ftrvxmtrx has joined #ocaml
<orbitz>
fasta: The reason si simple, given the limited resources for the ocaml project, a concurrent GC takes a signifcant amountof effort
<fasta>
orbitz: and just throwing away the current run-time and pluggin in GHC is a bad idea?
<orbitz>
I don't know enough about GHC to say
<fasta>
Or .net for that matter.
<orbitz>
There was short lived work to target teh JVM
<orbitz>
I doubt enough ocaml core devs run windows to make .net a useful endevour
<orbitz>
and .net has F#
<fasta>
orbitz: I didn't mention Windows.
<fasta>
.Net also runs on Linux, but I don't know whether it also has a good GC on Linux.
<orbitz>
It doesn't
<orbitz>
not yet at least
<orbitz>
But if you trust Mono enough, just use F#
<fasta>
orbitz: the F# tools don't work.
<orbitz>
which tools?
<fasta>
orbitz: Monodevelop F# plugin.
<orbitz>
The F# compilers works AFAIK
<fasta>
Sure, the compilers work.
<Anarchos>
fasta the trick is that concurrent GC are really hard to develop and get industrial perfs
<orbitz>
Regardless, retargting Ocaml to .net or jvm or anywhere else is no small task
<fasta>
orbitz: why isn't it? Are there many 'primops'?
<fasta>
orbitz: or is it not written to be easily portable?
<orbitz>
Because it involves changing a lot of things. How would functors work in JVM? I have no idea
<orbitz>
Tail recursion si also a problem in the JVM
<fasta>
You can easily compile a tail-recursion to a loop.
<dsheets>
fasta: mutual? dynamic? cps?
<fasta>
dsheets: all of those are documented in the literature.
<fasta>
dsheets: I'd say it requires no creativity.
<orbitz>
how does scala do it?
<bitbckt>
full TCE is not possible on the JVM, due to stack-based protection domains.
<orbitz>
fasta: Anyways, if you think retargeting ocamlc to the JVM or .Net is a smalltask, feel free todo it
<bitbckt>
scala does compile-time TCO.
eni has quit [Ping timeout: 246 seconds]
<orbitz>
bitbckt: is it limited? I'm under the impression clojure i slimited
<bitbckt>
orbitz: TCO is by definition limited. TCE is not. That's the difference.
<orbitz>
What is TCE?
<bitbckt>
tail call elimination.
<dsheets>
fasta: "easily compile a trail-recursion to a loop" -> "documented in the literature"; would love to see a full TCE for js_of_ocaml
<bitbckt>
"optimization" refers to the subset that does not cross call boundaries.
<orbitz>
ah ok
<fasta>
dsheets: sure, but loving isn't the same as ponying up the cash.
<orbitz>
bitbckt: so scala only lets you get benefits of tail calls when recurring on yoruself?
<fasta>
dsheets: I'd imagine that there is not more than 10K$ in porting it to the JVM.
<bitbckt>
orbitz: yes.
<fasta>
As such, nobody is going to do it.
<orbitz>
excelelnt to know
<dsheets>
fasta: I thought it was easy and required no creativity? or you still get jollies from trollin?
<orbitz>
Always comes back to money with fasta
<orbitz>
Complaining is apparently free
<fasta>
dsheets: I didn't say it was easy.
<fasta>
dsheets: but it doesn't require creativity.
<dsheets>
fasta
<dsheets>
12:11
<dsheets>
You can easily compile a tail-recursion to a loop.
<fasta>
dsheets: sure, I have done so in a few compilers.
<fasta>
dsheets: it's like 10 lines or so.
<orbitz>
I doubt it
<orbitz>
fasta: are you talking abotu turning a function that recurses on itself into a loop begin 10 line sof ac ode? or an entire program?
<dsheets>
fasta: I'll pay you $4000 to implement full TCE in js_of_ocaml in <10 sloc
<orbitz>
as bitbckt just said, that is quite hard, even scala does not do it
<dsheets>
where sloc is <=80 chars
<fasta>
dsheets: define 'full'.
<bitbckt>
the security model of both the JVM and the CLR prohibit cross-call elimination.
<orbitz>
How does taht affect F#
<dsheets>
fasta: all tail calls do not create a stack frame
<fasta>
orbitz: a function
<orbitz>
fasta: That is insufficient
<bitbckt>
I can cite some research on this topic... one moment.
<bitbckt>
IIRC, that paper has the best explanation of why TCE is not possible with the existing access control mechanisms.
<bitbckt>
Odersky also did some research in this area.
<bitbckt>
orbitz: the CLR has the same limitations at runtime, because their "app domains" are really just copied from the the JVM's protection domain model.
<orbitz>
ok
<orbitz>
so taht must restrict how you solve problems in F#
<bitbckt>
F#'s compiler may be able to do some static tricks, but stack compression necessary for TCE is also impossible on the CLR.
<bitbckt>
perhaps. I don't have any practical experience with F#.
mariano_ has quit [Ping timeout: 252 seconds]
ankit9_ has quit [Quit: Leaving]
<hcarty>
.away
mariano_ has joined #ocaml
<hcarty>
Is there an equivalent to Perl's glob in OCaml?
<hcarty>
Along the lines of val glob : regex -> path -> file_name list
xcombelle_ has quit [Quit: I am a manual virus, please copy me to your quit message.]
<adrien>
hcarty: ocaml-fileutils
<hcarty>
adrien: I was looking through it and didn't see anything
<hcarty>
adrien: Yep - I think that will work well enough
<hcarty>
( =~ ) is an infix Pcre.pmatch
<fasta>
dsheets: ok, so not 10 lines, but 85.
<fasta>
dsheets: 2.8Kbytes
<fasta>
dsheets: I think that's fairly trivial myself.
sabayonuser has quit [Ping timeout: 255 seconds]
<orbitz>
fasta: That is just for turning a functino that recurses on itself into a loop, which is rather small realtive to a total ocaml program
<fasta>
orbitz: that's for turning a suitable AST into another suitable AST for which the parsing and pretty printing code already exists elsewhere.
<fasta>
orbitz: and that works on a full programming language.
<dsheets>
cps?
<fasta>
dsheets: it doesn't do cps.
<fasta>
dsheets: it's also not needed.
<dsheets>
fasta: why not? what if i have a code in cps?
<fasta>
dsheets: please give an example where a predicate which tests whether something is in tail position in combination with a suitable rule to replace code if it is in tail position and which is repeatedly applied is not enough.
<dsheets>
fasta: composable parsers?
<fasta>
dsheets: that's not an answer.
<dsheets>
fasta: composable parsers
<fasta>
dsheets: that is not code.
<fasta>
dsheets: I am expecting some kind of code in any language where this wouldn't work.
<fasta>
dsheets: so e.g. Scheme, OCaml, pick your poison.
<jonafan>
what wouldn't work
<fasta>
jonafan: what I described above.
<jonafan>
tail call optimization?
<fasta>
jonafan: yes
<fasta>
jonafan: I gave an implementation strategy for that.
<jonafan>
oh
<jonafan>
i've never implemented tail call optimization
<ousado>
fasta: you don't see how cps code breaks your strategy?
<fasta>
ousado: no, I don't.
cdidd has quit [Read error: Connection reset by peer]
<fasta>
ousado: I think I was quite clear with that before.
<fasta>
ousado: so, you could just have pasted something on a paste site to show how it wouldn't work.
<adrien>
hcarty: hmmm, doesn't ocamlfind let you "find" with your own function to store resultts?
<hcarty>
adrien: If I understand the code correctly you need to provide your own matching function.
<hcarty>
adrien: I think that would work as well, but I'm not sure it's any less complicated than what I pasted, and it adds another (admittedly useful elsewhere) dependency
<adrien>
agreed, and agreed too =)
_andre has quit [Quit: leaving]
<Anarchos>
fasta if you have two mutual recursive fucntions tail-recursive, your algo won't find it.
<orbitz>
fasta: does yoru algorihtm cross function/module boundaries?
<orbitz>
Where is fasta's strategy?
Qrntz_ has quit [Ping timeout: 246 seconds]
<Anarchos>
fasta or you can imagine the recursive call is done by dereferencing a ref on a function. In which case you cannot syntaxically discover it.
Qrntz_ has joined #ocaml
<orbitz>
Reoccuring theme with fasta, not knowing the width of his own ignorance
mariano_ has quit [Quit: Konversation terminated!]
ulfdoz has joined #ocaml
<thelema>
orbitz: that short-lived work to make ocaml compile to JVM just had another release...
smondet has quit [Quit: Leaving]
sacripan has quit [Ping timeout: 245 seconds]
fraggle_ has quit [Remote host closed the connection]
fraggle_ has joined #ocaml
<Anarchos>
Is there a parser which can give you all the parse trees in case of ambiguities instead of returning an error ?
Fnar has quit [Ping timeout: 245 seconds]
Ninju has quit [Quit: Leaving.]
<dsheets>
Anarchos: dypgen?
<Anarchos>
dsheets seems really nice and perfectly matching my needs ! Who makes dypgen ?
<dsheets>
Anarchos: I believe it started as a student project from INRIA? I don't know its present maintenance status
<Anarchos>
dsheets i hope it has not too much bugs !
<dsheets>
Anarchos: i think it is currently in use but i don't know where
<Anarchos>
20120619 is the last timestamp
<Anarchos>
dsheets thanks for the link, now it is time to go to sleep...
<dsheets>
Anarchos: np, thanks for the genlex suggestion earlier this week
<bitbckt>
group hug!
<Anarchos>
dsheets oh i forgot it was you :)
<Anarchos>
dsheets i will let you know about my progress :)
Anarchos has quit [Quit: need to sleep some times....]