<dark_light>
if someone asks me, i would say that some off-topic is a good thing to make the channel more pleasant, but shining have the right to don't like off-topic..
<youknow365>
dark_light: for an in active channel *any* topic is better then silence
shans has quit [Connection reset by peer]
<youknow365>
in a c or c++ or php ........there something off topic every 10 mins.......were humans
<dark_light>
well, there are theories and theories.. :)
shans_home has joined #ocaml
jcreigh has quit ["Cuius rei demonstrationem mirabilem sane detexi. Hanc marginis exiguitas non caperet."]
<youknow365>
dang i cant figure out how to do this properly.......
<youknow365>
dark_light: would a thread be better
<youknow365>
or a select statement ?
<youknow365>
i mean select function
<dark_light>
well, thread is better, select is easier, and that equeue seems to be easier to use than plain select
<dark_light>
that's what i think
<youknow365>
dark_light: will there be any major performance loss in using a select or equeue
<dark_light>
loss from what, from thread approach? i think no
<dark_light>
youknow365, the "infinite loop" isn't so time-consuming as you might think because the OS must know how to handle two processes doing things
<pango_>
why don't you ask if there will be any major performance loss using threads ? threads aren't for free either
<youknow365>
an infinite loops eeems like complete pc ownage ;)
<pango_>
select is blocking if there's nothing ready (for the timeout you specify, or forever if you don't specify a timeout)
<pango_>
so what's the problem ? you've used an infinite loop in every GUI program you've ever written ;)
<dark_light>
pango_, really? :o :o no, there must be some gui approach that uses threads instead.. :)
<pango_>
I don't think one thread per event type would be that efficient, but who knows
<youknow365>
pango_: that is true gtk does have a main loop
<youknow365>
pango_: do you have any examples on how to use this eqqueue i am tyring to to integrate it in now but i am really new to this
<youknow365>
not to programming but ocaml
<pango_>
no, I haven't used it yet
<youknow365>
hmnmmmmm
<youknow365>
so whats hte difference between select and this esqusue thing ?
<dark_light>
in performance i think there is little. but abstraction is always good
<youknow365>
what do you mean ?
<youknow365>
do i need this or will select work better?
<youknow365>
do you have to put any sleep's in your loop ?
<pango_>
you register callbacks for the different things you want to monitor events from (not necessarily file descriptors), and the framework takes cares of calling the callbacks when they happen
<youknow365>
well for my litttle situation would just select do the trick ?
<pango_>
if you program also has a gtk GUI, you'll also have to handle events coming that way
<dark_light>
youknow365, i mean yu don't need it, but you might want it
<youknow365>
`since i am faily new to this i want it simple as possible
<youknow365>
i dont see how i am going to have it do a recv............if i make a small program to recive something from another client it just hangs until its sent
<youknow365>
how will it accept reciving stuff and also im
<pango_>
I think you should read the equeue's introduction about event driven programming, whether you're going for equeue or not, it should give you some ideas of what need to be going on
<dark_light>
if you take some time to study equeue, you might find it simpler (or not). equeue abstracts one thing and abstraction makes things more simple
<pango_>
btw, last chapter is named "Chapter 7. Using Unixqueue together with Tcl (labltk) and Glib (lablgtk)" which also looks like what you'll need
<youknow365>
i mean but for what i am doing is it going to be that hard of a task some have sending and reciving ims at the same time ?
<youknow365>
im not writing a network engine to a game
<pango_>
from what I've seen so far, networking code *is* tricky
<youknow365>
well ic an make 2 programs one for sending ims and one for reciing very simple buuuuut i need it in the same program working at the same time
<dark_light>
the "two programs, one for sending and another for receiving" approach is the fork, that you might have problems to intercomunicate them
<pango_>
or threads
<pango_>
why will need to cooperate, too
<pango_>
s/why/which/
<youknow365>
i dont want 2 programs just one
<youknow365>
i dont think its needed by any measure
<youknow365>
i vfeel a simple IM can be accomplished very easily :P
<dark_light>
i feel that in one point you have to deny the simplicity to have a working code :P
<youknow365>
lol
<youknow365>
well o well but should i do .......maybe i should start withj select and fully understand that first
<youknow365>
once i get passed this i feel it should be very easy
<youknow365>
then its just making a gui
<youknow365>
setitng events to updatethe gui ........the IM window
<youknow365>
and using SImpleXML parser for all the xml stuff
<dark_light>
youknow365, yeah. but.. well, reading that documentation would help you understand that first
<dark_light>
youknow365, and, good luck:)
<youknow365>
im looking at a rough night
<youknow365>
i need to atleast get this concurrent sned and recive done tonight
<dark_light>
youknow365, i have a plain telnet-like server to write and i will do it using a C-like code that uses basically select.. and it is very sad for me, that moved to ocaml to avoid the low-level of C
<dark_light>
youknow365, i tried Unix.establish_server, but it create servers using fork, and i don't want fork..
<dark_light>
youknow365, yeah:)
<youknow365>
:)
<youknow365>
this stuff isnt kids play
shekmalhen has joined #ocaml
<youknow365>
wont recv hang my program until it recives something ?
<dark_light>
youknow365, exactly
<dark_light>
youknow365, and that's why you will need or select, or threads, or fork..
<shekmalhen>
hehe
<shekmalhen>
you won't escape that, youknow365
<youknow365>
how does select fix the problem ......does it do something similiar to a thread or fork ?
<shekmalhen>
youknow365, no... but if you have many sockets, it might be better than using threads
<youknow365>
i thoguht select jus polls something
<shekmalhen>
it does just that
<youknow365>
i have one socket and one port open
<youknow365>
but wont my program still hang from the recv
<shekmalhen>
sure it will
<youknow365>
lol
<youknow365>
if it will still hang even using select what can i do
<shekmalhen>
subprocesses or threads. don't mix them, but you'll need one of them.
<shekmalhen>
it like work... you can't escape this reality
<dark_light>
youknow365, if select says: "X is about to send you a stuff", you can read without fear because it will send you that stuff
<pango_>
youknow365: select or poll will tell what descriptors have some data ready (or some space to write some)
<pango_>
youknow365: so they can be used to avoid calling send or recv in the condition where they block
Carillon_ has quit [Connection timed out]
<youknow365>
pango_: so it never really calls recv or send ?
<pango_>
mmh ? you call them when you know they won't block
pango__ has joined #ocaml
pango__ is now known as pango
<youknow365>
pango: im still confused man ..........i dont understand how this works ..........if select calls recv it will hang it until theres a response
<pango>
select will tell you on what descriptors it is safe to read, or write, without blocking
<youknow365>
pango: beare with me can you expalin a little more.....moreo r less the aspect of the it where it doesnt hang the program
<pango>
if your case I don't think blocking on write is a problem (it may only happen when you write a message too big to be sent at once), so let's only talk about blocking on read...
Grincheux has joined #ocaml
<pango>
recv blocks if there's nothing available to read (until something arrives); So to avoid blocking, you have to know if something is ready for reading _before_ attempting to use recv
<pango>
that's where select gets in
<youknow365>
how does it know something is there read to read?
yokko has joined #ocaml
<pango>
because it's implemented in the kernel, and that the kernel knows those things ;)
<yokko>
lo
<youknow365>
i mean you would think it would have to run revc to see if anything is there
<pango>
each sockets has associated buffers, it just checks if they're empty (roughly)
yokko is now known as yakko
<youknow365>
pango: so when it sees there something there it then executes recv ?
<Grincheux>
no
<pango>
no, select just tells you, from the list of selectors you gave it, which ones you can use without blocking
<yakko>
u talking about select ?
<Grincheux>
it tells you that you can do it
<youknow365>
so it tells me something is ther
<youknow365>
e
<Grincheux>
yes
<youknow365>
then i can have it set to run recv
<youknow365>
and display whats there
<yakko>
waiting until one or more of the file descriptors become "ready"
<yakko>
for some class of I/O operation
<yakko>
this is what select do (man inside)
<youknow365>
grrr u confuised me
<pango>
youknow365: it's still up to the application to call recv (or read,...) afterward
<youknow365>
so select notifies the app that stuff is there?
<Grincheux>
yes
<youknow365>
and then i can have it automaticaly jus read the stuff once select notifies stis waiting
<pango>
yes, and be sure it cannot block
<yakko>
select tells you "it's ok to do what you what on the descriptor", it's up to you to do it after
pango_ has quit [Remote closed the connection]
* yakko
thinks the DESCRIPTION of select in the man is quite clear...
<youknow365>
whats this blocking and noon blocking can someone explain that
<yakko>
ever tried to read and write something at the same time ?
<pango>
youknow365: as in "does it immediately return a value"
<pango>
(and control)
<yakko>
oups sorry, this blocking ^^
<yakko>
youknow365: really you should read the man of select, everything you have asked is answered in the first lines
<youknow365>
i mean what does select do try to read from it and when its blocked it lets you know
<youknow365>
thats my only confusion
<youknow365>
how does it know theres a message in there
<pango>
because it has access to kernel internals ;)
<yakko>
when you call select, it block your soft until something is available
<yakko>
(there is way to make it returns immediatly)
<yakko>
youknow365: but why do you care about how select is working anyway ! just use it
<youknow365>
yakko: you jus confused me some more
<youknow365>
to use select i need ot know how it works
<youknow365>
how does ncurses work on windows then?
<yakko>
samll
<yakko>
small*
<youknow365>
it must be static or something
<yakko>
no idea
<yakko>
youknow365: no, you can distribute the lib with your soft
<zmdkrbou>
does ncurses even works on windows ?
<Grincheux>
there are libraries on windows too...
<yakko>
google ncurses win32 ?
<shekmalhen>
you can have a library that have the same functions than curses, but uses windows' approach to screen manipulation
<youknow365>
yakko: i jus said lynx on windows ;)
<yakko>
beurkkk
<youknow365>
for windows i would make it static
<youknow365>
it can't be that big
<yakko>
why ?
<youknow365>
or include the ncurses lib and drop it in the directory
<yakko>
just put the dll in the right place and it's the same
<youknow365>
software dir
<youknow365>
that too :P
<youknow365>
but lynx comes in a single exe form too
<youknow365>
im sure they have it static there
mpc has quit [Read error: 60 (Operation timed out)]
<yakko>
or maybe you have a ncurselike.dll somewhere
<yakko>
as I already said 3 times...
<youknow365>
i assure ytou i don't ;)
<youknow365>
i used to use lynx on fresh installs of windows
<youknow365>
nad on there
<youknow365>
nada
<yakko>
ncurselike: the name is maybe (surely) not ncurse on krosoft platfrom
<yakko>
I'm sure they have the same kind of the lib
<youknow365>
lol
<youknow365>
unless it comes by default .......which i dont think it doe no :P
<Grincheux>
what the point of this discussion?
<yakko>
be sure and we'll take about it
<yakko>
Grincheux: none
<Grincheux>
good to know
Morphous has joined #ocaml
<youknow365>
lol you had ot get the last word ;)
Morphous has quit [Read error: 104 (Connection reset by peer)]
<youknow365>
i wish there was an ocaml example of Select floating around
<yakko>
man select, look at the end, and adapt to the ocaml syntax
<youknow365>
yakko: easy for you tooo say
* yakko
cries in way "why people never read the docs"
<yakko>
youknow365: that's how I learn how to use it
<yakko>
+ed
<youknow365>
lets see i odnt even really know how to use sleect or what it really is to much......i dont know the ocaml syntax to welll......i have wrriten a small tcp thing in it and thats it .......3 against 1
<youknow365>
i feel sorry for ocaml noobs like myself
<Grincheux>
look for "Here is the improved program:"
<youknow365>
when they say popeline do they mean socket ?
<Grincheux>
look for "Here is the improved program:" (bis)
<zmdkrbou>
youknow365: Unix.select is very easy to use, you give it the descriptors (as ocaml channels) that you want to monitor, and then you get the lists of ready ones
<youknow365>
i will try to get something rigged up
<zmdkrbou>
(or maybe it works on fd, not channels)
<youknow365>
im about ot go program on my laptop though desktop uncomfortable
<youknow365>
will it matter if i program on windows ?
<youknow365>
in ocaml
<Grincheux>
windows sucks, erase it
<yakko>
same here, but Unix while not be there :)
<zmdkrbou>
youknow365: example : you want to read from a socket s, but you don't want to block, then you do "let l,_,_ = Unix.select [s] [] [] 0.0" and after that "if l = [] then (somethinh else) else (get data from the socket)"
<yakko>
youknow365: "how to use select unix" in google has nice lnks
<yakko>
lunch time here, see you later
<youknow365>
lunch time lol its like 11 pm over here
<yakko>
it's 12:45 in japan, sorry
<zmdkrbou>
(and here ...)
<youknow365>
what part of japan you live in ?
<Grincheux>
oak ridge
<youknow365>
i stayed in okinawa for 2 years
mpc has joined #ocaml
<Grincheux>
i stayed in bignicourt for about 18 years
<Grincheux>
you're good at grep'ing with your eyes
<zmdkrbou>
:D
<youknow365>
Grincheux: only hting i am confused at is this
<youknow365>
why doesnt select hang the program
<zmdkrbou>
graaaaahhhh
<youknow365>
if i do a recv it will wait and hang until data is there
<youknow365>
why doesnt select hang and wait till data is there to be used
<zmdkrbou>
youknow365: we told you ONE THOUSAND TIMES THAT SELECT IS USED TO AVOID BLOCKING ON I/O !!!
<Grincheux>
please read the manual
<youknow365>
zmdkrbou: i dont understand that :(
<youknow365>
avoid blocking on I/O
<Grincheux>
you should consider reading a book on unix programming
<youknow365>
i should
<youknow365>
but right now i jus need to get this to work
<youknow365>
last thing
<youknow365>
once i get this im good
<Grincheux>
you won't get it to work if you don't take time reading the manual
<youknow365>
have sening and recing info from server done all the rest is just parsing and gui events
<zmdkrbou>
youknow365: ok, let's put it simply : you want to buy an apple, but the shop guy is a psycho, so that he will keep you in the shop till there's an apple ... so select is what you do by lookinh through the window to see if there are apples in the shop, ok ?
<youknow365>
ok made sense
<Grincheux>
yeah and then you can do something before an apple arrives, instead of being stuck in the shop
<youknow365>
but while select is looking through the window wouldnt that hang the rest of the program
<Grincheux>
you just look at the window every one hour for instance
<Grincheux>
you didn't read the manual
<Grincheux>
timeout is an upper bound on the amount of time elapsed before select() returns. It may be zero,
<Grincheux>
causing select() to return immediately. (This is useful for polling.) If timeout is NULL (no time-
<Grincheux>
out), select() can block indefinitely.
<youknow365>
this is IM so immidiate would be beeded right ?
<youknow365>
needed*
<Grincheux>
depending on the timeout, you give a short or long look in the window
<youknow365>
but hwo would it keep looking ?
<youknow365>
with a loop ?
<zmdkrbou>
youknow365: yes, im stuff works fine with a time-out of 0s
<Grincheux>
for instance, depends what you need to do in the meantime
<youknow365>
but how would it keep looking or stay looking
<youknow365>
wouldnt it looking hang your program
<Grincheux>
while (select does not say there is an apple) { go on erasing windows for 1 hour } enter the shop and get the apple
<zmdkrbou>
you use a loop, and in the loop, you do select => if there's nothing on the input socket, you do every_thing_else_you_need()
<youknow365>
zmdkrbou: lol but for im man it would need to be a check every nanosecond
<zmdkrbou>
not nanoseconds, no
<zmdkrbou>
or you got a damn good computer and connection
<youknow365>
well 1 seconds would be to long for it not to be checking
<zmdkrbou>
yes
<Grincheux>
youknow365: checking takes much more than a nanosecond
<Grincheux>
say 1 microsecond
<youknow365>
well how often would it check
<youknow365>
or should it check for an im client
<Grincheux>
if you really need fine granularity, 1ms is probably good
<zmdkrbou>
you don't say explicitely how many times in one second you check
<Grincheux>
for most application are fine with 10 or 100ms
<youknow365>
so how could you do other sutff like edit your buddy list your a another gui event if its checking
<Grincheux>
it's not checking
<Grincheux>
YOU check
<youknow365>
lol what do you mean you check
<Grincheux>
it won't check if YOU don't call select
<youknow365>
lol
<youknow365>
so i have to have a gui event call the select function to check
<Grincheux>
everytime you call select, it check ONCE. if you want to check later, you'll have to call SELECT again
<youknow365>
for new ims
<youknow365>
lol
<youknow365>
wtf
<Grincheux>
yes
<youknow365>
whats on earth kind of im client would operate that way
<Grincheux>
maybe all of them ?
<youknow365>
when im on gaim
<youknow365>
i dont have to clikc REFREH im window for new ims
<zmdkrbou>
omg
<youknow365>
thats what it sounded like to me
* zmdkrbou
hesitates between laugh and cry
<youknow365>
zmdkrbou: try both
<Grincheux>
or leave
<youknow365>
yes slay the noob
<youknow365>
CRICIFY me
<zmdkrbou>
Grincheux: prout you
<youknow365>
crucify
<Grincheux>
you miss way too much knowledge of basic programming to write an IM
<youknow365>
its just a hard concept to grasp
<Grincheux>
you should forget about it
<youknow365>
Grincheux: i understand everything dude
<youknow365>
but listen to what you saiod
<youknow365>
YOU CALL THE SELECT
<zmdkrbou>
youknow365: YOU == the programmer
<zmdkrbou>
NOT THE FUCKIN' USER !!
<youknow365>
that makes me think i would manually have to have some way of doing a select through the program
<youknow365>
zmdkrbou: ok more like it
<youknow365>
thats what i thought
<youknow365>
but he made it seem like the user would
<Grincheux>
crap...
<zmdkrbou>
youknow365: gui toolkits have functions to call function every n seconds
<youknow365>
so lets say i had it check ever 2 ms
<zmdkrbou>
yes
<youknow365>
the gui programs to call the function
<zmdkrbou>
good idea
<youknow365>
if the user was to clikc edit buddy list
<Grincheux>
(2ms is way to often for an IM, 0.1s is way enough)
<youknow365>
it would just wait until it done checking then open the gui dialog for buddy list chnage or whatever it would be then continue with checking for new messages ?
<youknow365>
how do gui frameworks accomplish that also ........call a function ever n seconds ?
<zmdkrbou>
you won't miss any event : if the function can't be called in time, it's called a bit later
<zmdkrbou>
why do you wonder ...
<youknow365>
and a bit you are talking miliseconds right ?
<Grincheux>
less
<youknow365>
i mean do they uyse a loop to achieve that or what
<youknow365>
is this professional
<youknow365>
seems like a ghetto way of doing it
<Grincheux>
you don't care
<zmdkrbou>
"professional"
<youknow365>
and very cpu intense
<Grincheux>
no
<zmdkrbou>
youknow365: you don't even have to care about this, this is how it works
<zmdkrbou>
and this is how all IM clients work
<youknow365>
i seee
<zmdkrbou>
and it works fine
<Grincheux>
and thousands of people have been doing this for 20 years
<youknow365>
i thought they would use like 2 threads or something
<Grincheux>
people that don't know how to program use threads
<zmdkrbou>
as you've been told, you can do select, threads, or forked process
<Grincheux>
but it's dirty, racy, and contributes to global warming
<zmdkrbou>
forked process are stupid here
<zmdkrbou>
and threads sucks polar bears in ocaml
<zmdkrbou>
(-s)
<youknow365>
zmdkrbou: i understand but i thought threads would be better performance wise but i guess not
<zmdkrbou>
no
<Grincheux>
no
<youknow365>
just a misconcpetion
<yakko>
'back
<youknow365>
zmdkrbou: you woudn't happen to know that gui event where i can call a function ever n seconds or a way to do it without the gui framework .........that seems like a job *not* for a gui framework
<zmdkrbou>
(btw, one of the golden rules when using ocaml is : do not use threads even if someone says he'll kill your mother if you don't)
<shekmalhen>
hmm
<Grincheux>
youknow365: could you try to look in the doc of your toolkit?
<youknow365>
yes
<shekmalhen>
this is the kind of info I was seeking for
<yakko>
youknow365: just in internship in japan... Don't want to live there !
mpc has quit []
<yakko>
youknow365: which gui ?
<youknow365>
but it seems that if i told the gui framework to call a function every n seconds (the select) that just having the function there to call the selectwould hang the program
<youknow365>
TK
<youknow365>
GTK
<Grincheux>
GRRRRRRRRRRRRRRR
<youknow365>
what?
<yakko>
why every n seconds ?? you dumb ?? just call it every cycle of your infinite loop
<Grincheux>
yakko: we are not that far yet :)
<youknow365>
yakko: zmdkrbou stated n seconds i jus used that
<zmdkrbou>
youknow365: timeout_add in gtk
<yakko>
argl cursed function
<zmdkrbou>
:)
* yakko
hands garlick and cross
<Grincheux>
if there is a central loop, you can put it there as yakko says
<Grincheux>
i don't know how gtk works
<yakko>
if there 's a gui, there a central loop
<zmdkrbou>
Grincheux: you don't have a central loop when you use a gui
<yakko>
Grincheux: with a loop :)
<zmdkrbou>
yakko: you crazy ?
<Grincheux>
round one, fight
<yakko>
gtk has one
<yakko>
you can add things inside
<yakko>
it's not "your" loop, but there is
<youknow365>
zmdkrbou: so the GTK fucntion will call my select fucntion ever 1 ms .......then if data found update the gui etc .....if not will jus continute to look every 1 ms and the gui and events like chnage buddy list or something like that wont have any slow down ?
<shekmalhen>
zmdkrbou, but.. if you're not using a gui... like, you're writing a daemon or something like that, how would you achieve the same results?
<zmdkrbou>
yakko: that's what i'm talking about, it's using timeout_add :)
<yakko>
yep
<Grincheux>
youknow365: did you write your GUI yet ? if not, start by doing this and you'll see how to add the connection afterwards
<zmdkrbou>
shekmalhen: then you have a loop on your own
<zmdkrbou>
and you put the select stuff in the loop
<youknow365>
no i have not written gui yet i wanted ot get all tcp stuff done tonight make gui in glade tomrrow ad start putting it together thurday
<shekmalhen>
obviously... wrong question actually
<shekmalhen>
:)
<shekmalhen>
zmdkrbou, I'm trying to figure out the techniques commonly used by ocaml's users
<Grincheux>
youknow365: you can't do that, the GUI is what will decide of the organization of your code, you need to start with the GUI or you'll have to rewrite all the tcp stuff
<youknow365>
so this progrmam is just one big loops with little lops inside
<yakko>
shekmalhen: they don't use thread & gui :)
<zmdkrbou>
shekmalhen: strange idead ... as yakko says, threads & gui are not "ocaml things"
<shekmalhen>
yakko, and without the negation?
<Grincheux>
shekmalhen: as a common ocaml users, I use C to do real programming
<zmdkrbou>
imo
<yakko>
youknow365: the big loop is inside GTK, it's not a while(1)of you
<yakko>
shekmalhen: I dunno :p
<youknow365>
all iahve wrote is a few things to send stuff to a specific port and some xml parsing stuff
<youknow365>
i dont see how not usig the gui for that in the beginning would effect that
<Grincheux>
yakko: btw, in SDL/perl you write you're own while(1) loop (from what I remember of Älg)
<zmdkrbou>
shekmalhen: why do you try to figure out ocaml users habits ?
<youknow365>
i will make gui tomorrow
<shekmalhen>
zmdkrbou, to get a grasp of the culture of ocaml
<yakko>
Grincheux: SDL is not a guibuilder
<shekmalhen>
the syntax and semantic of the language is not everything
<yakko>
you have to write the event handling loop yourself
<zmdkrbou>
shekmalhen: new to FP or coming from another language ?
<Grincheux>
ok
<shekmalhen>
zmdkrbou, actually, new to FP
<yakko>
mainly for perf I think, since SDL often ++ games
<Grincheux>
go away, FP is evil
<yakko>
++ = ++
<yakko>
shit
<yakko>
s/+/=/
<shekmalhen>
come from python, C and other similar languages
<yakko>
silly keybord
<Grincheux>
shekmalhen: stay there
<shekmalhen>
Grincheux, how come?
<shekmalhen>
:)
<zmdkrbou>
Grincheux: you imp
<yakko>
youknow365: the fact is when you use a gui, the main loop of your soft (the things that willl handle the event) is hidden in the gui lib
<zmdkrbou>
python is cool but dirt, C is evil (very useful evil, but still evil)
<yakko>
so you have to write the gui first, then add the right call for inserting things in this loop
<yakko>
zmdkrbou: python is not dirt !
<youknow365>
brb.........btw doesnt glib offer the call for functions ever __ ammount of time not gtk
<youknow365>
i thoguht "gtk" was a drawing library
<zmdkrbou>
yakko: i really like python (but dynamic typing is EVIL)
<shekmalhen>
I did some lisp (elisp) a few years ago.
<zmdkrbou>
lisp sucks :)
<yakko>
python is just unsafe :)
<youknow365>
just a drawing lib
<shekmalhen>
yakko, pretty much, yet flexible as hell
<yakko>
gtk is a gui builder
<yakko>
that's why I like it :)
<shekmalhen>
heh
<yakko>
but for long term programming, I agree it's dirt ^^
<youknow365>
so do i have to use gtk for it to call the select ever ?ms or could i jus do it myself with my own loop ?
<Grincheux>
write your gui and decide afterwards
<Grincheux>
it'll be obvious when you have you gui
<Grincheux>
your
<yakko>
youknow365: you have no own loop when doing a gui
<yakko>
e.g. in GTK, it's all over when you call gtk_main, you no longer have the control
<Grincheux>
actually there might even be a way to tell GTK to do the select for you
<zmdkrbou>
it's the gtk function to add a timeout-repeat function in the loop
<yakko>
06:14 < zmdkrbou> youknow365: timeout_add in gtk
<Grincheux>
19.2 Monitoring IO
<yakko>
Grincheux: oh you mean a wrapper around select ?
<Grincheux>
something which selects for you
<zmdkrbou>
waaah
<Grincheux>
since gtk selects for X events, it can add your socket and select on both
<yakko>
good idea ;)
<Grincheux>
thank you, i am actually thinking of changing my job into system programming stuff
<yakko>
evil man !
<shekmalhen>
so... you think that concurrency is a bad thing, right?
<zmdkrbou>
?
<yakko>
concurrency ?
<zmdkrbou>
correct concurrency is good :)
<zmdkrbou>
race conditions suck
<shekmalhen>
hah
<zmdkrbou>
shekmalhen: "concurrency" is a word that shouldn't be used aloud on #ocaml
<Grincheux>
shekmalhen: concurrency is good when you actually need concurrency, not when you need to have various stuff sleeping on different conditions like here
<yakko>
concurrency is good, just hell hard to achieve a good one :)
<shekmalhen>
zmdkrbou, oh... sorry about that. :)
<shekmalhen>
is there a program that you guys, would consider well written.
<shekmalhen>
in objective caml
<shekmalhen>
naturally
<zmdkrbou>
a program (widely) used, something like that ?
<shekmalhen>
to see good practice, and avoid habits from foreign languages
<shekmalhen>
not really.
<shekmalhen>
just something well written
<zmdkrbou>
oh, one good example : the ocaml compiler :)
<shekmalhen>
a masterpiece
<zmdkrbou>
(but some things in it sucks, in fact)
<yakko>
zmdkrbou: advertise for your poulpe
<zmdkrbou>
yakko: you're the mollusque
pango has quit [Remote closed the connection]
* zmdkrbou
is on his way quitting ocaml, in fact
<shekmalhen>
how come?
<zmdkrbou>
too many problems, and the language development is not really active these days ...
<yakko>
for what ?
<zmdkrbou>
the problems ?
<shekmalhen>
entre autre
<zmdkrbou>
threads, strings not being lists, not enough libs ...
<shekmalhen>
you'd consider using what?
<zmdkrbou>
that's my problem : finding a replacement :)
pango has joined #ocaml
<zmdkrbou>
i use python quite a lot now, but i don't want to do real programming in python
<shekmalhen>
but it's the problem with marginal languages
<yakko>
^^
<yakko>
zmdkrbou: wanna test the one I'm researching on ? p
<yakko>
:p
<zmdkrbou>
yakko: objects are evil :)
<Grincheux>
perl is good for everything
<yakko>
zmdkrbou: yea I know :/
<zmdkrbou>
perl is dirt, and i prefer python-style dirt
<zmdkrbou>
(though perl is great for text stuff)
<Grincheux>
you big dwarf
<zmdkrbou>
you moose
<shekmalhen>
!!
<zmdkrbou>
shekmalhen: ?
<yakko>
zmdkrbou: python is great for text also, just un bit verbose :/
<shekmalhen>
terrible insults
<zmdkrbou>
don't worry :)
<shekmalhen>
never wanted to start a #ocaml-fr room?
<zmdkrbou>
not that much useful ...
<yakko>
no, too many french here :)
<zmdkrbou>
half of the chan is french or french-speaking yes
<shekmalhen>
yeah... but no-one speaks french, tho
<zmdkrbou>
nope ... but it's good to practice another language :p
<zmdkrbou>
and the channel would be too small with only non-french people
<zmdkrbou>
and the french part would also be too small
<shekmalhen>
zmdkrbou, I did this at work... and I'm on plenty of english channels. No practice, please!
<shekmalhen>
err... no more
<zmdkrbou>
shekmalhen: ok, the "too small chan" is a better point :)
<Grincheux>
yah qqn qui cause pas francais la ?
<Grincheux>
-h
<zmdkrbou>
là tout de suite non
<Grincheux>
bon bah alors :)
<shekmalhen>
heh
<zmdkrbou>
Grincheux: that's not nice for thos who don't speak french :)
<zmdkrbou>
+e
<Grincheux>
shekmalhen: where are you in canada ?
<shekmalhen>
Montréal
<yakko>
zmdkrbou: give me names !
<Grincheux>
ok
<zmdkrbou>
yakko: ?
<yakko>
someone who doesn't speack french
<yakko>
-c
<zmdkrbou>
youknow365 :)
<yakko>
I should start working again... too lasy
<zmdkrbou>
in fact, right now more than half of the chan is not french, i think (they're not connected yet)
<yakko>
they should learn
<shekmalhen>
heh
<yakko>
zmdkrbou: let's make a language in french (what !.. okay I shut the fuck up)
<zmdkrbou>
yakko: gpp
<yakko>
hihi
<yakko>
true
<shekmalhen>
yakko, well... spip come at the top of my head... its template language is in french.
<zmdkrbou>
goto 0wnZ da w0rld
<shekmalhen>
yet some english speaking people used it
<zmdkrbou>
i did icfpc this year and we used ocaml, and the result was much slower than C simple implementations
<youknow365>
zmdkrbou: it depends on maaaany facotrs man plus this is plenty fast enough faster then any scripting language
<youknow365>
python ruby etc
<zmdkrbou>
yes, for script languages ok
<zmdkrbou>
the results compared to C/C++ are quite surprising to me, that's all
<youknow365>
i was reading somewhere and it was sying ocaml written in a procedure way can be a step behind C .........in a functional way it can be ,uch slower
<yakko>
I read somewhere that java was good too.... don't trust everything :p
smimou has joined #ocaml
scriptdevil has joined #ocaml
<scriptdevil>
hmm.. what is ocaml maily used for?
dark_light has quit [Remote closed the connection]
<zmdkrbou>
compilers & related stuff
<zmdkrbou>
(at least it's its best usage)
<scriptdevil>
zmdkrbou: i already know C++ and D.. i was suggested to learn ocaml.. i read the books and found it drastically diff..
<zmdkrbou>
yes it is
<scriptdevil>
but it seems nice
<zmdkrbou>
it's functional programming
<zmdkrbou>
a brand new world :p
<scriptdevil>
lambda calculus i heard...
<zmdkrbou>
yes
<scriptdevil>
mathematics isnt my strong paper.. :(
<zmdkrbou>
you don't need to be good at mathematics, hopefully
<zmdkrbou>
just a few notions would help
<scriptdevil>
zmdkrbou: i saw that... but god knows what lamda calculus is.. i had calculus at school.. but never lamda calculus..
<scriptdevil>
probably my college may deal with it
<postalchris>
scriptdevil: don't count on it
<zmdkrbou>
you're a computer science student ?
<yakko>
I don't think you need to learn lambda calculus for learning ocaml (but it's good to do so)
<scriptdevil>
hmm.. i am taking Information technology in college.. not into college yet
<zmdkrbou>
then learn ocaml, and if one day you're taught lambda calculus, it'll be easier for you :)
<scriptdevil>
postalchris: maybe u r right... college seems to be too big a change.. i dunno what to expect..
<scriptdevil>
zmdkrbou: i am learning it... :)
<scriptdevil>
i am doing chapter5 tuples lists and polymorphism..
<zmdkrbou>
chapter 5 of ?
<scriptdevil>
it is not that i cant understand it.. it is whethger i'll be able to remember it..
<zmdkrbou>
if you code with ocaml you'll remember polymorphism : you can't live without this great stuff
<zmdkrbou>
just try not to write c++ in ocaml syntax :)
<yakko>
no it's the most inefficient thing ever (I know what I speak of :)
<scriptdevil>
zmdkrbou: yeah a' never so easy..in C++ io had to type 5 diff constructors.. or use templates
<zmdkrbou>
templates in c++ are incredibly powerful but they're dirty as a monkey's ass, polymorphism is the right way
<scriptdevil>
ocaml is too nice .. if only i started with erlang when i was 12.. i started with C.. so i am adapted to that syntax... now at 17 i have to learn a new thing.. i am gonna do everything in Ocaml for a few days.. i'll get the hang of it
<scriptdevil>
people here are so friendly..
<scriptdevil>
:) i used to be given rtfm in ##C++ for stufff i cant figure out
<zmdkrbou>
if you don't read the manual at all, you'll get rtfm here too :p
<youknow365>
zmdkrbou: are you aware of that gtk function ......that allows you to call an event from so many seconds or whatever you specify ?
<yakko>
scriptdevil: always read the man first ,so you 'll not ask obvious question :)
<postalchris>
scriptdevil: you in India?
<zmdkrbou>
youknow365: i don't know much gtk
<zmdkrbou>
(so yes rtfm ! hihihi :p)
<yakko>
I knew it , have to remember
<youknow365>
maybe it was pango that told me about that gtk function
* zmdkrbou
only knows timeout_add for this kind of things
<youknow365>
well i would like to keep code loggic and all tcp stuff seperate from GUI
<yakko>
you can't
<youknow365>
why not
<yakko>
cause the main part of the program is hidden in the gtk lib
<yakko>
(event loop)
<youknow365>
well besides that part
<zmdkrbou>
yakko: he can separate cleanly what he writes, yet
<scriptdevil>
postalchris: yeah
<scriptdevil>
i am in india
<zmdkrbou>
he should try to at least :p
<scriptdevil>
i am in Chennai
<youknow365>
scriptdevil: hows your english accent :P
<youknow365>
+
<scriptdevil>
it is neutral
<yakko>
th pb is after calling gtk_main you have no longer control on the app
<scriptdevil>
youknow365: not indianised not western
<youknow365>
scriptdevil: like all tech support some how routes back to india .......and it sounds liek i am talking into like arabic or some ancient form of english
<youknow365>
postalchris: born in us moved to argentina then to brasil then back to america
<youknow365>
yea
<scriptdevil>
postalchris: see the effect of our movies... idia == snake charmer now-a-days
<youknow365>
scriptdevil: on the discovery channel they talk about india alot
<scriptdevil>
youknow365: nice to note..
<scriptdevil>
i saw that too
<youknow365>
and its mostly about that snake stuff
<youknow365>
orrrr
<youknow365>
people on flying carpets
<youknow365>
lol
<scriptdevil>
i am a parselmouth
<scriptdevil>
youknow365: that is arabia not india
<scriptdevil>
india never had carpets
<scriptdevil>
*flying carpets
<youknow365>
sure :P
<postalchris>
That's the Arabian Nights, dude
<scriptdevil>
i am using this files.metaprl.org/doc/ocaml-book.pdf
<youknow365>
i thinkit was same episode as snakes :)
<youknow365>
but yea arabia is famous for flying carpets
<youknow365>
aladdin :P
<scriptdevil>
:))
<youknow365>
if you eversaw that movie
<scriptdevil>
india is famopus for its politicians
<scriptdevil>
i read more than i see
<youknow365>
aladdin is a famous disney movie
<youknow365>
lion king aladdin toy story .......that decade
<yakko>
disney sucks
<postalchris>
Africa is famous for its dancing lions
<yakko>
you better take a look at the link above for g_lib stuff
<scriptdevil>
the only thing i am undecided abt now that ocaml is on my list is linux/freebsd///
<youknow365>
yakko: i am
<youknow365>
yakko: disney was a big part of my childhood
<scriptdevil>
i have both dual booted... cant decide which to get rid of
<scriptdevil>
disney rocks :D
<scriptdevil>
mickey mouse.. :)
<yakko>
youknow365: I'm really sorry for that :)
<youknow365>
195 -2003 disney == awesome
<youknow365>
1985
<scriptdevil>
yeah..
<youknow365>
come on
<youknow365>
DUCKTALES - TALESPIN - GOOD TROOP :P
<youknow365>
my fav childhood cartoons
<yakko>
goof*
<scriptdevil>
i am still 17.. so a long time b4 i become as serious as yakko
<youknow365>
;)
<scriptdevil>
;)
<yakko>
I'm not serious, just I rather watch ken, city hunter & so :)
<youknow365>
yakko: darkwing duck
<youknow365>
some of the best cartoons ever made
<youknow365>
i am buying them all on dvd
<yakko>
I don't like disney because they take awsome books and make crap out of them
* yakko
fan of peter pan, but not the disney's shit one
<yakko>
and the animation sucks
<youknow365>
i could careless about that 1800 crap
* zmdkrbou
prefers loisel's one
<scriptdevil>
yakko: i hated harry potter and bourne series in the movie
<yakko>
zmdkrbou: also
<scriptdevil>
especially ludlums works are massacred in movies
<youknow365>
Bourne Idenity ?
<scriptdevil>
all 3
<scriptdevil>
supremacy
<youknow365>
theres only 2 movies ?
<youknow365>
3 book 2 movies
<scriptdevil>
yeah
<youknow365>
3rd movieisnt out yet
<youknow365>
goood movies man lol
<scriptdevil>
ultimatum is yet to come i believe
<yakko>
you should watch real anime, try Mamoru oshii
<scriptdevil>
the only cartoon i love nowadays is captain tsubasa.. flares in GK spirit before matches
<yakko>
or better, katsushori otomo
<scriptdevil>
yakko: u japanese?
<yakko>
no
<yakko>
french :)
<youknow365>
yakko: lol man o man i could careless what disney does but lion king 1 1.5 2 and toy story 1 and 2 and monsters inc and finding nemo and that whole thing of cartoons they made 10 years ago arreee great
<scriptdevil>
i cant rememeber those names like u do..
EsotericMoniker has joined #ocaml
<yakko>
(thus in japan right now, 5 day left)
<youknow365>
yakko: you live in france ?
<yakko>
usualy
<youknow365>
i seeee
<yakko>
?
<youknow365>
i was in paris a few years back
<yakko>
fuck paris
d-bug has joined #ocaml
<youknow365>
lol
<zmdkrbou>
yakko: fuck you :)
<yakko>
zmdkrbou: I love you too
<scriptdevil>
yakko: one u go to france u will be yakkost` or something
<scriptdevil>
i found that too.. fine.. i'll try it
<zmdkrbou>
he's good
<zmdkrbou>
s/he/it/
<youknow365>
i should rwad it myself
<youknow365>
read
smimou has quit ["bli"]
<scriptdevil>
:o nice book..
<scriptdevil>
so much fr my older book..
<youknow365>
me == English/Spanish
<youknow365>
i was going to learn french but then i lost intrest
<scriptdevil>
me = english/hindi/tamil/sanskrit/<in college japanese>
<scriptdevil>
i assigned it
<scriptdevil>
instead of comparing :P
<youknow365>
i seeee
<youknow365>
i am in the process of learning porturgese
<zmdkrbou>
scriptdevil: no you didn't :)
<scriptdevil>
youknow365: french sounds nice... but i have a desire to learn german
<scriptdevil>
zmdkrbou: yeah let
<youknow365>
i dont like french nor german
<youknow365>
i like romance languages that sound good :)
<scriptdevil>
C in me is seeping in again.. thanks for reminding me
<zmdkrbou>
you compared it instead of physically comparing it :)
<zmdkrbou>
youknow365: prout
<youknow365>
french sometimes i like sometimes i dont like the sound
<scriptdevil>
klingon :P
scriptdevil has quit [sterling.freenode.net irc.freenode.net]
postalchris has quit [sterling.freenode.net irc.freenode.net]
shans_home has quit [sterling.freenode.net irc.freenode.net]
finelemon has quit [sterling.freenode.net irc.freenode.net]
cmeme has quit [sterling.freenode.net irc.freenode.net]
danly has quit [sterling.freenode.net irc.freenode.net]
TaXules has quit [sterling.freenode.net irc.freenode.net]
flux__ has quit [sterling.freenode.net irc.freenode.net]
ulfdoz has quit [sterling.freenode.net irc.freenode.net]
youknow365 has quit [sterling.freenode.net irc.freenode.net]
falconair has quit [sterling.freenode.net irc.freenode.net]
shawn__ has quit [sterling.freenode.net irc.freenode.net]
mellum_ has quit [sterling.freenode.net irc.freenode.net]
<zmdkrbou>
boum
<zmdkrbou>
gg freenode
mellum_ has joined #ocaml
shawn__ has joined #ocaml
postalchris has joined #ocaml
ulfdoz has joined #ocaml
youknow365 has joined #ocaml
cmeme has joined #ocaml
d-bug has quit [sterling.freenode.net irc.freenode.net]
pango has quit [sterling.freenode.net irc.freenode.net]
Amorphous has quit [sterling.freenode.net irc.freenode.net]
piggybox has quit [sterling.freenode.net irc.freenode.net]
buggs has quit [sterling.freenode.net irc.freenode.net]
<youknow365>
what jus happened ?
shans_home has joined #ocaml
TaXules has joined #ocaml
flux__ has joined #ocaml
finelemon has joined #ocaml
buggs has joined #ocaml
danly has joined #ocaml
<yakko>
hmm i'm going to try to work
<yakko>
++
yakko has quit ["seeya"]
ulfdoz has quit [sterling.freenode.net irc.freenode.net]
ulfdoz has joined #ocaml
Oatmeat|umn has quit [sterling.freenode.net irc.freenode.net]
ppsmimou has quit [sterling.freenode.net irc.freenode.net]
pattern has quit [sterling.freenode.net irc.freenode.net]
piggybox has joined #ocaml
pattern has joined #ocaml
<youknow365>
i would like to stay away form using gtk or glib in my actual non gui code
Oatmeat|umn has joined #ocaml
ppsmimou has joined #ocaml
<youknow365>
does gtk depend on glib?
<shans_home>
I think it does
<youknow365>
hmmmm
<youknow365>
cause if its being used anyway i will use it
<shans_home>
pretty sure it is
scriptdevil has joined #ocaml
<scriptdevil>
i dunno what happened... freenode suddenly refused ma connection..
<youknow365>
same here
<flux__>
it definitely is
<youknow365>
but yea glib is required so might as well use it anyway
<flux__>
glib used to be integral to gtk
d-bug has joined #ocaml
<youknow365>
well in gtk 2.8 its still required
<youknow365>
when will gtk 3 come out ya think ?
Amorphous has joined #ocaml
<youknow365>
i dontthink they will release for years 2.0 is pretty solid
<scriptdevil>
i used wxwidgets in c++... i guess i have to get used to the gtk style now...
<youknow365>
i never liked wx
<youknow365>
added more overhead
<youknow365>
more stuff had ot be installed
pango has joined #ocaml
<youknow365>
have ot have GTK + wxGTK
<youknow365>
i like gtk works good on both windows and linux
<youknow365>
and looks good on windows these days
<youknow365>
i lik it better then native sometimes
<scriptdevil>
youknow365: do u use windows?
EsotericMoniker has left #ocaml []
<scriptdevil>
13:35 freenode-connect [freenode@freenode/bot/connect] requested CTCP VERSION from scriptdevil:
<scriptdevil>
what the hell is it trying to do?
<scriptdevil>
today freenode has been increasingly irritating
scriptdevil has quit ["Lost terminal"]
shining_ has joined #ocaml
shining has quit [Read error: 60 (Operation timed out)]
kral has joined #ocaml
love-pingoo has joined #ocaml
shining has joined #ocaml
shining_ has quit [Read error: 110 (Connection timed out)]
mellum_ is now known as mellum
Demitar has joined #ocaml
Kai1111 has joined #ocaml
d-bug has quit ["Leaving"]
kral has quit [Read error: 104 (Connection reset by peer)]
scriptdevil has joined #ocaml
<scriptdevil>
ocaml is so damn pretty...
<DRMacIver>
Really? I find its lack of prettiness the main downside of the language.
<DRMacIver>
The syntax has a lot of clunk to it.
<scriptdevil>
does it?
<DRMacIver>
Things like +. , let rec, match, string_of_int...
<DRMacIver>
ML has uniformly nicer versions of the syntax. It's just less powerful and neat. :)
<zmdkrbou>
DRMacIver: what's the problem with match ??
<DRMacIver>
zmdkrbou: Oh, just that ML's version was nicer. :)
gim has joined #ocaml
<scriptdevil>
never tried ml.. wut match is really sex imho
<DRMacIver>
In ML you could just match straight off.
<DRMacIver>
Things like fun f 0 = 1 | f (n + 1) = n * ( f(n)) ;
<DRMacIver>
The point is that OCaml has introduced a lot of syntactic clunk over plain ML. It's done so for good reasons for the most part, but it's still less pretty. :)
<zmdkrbou>
isn't f = function 0 -> 1 | n -> (n-1) * (f n) ok for you ??
<scriptdevil>
i believe beauty and being a beast of a language dont go together :P
<scriptdevil>
personally i love ->
<zmdkrbou>
s/n/(n-1)/ above
<DRMacIver>
zmdkrbou: Hm. Does that work? I thought you had to explicitly declare a 'match' in OCaml.
<scriptdevil>
u have to
<zmdkrbou>
nope
<zmdkrbou>
"let f = function <matching>" is the same as "let f x = match x with <matching>"
<DRMacIver>
ok. Neat.
<DRMacIver>
But if that behaves in the same way as ML's then you can't do it recursively. :)
<zmdkrbou>
?
<zmdkrbou>
"let rec f = function <matching using f>" works in ocaml
<DRMacIver>
Really? Ok.
<DRMacIver>
Let's more pleasant than I expected.
<zmdkrbou>
that's why i was surprised (i agree with other problems, +. and so on)
<DRMacIver>
In which case I withdraw my complaints about OCaml's matching. :)
<scriptdevil>
accept ocaml is the hottest babe of a lang.. now..
<DRMacIver>
Hey, don't get me wrong. I like OCaml a lot. :)
<DRMacIver>
Although I still haven't done enough with it.
<DRMacIver>
(On grounds of by the time I'm done with work I really don't feel like doing much coding.)
<zmdkrbou>
the real pb with matching in ocaml is that strings are not lists, and that *really* sucks a lot
<zmdkrbou>
so that you can't match on strings
<DRMacIver>
Hm
<DRMacIver>
That's something of a problem, yes.
<DRMacIver>
I'm rather surprised.
scriptdevil has left #ocaml []
<ppsmimou>
zmdkrbou: there is a camlp4 extenstion which allows you to match strings according to regexps
<zmdkrbou>
ppsmimou: the whole thing would be much simpler if strings were lists ... (i don't know the reason for strings not being lists)
<TSC>
Storage efficiency?
<DRMacIver>
Because it's important to be able to concatenate strings at whim, and list append is kindof slow?
<zmdkrbou>
mmh yes
kral has joined #ocaml
kral has quit [Read error: 104 (Connection reset by peer)]
<pango>
DRMacIver: well, also all functional languages feature a list type :)
<DRMacIver>
Hm. I suppose so.
<DRMacIver>
I don't know sufficiently many functional languages to contradict that. :)
<DRMacIver>
(ML, OCaml, and I've just about looked at Haskell but doubt I could even code factorial in it. :) )
<pango>
youknow365: <youknow365> in a functional way it can be ,uch slower ... If that's the "thing" that appeared in Slashdot, don't worry, the guy doesn't know what he's talking about ;)
<pango>
comparing badly written functional code with nicely written imperative code, then declare than functional paradigm is slower... Well, that's probably ok for a Slashdot news...
<pango>
if you want efficient functional code, you have to code with efficiency in mind
<DRMacIver>
Madness.
<DRMacIver>
Why would we actually run code? I just sit back and glory in its pure functional goodness.
<pango>
youknow365: <youknow365> the pleac needs ot be complete :P ... well, the problem is that lot of the problems in pleac are Perl specific, and don't map very nicely to ocaml...
<shans_home>
if I have an ocaml object which I've restricted to a particular type (say foo), is there any way to branch depending upon whether that object is of a particular subtype (say bar)?
<shans_home>
e.g. something like: val f : foo -> bool = function f -> if is_a f bar then true else false;;
DRMacIver has quit [Read error: 110 (Connection timed out)]
<shans_home>
hmm, I can think of one way, which is to have a function defined in foo that is overridden in bar, and test on that
<shans_home>
is there a neater way?
pango has quit ["Client exiting"]
pango has joined #ocaml
<love-pingoo>
shans_home: I don't think this can be done
<love-pingoo>
types are forgotten at runtime, thus you cannot test the subtypability
<shans_home>
love-pingoo: OK, thanks :) I'll stick with defining and overriding a function then
<shans_home>
(which I guess equates to explicitly "remembering" the type at runtime in a very restricted way)
<pango>
types and classes are different things, so I've heard
<love-pingoo>
indeed, objects from two different classes can have the same type (interface)
<shans_home>
yeah
<shans_home>
can you codefine classes and non-class functions?
pango has quit [Remote closed the connection]
pango has joined #ocaml
<kral>
brb
kral has quit ["ERC Version 5.1.2 (IRC client for Emacs)"]
bluestorm has joined #ocaml
kral has joined #ocaml
d-bug has joined #ocaml
smimou has joined #ocaml
Revision17 has quit [Read error: 110 (Connection timed out)]
kral has quit ["ERC Version 5.1.2 (IRC client for Emacs)"]
Revision17 has joined #ocaml
bluestorm_ has joined #ocaml
bluestorm has quit [Read error: 104 (Connection reset by peer)]
finelemo1 has joined #ocaml
finelemon has quit [Read error: 110 (Connection timed out)]
finelemo1 has quit [Read error: 110 (Connection timed out)]
finelemon has joined #ocaml
stesch has joined #ocaml
gim has quit [Read error: 110 (Connection timed out)]
<stesch>
Pardon moi for asking a (maybe) FAQ: Amazon says (well, their web app tells me) that "Pratical Ocaml" will arrive between August 30 and September 1. Is this a real date?