Banana changed the topic of #ocaml to: OCaml 3.08.1 available! | Archive of Caml Weekly News: http://sardes.inrialpes.fr/~aschmitt/cwn/ | A tutorial: http://merjis.com/richj/computers/ocaml/tutorial/ | A free book: http://cristal.inria.fr/~remy/cours/appsem/ | Mailing List: http://caml.inria.fr/bin/wilma/caml-list/ | Cookbook: http://pleac.sourceforge.net/
gl has left #ocaml []
zigong has quit ["Leaving"]
<vincenz> input_char
<vincenz> however if there's nothing there you'll get an Eof
<Nutssh> It also depends on terminal settings.
Nutssh has quit [Read error: 104 (Connection reset by peer)]
<vincenz> Unix.read is blocking by default IIRC
Nutssh has joined #ocaml
Nutssh has left #ocaml []
Nutssh has joined #ocaml
Nutssh has left #ocaml []
GreyLensman has joined #ocaml
async has quit ["leaving"]
* vincenz hmms
<vincenz> I have this tree-like structure
<vincenz> but I would like it to change so that whenever I do a change-structure, I get a link directly to the node I want
<vincenz> I assume I'll need side-effects/refs for that
<Smerdyakov> I don't understand you.
<vincenz> ok, imagine a tree (A (B (C D)) (E F))
<vincenz> where structure is important
<vincenz> now there is a nice optimimzation (if your accesses are to elements that are 'near' each other)
<vincenz> where you keep a pointer (C++-lingo) to the last accessed element, and then when you want to change/add/remove element you work from the last accessed element up/down
<Smerdyakov> Are you going to continue?
<vincenz> that's it
<vincenz> basically the tree rebalances itself for optimal access
<vincenz> but it does keep it's structure wrt outside world
<vincenz> but I assume you need ref's for that
<Smerdyakov> Are you talking about splay trees?
<vincenz> not sure
<vincenz> yes I think so
<vincenz> except that for me structure is important
<Smerdyakov> Hm. The SML/NJ seems to include functional splay trees.
<Smerdyakov> The SML/NJ library, that is
<vincenz> so it's not quite a splay tree
<Smerdyakov> Well, I guess it rebuilds the tree as necessary.
<Smerdyakov> But, no, the signature doesn't indicate that
<Smerdyakov> Very puzzling.
<vincenz> well basically most trees don't consider structure they just consider orderedness
<Smerdyakov> I would think that you need to go imperative to get trees that update behind-the-scenes, yes.
* vincenz nods
<Smerdyakov> It's also possible that the SML/NJ version does that, and it's just that the reordered tree is semantically equivalent to the old one, so it needn't be returned.
<vincenz> well if you have parent pointers, I think that shouldn't be a problem
<vincenz> just doesnt' seem simple
<vincenz> I'm not working with trees exactly but tries
<Smerdyakov> No less simple than in C++.
<vincenz> depends on whether you want side-ffects or nto
<Smerdyakov> You can't get parent pointers without imperative features, unless all your trees are constants, as far as I know.
<vincenz> oh
<vincenz> well right now my implementation is rather heavy
<vincenz> type 'a t = Empty | Trie of ('a option * 'a t) TrieMap.t
<vincenz> type 'a t = Empty | Trie of ('a option * 'a t) TrieMap.t
<vincenz> module TrieMap = Map.Make(Ord)
<vincenz> and the key for a trie is an Ord.t list
<vincenz> so I was ocnsidering keeping inside the trie the last accessed Ord.t list and then work based on that with parent-pointers
<vincenz> but maybe it ain't worth it
* vincenz will profile his app
<vincenz> Is there a getopt-module for ocaml?
<Smerdyakov> The projects I work on at Berkeley always end up having one, but I think it was developed by project members.
mattam has quit [SendQ exceeded]
* vincenz nods
mrsolo_ has joined #ocaml
Nutssh has joined #ocaml
srv has quit [Read error: 238 (Connection timed out)]
GreyLensman has quit ["Leaving"]
mlh has quit [Client Quit]
cjohnson has joined #ocaml
cjohnson has quit ["The main attraction: distraction"]
haakonn_ has joined #ocaml
haakonn has quit [Read error: 110 (Connection timed out)]
haakonn has joined #ocaml
haakonn_ has quit [Read error: 110 (Connection timed out)]
mlh has joined #ocaml
avlondono has quit [Read error: 60 (Operation timed out)]
avlondono has joined #ocaml
Demitar has quit ["Bubbles..."]
kdka has joined #ocaml
pango has quit ["Client exiting"]
pango has joined #ocaml
shammah has quit [Read error: 110 (Connection timed out)]
shammah has joined #ocaml
mlh has quit ["i'm outta here!"]
cmeme has quit [Remote closed the connection]
cmeme has joined #ocaml
eugos has joined #ocaml
velco has joined #ocaml
rossberg has quit [Read error: 110 (Connection timed out)]
srv has joined #ocaml
rossberg has joined #ocaml
Submarine has joined #ocaml
mrsolo_ has quit [Read error: 110 (Connection timed out)]
mlh has joined #ocaml
_fab has quit []
ianxek has joined #ocaml
Submarine has quit ["Leaving"]
ez4 has joined #ocaml
mlh has quit [Client Quit]
kinners has joined #ocaml
velco has quit [Remote closed the connection]
pflanze has joined #ocaml
CosmicRay has joined #ocaml
kuribas has joined #ocaml
Herrchen has joined #ocaml
<kuribas> would it be possible to add optimization to the ocaml compiler?
<Hadaka> eh?
<kuribas> It is a pity ocaml doesn't do optimizations
<Hadaka> what optimizations?
<kuribas> for example a * 3 generates an imull instruction
<kuribas> which is very slow
<Hadaka> err
<kuribas> It could make ocaml as fast as C
<Hadaka> ocaml in general is viewed as a fast and optimizing compiler for native compilation, rivalling C speed or surpassing it on many accounts
<Hadaka> and there are a lot of integer calculation optimizations, implemented in different ways
<kuribas> Hadaka: are you sure?
_fab has joined #ocaml
<Hadaka> (when talking about modern x86 processors that is)
<Hadaka> kuribas: yes, very sure
<Hadaka> traditional optimization is these days quite outdated, since most of it is up to cache hits and memory accesses and such
<Hadaka> blowing a cache line could mean 100x performance degration on a loop
<kuribas> still imull instructions are very expensive
<kuribas> using lea is more efficient
<Hadaka> also, integer calculation in ocaml is a bit odd since every integer is represented natively in form 2n+1
<kuribas> yes, but the compiler can optimize that out
<Hadaka> it does optimize it out on many accounts
<kuribas> does it do common subexpression elimination?
<kuribas> these are important optimizations, and could make resulting code a lot faster
<Hadaka> most of the assembly created by the ocaml compiler is rather suboptimal in terms of traditional optimization - loading same registers multiple times and all sorts of stupid things - but almost all of that is eliminated when the processor compiles the instructions into its own trace cache
<Hadaka> it's been a while since I looked exactly what optimizations the ocaml compiler does
<kuribas> Hadaka: I think it only does instruction rescheduling
<Hadaka> in general though, ocaml compiler does pretty much the operations it is told to do - so you have to do the logical optimizations yourself and just leave the instruction optimizing to the compiler
<Hadaka> um, no
<Hadaka> ocaml does zero instruction scheduling these days
<Hadaka> the processor is more capable of fixing that, so that step is entirely skipped
<kuribas> I don't agree, a compiler should do the most of the work
<kuribas> ocaml should be a highlevel language
<Hadaka> well, no sense in arguing - just look at the performance values for ocaml, google finds a lot of stuff on that
<kuribas> it shows that ocaml is still slower than C
<Hadaka> modern processors are pretty different beasts to optimize for than say Pentium II or older
<Hadaka> slower or faster depends on what is being done
<kdka> kuribas, of course ocaml is slower than C for programs that are very closed to their assembly instructions
<kuribas> you mean non-x86 processors?
<kdka> but for huge programs that involves complex algorithms, there is nearly no difference
<Hadaka> kuribas: I mean x86 processor > Pentium II, and then AMD64 and EM64T
<kuribas> a + a + a + a should generate the same code as a * 4
<Hadaka> kuribas: that sort of things happens at the lambda simplification phase
<Hadaka> (when it happens)
CosmicRay has quit ["Leaving"]
<Hadaka> kuribas: you can see exactly what ocaml does by looking at the source - asmcomp/asmgen.ml is a good entrypoint
<kuribas> I checked it, they generate different code
<kuribas> the first generates three additions, the second a shift instruction
<kuribas> ocaml is not an optimizing compiler, inlike what is written everywhere
<kuribas> which is unfortunate
<Hadaka> instruction selection, allocation combining, liveness analysis, spilling, live range splitting, register allocation, linearization, scheduling seem to be the steps
<Hadaka> scheduling does nothing these days
<Hadaka> kuribas: ocaml is an optimizing compiler by the definitions that it optimizes code before compiling - for example inlining is an optimization, so is implementing * 4 as a shift
<Hadaka> kuribas: just because it doesn't do the *same* optimizations that a bunch of C compilers do, doesn't mean that it wouldn't optimize
<Hadaka> anyway, the code is there to look at, and I think the developer team would be happy from any meaningful improvements
<kuribas> it doesn't optimize!
<Hadaka> well, useless to argue
<kuribas> unless you show me the code where it optimizes
<Hadaka> kuribas: didn't I just tell you two examples?
<kuribas> these are simple optimizations, not extensive ones
<Hadaka> kuribas:#Ocaml => it doesn't optimize!
<Hadaka> but, okay, I guess I have said everything meaningful about the subject (and more)
<kuribas> how do you know ocaml does these optimizations? Have you checked them?
<kuribas> It's important that the programmer things in terms of design and algorithms, and that the compiler does the optimizations
<Hadaka> kuribas: I have read the code, have you?
<kuribas> yes, but not thoroughly
<kuribas> all I am saying is that the ocaml compiler is nice, but it could even be better
<Hadaka> certainly, I don't doubt that
<kuribas> there is just much more effort in C compilers
<kuribas> but C is an ugly language for complex programs
<Hadaka> lea -1(%eax, %ebx), %eax
<Hadaka> ocaml uses lea for integer addition it seems
<kuribas> that's combined addition and assignment
<Hadaka> yes, that's what (+) is if not inlined
<kuribas> I think lea could be used for a * 3
<Hadaka> hmh
<Hadaka> so (2n + 1) * 3
<Hadaka> 2(n * 3) + 3
<Hadaka> 2(n * 3) + 1 - 2
<Hadaka> hmmh
<kuribas> (2n - 1) * 3 + 1
<Hadaka> hmh, yeah, I was calculating it all wrong
<Hadaka> but I still don't see what the lea instruction should be
<kuribas> maybe 2 * (a - 1) + a
<kuribas> gcc gives this: leal -2(%eax,%eax,2), %eax
<Hadaka> so that is x + 2*x - 2?
<kuribas> yes
<Hadaka> and ocaml does:
<Hadaka> decl %eax
<Hadaka> imull $3, %eax
<Hadaka> incl %eax
<kuribas> that's three instructions and an expensive imull
<Hadaka> let's see
<Hadaka> hmh, the instruction selection phase already expands it to the form (x-1)*3+1
<Hadaka> there probably is a reason why it is done so early
<kuribas> that's alright, it needs to be expanded to that
<Hadaka> I don't think addition is expanded likewise there
<Hadaka> no, addition is directly represented as:
<Hadaka> I/10 := a/8 + b/9 + -1
cjohnson has joined #ocaml
<Hadaka> where as a * 3 is represented as:
<Hadaka> I/9 := I/9 + -1
<Hadaka> I/10 := I/10 * 3
<Hadaka> I/11 := I/11 + 1
<kuribas> from here the compiler should do common optimizations, such as strength reduction
<Hadaka> can't find the spot exactly where it does the expansion now
<kuribas> maybe it could be possible to port optimizations from gcc to ocaml
<kuribas> gcc is quite well documented
<Hadaka> perhaps, but I think the inria devs are trying to keep the complexity down - so any optimizations taken would need to have a definite performance benefit to matter
<kuribas> well, you'd need a lot of optimizations, but they would be very complex
<kuribas> but it would give a large performance benefit
<kuribas> the ocaml machine code above takes about four times as many clock-cycles (very roughly estimated) as the gcc one.
<Hadaka> I wonder how the trace caches differ inside the processor for those two
<Hadaka> should probably make a test program to compare actual execution time between those on a P4
<kuribas> so the inria team doesn't want their compiler to be an optimizing one?
<Hadaka> kuribas: ofcourse they want the performance to be as good as possible - but they are the ones that will have to maintain it and develop it further
<Hadaka> kuribas: and they are not willing to spend time on optimizing operations that will not have a demonstrable effect in performance
<Hadaka> kuribas: and in general, ocaml performance is good enough for all but the most stringent uses, so there are more important things to concentrate on
<kuribas> It would be nice for ocaml to be able to replace C, except for the really low level stuff
<kuribas> And equal speed to C would be good publicity
<Hadaka> better publicity than the current speed yes, but even the current speed is good publicity
<Hadaka> I don't think there are too many cases where ocaml performance is the problematic factor in converting to ocaml
<kuribas> what about embedded devices?
<Hadaka> ocaml code leaves a lot to offer on embedded uses - and there code size often matters more than execution speed
<kuribas> do you know of a ocalm (or sml) implementation for palm?
<Hadaka> kuribas: somebody worked on something like that - but it was the bytecode runner there
<Hadaka> ocaml bytecode could be made rather compact and would be really nice for embedded uses
<kuribas> I am writing an application for palm, but speed does matter.
<kuribas> I am using C right now, but I hope I could use ocaml for future versions
<Hadaka> there is ocaml in real-time critical applications though
<Hadaka> running hardware, that is
bk_ has quit ["Leaving IRC - dircproxy 1.1.0"]
vezenchio has joined #ocaml
kinners has quit ["leaving"]
cjohnson has quit ["The main attraction: distraction"]
<kuribas> bye
kuribas has left #ocaml []
<vincenz> Hadaka: I sincerely doubt taht
<vincenz> maybe soft-real-time, but definitely not hard-real-time
<Hadaka> vincenz: doubt what?
eugos has quit ["Leaving"]
pflanze has quit [tolkien.freenode.net irc.freenode.net]
avlondono has quit [tolkien.freenode.net irc.freenode.net]
judge has quit [tolkien.freenode.net irc.freenode.net]
dan2 has quit [tolkien.freenode.net irc.freenode.net]
rossberg has quit [tolkien.freenode.net irc.freenode.net]
_fab has quit [tolkien.freenode.net irc.freenode.net]
ianxek has quit [tolkien.freenode.net irc.freenode.net]
melchus has quit [tolkien.freenode.net irc.freenode.net]
_fab has joined #ocaml
pflanze has joined #ocaml
ianxek has joined #ocaml
rossberg has joined #ocaml
avlondono has joined #ocaml
judge has joined #ocaml
dan2 has joined #ocaml
melchus has joined #ocaml
Nutssh has quit [Excess Flood]
Nutssh has joined #ocaml
avlondono has quit [tolkien.freenode.net irc.freenode.net]
judge has quit [tolkien.freenode.net irc.freenode.net]
pflanze has quit [tolkien.freenode.net irc.freenode.net]
dan2 has quit [tolkien.freenode.net irc.freenode.net]
rossberg has quit [tolkien.freenode.net irc.freenode.net]
_fab has quit [tolkien.freenode.net irc.freenode.net]
ianxek has quit [tolkien.freenode.net irc.freenode.net]
melchus has quit [tolkien.freenode.net irc.freenode.net]
_fab has joined #ocaml
pflanze has joined #ocaml
ianxek has joined #ocaml
rossberg has joined #ocaml
avlondono has joined #ocaml
judge has joined #ocaml
dan2 has joined #ocaml
melchus has joined #ocaml
CosmicRay has joined #ocaml
CosmicRay has quit [tolkien.freenode.net irc.freenode.net]
avlondono has quit [tolkien.freenode.net irc.freenode.net]
judge has quit [tolkien.freenode.net irc.freenode.net]
pflanze has quit [tolkien.freenode.net irc.freenode.net]
dan2 has quit [tolkien.freenode.net irc.freenode.net]
rossberg has quit [tolkien.freenode.net irc.freenode.net]
_fab has quit [tolkien.freenode.net irc.freenode.net]
ianxek has quit [tolkien.freenode.net irc.freenode.net]
melchus has quit [tolkien.freenode.net irc.freenode.net]
CosmicRay has joined #ocaml
_fab has joined #ocaml
pflanze has joined #ocaml
ianxek has joined #ocaml
rossberg has joined #ocaml
avlondono has joined #ocaml
judge has joined #ocaml
dan2 has joined #ocaml
melchus has joined #ocaml
Submarine has joined #ocaml
pflanze has quit ["[x]chat"]
<Submarine> raaah... hours of debugging just because of some source reorganization, missing ;; and the stupid failwith syntax
<Smerdyakov> 'failwith' is just a function.
<Submarine> indeed... a function returning 'a
<Smerdyakov> So are you complaining about function call syntax? :)
<Submarine> therefore a function with a variable # of arguments
<Smerdyakov> If your code has ;;, it's probably poorly designed.
<Submarine> I do not see how you can write the same code without ;;
<Smerdyakov> What's the code?
<Submarine> there is no syntactic way that I know to end a toplevel (inside a module) declaration in general when the rest can be mistaken for the rest of the expression
<Smerdyakov> Example?
<Submarine> ex: let bla bla = function blah failwith "blabla"
<Submarine> then: RPC.register_function fooblabla
<Smerdyakov> What on earth!
<Smerdyakov> What is bla supposed to do?
<Submarine> I'm afraid this is probably too difficult to explain.
<Smerdyakov> Are you sure it's not: let bla bla = function blah -> failwith "blabla"
<Submarine> yes, with many cases for the blah
<Smerdyakov> OK. Your code is poorly designed if you have top-level expressions.
<Submarine> not at all
<Submarine> Our code is excellently designed.
<Smerdyakov> Nope.
velco has joined #ocaml
<Smerdyakov> You should have at most one top-level expression, segregated in its own file.
<Submarine> Hasty judgment, you have not seen our code.
<Smerdyakov> And you claim you can't explain to me why it makes sense for you to mix declarations and expressions at the top level?
<Smerdyakov> I claim that this is a non-arguable style point.
<Smerdyakov> It is never sensible to do what you are doing. Period.
<Smerdyakov> And your debugging experience shows why.
<Submarine> Those expressions perform once-in-a-program lifetime initializations, i.e. populate some tables.
<Smerdyakov> For that, use let _ = ...
<Submarine> Smerdyakov: this is merely a syntactic hack, as for "ignore"
<Smerdyakov> Even better, put them in an init () function called transitively from your one top-level expression.
<Smerdyakov> It's a "syntactic hack" that _prevents_ the problem that caused your debugging headache!
buggs has quit [Remote closed the connection]
<Submarine> It's unthinkable for me to put a init() function because this thing is inside a functor that gets instantiated by generated code, whose code generator I'm not even the author.
<karryall> Submarine: no, let _ = ... is not a syntactic hack
<karryall> it's expression appearing in a module which is a hack
<Submarine> mmmh
<Submarine> What's the largest ocaml program you've written?
<karryall> big enough, don't worry
<Submarine> my experience is that once you exceed 50000 lines, hacks are almost impossible to avoid unless you wish to launch heavy refactoring
<Smerdyakov> Submarine, maybe if you allow yourself to write awful code like top-level expressions in the first place!
buggs has joined #ocaml
* karryall aggrees with Smerdyakov
<Smerdyakov> I work on a project with over 50k lines of OCaml. We have no top-level expressions. It's just obscene.
<karryall> well you need at least one :)
<Submarine> arf
<Submarine> Actually, we have very few toplevel expressions... I think we have two or so.
<Submarine> One launches the main function, basically.
<Submarine> The other populates a RPC table.
<Smerdyakov> The one that launches the main function is the only one you should have.
<Smerdyakov> Preferably in its own file.
<Submarine> oh, probably, if I could get the person who wrote the code generator to rewrite it
<Smerdyakov> Oh, don't go making "we're not smart enough" arguments to justify bad coding practice. ;)
<Submarine> It's not a problem of smartness, but of working power.
<Submarine> Things become easier when you have an army of slaves^H^H^H^H^H^H graduate students that are forced to code what you tell them to, as is typical in US universities.
<karryall> arf
<Smerdyakov> I always knew the French were a bunch of dogs.
<Smerdyakov> Submarine, no, we like coding!
<Smerdyakov> Submarine, and we make more money than you do!
<Submarine> Sorry?
<Smerdyakov> Graduate students in the USA make more money than in France.
<Submarine> I hope so, because given the cost of living in Berkeley, you'd be starving.
<Submarine> Hopefully, I'm not a graduate student.
<Smerdyakov> What are you, then? An elephant?
<Submarine> Smerdyakov: Actually, graduate students in France earn vastly different income depending on their status, so a blanket statement is probably inaccurate.
<Smerdyakov> Well, I'll be surprised if any make more than the top students at top US universities. *shrug*
* velco mutters "... spoiled rich fat white kidz ..."
<Submarine> Sheesh, man, are all of George's students that cocky?
<Smerdyakov> I don't see "cocky" here. This is just a fact about a difference between our societies, what they value, and how they show it.
<Smerdyakov> You mentioned that grad students in France apparently don't have to do much coding, and I brought up how this correlates with how useful their work is thought to be, as shown by monetary remuneration.
<Submarine> Smerdyakov: You are somewhat mistaken.
<Submarine> Smerdyakov: Grad students in France have a fairly limited time of funding, in general.
<Submarine> This means that if we require them to code large amounts, they won't publish and will have trouble getting a job.
<ianxek> If for Grad student you mean a student doing a PhD, then in France, when they're lucky, most of them earn 1000 euros
<Smerdyakov> ianxek, per what time period?
<Submarine> ianxek: Inexact.
<ianxek> per month
<ianxek> this is exact except if you are from special schools like ecole normale
<ianxek> but those are very rare
<Submarine> ianxek: This is exact when you are on a "ministry of research" stipend *without
<Smerdyakov> OK. I and about 1/3 of my peers here earn around 3 times that.
<Submarine> doing any teaching on top of it.
<Submarine> If you are paid by CEA, INRIA, CNRS or others you earn more than that
<Submarine> Smerdyakov: around 3000 USD a month?
<Smerdyakov> Submarine, 3500
<ianxek> Well these are rare, except in applied sciences maybe
<karryall> and even more if you have a CIFRE contract
<Submarine> Smerdyakov: not bad, that's more that a typical assistant prof makes
<Smerdyakov> Submarine, yup, and it's normal at top research universities. Do you still think I'm being unfair with what I've said?
<ianxek> Smerdyakov : you mean what you said about the values ?
<Submarine> Smerdyakov: Well, my impression, talking with people at CMU and others, was that they did not get that much of a paycheck.
<Smerdyakov> ianxek, yes.
<Smerdyakov> Submarine, only about 1/3 do.
<Smerdyakov> Submarine, these are the people who win the national fellowships from government agencies.
<Smerdyakov> and a few private agencies
<Submarine> Smerdyakov: The big problem in France is that, unless special circumstances, you get the same paycheck in all disciplines. Therefore, a compsci grad student is paid the same as, say, a philosphy grad student.
<ianxek> In France, you don't get very well paid as a grad, but then it's easier to get a permanent position than in USA
<Smerdyakov> Yes. Which just backs up my statement that the USA has a very different idea of what work is expected and how to compensate grad students for it, and that this works in the favor of CS students.
<ianxek> Not well paid either, but permanent, and maybe without any teaching as for CNRS guys
<Submarine> To be fair, the cost of living around top-notch research universities in the US is so enormous that you *must* have a fat paycheck.
<Smerdyakov> I save over half my pay each month.
<ianxek> Same thingif you live in France : look at the prices in Paris
<Smerdyakov> I also choose to pay roughly twice as much as necessary for housing, for various amenities.
<Submarine> ianxek: the prices in the US totally dwarf Parisian prices
<Smerdyakov> ianxek, my rent is $1025/mo.
<Submarine> Darn, I should call Microsoft back.
<ianxek> submarine : No one can live in paris with a typical grad pay
<Submarine> Smerdyakov: twice mine
<Submarine> ianxek: get a "monitorat"
<ianxek> Smerdyakov : same price in paris for a nice flat of about 50m2
<Submarine> ianxek: FYI I used to live with a grad student paycheck, and to save money
<ianxek> It depends on the conditions you live in
<Submarine> ianxek: tut-tut - you can get 50 m2 for about EUR 800
<ianxek> Yeah, right, depends where, same I guess in the US.
<Submarine> sheesh, George must have fat contracts
<Smerdyakov> Submarine, no. I am paid by the Department of Defense. George just pays me a small supplement.
<Submarine> ah ah
<Smerdyakov> (<$1000/mo)
<Submarine> what's the criterion for a DoD funding?
<Smerdyakov> You have to apply with essays and recommendation letters and such. They award about 10 a year in CS.
<Smerdyakov> After that, the only limitation is that the DoD owns any patents you file.
<Submarine> NOTE to ianxek you know that DGA offers funding?
velco has quit ["Client exiting"]
<Submarine> wow, then we know that Smerdyakov is some kind of top-notch guy
<ianxek> Submarine : as for "french don't code a lot coz they need publications" well then it's compensated by the permanent position that they get afterwards where they don't need to publish anymore
<Submarine> ianxek: the last part is dubious
* Submarine does not want to stay second-class CNRS researcher and part-time assistant professor forever
<ianxek> I didn't says they didn't code, I said they didn't need anymore
<ianxek> Publish I mean
<ianxek> Yes, but "not staying 2nd class..." is not the same as "I need a job"
<ianxek> If you are 2nd class, then you can spend all the time you want coding and not publishing
<Submarine> Smerdyakov: This is off-topic, of course, but I think that lots of the problems in the French research system is this egalitarianism, whereby we pretend that all disciplines are equally important, and all labs are equally good, whereas this does not fit reality.
<Smerdyakov> Submarine, and why not include "all researchers in one discipline are roughly as good"? :)
<Submarine> Smerdyakov: rather, "do all researchers in one discipline deserve to be paid the same"
<Submarine> or "should the paycheck reflect the evaluation of the researcher"
<Submarine> things are a-changing... several ministries have introduced "merit pay" in civil service positions, which of course has its own problems (i.e. rewarding people because they're friends of whoever judges who merits to be paid more)
<Submarine> there's talk that CNRS will cut base lab support to next to nil, then award the rest according to performance
<Submarine> all this convinces me that it's urgent to hire Indian slaves
<Smerdyakov> Or have a revolution.
<Smerdyakov> I'm all for competition for money, by the way. :)
<Smerdyakov> (Though I'm more for social arrangements that do without money, but that's a different story!)
<Submarine> the problem with competition for money is if the repartition system is based not on actual performance, but on how you suck up to the bureaucrat in charge
<Submarine> which is a problem with EU funding
<Smerdyakov> Hm. This doesn't seem to be a problem in the USA, as long as you only consider people who were able to get into top universities as teenagers. There are social factors preventing most people from doing that, and they are of a kind with those you mention.
<Submarine> hopefully I'm tenured
<Smerdyakov> You don't know if you are tenured or not?
<Submarine> Oh, I am.
<Submarine> I thought "hopefully, foobar" meant "it's a good thing that foobar".
<Smerdyakov> You certainly need punctuation there.
<Niccolo> Submarine: what is your nationality?
<Smerdyakov> Without it, you get a very different meaning.
<Smerdyakov> And I would recommend the semicolon instead of the comma.
<Submarine> Niccolo: French
<Niccolo> =]
<Niccolo> cool
<Submarine> Smerdyakov: your boss is going to visit us in January
<Smerdyakov> I know. And February, March, April, May, June, July, and August!
<Submarine> something like that
<Smerdyakov> And we don't use "boss" here. "Advisor" would be what I say.
<Submarine> to me, he is your boss
<Niccolo> "hopefully I'm tenured" give the meaning "there is the hope that i will be tenured" or "there is the wish that i be tenured"
<Niccolo> s/give/gives/
<Smerdyakov> Submarine, that's not really accurate. I work on whatever I want, and he gives me advice about it.
<Submarine> well, I say Cousot is my boss even though I work on whatever I want :-)
<Smerdyakov> OK. Bye.
Submarine has quit ["ChatZilla 0.9.61 [Mozilla rv:1.7.3/20040913]"]
bacam has quit [Read error: 60 (Operation timed out)]
pawelb has quit ["leaving"]
bacam has joined #ocaml
simon has quit [Read error: 232 (Connection reset by peer)]
uppo has joined #ocaml
Demitar has joined #ocaml
uppo has quit [Client Quit]
<ianxek> What about using ocaml for distributed programming ? What should I start with ?
<pango> jocaml ?
_fab has quit []
<ianxek> It says it comes with ocaml 1.07 !
<Demitar> ianxek, checked the humps?
<TheDracle> I thought Ocaml had MPI bindings of some type.
<ianxek> Demitar : you mean check for jocaml or for some other possibility ?
<Demitar> ianxek, for whatever is relevant. :)
<ianxek> right...
<TheDracle> Hm, Jocaml seems pretty nifty too.
<TheDracle> Except it's sponsored by Microsoft Research..
<ianxek> Yes but what about being based on Ocaml 1.07 ?
<Demitar> You might want to search the caml-list archives too.
<TheDracle> ... Live with it?
<TheDracle> Does it use the actual Ocaml Virtual machine?
<ianxek> Ok, but do you have any idea of what is lost 1.07 vs. latest release ?
<TheDracle> You could possible try fixing up the source to compile on 3.08.
<ianxek> I'm new to Ocaml, so...
<pango> that's a huge version jump, too...
<ianxek> Maybe I should write to the authors
<pango> in the Humps, there's a reference to "parallele"... if you don't mind the french documentation
<karryall> ianxek: there are PVM bindings too
<pango> I guess you won't ;)
<ianxek> pango: no indeed !
velco has joined #ocaml
<ianxek> karryall : that sounds good
monochrom has joined #ocaml
<TheDracle> Just use MPI if you want to use 3.08.
pango has quit ["Leaving"]
<TheDracle> Hm, Jocaml seems like it's a modification to the VM.
pango has joined #ocaml
Submarine has joined #ocaml
_fab has joined #ocaml
Nutssh has left #ocaml []
bacam_ has joined #ocaml
__mattam__ has joined #ocaml
__mattam__ has quit [Client Quit]
mattam has joined #ocaml
bacam has quit [Read error: 60 (Operation timed out)]
bacam_ is now known as bacam
<Submarine> where the heck is this zlib
demitar_ has joined #ocaml
Demitar has quit [Read error: 104 (Connection reset by peer)]
velco has quit [tolkien.freenode.net irc.freenode.net]
velco has joined #ocaml
pflanze has joined #ocaml
srv_ has joined #ocaml
srv has quit [Read error: 232 (Connection reset by peer)]
Submarine has quit ["ChatZilla 0.8.31 [Mozilla rv:1.4.1/20031114]"]
dxlvi has joined #ocaml
dxlvi has quit [Client Quit]
dxlvi has joined #ocaml
dxlvi has quit [Remote closed the connection]
dxlvi has joined #ocaml
dxlvi has quit [Client Quit]
dxlvi has joined #ocaml
dxlvi has quit [Client Quit]
dxlvi has joined #ocaml
kdka has quit []
<ianxek> Juste for the record, coz I've spent quite some time before finding it, the parallel future of ocaml in in Caraml : http://www.caraml.org/
<ianxek> Ocaml is getting ready for the grid !
<karryall> interesting
velco has quit ["I'm outta here ..."]
ez4 has quit [Read error: 54 (Connection reset by peer)]
ez4 has joined #ocaml
<ez4> a
kuribas has joined #ocaml
kuribas has quit ["Leaving"]
CosmicRay has quit ["Client exiting"]
gpciceri has joined #ocaml
<TheDracle> Hm.. I probably should learn French, then Ocaml.
<dxlvi> pourquoi pas?!
gpciceri has quit [Client Quit]
<TheDracle> Um.. Yeah.
tnks has quit ["using sirc version 2.211+KSIRC/1.3.10"]
tnks has joined #ocaml
tnks has quit [Remote closed the connection]
ez4 has left #ocaml []
tnks has joined #ocaml
<judge> is there a standard function to generate a list ?
<judge> i need something like genlist 30 0 where 30 is the length and 0 is the value
<judge> it's easy enough to write one, but this seems like something the standard library would have
GreyLensman has joined #ocaml
<pango> is it used *that* often ?
<judge> i dunno
pflanze has quit [Read error: 110 (Connection timed out)]
monochrom has quit ["Don't talk to those who talk to themselves."]
avlondon1 has joined #ocaml
avlondono has quit [Read error: 110 (Connection timed out)]
mlh has joined #ocaml