IRC log started Mon Nov 22 00:00:01 1999 [msg(TUNES)] permlog 1999.1122 -:- SignOff hcf: #TUNES (Leaving) -:- smkl [sami@glubimox.yok.utu.fi] has joined #tunes -:- smoke [smoke@15dyn178.delft.casema.net] has joined #tunes -:- SignOff smoke: #TUNES (Ping timeout for smoke[15dyn178.delft.casema.net]) -:- smoke [smoke@16dyn100.delft.casema.net] has joined #tunes -:- SignOff eihrul: #TUNES (Ping timeout for eihrul[usr5-ppp51.lvdi.net]) -:- eihrul [lee@usr5-ppp51.lvdi.net] has joined #tunes -:- SignOff smoke: #TUNES (Ping timeout for smoke[16dyn100.delft.casema.net]) -:- smoke [smoke@16dyn122.delft.casema.net] has joined #tunes re 05:00am -:- SignOff eihrul: #TUNES (Read error to eihrul[usr5-ppp51.lvdi.net]: EOF from client) -:- smokie [tw026024@zaalf10.twi.tudelft.nl] has joined #tunes -:- ChipMunk [Kaushik@RUK183.ruksun.com] has joined #tunes -:- AlonzoTG [Alonzo@216-164-128-10.s10.tnt1.lnhva.md.dialup.rcn.com] has joined #tunes -:- SignOff AlonzoTG: #TUNES (Have Nice Day :)) -:- SignOff smoke: #TUNES (Killed (NickServ (This nick is reserved by another user))) -:- ChipMunk [Kaushik@RUK183.ruksun.com] has left #tunes [] -:- SignOff smokie: #TUNES (smokie has no reason) -:- smoke [smoke@16dyn122.delft.casema.net] has joined #Tunes To those who ask "why would anyone want to write free software?", I answer "why would anyone want to write a PhD thesis?" 09:00am -:- Fufie [stig@tunnel-44-13.vpn.uib.no] has joined #tunes hi lo 09:10am my mail about PLOB! to the tunes mailing list is delayed because deadlines are getting too close for my taste.. :-/ :( 09:20am it would have been nice to suddenly win a few millions and never have to work for money again and devote all time to "good projects" :) -:- binEng [Anders@j141.ryd.student.liu.se] has joined #tunes 09:30am -:- SignOff smoke: #TUNES (Ping timeout for smoke[16dyn122.delft.casema.net]) -:- SignOff binEng: #TUNES (Read error to binEng[j141.ryd.student.liu.se]: Connection reset by peer) -:- binEng_ [Anders@j141.ryd.student.liu.se] has joined #tunes -:- binEng_ is now known as binEng -:- SignOff binEng: #TUNES (Read error to binEng[j141.ryd.student.liu.se]: Connection reset by peer) -:- binEng_ [Anders@j141.ryd.student.liu.se] has joined #tunes -:- SignOff binEng_: #TUNES (Read error to binEng_[j141.ryd.student.liu.se]: Connection reset by peer) -:- binEng [Anders@j141.ryd.student.liu.se] has joined #tunes -:- SignOff binEng: #TUNES (Read error to binEng[j141.ryd.student.liu.se]: Connection reset by peer) -:- binEng [Anders@j141.ryd.student.liu.se] has joined #tunes -:- SignOff binEng: #TUNES (Ping timeout for binEng[j141.ryd.student.liu.se]) -:- binEng [Anders@j141.ryd.student.liu.se] has joined #tunes -:- smoke [smoke@16dyn172.delft.casema.net] has joined #tunes hi hello a friend of mine tried to convince me that using a for-loop is plain wrong when dealing with functional languages, but he cannot really give a valid argument -- what should i learn from this? does your for-loop return a value? or is it an imperative construct? i think it's imperative i was experimenting with ocaml, and i just wrote a for loop which works fine, so i couldn't understand what possibly could be wrong with it for loop is not functional programming, it's imperative programming ml supports both functional and imperative programming smkl; does that mean it's bad to use it? no it's not bad for those cases where you want to do imperative stuff well, it often might be better to use some higher order function instead, but for efficiency, use a for loop but there usually are better constructs available which are more "functional" 11:00am fufie: hm. why is that 'better'? because they are functional in nature and will fit in more nicely in your program.. most people like their code to be aesthetically pleasing and mixing imperative and functional style doesn't always help hm but there's no argument for maintainability or ease of use or so ? do you think that a program written in one style is easier to maintain than something written in several styles? i don't think it matters if one considers both styles as part of one style (for example) and as smkl pointed out, higher-order functions do a lot of the work done with for-loops in imperative languages and imho higher-order functions are easier to use and much more pleasing for the eye :) it's obvious that i have backgrounds in imperative programming mostly i understand a for-loop very fast, and find it hard to understand what recursive functions do I often use imperative constructs, as DOLIST in lisp, but I gradually learn when and when not to apply functional style.. if performance really matters, then use a for loop not that i don't want to change, it's just that i want to understand why :) smkl; so it's a matter of personal taste then? smoke: yes you don't need to change your style right away.. get comfy with recursion and higher-order functions and when you encounter a loop, consider using functional style instead.. hm funny smkl: if tail-recursion is handled properly that shouldn't be an issue Fufie: most compilers can't introduce accumulators, and there are other problems (boxing) the programmer shouldn't have to know anything about tailrecursion or other optimizations 11:10am that's ideal case.. but efficiency is still king adding an accumulator manually isn't too hard functions often become harder to understand with accumulators :/ that happen far too frequently yes :-/ 11:20am hrrm my announcement is still not on freshmeat which program/library? i announced new version of ocaml smoke: do you know map? reduce? 12:20pm -:- SignOff binEng: #TUNES (Read error to binEng[j141.ryd.student.liu.se]: Connection reset by peer) -:- binEng_ [Anders@j141.ryd.student.liu.se] has joined #tunes -:- binEng_ is now known as binEng fare; i've seen map, and can only guess what it means; i don't know reduce at all well then you have serious problems :P map applies a function to every element of a list and returns a list of results s/list/sequence/ ie.. (map #'upper-case "some string") will do the trick (if your language has a decent map) reduce applies a function to every element of a list and an accumulator .. the result is used as next accumulator ah then i guessed correctly for map :) adhoc overloading isn't that useful smkl; that's somewhat unclear smkl: pardon? smkl; what is the function of the accumulator? Fufie: i think that's what it is called (for example overloading of map) smoke: it is needed to make the function general oh hold, it becomes clear.. would `reduce [ 1 2 3 4 ]' give me the result 10 ? smkl: mapping-functions should work on any kind of datastructure imho and all sequential data structures in particular smkl: hm. i mean `reduce add [ 1 2 3 4 ]' of course smoke: (reduce #'+ '(1 2 3 4)) => 10 smoke: reduce add [ ... ] 0 12:50pm only few languages can generate catamorphism s aha. and if i wanted to add only the even-numbered entries, i'd write a function that returns 0 if the value is odd, and use that in reduce ? but there should be a map function for every collection datastructure, i just don't think it is necessary to overload map/reduce smoke: add_even a b = if odd a then b else a + b smkl: fair enough.. map/mapcar is already used, but this is imho something which should be expressible in a real language. The function argument should naturally be a multi-dispatch function to make things do wonder. My code relies on this at least it seems to me that there's no big gap between functional and imperative programming, as opposed to what (some) people want me to belief smkl: and MAP is a special case in this regard which works on certain structures or is map imperative programming? smoke: there is a big cultural difference.. map is functional map can be interpreted as `for i in .. ; do FUNCTION done', no? smoke: it is functional.. the imperative version would be an ugly for-loop with a variable to save results in it seems to me that the difference between imperative and functional is alike the difference between postfix and infix notation or prefix array result; array original; for (int i=0; i < original.length; i++) result[i] = function(original[i]); (map #'function original) is the functional version smoke: nope, it's much larger smoke: which is more elegant and readable? fufie: that's not a convining argument to use functional programming languages fufie: the true C hacker would come up with void map ( function* f, list* l ); :) but you having closures would be much harder err s/you// map (+ 1) [1,2,3,] argh smoke: true enough.. but can he do your: (map #'(lambda (x) (if (oddp x) 42 x)) original) ? 01:00pm fufie: he can't and will directly argue that it's irreadible code :) fufie: why is the keyword lambda used for that by the way? smoke: maybe so.. but that will be the sort off open-mindness which some people refuse to learn english, even though Oscar Wilde is only readable in english and that is elegant writing ;) smkl; what do you mean by closures ? * smoke/#tunes feels he needs a decent book on functional programming smoke: the history of lambda is explained in the CLHS fufie: hehe :) smoke: and other places too, I guess lambda is not easy to explain on irc, but for now, see it as a on-the-fly generation of a function i think i understand the lambda function basically; i ran into it using emacs lisp frequently abi, no, lambda is a constructor for abstraction of variables okay, Fare. abi, no, lambda is a syntactical constructor for abstraction of variables. See http://tunes.org/Review/VMs.html#lambda okay, Fare. closure uses the (lexical) scope to generate a function or something smoke: emacs lisp is a retarded lisp.. and lambda is much more than lambda in elisp (+ 1) applies + to 1, and returns a new function hmm that was a bad explanation smoke: as smkl and fare says it is basically a closure over variables (and functions) and is at least as powerful as the class-concept in c++/java smkl: I think currying is a bit too much for him yet ;) fufie: i've read about Curry :) :) fufie: i have been studying mathematics for over four years now, so i understood that part of functional programming :) the mathematical background is probably what scares most computer-science-guided people away if you know maths, my guess is that functional programming will appeal much more than imperative languages 01:10pm you need to understand how the clear semantics of functional languages can be used to verify and optimize software in future (hopefully) fufie; somehow i'm on the edge of both worlds fufie; i've been programming since i was a child, and only started mathematics when i was 18 I have serious doubts of the verification part at least.. Fufie: why? because the major problem is the logic of programs -:- zarq` [smoke@16dyn172.delft.casema.net] has joined #tunes not the fascist static typing which everyone is so fond of heya fascist static typing creates new problems for serious programmers while it may help cluebies and if anything.. we need dynamic systems.. not statically systems which are verifiable no, we need those unverifyable systems =) 01:20pm :p * smkl/#tunes likes when his programs run fine after he has rewritten almost all of the code without debugging * Fufie/#tunes is happy with himself.. he has just solved a java/c++/fortran integration problem on Slowaris.. :) program logic is a problem, but there has been some success, like verification of ensemble is it possible to dynamically link in ocaml modules? hm. bad phrase, but the question is clear, i hope in a dynamic system, large parts can be verified, and then their combination might be easy to verify too smoke: yes, but only bytecode modules 01:30pm smkl; is dynamic linking of native code modules 'planned' ? smoke: dunno, but you can load bytecode to a native executable with a library hm ocaml cannot generate PIC i'm afraid :( it is the largest problem of ocaml implementation smkl: but can you verify a system where classes and functions change during a run? -:- SignOff zarq`: #TUNES (going home) smoke: remember that PIC is a really simple and primitive way of dynamism.. Fufie: you would need to verify it dynamically, too (or at least parts of it) fufie; it _is_ fast though and it is the "standard" way of doing it smkl: maybe it can be done dynamically, but my impression is taht every theoretician is into fascist static typing and think that solves a lot, while it solves no real problems C is also the standard way of doing things and it can be fast too, but we don't want C as our solution, so we? ;) Fufie: i think it solves some problems, but it also introduces few new problems it is nice to have the programs use the OS features and not replicate them 01:40pm -:- SignOff binEng: #TUNES ( <k!14>) hmm.. my Slowaris-fix gave the distributed program a hundred ultra-sparcs to work on right away :) * smkl/#tunes goes to bed ... good night nite 01:50pm * Fare/#Tunes is back ugh.. looking at the new scripting language Dino.. :-/ 02:00pm -:- yoo [ultima@user-37kbaj6.dialup.mindspring.com] has joined #Tunes Myeh. * smkl/#tunes wakes up and woo his announcement is finally on freshmeat! hello yoo hello yoo too! ole * yoo/#Tunes bows to Fare 02:20pm smkl; do you think the qpl is free enough? (not to start a war, a simple yes or no would suffice) * yoo/#Tunes thinks the qpl is free enough, if his opinion matters. free enough for what? (if my opinion matter) grin free enough for a language to persist free enough as in 'not too restrictive for a language to survive' I don't think language survival is tied to license fufie; note that i'm specifically stressing language, not implementation yes.. I noticed that okay. why do you want a license on a language anyway? there's a license on the implementation, which may make it harder to spin off new implementations smoke: well it is an improvement, ocaml had it's own license before, and it was considered non opensource, i'm sure it will help ocaml spread now when they changed the license * Fare/#Tunes remarks that OCAML went GPL/LGPL recently... fare; it went qpl/lgpl Fare: wrong, read my announcement on freshmeat :P h0h0h0 the language specs or the compiler/runtime-sys? imho qpl is more restrictive than gpl, but i think this discussion is already getting out of hand, so this is my last stir-up :) fufie: i suppose the specs cannot be, or are not licensed 02:30pm my impression was that smoke asked about how to set a license for the language, e.g which Smalltalk struggeld with for years fufie; oh sorry -- i meant that the license for the implementation was too restrictive for the language to survive fufie; s/was/could be/ (then I even misinterpreted your clarification above where you repeated that you talked of the language) verbosity, the root of all evil perhaps all words of length >3 are the root of all evil * Fare/#Tunes oopses but why go qpl at all? (small enough words ;) lol :) go bsd or gpl :) the previous OCaml license was mostly the same as QPL; choosing the QPL is a way to make things clear to everyone: no need to unnecessarily multiply licenses my point exactly * Fare/#Tunes likes the bugroff license too many licenses are bad, but QPL is imho too restrictive for my taste "irrationality is the square root of evil" fare; although it may be prejudice, the qpl scares me a little I wouldn't choose it personally, but I understand the ocaml guys, after the mosml experience mosml? (moscow ml took the caml-light runtime without giving proper credits) experience? Ah ha. (and rewrote the compiler for sml syntax instead of caml-light syntax) That's lame. that's nasty indeed bsd or gpl would have done the job there fare: doesn't the gpl address that problem? (i know the gpl is not very strictly written, but neither is the qpl) gpl sucks smoke no, it does not. gpl gives you absolute freedom You don't have to give credit to the author as long as you keep the source GPL. The BSD license would have been great though. smoke: yes and no Basically, BSD says 'Give us credit, otherwise, do what you will' the GPL is not explicit enough as of the trace of *ownership* yoo: the BSD license doesn't make it explicit *what* was changed and which part are whose yoo; personally, i do not care much for credits * Fare/#Tunes thinks IP is evil, but trace of ownership is good 02:40pm credits never go where credits are due imo. (where never should be replaced with a more appropriate wording) yoo: GPL is unclear, but you as author is free to add a clause about credit Fufie: Since when? Fufie: Last I heard, you were not allowed to insert your own clauses into the GPL (and still call it GPL) you are allowed to add extra clauses and not call it GPL yes GPL doesn't take away your ownership of the code at all you can make as many licenses and caluases as you like clauses btw: it is _poor_ style not to credit previous programmers Fare: But you have to call it GPL Fare: You can't change the GPL because changing it would make it non-GPL, and you can't change anything thats GPL to non-GPL unless you own it. Fufie: If you put clauses on your code, you can't use the GPL. the GPL does not mention that you cannot add extra clauses i suppose one could add a line 'give credits to me' in every source file The GPL does say something to the effect that you can't mix it with any other license. yoo: where is that? Somewhere in there. 02:50pm anyone but the original author can't sublicense ehh just the original author is allowed to sublicense yoo; really, i have never seen such a thing yoo; perhaps you meant what fufie says ah well -:- SignOff yoo: #TUNES (Leaving) 03:00pm When your hammer is C++, everything begins to look like a thumb :) 03:20pm hey, please give proper credit! -- Steve Hoflich on comp.lang.c++ * Fufie/#tunes is sorry he forgot.. :( now.. if he had put bsd-license on it ;) -:- eihrul [lee@usr5-ppp17.lvdi.net] has joined #tunes didn't god put everything under his proprietary license? then 1) you must pay him huge license fees, and 2) you can't claim ownership on anything he was satisfied with the first commandment :) Fare: doesn't look like god is enforcing his license very well.... -:- Espresso^ [Espresso@212.150.32.101] has joined #tunes 03:30pm time for sleep.. good night :) -:- Espresso^ [Espresso@212.150.32.101] has left #tunes [] 03:40pm -:- zarq [zarq@9dyn96.delft.casema.net] has joined #tunes oi `/w `/w/w 03:50pm -:- SignOff zarq: #TUNES (One day sheep will rule the world) -:- hcf [nef@me-portland-us110.javanet.com] has joined #tunes -:- zarq [zarq@9dyn96.delft.casema.net] has joined #tunes -:- SignOff eihrul: #TUNES (Ping timeout for eihrul[usr5-ppp17.lvdi.net]) -:- AlonzoTG [Alonzo@216-164-139-89.s343.tnt5.lnhva.md.dialup.rcn.com] has joined #tunes -:- air [brand@p0wer.qzx.com] has joined #tunes * zarq/#tunes is away: weggo * zarq/#tunes is away: zzz -:- mibin [mibin@62.10.5.243] has joined #tunes abi, seen water water was last seen on IRC 21 days, 6 hours, 16 minutes and 25 seconds ago, saying: good point [Mon Nov 1 11:19:50 1999] -:- eihrul [lee@usr5-ppp50.lvdi.net] has joined #tunes -:- mibin has changed the topic on channel #tunes to: no topic is a bad topic 05:40pm -:- air has changed the topic on channel #tunes to: http://www.y5b.com/ air: heh are u prepared? :) 05:50pm hmm, i dont think so but tunes will surely be =) heh tunes will shine much more than the sun if tunes is finished before then heh -:- SignOff eihrul: #TUNES (Ping timeout for eihrul[usr5-ppp50.lvdi.net]) irc life is much harder than irl 06:00pm -:- eihrul [lee@usr5-ppp50.lvdi.net] has joined #tunes ya here u must put up with pppls shit, irl u just break a few ribs heh, true 06:10pm -:- SignOff eihrul: #TUNES (Ping timeout for eihrul[usr5-ppp50.lvdi.net]) -:- yoo [ultima@user-38lc71s.dialup.mindspring.com] has joined #Tunes hmm hrmm hrmm hmmm are we thinking the same thing? I doubt it. -:- eihrul [lee@usr5-ppp50.lvdi.net] has joined #tunes 06:50pm wow what a fsckin coincidence I just got here =P so? feh feh feh 07:00pm -:- SignOff yoo: #TUNES (Read error to yoo[user-38lc71s.dialup.mindspring.com]: Connection reset by peer) -:- yoo [ultima@user-37kbat8.dialup.mindspring.com] has joined #Tunes My USO Sucks ISP evenn wb yoo grr hi 07:20pm -:- colorg [r@humbubba.smart.net] has joined #tunes anyone awake? zZ zZ i am sleeping deeply Hi. Rick Hohensee here /me wakes up heyya * yoo/#Tunes sighs 07:30pm yoo: why are you so sad? * yoo/#Tunes is just annoyed with his ISP for sucking so damn much. yoo: want an happy mp3 no I wanna find someone in the Atlanta, Ga area with a shotgun =) and then? Talk them into shredding MindSprng's QH HQ heh is mindspring only in ga ? nope mindspring is owned by earthlink and mindspring owns netcom but they suck 07:40pm ah screw it g'nite =) -:- SignOff yoo: #TUNES (Leaving) 07:50pm -:- SignOff hcf: #TUNES (Ping timeout for hcf[me-portland-us110.javanet.com]) -:- mibin [mibin@62.10.5.243] has left #tunes [] -:- SignOff AlonzoTG: #TUNES (Ping timeout for AlonzoTG[216-164-139-89.s343.tnt5.lnhva.md.dialup.rcn.com]) -:- SignOff eihrul: #TUNES (Ping timeout for eihrul[usr5-ppp50.lvdi.net]) hmm lynx has a patent for making interrupts normal tasks am i in violation of their patent cuz brix does that too and how the hell can u patent something like that? 09:20pm -:- SignOff colorg: #TUNES (Ping timeout for colorg[humbubba.smart.net]) -:- colorg [r@humbubba.smart.net] has joined #tunes -:- SignOff colorg: #TUNES (changing servers) -:- Closing Link: TUNES[bespin.dhs.org] by lewis.openprojects.net (Ping timeout for TUNES[bespin.dhs.org]) -:- Connection closed from irc.us.openprojects.net: Success -:- Connecting to port 6667 of server irc.us.openprojects.net [refnum 0] -:- BitchX+Deb1an: For more information about BitchX type /about -:- Welcome to the Internet Relay Network TUNES (from carter.openprojects.net) -:- Your host is carter.openprojects.net, running version u2.10.05.18.(ipcheck4-5) (from carter.openprojects.net) -:- This server was cobbled together Wed Apr 28 1999 at 12 02:19 EDT(from carter.openprojects.net) -:- carter.openprojects.net u2.10.05.18.(ipcheck4-5) dioswkfcg biklmnopstv -:- [local users on irc(44)] 8% -:- [global users on irc(243)] 42% -:- [invisible users on irc(330)] 58% -:- [ircops on irc(17)] 3% -:- [total users on irc(573)] -:- [unknown connections(0)] -:- [total servers on irc(32)] (avg. 17 users per server) -:- [total channels created(179)] (avg. 3 users per channel) !carter.openprojects.net Highest connection count: 70 (69 clients) !carter.openprojects.net Welcome to Open Projects! You are on 3 ca 1(2) ft 14(14) tr. -:- Mode change [+f] for user TUNES -:- Mode change [+iws] for user TUNES -:- JOIN activated by "TUNES #tunes tunes@bespin.dhs.org " -:- TUNES [tunes@bespin.dhs.org] has joined #tunes -:- Topic for #TUNES: http://www.y5b.com/ -:- topic set by air [Mon Nov 22 17:45:53 1999] -:- [Users(#tunes:8)] [ TUNES ] [ air ] [ zarq ] [ smoke ] [ Fufie ] [ smkl ] [ abi ] [ Fare ] -:- Channel #tunes was created at Sun Feb 28 08:48:06 1999 -:- BitchX+Deb1an: Join to #tunes was synced in 6.020 secs!! -:- Mode change [-s] for user TUNES -:- fatjim [fatjim@h24-66-253-88.xx.wave.shaw.ca] has joined #tunes -:- SignOff smoke: #TUNES (Killed (NickServ (This nick is reserved by another user))) -:- fatjim [fatjim@h24-66-253-88.xx.wave.shaw.ca] has left #tunes [] anyone awake here? * smkl/#tunes is -:- SignOff air: #TUNES (Ping timeout for air[p0wer.qzx.com]) 11:10pm [msg(TUNES)] newlog 1999.1123 IRC log ended Tue Nov 23 00:00:00 1999