dylan changed the topic of #ocaml to: OCaml 3.09.1 available! Archive of Caml Weekly News: http://sardes.inrialpes.fr/~aschmitt/cwn/ | 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/
zigong has quit ["using sirc version 2.211+KSIRC/1.3.12"]
KrispyKringle has joined #ocaml
ulfdoz has quit [brown.freenode.net irc.freenode.net]
quamaretto has quit [brown.freenode.net irc.freenode.net]
ppsmimou has quit [brown.freenode.net irc.freenode.net]
lispy_ has quit [brown.freenode.net irc.freenode.net]
JKnecht has quit [brown.freenode.net irc.freenode.net]
Demitar has quit [brown.freenode.net irc.freenode.net]
pnou has quit [brown.freenode.net irc.freenode.net]
Hadaka has quit [brown.freenode.net irc.freenode.net]
twobitsprite has quit [brown.freenode.net irc.freenode.net]
flux__ has quit [brown.freenode.net irc.freenode.net]
ertai has quit [brown.freenode.net irc.freenode.net]
Poopsmith has quit [brown.freenode.net irc.freenode.net]
pango has quit [brown.freenode.net irc.freenode.net]
_shawn has quit [brown.freenode.net irc.freenode.net]
juri has quit [brown.freenode.net irc.freenode.net]
quamaretto has joined #ocaml
lispy_ has joined #ocaml
pango has joined #ocaml
_shawn has joined #ocaml
JKnecht has joined #ocaml
ppsmimou has joined #ocaml
ulfdoz has joined #ocaml
Demitar has joined #ocaml
twobitsprite has joined #ocaml
flux__ has joined #ocaml
pnou has joined #ocaml
ertai has joined #ocaml
Hadaka has joined #ocaml
juri has joined #ocaml
JKnecht_ has joined #ocaml
JKnecht has quit [Connection reset by peer]
<mikeX> on what OSs does Sys.rename raise an exception when the target exists?
pnou has quit [Remote closed the connection]
pnou has joined #ocaml
zigong has joined #ocaml
KrispyKringle is now known as Poopsmith
zigong has quit ["using sirc version 2.211+KSIRC/1.3.12"]
slipstream has joined #ocaml
slipstream-- has quit [Connection timed out]
bohanlon has quit ["It is sleepy time for my computer."]
pango_ has joined #ocaml
_fab has quit [Read error: 113 (No route to host)]
pango has quit [Read error: 145 (Connection timed out)]
mikeX has quit [""zzz""]
twobitsprit1 has joined #ocaml
<twobitsprit1> does ocaml have multiple dispatch in any way?
zigong has joined #ocaml
lispy_ is now known as lispy
pengo has joined #ocaml
<pengo> huh
<pengo> i've lost my house, i need a job, and ocaml has strange syntax and i can't cope with it right now. i'm going to go cry.
<lispy> you lost your house?
<pengo> well it's only a rental
<lispy> jobs are hard to find in the US
<Smerdyakov> lispy, not for all classes of people.
<lispy> and i agree, coming from C, lisp and haskell, ocaml syntax is odd
<Smerdyakov> Jobs are easy to find for anyone with a bachelor's degree in CS from the right school, for instance.
<lispy> "from the right school" must be the important part
<Smerdyakov> Absatively.
<lispy> i have a BS in both math and CS and I spent 9 straight months unemployed. It was finally my math degree that got me a job
<Smerdyakov> From what school?
<lispy> oregon state
<Smerdyakov> *Ahem* 'Nuff said. :P
<lispy> the CS program is trying to be all java, and that is painful
<pengo> java is great.. as long as you dont know about any other languages.
<Smerdyakov> There aren't enough talented people in the USA to cover all of these universities.
<Smerdyakov> So employers make the sensible decision of only focusing on the few that attract the most talented people.
<pengo> anyway i didn't bother doing a BS
<Smerdyakov> pengo, and maybe now you have an opportunity to regret it?
<lispy> in my exprience, the single biggest thing that can help you find a job is having a friend recommend you
<pengo> Smerdyakov: nah not really. i'd rather swim in raw sewerage
<Smerdyakov> lispy, if you go to a top school in your field, you will have more friends with more people to recomend you to.
<Smerdyakov> pengo, why?
<pengo> because comp sci is incredibly dull, from all accounts, and i'd learn very very little.
<lispy> pengo: what field are you looking to work in?
<Smerdyakov> pengo, you must be receiving accounts from questionable sources.
bohanlon has joined #ocaml
<pengo> Smerdyakov, no i sat in on some lectures
<Smerdyakov> pengo, where?
<pengo> UNSW
<pengo> which has a good rep for comp sci
<lispy> pengo: fwiw, i found math classes were typically more exciting than CS classes (but not always)
<Smerdyakov> Hm, maybe for Australia ;)
<pengo> lispy: yes, discrete maths is a little more interesting
<Smerdyakov> I'll be the last person singing praise of the traditional "educational" aspect of universities, but I have two important points to make:
<Smerdyakov> 1) Computer science is an incredibly rich field full of things that there is no way in hell you would think up yourself in a lifetime.
<lispy> pengo: if you enjoyed that, then i recommend you to study type theory
<pengo> lispy: i'm reading a book on it right now.. Types and Programming Languages
<Smerdyakov> 2) Getting a university degree is mostly about making social connections, so the quality of lectures you set in on is mostly irrelevant.
<pengo> lispy: in fact that's what led me to this channel
<lispy> pengo: ah, good choice
<lispy> pengo: well, check out #haskell as well if you haven't already :)
<pengo> lispy: yeah i started with that.. it's syntax is equally odd
<pengo> its
<lispy> pengo: #haskell not haskell :)
<pengo> oh :)
<lispy> stick with one FP lang for the moment, then you're encouraged to learn another
<pengo> so anyway i studied biology at uni, rather than CS.. the subject matter at least was interesting, even if universities are 100+ years behind on education theory.
<lispy> Smerdyakov: did you make a lot of social connections of worth as an undergrad? I made a lot of friends, but nothing that helped me get a job
Skal has joined #ocaml
<Smerdyakov> lispy, yes. I was basically set for life as far as social connections go at some point before I graduated.
<lispy> and one of the really important lessons i've learned from grad school is that most of the "research" going on is a waste of money/time
<Smerdyakov> lispy, it's not just binary "I know this person" predicates. It's the fact that you're good at something and you have well-connected people who can vouch for that.
<Smerdyakov> lispy, true, but that's more true in most places than in the places that get all the funding money anyway.
<lispy> i've also learned that HCI, while part of the CS department at my school should not be a field of CS
<pengo> lispy: how so?
<lispy> it's applied psychology
<pengo> lispy: so it shouldn't be taught?
<lispy> it shouldn't be a field of CS, physics is not a part of CS but it can be useful for CS people to know it
<Smerdyakov> You won't find me disagreeing.
<pengo> i'm amazed at linux and open source conferences how HCI is completely ignored by everyone.. unless it accidently slips in, like if someone's writing a game.
<pengo> i find divisions between fields fairly artificial anyway so it seems irrelvant to me
<Smerdyakov> Well-motivated divisions are based on common approaches to problem-solving.
<lispy> I'll just put it this way, i started out in grad school working under an HCI professor.
<Smerdyakov> CS as a whole is definitely characterizable in this way.
<pengo> there are HCI professors?
<pengo> wow
<Smerdyakov> pengo, you must be joking. CMU has an HCI Institute.
<lispy> i thought she was a PL prof, but i found out she has changed her area
<Smerdyakov> lispy, who?
<lispy> Dr. Burnett
skylan_ has joined #ocaml
<lispy> she started out in visual language research, but she's morphed into an HCI researcher over the years
<Smerdyakov> lispy, or you still at Oregon State?
<Smerdyakov> s/or/are
<lispy> yeah, but working with different researchers
<lispy> technically i'm on an internship for a couple terms
<Smerdyakov> lispy, do your fellow graduate students get research jobs after graduating very often?
<lispy> Smerdyakov: it's embarrassing to say, i've never checked
<Smerdyakov> lispy, you have no idea where any of the other students in the program ended up?
<lispy> although, in my defense, i have no ambition to be a researcher
<lispy> correct
<Smerdyakov> OK. So what are you doing in graduate school?
<lispy> getting a masters degree
<pengo> paper is fun.
<pengo> 4 years for one piece
<lispy> if i wanted to do research i would be in math grad school
<Smerdyakov> It's not clear to me what you stand to gain by getting a master's degree.
<lispy> better positions within industry
<Smerdyakov> pengo, more like 4 years for a certain number of connections....
<pengo> i should just keep coding my own crud
<Smerdyakov> pengo, not to mention that it's easy to do a BS in fewer years these days, at least in the USA.
<lispy> Smerdyakov: my internship now is helping to make sure my resume will look good and i'm establishing some connections
<pengo> Smerdyakov: meh. i'd rather eat my own intestine
<Smerdyakov> pengo, yup, and you keep saying that and whining about needing a job at the same time.
<pengo> Smerdyakov: i haven't really started looking
<lispy> well, techinally if you starve enough you'll be eating your own intestine :)
<pengo> Smerdyakov: but i'm sure i could get one within 3 years. :)
<Smerdyakov> lispy, ideally you want connections with the people the government calls when they want problems solved. :)
<lispy> Smerdyakov: hehe, i'm working at a company that develops software for traffic engineers, so hey that's really close :)
<pengo> they engineer traffic now? wow
<pengo> i am behind
<Smerdyakov> lispy, not that close.... Military Industrial Complex are the keywords for easy street!
<lispy> pengo: cities like to model parts of the city to figure out how to deal with growing traffic demands, polution problems and so on
<lispy> pengo: they use software like ours to run simulations and figure out how to spend money
<lispy> Smerdyakov: my coworker worked at Lockhead and said it was terrible there :)
<Smerdyakov> lispy, I never said anything about working at Lockheed. I mean more people who serve on committees for MIC-funded/driven purposes.
<Smerdyakov> There are basically a few forces with unlimited resources in IT in the USA.
<Smerdyakov> The military and Microsoft. DId I miss any? :)
<pengo> lispy: something tells me australians govts are yet to hear about such simulators
<lispy> ah
* lispy refuses to work for MS
<lispy> so i guess the military would be the other choice :)
<pengo> Smerdyakov: google?
<lispy> pengo: heh, it's an expensive process so it's often saved for when it's really important
<lispy> pengo: good call
<Smerdyakov> pengo, could be, could be.
<pengo> hire me, google!
<pengo> i should prolly send my resume to that google recruiter
<Smerdyakov> pengo, you really want to be recommended by someone who knows someone at Google.
<Smerdyakov> Unsolicited resumes are an inefficient way to get noticed.
<lispy> pengo: if you do, make sure and read up on the sort of people that get hired by google. They're looking for people that stand out as creative during the interview process. Maybe even eccentric
<pengo> lispy: yeah.
<Smerdyakov> That's another thing. People who need to make a good impression at an interview to be hired are already one step behind. You don't need to be in a situation like that.
<pengo> and willing to move to mountain view
<pengo> Smerdyakov: instead i should do a soul-destroying degree, right?
<Smerdyakov> pengo, you have a weak soul if it's so easily destroyable.
<Smerdyakov> And I don't know how things work in Australia. Maybe you really are Up A Creek.
<pengo> Smerdyakov: nah i've had a good job before.. i just need to start looking seriously
<pengo> being "out of the industry" for a few years doesn't help tho
<lispy> i had bad luck with monster.com, fwiw
<Smerdyakov> lispy, if you have to use a site like that, you're already in trouble..
<lispy> Smerdyakov: i won't disagree
skylan has quit [Read error: 110 (Connection timed out)]
<lispy> Smerdyakov: but sometimes you have to start somewhere
<Smerdyakov> lispy, you're already in trouble if you have to start there. :P
<pengo> man, roses smell like shit in the rain
<pengo> [ways to kill a conversation: #24994]
<lispy> Smerdyakov: since i'd like to work in simulation or graphics after i get my degree i'm definitaly working on making connections this time around
<lispy> and the prof i work with now has placed two students in game companies and he's only had a few students so far
<lispy> so pretty good odds :)
ski has quit ["NMI"]
ski has joined #ocaml
srle has quit ["[BX] Size DOES matter"]
srle has joined #ocaml
pango_ has quit [Remote closed the connection]
pango has joined #ocaml
Revision17 has quit [Read error: 110 (Connection timed out)]
m3ga has joined #ocaml
zigong has quit ["using sirc version 2.211+KSIRC/1.3.12"]
m3ga has quit ["disappearing into the sunset"]
__DL__ has joined #ocaml
Skal has quit [Remote closed the connection]
vodka-goo has joined #ocaml
mattam has joined #ocaml
vodka-goo has quit ["Connection reset by by pear"]
dozer has joined #ocaml
<dozer> is the output of ocamlc a file containing ocaml bytecode, or native code?
<dylan> it's bytecode.
<dylan> ocamlopt produces native code
<dozer> cool
<dozer> I was looking at the bytecode spec this morning, and lots of it maps to java bytecode fairly cleanly
<dozer> but I've no feel for what the ocaml vm does, so don't know how much of that environment would need implementing in Java
bohanlon has quit ["It is sleepy time for my computer."]
<dozer> thx = will read
<flux__> even if it wouldn't work efficiently, an alternative implementation of ocaml vm would be nice?
<pango> one that supports efficient threading would probably be interesting for some projects
<flux__> I thought ocaml's theading was quite efficient already, or do you mean actual parallel threads, on multiple cpu's?
<pango> yes, with hyperthreading and dualcore, multiple CPUs (or approximations) are not so unusual
<pango> as they used to be
<flux__> I actually have one ht and one dual-cpu machine, and I would appreciate real parallelicity (sp?) too
<flux__> but I haven't actually had a requirement for top performance with ocaml yet.. atleast not one that would fixed by using those other cpu's.
Snark has joined #ocaml
<flux__> it would be nice, though.
<pango> doesn't mean the need doesn't exist, yes
<flux__> infact I have considered one project where that could be helpful
<flux__> but I'm expecting the best performance boost from writing the critical section in C, and in that case I could also thread the C-code in real threads
bohanlon has joined #ocaml
<pango> http://www.dcs.ed.ac.uk/home/mlj/ (not ocaml, but close call)
Snark has quit ["Leaving"]
bohanlon has quit ["It is sleepy time for my computer."]
Skal has joined #ocaml
mikeX has joined #ocaml
JKnecht_ is now known as JKnecht
bohanlon has joined #ocaml
er has joined #ocaml
<er> hi all
<er> is there some way to get ocaml to give me a more detailed report on an Out_of_memory exception?
<dozer> pango - looked at mlj before - it didn't appear to be too heavily maintained (things dated at 202)
<pango> er: run as bytecode using ocamlrun -b (or $OCAMLRUNPARAM="b") to get backtrace
<pango> there's also a patch floating around to get backtrace with native programs too...
bohanlon has quit ["It is sleepy time for my computer."]
pengo has quit ["Curious? Open binary with Qubero"]
<flux__> so, that means it's going to be in some official release some day?
<pango> there's probably a small runtime penalty, so I don't know
<dozer> thanks for all those links
vodka-goo has joined #ocaml
<flux__> the last url says it is neglible, and only related to creation/termination of threads
<flux__> (apparently some advances were made after the first version)
<dozer> I assume there's an ocaml module that can read / manipulate / save ocaml bytecode?
<vodka-goo> well not really.. at least not that I know
<vodka-goo> there is dynlink for dynamic loading of bytecode
<vodka-goo> but OCaml (written itself in OCaml) doesn't install its modules for generating/reading/executing/compiling bytecode
<dozer> ah ok - this is just a packaging / installation thing though? I could get these modules?
<vodka-goo> yes, I actually used them once
<dozer> hehe was it a life-affirming experience?
<vodka-goo> It was a short experience, mostly
<vodka-goo> I wanted to try designing a little language, and found it nice to compile it to caml intermediate language, then having caml compile it to bytecode (didn't success with nativecode)
<vodka-goo> it worked for a simple language with objects, but I stopped playing that game at this point
<vodka-goo> I'm waiting for other good reasons to build yet another language :)
<dozer> there is always a reason - it's the "good" part that's harder to find
<dozer> does the standard ocaml bytecode interpreter do anything more clever than just run the bytecode?
<dozer> like hotspot does clever madness
<vodka-goo> I don't think so -- althought I don't know what you mean ... what's hotspot ?
<dozer> oh sorry - the current generation of java VMs from sun are called hotspot. They execute machinecode that is "bytecode inspired" - doing all sorts of things like heavily inlining things, eliding out objects from existance and so on
<dozer> the actual run-time execution is equivalent to bytecode execution, but probably not very 1:1 with it
<flux__> so you're not talking about things like ocamljit?
<dozer> it started out life as a jit, and still does jitty things yes
<dozer> but it also profiles the running app and dynamically inlines/optimises the bits the CPU is hitting
bohanlon has joined #ocaml
<er> pango: I'm having problems running ocamlrun. do you know if there's a way to do it with ocamldebug?
<pango> dozer: I think the use of bytecode in ocaml is for portability, and platforms were native compilation is not (yet) supported
<er> pango: Fatal error: unknown C primitive `re_replacement_text' (when I run ocamlrun)
<pango> dozer: ocaml dev team is probably way to small to do the crazy funky things you're mentionning
<dozer> pango - of course - not sudgesting they should
<pango> unless it's so fun they decide to implement it, of course
<pango> but the idea is rather to keep things simple and manageable
<pango> dozer: where did you found bytecode instructions btw, http://caml.inria.fr/about/papers.html ?
bohanlon has quit ["It is sleepy time for my computer."]
<pango> that's probably the most up-to-date document, but the paper on the ZINC vm may give some ideas of the overall design choices
<dozer> ok - I'll digest this over the weekend - now back to my day job
dozer has left #ocaml []
cmeme has quit [Remote closed the connection]
cmeme has joined #ocaml
er has quit ["Leaving"]
bohanlon has joined #ocaml
bohanlon has quit [Client Quit]
Skal has quit [Remote closed the connection]
bohanlon has joined #ocaml
bohanlon has quit [Client Quit]
dozer has joined #ocaml
ppsmimou has quit ["Leaving"]
vodka-goo has quit ["Connection reset by by pear"]
zigong has joined #ocaml
zigong has quit [Remote closed the connection]
zigong has joined #ocaml
smimou has joined #ocaml
bohanlon has joined #ocaml
zigong has quit [SendQ exceeded]
zigong has joined #ocaml
zigong has quit [SendQ exceeded]
dozer has quit [Read error: 104 (Connection reset by peer)]
zigong has joined #ocaml
dozer has joined #ocaml
bohanlon has quit ["It is sleepy time for my computer."]
bohanlon has joined #ocaml
zigong has quit [SendQ exceeded]
zigong has joined #ocaml
pango has quit ["Leaving"]
pango has joined #ocaml
mikeX has quit [Read error: 110 (Connection timed out)]
Skal has joined #ocaml
Revision17 has joined #ocaml
Snark has joined #ocaml
bohanlon has left #ocaml []
zigong has quit ["using sirc version 2.211+KSIRC/1.3.12"]
mikeX has joined #ocaml
<mikeX> how would I write a printf wrapper that flushes stdout?
<mikeX> ocaml 3.08.3
<pango> # let printf_flush fmt = Printf.printf (fmt ^^ "%!") ;;
<pango> unless I didn't understand the question
<mikeX> hmm, I'm not sure what that does, what's that "%!"?
<pango> you can use %! in format to flush output
<mikeX> I didn't know that :), nice
<pango> see printf.mli
<mikeX> !: take no argument and flush the output.
<pango> right
<mikeX> I should have been more carefull
<mikeX> thanks pango
<pango> np
<mikeX> what about that ^^ operator, first time I see that too
<pango> it can be used to catenate printf formats
<pango> (because the first parameter of *printf are formats, not strings)
<pango> # Printf.printf ;;
<pango> - : ('a, out_channel, unit) format -> 'a = <fun>
<pango> # ( ^^ ) ;;
<pango> - : ('a, 'b, 'c, 'd) format4 ->
<pango> ('d, 'b, 'c, 'e) format4 -> ('a, 'b, 'c, 'e) format4
<pango> = <fun>
<mikeX> hmm, interesting
<mikeX> I have to say the format type confuses me quite a bit :/
<pango> I didn't try understanding it yet ;)
<mikeX> :)
<pango> let's just say that using plain strings as printf's first parameter wouldn't allow full compile-time type checking, which is mandated by ocaml
<mikeX> hmm, what about conditial printf? 'let vprintf fmt = if p.verbose then eprintf (fmt ^^ "%!") else () in' won't work with something other than string arguments
<pango> mmh that functional trick stops working in this imperative context...
<mikeX> :(
b0hanlon has joined #ocaml
_JusSx_ has joined #ocaml
b0hanlon is now known as bohanlon
<pango> both branches of an "if" must have the same type, so you'd need to define a function, that would take the fmt format, analyse it like *printf functions do, consume the additional parameters, but do nothing out of them...
<mikeX> probably out of my league then
<pango> unless someone sees a nicer solution...
Oatmeat|umn has quit [Remote closed the connection]
zigong has joined #ocaml
Bigb[a]ng is now known as Bigbang
Oatmeat|umn has joined #ocaml
Snark has quit ["Leaving"]
bohanlon has quit ["It is sleepy time for my computer."]
_JusSx_ has quit ["leaving"]
__DL__ has quit ["Bye Bye"]
gim has joined #ocaml
Bigbang is now known as Bigb[a]ng
bohanlon has joined #ocaml
bohanlon has left #ocaml []
tr00nd has joined #ocaml
bohanlon has joined #ocaml
zigong has quit ["using sirc version 2.211+KSIRC/1.3.12"]
telemakh0s has joined #ocaml
twobitsprite has quit [Read error: 104 (Connection reset by peer)]
vodka-goo has joined #ocaml
<dozer> yay! managed to subvert fjavac into generating the java version of HelloWorld
gim has quit []
smimou has quit ["bli"]
<dozer> I'm trying to transform [ w; x ; y ; z] into Op(w, Op(x, Op(y, z)))
<dozer> but can't work out how to write the recursive method
<dozer> presumably I need to do match on | [] and | h :: t
<dozer> ?
<mikeX> how about List.fold?
<dozer> awesom
<dozer> thx
<dozer> it's fold_right I need
<mikeX> :), there are equivalent functions for other modules such as Array and Hashtbl as well
<dozer> this is my 2nd day of functional programming - haven't quite groked the assumed knowledge yet
<mikeX> as most things it takes time and practice :)