struktured_ has quit [Read error: 145 (Connection timed out)]
struktured_ has joined #ocaml
Demitar has joined #ocaml
Demitar has quit ["Ex-Chat"]
Amorphous has quit [Read error: 110 (Connection timed out)]
Amorphous has joined #ocaml
jeddhaberstro has quit []
netx has joined #ocaml
jeddhaberstro has joined #ocaml
pango has quit [Remote closed the connection]
pango has joined #ocaml
tvn1981_0 has joined #ocaml
tvn1981_0 has quit [Connection reset by peer]
tvn1981_0 has joined #ocaml
tvn1981_0 has quit [Read error: 131 (Connection reset by peer)]
tvn1981_0 has joined #ocaml
struktured_ has quit [Read error: 110 (Connection timed out)]
netx has quit [Read error: 60 (Operation timed out)]
netx has joined #ocaml
apples` has quit ["Leaving"]
<sscj>
the auto_register function creates the wrong docpath
struktured_ has joined #ocaml
threeve has quit []
mishok13 has joined #ocaml
det has quit [Remote closed the connection]
Demitar has joined #ocaml
det has joined #ocaml
netx has quit ["This computer has gone to sleep"]
tvn1981_0 has quit ["Leaving"]
filp has joined #ocaml
gaja has joined #ocaml
jdev has quit [kornbluth.freenode.net irc.freenode.net]
jdev has joined #ocaml
Camarade_Tux has joined #ocaml
Camarade_Tux has quit ["Leaving"]
code17 has joined #ocaml
Yoric[DT] has joined #ocaml
<Yoric[DT]>
hi
<gildor>
Yoric[DT]: hi
<Yoric[DT]>
How do you do?
<gildor>
fine
<gildor>
working like a madman
<gildor>
(go to bed 4am, awake 8am)
* Yoric[DT]
sympathizes.
* Yoric[DT]
has a few deadlines these days, too.
filp has quit [kornbluth.freenode.net irc.freenode.net]
det has quit [kornbluth.freenode.net irc.freenode.net]
struktured_ has quit [kornbluth.freenode.net irc.freenode.net]
tab has quit [kornbluth.freenode.net irc.freenode.net]
tsuyoshi has quit [kornbluth.freenode.net irc.freenode.net]
filp has joined #ocaml
det has joined #ocaml
struktured_ has joined #ocaml
tsuyoshi has joined #ocaml
tab has joined #ocaml
* Yoric[DT]
notes that Batteries has passed the mark of 800 total downloads.
_zack has joined #ocaml
snhmib has joined #ocaml
Snark has joined #ocaml
<gildor>
using thread in ocaml is insane
<gildor>
I have tried 2 times in the last week and the result was always the same: program is slower
<gildor>
anyone know good scheme for using thread in OCaml, where you can "win" time
<tsuyoshi>
what are you trying to do?
<gildor>
(I was trying to use thread to use blocking IO and standard ocaml process)
<gildor>
I read data on a channel, put it into a queue and empty the queue in another thread
<gildor>
I use input_value for channel
<gildor>
I use mutex + condition
<tsuyoshi>
and you want to take advantage of multiple cpus?
<gildor>
and I have tried to implement 2 queue: one lockfree and one with mutex
<gildor>
no multiple CPU, I know it won't work, OCaml doesn't support it
<tsuyoshi>
threads in ocaml are not concurrent
<gildor>
I just want to take advantage to give time to IO when it is possible
<gildor>
i.e. have IO run when data arrived
<gildor>
and fill the queue in // with processing data
<gildor>
the lockfree queue was made to reduce synchronization need
<tsuyoshi>
well, input_value directly from a channel is going to be a bit slower
<gildor>
(i.e. when the lockfree queue is empty, you acquire mutex and transfer data from the locked queue)
<gildor>
tsuyoshi: how can I make thing quicker with input_value ?
<tsuyoshi>
it's probably better if you read in the values and only perform the unmarshalling when you have an entire value read in
<tsuyoshi>
see the Marshal module
<gildor>
this implies to output string size (output_binary_int) + string (marshalled value)
<gildor>
and then unmarshalled it
<tsuyoshi>
no, the size is already in the marshalled value
<tsuyoshi>
so you don't need an additional size
<tsuyoshi>
see the documentation for Marshal.header_size
<gildor>
hume external from_channel: in_channel -> 'a = "caml_input_value"
<gildor>
external input_value : in_channel -> 'a = "caml_input_value"
<gildor>
seems that input_value and Marshal.from_channel means the same thing
<gildor>
tsuyoshi: am I missing some step in what you propose to me
<gildor>
(lines are from ocaml 3.10.2 source)
<tsuyoshi>
well.. if you call input_value, but only a partial value is available to read, I think it blocks everything until there is an entire value
<tsuyoshi>
I could be wrong
<gildor>
if it blocks, it enter blocking_section and release OCaml global mutex
<gildor>
and the program can continue in other thread
<tsuyoshi>
oh I was mistaken
<tsuyoshi>
I just looked at the source and it does the buffering for you..
<tsuyoshi>
are you reading from a pipe or a socket or what?
<gildor>
stdin/stdout of a child
marmotine has joined #ocaml
<tsuyoshi>
so a pipe.. how big are the values?
<gildor>
350kB per data
<gildor>
250MB total
<tsuyoshi>
ohh very big
<gildor>
this is serious application ;-)
<gildor>
ok, i checked the "big part" of the data send over a channel is either read in the caml channel buffer or enter caml_do_read which has a caml_enter_blocking_section
<tsuyoshi>
ok, ocaml only read 4096 bytes at a time normally
<tsuyoshi>
that is likely going to be your bottleneck
Associat0r has joined #ocaml
<tsuyoshi>
since if your values are 350k, you need to read the whole 350k before a value can be unmarshalled
<gildor>
humm
<gildor>
indeed
<gildor>
so i need to enter to Thread.yield 88 times or enter other blocking section 88 times
<gildor>
for a single block read
<gildor>
that explains why my application goes faster when there is a lot of debugging output
<gildor>
(which is something very surprising)
<gildor>
what to do next ?
<tsuyoshi>
if you create a 350k buffer and then use Unix.read (doing your own buffering) there should be an improvement
<gildor>
indeed this is a good idea
<gildor>
this will require a lot less Thread.yield
<gildor>
I will try to apply it, thanks tsuyoshi
filp has quit [Read error: 60 (Operation timed out)]
hkBst has joined #ocaml
jknick has quit ["Lost terminal"]
filp has joined #ocaml
urlwolf has joined #ocaml
bzzbzz has joined #ocaml
* Yoric[DT]
's boss is impressive.
<Yoric[DT]>
We're attempting to work with another research team.
<Yoric[DT]>
My boss is now trying to cancel the scientific meeting and replace it with a political meeting.
<Yoric[DT]>
Let me rephrase: my boss is trying to cancel *my* scientific meeting and replace it with a political meeting *without me*.
<Yoric[DT]>
I need a new job.
<mattam>
:)
marmotine has quit [Read error: 60 (Operation timed out)]
velco has joined #ocaml
jdev has quit [Read error: 110 (Connection timed out)]
mbac has quit [Read error: 110 (Connection timed out)]
<Yoric[DT]>
_zack: ping
<_zack>
Yoric[DT]: EBUSY
<Yoric[DT]>
ok
<Yoric[DT]>
Unrelated stuff.
<Yoric[DT]>
A long time ago, I used to have an Emacs set up so that 'a was displayed as greek character alpha, 'b as beta, etc., in addition to -> as a nice arrow, etc.
<Yoric[DT]>
Does anyone know how I can make this happen again?
<Yoric[DT]>
I'm using emacs 22
<det>
Yoric[DT], Have you tried Eclipse + OcaIDE ?
<Yoric[DT]>
That was too slow for me.
<Yoric[DT]>
emacs is fine for the moment
<Yoric[DT]>
I just want my pretty display back :)
Spiwack has joined #ocaml
<_zack>
Yoric[DT]: wasn't that just proofgeneral?
<Yoric[DT]>
_zack: what do you mean?
<_zack>
btw, I'm here now, even though I'm not paying much attention to this channel, go ahead if you've question
<Yoric[DT]>
No, just saying that I might drop by around pps next week.
<Yoric[DT]>
Not quite sure which day, though.
<_zack>
you know "proofgeneral", was an emacs-based (now eclipse-based I believe) general front-end for various proof checkers
<_zack>
it used to perform the translation you mention
<Spiwack>
well the emacs-based is (fortunately) still maintained
<_zack>
for PPS cool, I wont be there mon/tue though
<_zack>
I'm going back to italy, and I come back to Paris only wed
<_zack>
Yoric[DT]: from wed to fri I'll in my office as usual
<Yoric[DT]>
Well, I have proofgeneral installed.
<Yoric[DT]>
( Smerdyakov's fault :))
<Yoric[DT]>
But there doesn't seem to be any translation in my OCaml files.
<_zack>
I was just suggesting that you might remember something which was not ocaml-related
<_zack>
but if you are sure it was ocaml related never mind
<Yoric[DT]>
I'm sure it was OCaml-related.
<Yoric[DT]>
I haven't used Proofgeneral often enough to make that mistake.
<_zack>
let me know when you come to PPS, hoping it will be compatible with my absence
<_zack>
if I can, are you coming to work with whom?
<mattam>
x-symbol is enough I think.
<Yoric[DT]>
_zack: well, I'd be coming to talk to Roberto.
<Yoric[DT]>
I also need to talk to Michele at some point (he's in PPS, isn't he?)
<_zack>
Yoric[DT]: ah, well, he knows very well where my office is then :)
<Yoric[DT]>
:)
<_zack>
Yoric[DT]: Michele who?
<Yoric[DT]>
Pugliese
<Spiwack>
he's got a postdoc position in Italy, doesn't he?
<_zack>
yup, I think so, but I don't know him
<Spiwack>
maybe he's left already...
* _zack
will mob Roberto to invite David on wed or later
<Yoric[DT]>
I'm not invited yet :)
* Yoric[DT]
was planning to drop by uninvited :)
* _zack
will mob Roberto to non-invite David on wed or later
<Yoric[DT]>
Oh, and I'm mixing my researchers, I actually needed to talk to Giuseppe Castagna :)
* Yoric[DT]
should get out more often.
<_zack>
also, dropping by chez Roberto uninvited as a quite high likelihood of not finding him ;)
<Yoric[DT]>
:)
<_zack>
so, it will be your italian tour: Roberto, Beppe, Daniele (which shares Beppe office), myself :-P
<Spiwack>
you've got something for Italian David, that's for sure
<Yoric[DT]>
:)
<Yoric[DT]>
Well, anyway, for the moment, I need to finish my paper.
<_zack>
enjoy !
<Yoric[DT]>
Thanks
code171 has joined #ocaml
threeve has joined #ocaml
code17 has quit [Remote closed the connection]
marmotine has joined #ocaml
mbac has joined #ocaml
<mbac>
ocaml makes me feel guilty
<mbac>
it's like a disapproving mother
<mbac>
it fulfills my idealistic functional programming fantasies most of the time but every so often in the rush to get something done i'll switch to imperative style
<Yoric[DT]>
:)
<mbac>
and ocaml passive-aggressively complies
<mbac>
reflecting my shame back at me
<Kerris4>
haha I read complies as compiles
<Spiwack>
mixing effects and functional programming is largely underunderstood
<Spiwack>
there are two bad solutions to the problem
<Spiwack>
one is OCaml
<Spiwack>
the other is Haskell
<Spiwack>
as they are bad solution, they are an extremely good subject for flamewar
<Spiwack>
and shame
<Spiwack>
(my personnal point of view on this whole question)
<Yoric[DT]>
Okay, and now my boss is hijacking the students who are supposed to work on my project.
<Spiwack>
your boss loves you
<Yoric[DT]>
And he's sending them to work on something which just cannot possibly succeed.
<Spiwack>
he just doesn't know how to show his affection
<Kerris4>
proving that P = NP ? :V
<Spiwack>
oh that's easy !
<Spiwack>
there are more than 30 proofs out there
<Yoric[DT]>
hint: the task he has for them requires good skills of OCaml hackery
<Spiwack>
(of either that or the negation or it's independence from set theory)
<Yoric[DT]>
hint 2: the task he has for them requires a PhD in proof theory and/or type systems and/or semantics
<Spiwack>
does he pay much :D ?
<Yoric[DT]>
hint 3: in their complete career, they have studied OCaml for 2 hours and semantics for 5 hours.
<mbac>
ahahha
<Spiwack>
well, according to industrial standards
<Spiwack>
they are overqualified
<mbac>
definitely
<mbac>
is he asking them to write fizzbuzz?
<Yoric[DT]>
hint 4: using students from that École for anything more complex than a GUI and a little scripting has repeatedly proved a good recipe for catastrophic fumbles
<Yoric[DT]>
No, he's asking them to do my job.
<Yoric[DT]>
Essentially.
* rwmjones
wishes someone would help build a cross-compiler
<mbac>
awesome, sounds like you can go home
<Yoric[DT]>
rwmjones: that would be nice.
<Yoric[DT]>
mbac: well, no, he's sending these students as cannon fodder to put another research team in debt of him.
jeremiah has quit [Read error: 104 (Connection reset by peer)]
<mbac>
lame
<Yoric[DT]>
I don't want to put my name on that.
jdev has joined #ocaml
<Yoric[DT]>
Ideally, I'd want the students to do something else, but I can't specially overrule his decisions.
<Yoric[DT]>
Ah, gotta go.
<Yoric[DT]>
Cheers.
<mattam>
This Federer/Murray game is crazy.
<mattam>
7th match point in a single game.
<mattam>
And 2nd ace against match point.
<Spiwack>
gotta find it somewhere probably then :p
willb has quit [No route to host]
jeremiah has joined #ocaml
struktured_ has quit [Read error: 60 (Operation timed out)]
willb has joined #ocaml
gim has joined #ocaml
ecc has joined #ocaml
<Yoric[DT]>
Well...
<Yoric[DT]>
guess what?
<Yoric[DT]>
He succeeded.
<Yoric[DT]>
My meeting is now officially cancelled.
marmotine has quit [Read error: 113 (No route to host)]
marmotine has joined #ocaml
ecc_ has quit [Read error: 110 (Connection timed out)]
pango has quit [Remote closed the connection]
<_zack>
I'm puzzled: a built-in module like List has no module type corresponding to it?
<_zack>
hence, I cannot use "include List" in a module signature, is that correct?
<Yoric[DT]>
correct
<Yoric[DT]>
I seem to remember there has been a feature request for this in Mantis for ages.
<_zack>
indeed is quite weird as a behaviour
<_zack>
what's the common way out?
<_zack>
should I define a module type, using another file, and than include it
<_zack>
?
<Yoric[DT]>
I can't think of any better solution.
<_zack>
how annoying
<Spiwack>
well, there might be some solutions
<Spiwack>
you make a .ml which includes list
<Spiwack>
compile it with -i
<Spiwack>
dump the result in a file.ml which has "Module Type" around the dump
mishok13 has quit [Read error: 110 (Connection timed out)]
<Spiwack>
and that should work in most cases
<Spiwack>
I'm not sure how clean it might be considered though...
<_zack>
Spiwack: how is this a solution?
<_zack>
or, otherwise stated, how is that different then the solution mentioned above? :)
marmotine has quit [Read error: 113 (No route to host)]
marmotine has joined #ocaml
_zack has quit ["Leaving."]
velco has quit ["Went wasting time elsewhere ..."]
mishok13 has joined #ocaml
jeremiah has quit [Read error: 104 (Connection reset by peer)]
marmotine has quit [Read error: 60 (Operation timed out)]
jeremiah has joined #ocaml
vixey has joined #ocaml
marmotine has joined #ocaml
jeremiah has quit [Read error: 104 (Connection reset by peer)]
smimram has joined #ocaml
smimou has quit [Read error: 110 (Connection timed out)]
Spiwack has quit ["Leaving"]
jeremiah has joined #ocaml
ygrek has joined #ocaml
marmotine has quit [Excess Flood]
marmotine has joined #ocaml
rwmjones_ has quit [Read error: 110 (Connection timed out)]
rwmjones has quit [Read error: 110 (Connection timed out)]
<hcarty>
ertai: ping
mishok13 has quit [Remote closed the connection]
marmotine has quit [Read error: 60 (Operation timed out)]
tsuyoshi has quit [Read error: 60 (Operation timed out)]
tsuyoshi has joined #ocaml
marmotine has joined #ocaml
mishok13 has joined #ocaml
<Camarade_Tux>
I have a question about compression in Batteries : I find the (de)compression interface not fit for solid archives, have I missed something ?
<flux>
solid archive = tar?
<flux>
targz?
ozzloy_ has joined #ocaml
<Camarade_Tux>
in fact, not even solid, just multi-files archives
<Camarade_Tux>
flux, solid is compressing everything as a single-file
ozzloy_ is now known as ozG1
Yoric[DT] has quit [Read error: 60 (Operation timed out)]
<hcarty>
Camarade_Tux: That would probably be through a separate interface ... my understanding is that gzip is inherently single-file oriented
Yoric[DT] has joined #ocaml
itewsh has quit ["KTHXBYE"]
<Camarade_Tux>
hcarty, separate interface will need more work =/
<Camarade_Tux>
(I don't even know if that's documented actually)
<hcarty>
You would need a different interface though, I would think
<Camarade_Tux>
Yoric[DT], hi, quick question :)
marmotine has quit [Excess Flood]
marmotine has joined #ocaml
<hcarty>
How would you indicate that a new file starts at the given position without adding tar (or similar) support?
<Camarade_Tux>
is the compression interface meant for mulit-files archives ?
ozG1 has quit ["leaving"]
<Camarade_Tux>
hcarty, well, that'd mean the output of decompression will be a bit meaningless when using the general interface and having a multi-files archives
<Camarade_Tux>
after all the common interface is very small and it's clearly stated interfaces can have more things, but I'd like to be sure I haven't missed something
<Yoric[DT]>
Camarade_Tux: ask _zack :)
* Yoric[DT]
obviously has network problems.
<Yoric[DT]>
Camarade_Tux: if you can read me, the one in charge of compression is _zack.
<Yoric[DT]>
As far as I know, nothing is planned for multi-file archives yet.
<Camarade_Tux>
Yoric[DT], but he's not there :D
balleyne has joined #ocaml
<Yoric[DT]>
I'd say that's yet to be done.
<Yoric[DT]>
If you have interface suggestions, he's probably interested.
<Camarade_Tux>
anyway, I'll hack on the single-file interface for the moment, that's something I simply had not planned
<Camarade_Tux>
Yoric[DT], ok, I'll work on interface too
<Camarade_Tux>
(I thought that by conforming to an already made interface, I could avoid that task actualy ;p )
<Camarade_Tux>
api design has alway been funny :p
<balleyne>
is this the right place to ask about problems compiling the OCaml compiler? I'm getting "Unbound value opEQ" on the file bytecomp/emitcode.ml...
<hcarty>
Camarade_Tux: camlzip does support zip files and has an API for handling multiple files in a zip archive
mbishop has quit [Read error: 110 (Connection timed out)]
<Camarade_Tux>
hcarty, right, good idea
<hcarty>
I think camlzip is used for the existing (de)compression gzip support in Batteries so it doesn't add any new requirements
<Camarade_Tux>
hcarty, I know batteries depends on camlzip so that's really likely :)
<Camarade_Tux>
balleyne, I don't know everything in the compiler but have some idea : how did you started compilation ? (which commands)
<hcarty>
Camarade_Tux: Then everybody wins
<balleyne>
Camarade_Tuz: `./configure`, then `make world opt` (which returned the error).
<Camarade_Tux>
balleyne, try 'make world bootstrap opt', that could solve your problem
<balleyne>
Camarade_Tux: Thanks, but same error. Should I run a 'make clean' or something?
<Camarade_Tux>
somehow I had imagined you'd get that during the 'opt' phase which was completely silly, make bootstrap won't help
* Camarade_Tux
really wonders how somebody can hit an error now
marmotine has quit [Read error: 60 (Operation timed out)]
<balleyne>
Camarade_Tuz: hmm, alright, well, thanks for trying. I must be off, I'll see if I can figure it out later... =\
balleyne has quit ["Leaving"]
<Camarade_Tux>
it seems nothing defines the value he needed and that nothing uses the function using opEQ
<Camarade_Tux>
weird
code171 has quit [Remote closed the connection]
rwmjones has joined #ocaml
Jedai has joined #ocaml
itewsh has joined #ocaml
marmotine has joined #ocaml
bzzbzz has quit ["leaving"]
|Jedai| has quit [Read error: 110 (Connection timed out)]
bzzbzz has joined #ocaml
bzzbzz has quit ["leaving"]
bzzbzz has joined #ocaml
mishok13 has quit [Remote closed the connection]
apples` has joined #ocaml
<palomer>
is it possible to crash the program?
<palomer>
like exit(0) style?
ygrek has quit [Remote closed the connection]
velco has joined #ocaml
marmotine has quit [Read error: 148 (No route to host)]
mbishop has joined #ocaml
<hcarty>
palomer: exit 0?
<palomer>
good call!
<palomer>
:o
<hcarty>
Or raise an uncaught exception or assert false
<palomer>
gtk always catches my exceptions
<hcarty>
Ah
<hcarty>
Does exit 0 work? I haven't used it in a gtk app
<palomer>
lemme test...
marmotine has joined #ocaml
<palomer>
yup
<palomer>
tuareg-mode recognizes exit as a keyword!
<palomer>
weird
<hcarty>
It may be in Pervasives...
<hcarty>
Yes, it is
<palomer>
hrmph
<palomer>
I'm planning on releasing what I've been working on for the past 9 months
<hcarty>
Is anyone here using some version of OCaml 3.11? In particular, I'm wondering if ocamlbuild has support for building libraries as .cmxs
<palomer>
the only glitch is...how do I set the path for the data files?
<palomer>
forcing my user to set the environment variables themselves:O?
<hcarty>
palomer: configure script? Or a dot-file in their home directory?
<palomer>
also options
<hcarty>
Make them select it every time the app starts :-)
<palomer>
IF the environment variable isn't set
<palomer>
that's an idea
<gildor>
tsuyoshi: this is a nightmare
<gildor>
tsuyoshi: I have implemented big buffer with Unix.read to allow better parallelization with other Thread
<palomer>
or have it default to the current working directory if the environment variable isn't set!
<hcarty>
palomer: or ./data/ or similar
<gildor>
tsuyoshi: and the execution time has raise of 40%
<palomer>
hcarty, the problem with that is that it's not relative to the executable
<gildor>
raised
<palomer>
it's relative to where the program is run from
<palomer>
which is a HUGE problem
<palomer>
hmm
<palomer>
anyone running windows
<Camarade_Tux>
palomer, I have a virtual machine
<palomer>
can you check out cout << getenv("PWD") or print_endline (Sys.getenv "PWD")
<palomer>
I want to see if pwd is an environment variable in windows
Associat0r has quit []
<Camarade_Tux>
afaik it's not but starting the vm ;)