<osa1>
aah no thanks, I don't think I need just another tool right now
<osa1>
I'll go with my "artificial identity function" method
<wmeyer>
Ok, but ocamldebug needs some love
<wmeyer>
I like ocamldebug, but probably in a presence of dwarf branch it's slowly fading
<ggole>
ocamlbuild can build toplevels fairly easily
<wmeyer>
:)
<ggole>
Make a foo.mltop with a list of the modules you want loaded, and ocamlbuild foo.top
eikke has joined #ocaml
<osa1>
is there a way to tell ocamldebug "add breakpoint to this function as soon as it's defined"
paolooo has quit [Quit: Page closed]
<pippijn>
what does "defined" mean?
ulfdoz has quit [Ping timeout: 260 seconds]
<ousado>
osa1: when loading dynamic libraries?
zzz_ has quit [Remote host closed the connection]
<osa1>
ousado: yes
<osa1>
pippijn: when a function definition is compiled and loaded
<ousado>
(sorry, I don't know)
ontologi1e has quit [Ping timeout: 256 seconds]
<wmeyer>
ousado: hello
<wmeyer>
pippijn: hello
<ousado>
wmeyer: hello there
<pippijn>
hi wmeyer
<pippijn>
(and I also don't know)
<ousado>
wmeyer: and have you written your first line of ocaml yet, for the extended WE (that I hope you have)?
<wmeyer>
Eeaster monday spent on reading Info nodes
<wmeyer>
ousado: extended WE, what is it?
<ousado>
well weekend + easter monday :)
<wmeyer>
ha:-) nope but I wrote some Coq
<ousado>
hm.. that's nice. I don't find the time to look into it
<wmeyer>
and I want to try Hongbo's Fan
<wmeyer>
and also extension_points branch
<wmeyer>
but so far improved my Gnus skills, it seems like that after 5 years of using it, I still know just basics, that's what is called steep learning curve!
<wmeyer>
Fan looks like the missing meta programming platform for OCaml
<ousado>
I only find people named honbo fan when googling that
<wmeyer>
(for these who are un-secure about "meta" word here, it's compile time meta programming)
<ousado>
ah fan - i've seen that
<wmeyer>
it's actually pretty cool
<wmeyer>
for embedding DSLs
<wmeyer>
waiting for a theorem prover based on Fan to arrive
<pippijn>
fan? I know a fan that is a language targeting JVM and .NET
<ousado>
the great intergration of metaprogramming made me prefer haxe over ocaml
<wmeyer>
Camlp[45] is not too bad
<wmeyer>
but I think Fan brings it to another level
ollehar1 has joined #ocaml
emmanuelux has joined #ocaml
* wmeyer
reading Emacs manual at his leisure
Snark has joined #ocaml
<ousado>
wmeyer: wow - thanks for that clarification, it looks like I should give Fan some attention ASAP
ollehar1 has quit [Ping timeout: 255 seconds]
<wmeyer>
definitely ousado
<wmeyer>
you are welcome
Neros has quit [Ping timeout: 255 seconds]
Neros has joined #ocaml
* wmeyer
reading now "Mind Performance Hacks"
eikke has quit [Ping timeout: 246 seconds]
<orbitz>
looks like i'm going to need to write this portion in C, ocaml binaries with core + async are a tad too big :(
<wmeyer>
orbitz: what's the exact problem?
<wmeyer>
and what kind of piece of code you have to rewrite in C?
<adrien>
pack I bet
<wmeyer>
yup, looking forward namespaces
<wmeyer>
Mind Performance Hacks wants me to learn Morse code.
<wmeyer>
(in 1h BTW)
lusory has quit [Quit: leaving]
<orbitz>
wmeyer: just this little program that reads from a pipe and writes to another one with a little bit ofprocessing inbetween. my ocaml bins are coming out around 8 megs with Core, and i'm running this on a VPS with low RAM
<orbitz>
it's a simple enough problem it will be kind of fun to write in C
<wmeyer>
why not to write a separate program without core, and use inter process communication for this
<companion_cube>
maybe Core is the problem? ;)
<wmeyer>
you could also, linke single .cmxo's needed for this
<orbitz>
Core is the problem, but I think i'd rather write C than ocaml without core :)
<companion_cube>
wow
<companion_cube>
you fanboy! :D
<orbitz>
hah
<orbitz>
no, this program is just simple enough that i don't think it's a big deal
<companion_cube>
the unix primitives of OCaml without cores are very close to those of C
<companion_cube>
but you still have algebraic types instead of int constants
<orbitz>
true
<wmeyer>
orbitz: and perhaps, to the process communication you have to allocate some memory for just buffers or messages
<wmeyer>
and that's when fun begins
<orbitz>
I can do it all in constant buffer size
<companion_cube>
ocaml lets you manage the buffers stuff
<companion_cube>
so it's not better nor worse
<companion_cube>
but you still get closures and typing ;)
<wmeyer>
companion_cube: but I think Marshal module helps a lot, and no allocation what's ever (apart from typing of course and closures :-) )
AdmWiggin is now known as tianon
<wmeyer>
what really winds up language abstraction level is gc
<companion_cube>
and closures
<wmeyer>
real closures are impossible without gc
<companion_cube>
and strong typing :D
<wmeyer>
here I agree in full :-)
<ggole>
Closures work fine without gc
<orbitz>
ok, you guys win
<ggole>
You just get more memory management work
<wmeyer>
ggole: ya :(
<companion_cube>
orbitz: but if you prefer segfaults to exceptions, you choice! :D
_andre has quit [Ping timeout: 240 seconds]
<orbitz>
nah no segfaults, as I said this program is really trivial
<wmeyer>
or corrupted memory mmmmmmmh
<orbitz>
anyone know linux well enough to say the easiest way to mimic 'tail' in a prgoram? Can I just read to EOF then select on the fd?
_andre has joined #ocaml
<pippijn>
orbitz: vim will delete the file before writing a new version of it
<orbitz>
pippijn: Hrm?
<pippijn>
so the fd will point at a previous version
<orbitz>
yes, i'm not using vim here
<adrien>
not exactly :P
<adrien>
1- write new file
<ggole>
orbitz: seek, not read
<adrien>
2- fsync
<adrien>
3- rename new file to actual name of the file
<ggole>
I assume you want the "-f" behaviour, not just the last few lines
<pippijn>
adrien: ok
<orbitz>
I want tail -f functionality to eb sepcific
Anarchos has joined #ocaml
<pippijn>
but I know that there is a time when the file doesn't exist
<orbitz>
but i also need to detect when the file is rewritten
<pippijn>
with vim
<adrien>
that's the only way to make sure you safely write a file (posix)
<pippijn>
so between 2 and 3, it will unlink the original
<adrien>
pippijn: there is _always_ a file with the name
<adrien>
no
<pippijn>
adrien: no
<ggole>
rename is atomic
<adrien>
but that's sure it's not the same file on the disk
<pippijn>
I have had many situations in which the file was not there, because vim was still working
<orbitz>
if you stat it every now and then will you see inode change?
<pippijn>
like when I save a file, move to another terminal and type "make"
<adrien>
If newpath already exists it will be atomically replaced (subject to a
<adrien>
few conditions; see ERRORS below), so that there is no point at which
<adrien>
another process attempting to access newpath will find it missing.
<adrien>
man 2 rename
<pippijn>
adrien: how do you explain that situation, then?
<adrien>
simple
<adrien>
I ask you for more details :-)
<orbitz>
in my case I have a file, I want to read it until EOF then wait for the file to be append to, or it gets replaced
<pippijn>
I don't know what else to say
<pippijn>
1) open file with vim
<pippijn>
2) work on it
<adrien>
you try to reproduce :P
<ggole>
It won't get replaced. You have a link to it.
<pippijn>
3) :w
<ousado>
orbitz: use inotify?
<pippijn>
4) switch to other terminal
<pippijn>
5) "make"
<ggole>
That link will live and point to the same thing until you close the fd, no matter what fluff people do with names.
<ggole>
You'll see if they write or truncate or whatever, but not a rename.
<adrien>
orbitz: and current versions of gnu tail use inotify on linux
Neros has quit [Ping timeout: 252 seconds]
<adrien>
pippijn: I can't believe you can trigger that by hand
<adrien>
there's something else at play
lusory has joined #ocaml
<ggole>
I guess you could open an fd and fiddle about with the name as well as the fd
<ggole>
But that seems like an invitation for subtle bugs.
* wmeyer
see spores of clouds coming from his oven. Cookin' time!
<adrien>
hmm, sounds like it's too late :P
darkf has quit [Quit: Leaving]
<mfp>
pippijn, adrien: that also happened to me. And strace tells me that vim (1) renames the file to whatever~, then creates the new file in-place, then deletes the backup
<mfp>
which sounds stupid when it could indeed rename atomically, but there must be some reason
<mfp>
most likely platform-specific one(s), e.g. I know that rename(2) was not atomic on OSX for a few releases
ulfdoz has joined #ocaml
<adrien>
hugh
<adrien>
but for vim
<adrien>
heh, I knew I had seen something like that but couldn't find again
groovy2shoes has quit [Quit: Computer has gone to sleep]
<Kakadu>
pippijn: hey
<pippijn>
hi
<wmeyer>
hi
<Kakadu>
pippijn: You have mentioned you want better ocamlbrowser, don't u?
<pippijn>
I don't know about ocamlbrowser, I was just joking about something I don't remember
<Kakadu>
)))))
<adrien>
hmm
<adrien>
(wrong channel :-) )
<Kakadu>
wmeyer: ggole: Many thanks that u have explained me my ocaml FFI mistakes. 1 hour of shame and I have become wiser :)
<wmeyer>
you are welcome, I hope now it all works
<pippijn>
shame?
<pippijn>
Kakadu: that is no shame
<Kakadu>
pippijn: I was thinking that I understand a little bit how GC works but they made me beleive that I don't :)
<pippijn>
I never feel ashamed to find that I don't know something
<wmeyer>
at any rate Kakadu it's a knowledge that needs to be known first to be known
Uvs has quit [Ping timeout: 245 seconds]
<pippijn>
in fact, I spent the past 2.5 weeks realising how much I suck at life
<pippijn>
sometimes that is not easy, but it is no shame
<companion_cube>
pippijn: what do you mean?
<Kakadu>
wmeyer: I have set on examinations related to JVM a couples of times and I was pretty sure that I understand something in VMs and GC
<pippijn>
I mean, I was shown by others that I am a lot worse at some things than I used to think
<Kakadu>
wmeyer: btw, you mentioned that OCaml GC is much better than well-known GCs. Where can I read more about that?
<wmeyer>
Kakadu: the best exercise is to write one, quickly in C. Apart from that the OCaml source code is very readable
<companion_cube>
Kakadu: it's better on one core
<companion_cube>
(well, it's very good on one core, let's say)
<wmeyer>
Kakadu: when you go through the basic ideas to the implementation, you will uncover many details even if in the end your GC will not be used
<companion_cube>
pippijn: you can always find people better than you at something, but you know, it might be that you only talk to very skilled, brilliant people
<companion_cube>
like the ones on this channel ;)
<pippijn>
companion_cube: actually
<pippijn>
it was a different kind of situation
<pippijn>
there was a free position
<pippijn>
I applied for it, thinking I'm the best, I'm so great, they must like me, they must accept me
<wmeyer>
pippijn: while I agree I suck on many things that other people do better, I feel also because maybe I like to just improve in other areas of life. Look at that, few months ago, I would not think i can listen to Chopin all the time, now I do it. Feeling that I suck means basically that I need urgently some improvement. In my case just needs systematic improvements.
<pippijn>
they didn't
<companion_cube>
pippijn: hiring is not necessarily a fair process
<pippijn>
but I didn't give up
<pippijn>
companion_cube: it wasn't exactly a normal hiring process
<pippijn>
because I got many chances to show what I can do
<wmeyer>
pippijn: I'd not be worried about it.
<pippijn>
spoiler: I got the position
<wmeyer>
sometimes it hits us ;)
<companion_cube>
maybe you shouldn't think that you're "the best", which is unlikely, but that you're very good? :)
<pippijn>
anyway, on the road to that, I was asked to do many things I thought I could
<pippijn>
and I did them
<pippijn>
and felt really good about the result
<companion_cube>
I mean, it's important to ackknowledge that some people can sometimes be better, it's just life
<companion_cube>
it does not mean you suck
<pippijn>
the first time, they felt it was very bad, I have no chance
Uvs has joined #ocaml
<pippijn>
the second time, they kind of considered giving me a chance, but still many things I am not good at
<wmeyer>
pippijn: I think you are pippijn, but I know equally good coders too
<pippijn>
I always got feedback
<wmeyer>
business rules in different way, not nesercially efficiency is important
<pippijn>
and the first time, I thought "ok, I can see where they are coming from, but it's not true"
<pippijn>
I thought "ok, no problem, I can be different, if they think that is better"
<pippijn>
so, I tried
<pippijn>
and I was better the second time, and the third, and the fourth, ...
<wmeyer>
pippijn: while it might be hurting, you should look at this: they are suckers not you :-)
<pippijn>
and the feedback stayed bad
<pippijn>
after 1 week, the feedback was not quite as bad anymore
<wmeyer>
pippijn: maybe you should just change the way you structure your CV
<pippijn>
after 1.5 weeks, I got the position, but with reservations
<pippijn>
now it's been 2.5 weeks, and I'm 1 week into the job
groovy2shoes has joined #ocaml
<wmeyer>
Ok maybe it was too tough to say that they are, but I'd say, don't remotely discard what they are saying: it's important
<pippijn>
and I slowly start to realise that they were right about me at first
<pippijn>
I'm not good enough, yet
<pippijn>
but I think they see the potential in me
<pippijn>
but I must change and improve very quickly
<Kakadu>
pippijn: Does your new job is connected somehow to functional programming?
<wmeyer>
pippijn: just remove your projects from your mind and do improve on the areas they want ;-)
<wmeyer>
(gentle advise)
<pippijn>
today, I heard one of them say "he's weak, I always feel we are bullying him. when does he turn into the strong one we need?"
<companion_cube>
pippijn: did they detail precise points they think you can improve?
<pippijn>
wmeyer: my projects are gone, I am totally concentrating on this now
<pippijn>
companion_cube: no
<companion_cube>
are you applying for a pro wrestler job ? :D
<pippijn>
and actually they are not even telling me much
<pippijn>
at the beginning, I just read their reviews that were actually not meant to be read by me
<companion_cube>
can you tell them they're not very constructive?
<pippijn>
no
<pippijn>
the thing is
<pippijn>
they know I'm not good enough
<companion_cube>
because telling you you're not good enough without saying why is just useless
<pippijn>
by now, I also know that
<pippijn>
they don't tell me this directly (most of the time)
<pippijn>
but I am still trying to show I'm good enough
<pippijn>
actually last saturday one of them said "it's ok, you just need some time, maybe in 6 months, you will be good enough"
<pippijn>
but today, I heard this again.. the impatient "when will he be the strong one?"
<companion_cube>
of course, especially if they don't tell you what to work on
<companion_cube>
-_-
<wmeyer>
the essence is: "good enough" <- see what it says: for them. Not for you, unfortunately they don't tell you what is the criteria of being "good"
<wmeyer>
I don't defend it, I just say, good enough is enough in most cases, worse is even better
<wmeyer>
don't care, you don't have to prove anything don't you pippijn ?
<companion_cube>
I wouldn't take very seriously criticism that doesn't back on anything
<pippijn>
I tried to prove I'm good enough
<wmeyer>
exactly
<pippijn>
but now I know I'm not
<pippijn>
so I need to improve
groovy2shoes has quit [Quit: Computer has gone to sleep]
<pippijn>
but I don't have much time
<companion_cube>
you know someone told you you are not, but without saying why or how
<adrien>
and what proves they're better? :P
<companion_cube>
that doesn't weight much as evidence that you're "not good enough"
<pippijn>
companion_cube: they told each other
<pippijn>
so I know
<companion_cube>
pippijn: so what?
<pippijn>
they didn't tell *me*, butI know
<Kakadu>
pippijn: Don't worry too much. Somebody have allowed u to show yourself. I can't say the same about myself.
<pippijn>
adrien: they are not
<pippijn>
but they need someone good
<adrien>
ah
<pippijn>
they used to have someone good enough
<pippijn>
but he left
<companion_cube>
but are they good at judging who's good?
<adrien>
so maybe they're not qualified to judge
<pippijn>
they are.. because they have comparisons
wwilly has joined #ocaml
<pippijn>
and they know what they need
<pippijn>
they know it pretty well
<pippijn>
they can't do it themselves, but they know what it is
<companion_cube>
what was the job about?
<pippijn>
and if I give them something that is not quite right, it's not good enough
<pippijn>
Kakadu: yes, I'm so lucky to get this chance
<adrien>
how likely is it the other guy was showing off?
<pippijn>
now I just can't screw it up
<companion_cube>
+1
<pippijn>
adrien: he's 15 years older and more experienced than me
<pippijn>
it's not likely
<wmeyer>
pippijn: most of companies out there, want a streamlined developer, not nesercaily creative but rather predictive that will not be outstanding. The only way they can tell you, you are too good, is to tell you you are not good enough, understand it?
<pippijn>
I'm a young boy trying to be a real man
<companion_cube>
pippijn: I hope that's not too intrusive, but I'd like to know about your cursus and what this job is about :)
<pippijn>
companion_cube: I can't tell you, sorry
ttamttam has joined #ocaml
ttamttam has quit [Remote host closed the connection]
<companion_cube>
ok ok, no pb ^^
ttamttam has joined #ocaml
<pippijn>
wmeyer: yes, I understand
<wmeyer>
pippijn: so apply for a job where you can be outstanding because it's needed
<pippijn>
no
<wmeyer>
startup, research? or any other well paid job, where you can flight with your code and ideas
<pippijn>
this job is the one in which I can grow
<wmeyer>
then ask them, what do they want from you
<pippijn>
it took me 2 weeks and 2 days to realise it
<pippijn>
no, 1 day
<pippijn>
I now know what to improve
<wmeyer>
but maybe it's not for you
<wmeyer>
it signals some problems
<pippijn>
wmeyer: yes, it signals a lot of problems, but I want to be the person they need
<wmeyer>
life is a search algorithm
<wmeyer>
s/algorithm/problem
<wmeyer>
but would you risk being unhappy for next few years?
<companion_cube>
pippijn: if you're young, don't worry, you have plenty of time
<pippijn>
wmeyer: yes
<companion_cube>
and there is no true one job
<pippijn>
no
<pippijn>
not years
<pippijn>
maybe half a year
<pippijn>
companion_cube: that is true
<wmeyer>
pippijn: you've created this vision of a perfect job
<pippijn>
wmeyer: indeed
<wmeyer>
you want it, right, more they tell you are not good, you want it even more
<companion_cube>
pippijn: may I ask how old are you?
<pippijn>
can you understand that I can not possibly give up this fight?
<pippijn>
companion_cube: 24
<companion_cube>
hey, you're younger than me! :D
<pippijn>
wmeyer: yes, right
* wmeyer
is an old fart.
<companion_cube>
so, you don't have to give up, but you don't have to take their opinion as universal truth on your abilities
<pippijn>
companion_cube: not universal
<Anarchos>
pippijn it took me 6 years to find my first job ...
<pippijn>
Anarchos: it took me 0 years to find my first job, as it was thrown at me
<adrien>
wmeyer: oh? you're one of those people who've known the pre-Internet world?
<pippijn>
just like my second job
<adrien>
tell us, how was that like?
<companion_cube>
wmeyer: do you still have teeth? :D
<pippijn>
guess why I think I'm so great?
<wmeyer>
pippijn: maybe I was strict to say all of it, but I worked with you, and I can say you are all time top nothch coder, one of the few I met (and I know some really amazing ones).
<pippijn>
because everybody keeps throwing jobs at me
<pippijn>
but I'm not as great as some people think
<wmeyer>
stop this pippijn ! I stopped carrying what people say some time ago.
<companion_cube>
what matters is you live up to your own expectations
<Anarchos>
adrien i knew the preinternet world :)
<pippijn>
companion_cube: I think I can expect more of myself
<companion_cube>
Anarchos: is that true that people would hunt mmamoths with pointed sticks?
<Anarchos>
companion_cube yes :)
<companion_cube>
wow
<Anarchos>
companion_cube but in pre-historic worl, not only pre-internet lol
* wmeyer
remembers going to caffee with bunch of floppy disks
<companion_cube>
aww, I forgot the <sarcasm> tag
<pippijn>
wmeyer: hah
<pippijn>
me too
<pippijn>
floppy disks were in my time, too
<companion_cube>
I did not program at this time
<pippijn>
5.25" at first, with an amiga (I think)
* Anarchos
remembers loading the OS with a floppy, then swap it for the floppy with the pascal compiler :)
<pippijn>
a blue screen with a command line
Kakadu has quit []
* wmeyer
remembers to receive white Kerniggan C book in 88 from his mom, back in a day when he had Atari 65 XE
* wmeyer
remembers swapping demos on floppies throuh snail mail and and coding in AsmOne on Amiga in 93
<pippijn>
wmeyer: I can't give up, even though so many things point in the other direction
<companion_cube>
that must be so cool to have computer savvy parents
<adrien>
you mean ones who don't phone asking you to fix their computer?
<pippijn>
they gave me the chance, and now I need to become the person they expect me to be
<pippijn>
because I want to be that person
<pippijn>
not because they want it
sgnb has quit [Remote host closed the connection]
<pippijn>
but they want it, so I will know whether I succeeded if they say so
<wmeyer>
pippijn: developing is not everything
<pippijn>
developing?
sgnb has joined #ocaml
<adrien>
he's not developing, he's becoming a ninja!
<wmeyer>
pippijn: what matters is sometimes communication, and if people just like you
<companion_cube>
adrien: exactly
<pippijn>
I know it's not everything
<pippijn>
but I am at a point in my life where I feel I need to change
<pippijn>
I can find hundreds of jobs that will gladly accept me the way I am
<wmeyer>
pippijn: write down on piece of paper
<companion_cube>
pippijn: maybe "improve" is a better aim than "change"?
<pippijn>
companion_cube: it is improvement
<companion_cube>
don't throw everything on a whim
<wmeyer>
1/ what you want to change 2/ why you want that job 3/ and how it will improve yourself
<companion_cube>
well, not "whim", but impulsion
<pippijn>
I've written that down
<pippijn>
in a little messy way
<pippijn>
and I'm not completely sure about everything on those 3 points, yet
<pippijn>
my thoughts are still a little messy
<companion_cube>
(I should stop using words I'm not totally sure of their meaning)
<wmeyer>
Ok, now vision: \o/ see how you get along with these people who told you are not good enough.
<wmeyer>
can you bear that?
<wmeyer>
it will be everyday?
<pippijn>
no
<pippijn>
not every day
<wmeyer>
they will not admit you are good enough until you will get down to their level
<wmeyer>
is it part time job pippijn ?
<pippijn>
actually
<pippijn>
I will have 1 or 2 more days here
<adrien>
companion_cube: no, do it but check on wordreference too :-)
<companion_cube>
adrien: I did, but afterwards :D
<adrien>
that's fine too ;-)
<pippijn>
then I go back to germany, and I will finish my masters, and do a little work for them, just small things
<companion_cube>
and as it happens, it was close but not exactly what I thought
<pippijn>
in 6 months, I will get a larger project, still small, but larger, over a few weeks
<wmeyer>
pippijn: so my advice: turn on classical music, and write some really strongly typed code.
<pippijn>
(that is, if these 6 months keep them pleased with me)
<pippijn>
it's kind of a future thing for me
<adrien>
hmm
<adrien>
watch out; working during your studies for a company you interned at isn't a good idea
<wmeyer>
pippijn: that's how i escaped my maze.
<ggole>
Sigh
<pippijn>
adrien: I'm not an intern
<ggole>
Code is always so ugly when you write it before understanding all the information you are going to need :(
<adrien>
pippijn: you've been doing that between study time but you're not an intern?
<wmeyer>
ggole: pippijn does it right at first time.
<pippijn>
adrien: my study is just writing a thesis, at this point
<pippijn>
no classes, no exams
<pippijn>
I've finished those
<ggole>
wmeyer: that's the pleasant way to do things
<companion_cube>
does that mean you hit the keyboard violently to type your code?
<pippijn>
I've had some tough tests these 2 weeks
<ggole>
It's not always easy to get to the point where you can do that though
<ggole>
And sometimes getting to that point requires writing the code.
<pippijn>
(at that job)
<adrien>
pippijn: ah, ok, that's good
<ggole>
Tough in a good way? Stretching yourself? Or just bad dumb stuff?
<wmeyer>
companion_cube: :D
<pippijn>
they made me extremely insecure
<adrien>
but what I said still applies ;-)
<pippijn>
and that insecurity is exactly something they don't want
<ggole>
:/
<companion_cube>
wmeyer: even better when you type in rythm with the music
<adrien>
pippijn: that team at work really sounds like a dream to take part in
<companion_cube>
so, they want someone who never doubts and goes forward without thinking? neat
<pippijn>
tomorrow will be my last chance to show them I'm good enough for now, and will be good enough in the somewhat-near (6 months) future
<pippijn>
for real
<pippijn>
companion_cube: no, but less doubts than I currently have
<wmeyer>
pippijn: pls, don't take it seriously, i know this reality quite well. Final words. Qed.
<companion_cube>
what kind of people is that -_-
<pippijn>
I started off very confident
<pippijn>
today I'm at the bottom
<wmeyer>
companion_cube: i like to type into Chopin Waltz #1
<ggole>
Leave?
<ggole>
It's never worth being around people like that.
<pippijn>
with the realisation of many things to improve
<companion_cube>
wmeyer: did you try Bach?
<companion_cube>
pippijn: take a look at what you already have
<companion_cube>
sure, there may always be room for improvement
<wmeyer>
companion_cube: bach is too massive ...
<companion_cube>
but you're already neat the top
<pippijn>
tomorrow is my chance to say "I am proud and strong, I am the guy you need, I am the one you want"
<companion_cube>
wmeyer: nah, take the fugues, it's very mathematical and fascinating
<pippijn>
not with words, but with actions and behaviour
<pippijn>
my last chance
<pippijn>
if I do it well, I can last 6 months out of sight, and they will give me the project then
<wmeyer>
companion_cube: oh yeah, actually I am new to classics, but it sounds great too
<wmeyer>
(still love Chopin)
<pippijn>
if I don't, and those 6 months will develop more doubts, they might just kick me out
<companion_cube>
wmeyer: oh. If you want some things to try, try Mahler's 1st symphony, Tchaikovsky's third, and some Dvorak
<companion_cube>
Dvorak is awesome (very nice symphonies)
<pippijn>
these are some really strong people, and usually I just look strong because others are weaker than me
<pippijn>
now I am weak, and I need to become stronger
<wmeyer>
companion_cube: I think Chopin's music resemembles my mind - a bit messy and creative. Bach music is more like pippijn, methodic and precise :-)
<pippijn>
so yes, I want to be there
<wmeyer>
companion_cube: thanks! I'll try all of them.
<pippijn>
I want to be the weakest in the group, so that I can grow fast and soon no longer be the weakest
<pippijn>
I am nowhere near the top
<wmeyer>
pippijn: you have to take them for drinks first
<wmeyer>
that will solve the problem.
<pippijn>
I have
<pippijn>
it helped
<pippijn>
a lot, actually
<wmeyer>
it always helps
<wmeyer>
then repeeat
<pippijn>
but it doesn't remove the need for improvement
<wmeyer>
re-itarate and do it again until they will follow you
<companion_cube>
wmeyer: oh, and if you like the piano, try Rachmaninov
<pippijn>
I can't just keep feeding them drinks..
<wmeyer>
Y?
<pippijn>
I don't have money for that ;)
<companion_cube>
it's really really beautiful romantic period
<pippijn>
and I need to improve
smondet has quit [Remote host closed the connection]
<wmeyer>
pippijn: take them to the rollercoaster after drinks.
<pippijn>
wmeyer: I've done a lot of that kind of things
<wmeyer>
pippijn: give them all chocolates
<pippijn>
it's getting boring, I need to start doing real things
<wmeyer>
and flowers
<wmeyer>
and then take them to church
<companion_cube>
and chocolates!
<pippijn>
wmeyer: trust me, I've done enough of that
<wmeyer>
companion_cube: Rachmaninov is actually very nice, but as a background
<pippijn>
I like rachmaninov
<pippijn>
Prelude in G minor, op. 23 no. 5
<wmeyer>
pippijn: organise coding exercise and let them win.
<pippijn>
:)
<wmeyer>
(after you given them a chocolate)
wwilly has quit [Remote host closed the connection]
<adrien>
getting rid of people with arsenic is cheaper than doing it with alcohol, fat and sugar
<adrien>
that takes *decades* for them to die
<companion_cube>
:)
<adrien>
well, alcohol can be faster than that actually
<companion_cube>
sounds like you've already tried
<adrien>
weren't we supposed to eat together one of these days btw?
<companion_cube>
errrr... let me check my agenda! :D
BiDOrD_ has joined #ocaml
smondet has joined #ocaml
* wmeyer
inviting for a British dinner and Camlrs
BiDOrD has quit [Ping timeout: 258 seconds]
<wmeyer>
s/and/any
<wmeyer>
pippijn: when are you in Europe?
<pippijn>
thursday
<wmeyer>
want to visit cold britain?
<pippijn>
I'll think about that in a few weeks
<pippijn>
my professor is not happy about my absence, at all
<wmeyer>
pippijn: Ok, just let me know, and we will organise, beer, nachos, and fish & chips
<wmeyer>
yes we had some, i admit enjoyed this ;-)
<Leonidas>
Can I somehow use an operator defined in a Module without having to open it?
<adrien>
you can write Foo.(+)
<wmeyer>
or do local let
<Leonidas>
ah, that's what I was looking for thanks!
<pippijn>
but not as operator
<pippijn>
Foo.(+) operand1 operand2
<Leonidas>
is there a way to selectively open stuff?
<wmeyer>
you can always do: [let (+) = Foo.(+)] to bring into scope
<pippijn>
Leonidas: let (+) = Foo.(+)
<thelema>
Foo.(x + y)
<pippijn>
yeah, but Foo.(...) opens the whole Foo
<bernardofpc>
companion> wmeyer: did you try Bach? -> in a parallel note, I started hearing Andras Schiff's version of the Well-tempered clavier since he played in Chicago, and in fact the 4 CDs are almost permanently playing in my house
<Leonidas>
pippijn: I was hoping for something like "from Pipe open (|>)". You see, Python-damaged :)
<wmeyer>
you can do even: [let (+), (*) = Foo.((+), (*));;]
<ggole>
With a few more spaces around the * :)
<wmeyer>
oups. ( * )
* ggole
always gets bitten by that
<pippijn>
Leonidas: it's basically the same
* Leonidas
goes for local let, good enough.
<adrien>
Leonidas: that would imply computing the dependencies probably
<wmeyer>
bernardofpc: thanks for the pointer. Yes I consider Bach to listen in the background, currently just using spotify to cherry pick.
<adrien>
imagine the module you're selectively opening brings a function which uses a type that you're not pulling in and that shadows one that is already in scope
<bernardofpc>
I strongly suggest the WTC from Schiff's
<adrien>
what should be the behaviour?
<bernardofpc>
listen the whole thing once, then take a 1-week break, then listen again
<bernardofpc>
in the second time, you should start singing along with the melodies
<bernardofpc>
(not all, but most)
<bernardofpc>
(and if you can do that in the first time you listen, that's even better)
<thelema>
adrien: it can't shadow one in scope, as that type is already available through module prefix
<wmeyer>
bernardofpc: just added to the playlist
<bernardofpc>
something like a Glenn Gould playing style
<bernardofpc>
;-)
<adrien>
thelema: my point was that a selective open would either error out when something you're pulling doesn't also have its dependencies pulled, or it'd pull them in automatically
bernardofpc has quit [Quit: leaving]
eikke has joined #ocaml
<adrien>
if it pulls automatically, then it gets very difficult to use; shadowing is already annoying enough at times that making it automatic would be a huge annoyance
<wmeyer>
hello eikke
<adrien>
and you can't skip the "dependencies" to get something readable (what if your fonction was f : t -> M.u -> t)
bernardofpc has joined #ocaml
<thelema>
adrien: the function would really be `Foo.f : Foo.t -> M.u -> Foo.t`, no?
<adrien>
I meant with t in M
<adrien>
but that you've selectively pulled
<thelema>
ok, Foo.f : M.t -> M.u -> M.t
<adrien>
then it's not opened anymore :P
bernardofpc has quit [Client Quit]
<adrien>
(my whole point was that there was no simple solution)
bernardofpc has joined #ocaml
<thelema>
the types are globally reachable, and aren't opened at all.
<adrien>
in the error messages, they are
<adrien>
and when you write them
adahlberg has joined #ocaml
adahlberg has quit [Remote host closed the connection]
adahlberg has joined #ocaml
adahlberg has quit [Read error: Connection reset by peer]
adahlberg has joined #ocaml
<Leonidas>
what is the precision of the ocaml int type?
<Leonidas>
31 bits, always?
<thelema>
Leonidas: 31 or 63 bits
<thelema>
depends on platform
<Leonidas>
ah. so if I want to always have a 64 bot type I need Int64
<adrien>
yes
<thelema>
yup
<Leonidas>
is there a way how to return an Int64 from the C API?
<Leonidas>
because I trying to return a size_t and well, that might be 64 bits.
<thelema>
yes, make a new block with tag Custom_tag and put the value into it.
<thelema>
although if your size_t isn't 64-bits long, bleh
<Leonidas>
and declare that to be an int64?
<ousado>
wmeyer, pippijn: you've worked together? on some public project?
yroeht has quit [Ping timeout: 252 seconds]
<wmeyer>
ousado: we had a pleasure to work on some hobby compiler project, it was mostly pippijn work on C++ frontend in Caml and me on supporting facilities and some ideas
<Leonidas>
wouldn't I need to match the block layout of int64 or is the block layout just a 64 bit integer?
<ousado>
wmeyer: a C++ compiler - wow
<wmeyer>
in64 is boxed means that, you have a block, tagged as int64 and inside this block a field 64 bit wide that represents the concrete value. Normally the Caml value will be a pointer to this block.
tane has quit [Quit: Verlassend]
<thelema>
Leonidas: the block layout is a header plus contents. The header just has size=1 and tag=Custom_tag, the contents is exactly the int64
<Leonidas>
wmeyer: ok, great, thanks!
<Leonidas>
perfect
<Leonidas>
the actual type is not really size_t, it is __LA_INT64_T which I suppose is always 64 bits
<wmeyer>
Leonidas: przyjemność po mojej stronie
<Leonidas>
wmeyer: :D
<Kakadu>
wmeyer: polish?
<Leonidas>
Kakadu: yup.
ousado has quit [Ping timeout: 258 seconds]
ousado has joined #ocaml
<Leonidas>
oh, I can just use copy_int64 which seems to map to int64 directly. that's even easier.
<Leonidas>
or caml_copy_int64
<Leonidas>
found a minor bug in the documentation of ocaml
rwmjones has quit [Ping timeout: 256 seconds]
<adrien>
I think copy_int64 was a previous name
<adrien>
still usable if you include something like caml/compatibility.h (please don't)
<adrien>
also, caml_copy_* functions allocate memory; that means that it's not compatible with "int", it's really Int64
<Leonidas>
my ocaml installation seems to include caml/compatibility.h, I wonder why.
<Leonidas>
or maybe not, doesn't matter.
<Leonidas>
adrien: well, I only pass around these values from a C function that returns int64 to a function which takes int64. I could also create a custom type that can't be accessed from ocaml code directly, but I though it might be handy to peek into the value.
<Leonidas>
one is file size, the other two are uid and gid
<Leonidas>
(TIL: i didn't know that uids can be 64 bit, but it seems they can)
<adrien>
Leonidas: it probably has compatibility.h but don't use it ;-)
<Leonidas>
adrien: understood. I wasn't planning to :)
<Leonidas>
I'm quite lucky with the software I use in my thesis, all of them have active communities/authors so reporting bugs or asking more or less stupid questions is possible.
ttamttam has left #ocaml []
<Leonidas>
wmeyer: dzięki bardzo :)
<wmeyer>
Leonidas: I think developers reacted very quickly :-)
<wmeyer>
Leonidas: Proszę :-)
<Leonidas>
yeah, the developers really seem to be eager to fix bugs :D
<ousado>
O_O
adahlberg has quit [Remote host closed the connection]
<ousado>
wmeyer: is that you or a coincidence?
Snark has quit [Quit: Quitte]
ohama has quit [Ping timeout: 258 seconds]
ohama has joined #ocaml
ggole has quit []
<wmeyer>
ousado: it was actually me :-)
ttamttam has joined #ocaml
ttamttam has left #ocaml []
jonafan_ is now known as jonafan
tianon has quit [Quit: "I'm a very important man. I've got a tower!"]
adahlberg has joined #ocaml
gnuvince has quit [Remote host closed the connection]
<thizanne>
oriba: found your answer concerning type-level integer addition ?
Uvs has quit [Quit: Uvs]
Kakadu has quit []
_andre has quit [Quit: leaving]
<orbitz>
shucks, I like the ocaml-re interface, but it can't do replacements
<oriba>
thizanne, it was not my question
eikke has quit [Ping timeout: 264 seconds]
groovy2shoes has joined #ocaml
<ousado>
wmeyer: I see :) I didn't know you're a committer
Neros_ has quit [Ping timeout: 252 seconds]
adahlberg has quit [Remote host closed the connection]
mattrepl has joined #ocaml
yroeht has joined #ocaml
pngl has joined #ocaml
<pngl>
I'm trying to write a function in CPS style which sometimes returns one of its continuations for later calling and I keep getting this type error: This expression has type 'a but an expression was expected of type 'b * (unit -> 'a) The type variable 'a occurs inside 'b * (unit -> 'a)
<rks>
pngl: -rectypes maybe?
<rks>
(probably not though)
<rks>
(sorry, tired)
smondet has quit [Read error: Operation timed out]
tootooroo has quit [Quit: brb]
tootooroo has joined #ocaml
ulfdoz has quit [Ping timeout: 276 seconds]
Anarchos has quit [Quit: Vision[0.9.7-H-090423]: i've been blurred!]