< 1183939625 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1183939963 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION gets this vision of GregorR talking with a soprano voice < 1183940036 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :he talks like a nerd, not a geek < 1183940098 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i meant, just from your comment, i haven't seen the video < 1183940241 0 :sebbu!unknown@unknown.invalid QUIT :"@+" < 1183940485 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reappears. < 1183940518 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: Yes yes, I have an ultra-nasal voice. < 1183940688 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: You sound a good deal different when singing. < 1183940765 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1183940848 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I don't like my voice, but I've decided to live with it :P < 1183940854 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1183940876 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION likes being a bass. ;) < 1183940886 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reads how Richard Feynmann killed a guy: http://www.museumofhoaxes.com/comments/papparticle2.html < 1183940900 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :(sorta) < 1183940952 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"rebooting to test config file" < 1183942071 0 :GreaseMonkey!n=ihavdeb4@222-154-150-108.jetstream.xtra.co.nz JOIN :#esoteric < 1183942881 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"testing something, brb" < 1183942968 0 :GreaseMonkey!n=ihavdeb4@222-154-150-108.jetstream.xtra.co.nz JOIN :#esoteric < 1183943013 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://pikhq.nonlogic.org/bfi.c Yeah, I'm bored. < 1183943098 0 :GreaseMonkey!unknown@unknown.invalid QUIT :Client Quit < 1183943105 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1183943112 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :is easier to write a BF compiler in C < 1183943118 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :fax: Yeah. < 1183943135 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :More fun to write one in BF. < 1183943138 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1183943276 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if there is such a thing as vocal chord plastic surgery. < 1183943277 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1183943282 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :I never saw that < 1183943307 0 :GreaseMonkey!n=ihavdeb4@222-154-150-108.jetstream.xtra.co.nz JOIN :#esoteric < 1183943545 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Dubious. < 1183943575 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :One can simulate the effects by going to China and signing up for an experiment on vocal chord replacement or something. :p < 1183943726 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1183943775 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(I'm not donating.) < 1183943809 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1183943826 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION imagines looking at the catalog: "Patrick Stewart, no ... Pavarotti, no ... Aha - yes, I'd like the Mike Rowe. Thank you." < 1183943833 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1183943853 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I imagine it'd be much easier to just make alterations that to create a specific voice < 1183943893 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :modify voicebox dimensions a bit with the old cut-and-splice tricks in normal surgery, voila. < 1183943894 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric : *joke* *disassembles joke into unfunny anecdote* < 1183943922 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :don't even start telling me *I'm* overly analytical, GregorR < 1183943954 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :zzzzzzzzzz < 1183944089 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://www.komotv.com/news/local/8355142.html < 1183944133 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :That would be a classic assertion-assertion-defense-counterdefense pattern. < 1183944419 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1183944679 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :suifur: Ah, then my suspicions were correct. < 1183945095 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I, however, *am* overly analytical. < 1183945112 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :LMAO < 1183945958 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hey, guys- I just put the finishing touches on the game I've been building this week- check it out! http://rodger.nonlogic.org/games/steamlock/ < 1183946073 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: that worked out for you then i assume? < 1183946126 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: i feel like enemies are almost too fast at times in the game < 1183946134 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1183946136 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :Wow! It still doesn't work! < 1183946148 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :overall, what do you think about the "feel" of gameplay? < 1183946153 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :suifur: Well, it's certainly different. < 1183946166 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :As I'm coding Java, my brain is competing between C-style and dynamic-style. < 1183946169 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: referring to class hierarchy? < 1183946172 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :oh ok < 1183946211 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I've become accustomed to dynamic OOP, which often allows you to return variable types of objects, but making sure that, as long as your object responds to a certain message, it's alright. < 1183946216 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: cool! I love the graphics < 1183946216 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: well the biggest thing I always had problems with is I felt like class hiearchies were going to make the code bloated but after studying java more i've realized that classes don't make a terrible impact < 1183946225 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :And that too :P < 1183946237 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :fax: thanks! I pixeled everything myself < 1183946245 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I can do that here too but, I'd have to use Object types, which is pretty much like a type checked void* . < 1183946248 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :ok, my java is b0rked. i'll go try on the family PC. < 1183946254 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :So it feels very ... hackish. < 1183946257 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: cool, im a big fan of pixely graphics and monochrome :p < 1183946272 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: I've gotten a lot of good experience out of tweaking computational models in java < 1183946291 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: I think the ship moves a lot slower thna most games but its maybe not a bad things, just like it has a lot of intertia < 1183946291 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :fax: you should try out the demo I have online of another game I'm working on: http://rodger.nonlogic.org/games/CRPG/ < 1183946308 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that was pretty much the feeling I was going for < 1183946312 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :suifur: Try an adventure game. :p < 1183946384 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: i like the feel of the gameplay overall, just feel like the enemies are almost too fast < 1183946394 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :\though maybe it should ease into the waves < 1183946397 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :hehe cool < 1183946411 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :I got to make a game :S < 1183946421 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :suifur: hm. I may tweak it a bit < 1183946443 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'm gathering feedback from everyone that tries it out < 1183946502 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: to make it amazing (the shmup) I would make the actual game canvas bigger and have some bosses at some point < 1183946536 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :many people have asked about bosses- I plan to have them in the multiplayer sequel < 1183947918 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The 3D AJAX multiplayer sequel using my JS 3D library. < 1183947945 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I dunno about that. Javascript multiplayer sounds painful. :[ < 1183947969 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :you should definitely make a game out of that thing, though, gregor- < 1183947982 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'd be happy to whip you up some graphics < 1183948076 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat, i reckon that it's too fast < 1183948086 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :otherwise it's great < 1183948096 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :thanks, GreaseMonkey! :D < 1183948108 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :everything, or just the enemies? < 1183948112 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :although for compatibility, it'd be great to have a JavaScript version < 1183948119 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat, everything < 1183948125 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :halve the speed and then try < 1183948160 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: Do you think a Smalltalk->JVM-bytecode compiler would be better? < 1183948165 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: Or a VM? < 1183948208 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: As I was at Borders this afternoon, I loafed in the computer section (yeah, a teenage girl in the computer book section, weird enough), and I read through interesting portions of the Java Cookbook, particularly the portions on Introspection. < 1183948260 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I was wondering if we could parse directly to Java bytecodes, but that would probably be a lot of work and not as referrentially transparent for the end user. < 1183948275 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :jesus- I can only imagine how painful this would be to make in JS < 1183948299 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: hm. tricky, but possible < 1183948314 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you don't want Java for referential transparency, try Haskell :D < 1183948329 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: If it's too tricky, then I think it's a waste of time. < 1183948336 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ... :P < 1183948356 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, mainly I just don't know jack about JVM bytecode. We'd have to learn it from scratch < 1183948425 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I think that doing it in a realtime fashion would be particularly difficult (because Smalltalk seems to typically be programmed with in an interactive fashion, to some extent) < 1183948452 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :VM it is then. < 1183948462 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :i should learn a bit of java bytecode :/ < 1183948466 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :fax: Wanna help?! < 1183948473 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :eh? with what? < 1183948475 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :(I'm not in #lispcafe, by the way, for saving RAM.) < 1183948480 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1183948499 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1183948499 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I've fallen in love a bit with Smalltalk and wanted to do it justice by implementing a Smalltalk VM in Java. < 1183948549 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :well what I wanted to do was add the functionality to define new java classes in SISC < 1183948554 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :fax: come, join our crack team of Java-philes and harken in a new era of Smalltalk virtualization! < 1183948567 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :wait so this is like a real project? :p < 1183948570 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yeah :P < 1183948573 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1183948577 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1183948586 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :what gave you the impression we were just blowing steam? < 1183948619 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :these projects are _always_ real until they peter out >:) < 1183948625 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1183948638 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :well you can upload bytecode directly to the JVM .. at runtime < 1183948645 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :just generating it is probably tricky < 1183948660 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :such little faith. I'll bet we get at least the smalltalk VM before we get bored and pick up something else. :) < 1183948679 0 :GregorR-L!n=gregor@c-76-27-232-8.hsd1.or.comcast.net JOIN :#esoteric < 1183948690 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :wb, GregorR-L < 1183948700 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :HAW HAW HAW, ALL ZE KOOL KEEDS SPEEK IN ZE FEKK FRONSH ACCENT < 1183948741 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Screw being cool, then.\ < 1183948751 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(already said as much) < 1183948759 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :one problem .. I dont know any smalltalk :P < 1183948762 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :VY NOT IN DE FEK SKANDINAVIAN ACCENT? < 1183948766 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :(and I assume you'd write it in smalltalk?) < 1183948785 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: FEK IT ES NAWT. < 1183948799 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :fax: Play with a Smalltalk book then. < 1183948811 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :its walrus it woody woodpecker! < 1183948818 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No' is the British accent. < 1183948839 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Jolly good chap, wot! < 1183948843 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :fax: http://www.iam.unibe.ch/~ducasse/FreeBooks.html <-- Havas unun bonan tempon kiel vi legos cxi tiujn librojn. < 1183948865 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :nice :D < 1183948874 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :have you read many? which would you recommened? < 1183948882 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Have I read many? Heck no. < 1183948890 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Do I have any to reccomend? Possibly. < 1183948910 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :A Taste of Smalltalk, and Smalltalk by example. And the Squeak specific book if you want to play with Squeak. < 1183948945 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: Kial? < 1183948970 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :so you have any road/codemap or anything done yeT? < 1183949064 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Estas possebla ke mi malmemorigxas cxi tiu vorto :( < 1183949086 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :fax: I made a rough map earlier with RodgerTheGreat yesterday. He can C/P it to you while I play a bit of TacticsA(J). < 1183949114 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :*tiun vorton < 1183949197 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: Vidu en Lernu!-an vortaron. < 1183949202 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :grr I want books in one gigantic chunk.. not several small pdfs < 1183949214 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Kaj la vorto estas "ebla", ne "possebla". < 1183949269 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :'Smalltalk collections are 1 based rather than 0 based' :O < 1183949283 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/vidu/uzu/ < 1183949317 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :http://nonlogic.org/dump/text/1183945681.html < 1183949367 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :hm :D < 1183949385 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :but I am now confused, how does the JVM come into this? < 1183949408 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :fax: they want to port smalltalk to it < 1183949454 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: the link seems to suggest otherwise... :S < 1183949493 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :by "they", i mean "you" on this channel < 1183949504 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1183949737 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :ohhh < 1183949745 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :you want to implement a smalltalk *vm* in java < 1183949758 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :I thought you were wanting to write a smalltalk compiler to the JVM < 1183950527 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :java boooooo < 1183950582 0 :GreaseMonkey!unknown@unknown.invalid QUIT :Remote closed the connection < 1183950613 0 :GreaseMonkey!n=ihavdeb4@222-154-150-108.jetstream.xtra.co.nz JOIN :#esoteric < 1183950648 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :yeah why to implement a smalltalk in anything other than smalltalk? :p < 1183950699 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Sed, mi amas lerni Esperanto plej. < 1183950711 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: implement smalltalk in lisp < 1183950711 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :s/Esperanto/Japanon/ < 1183950715 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: No. < 1183950731 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and let scheme and smalltalk be intermixed < 1183950731 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Well, Japanese time. < 1183950736 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :THAT would be cool < 1183950755 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :*Sigh* What part of the words ``a useful project'' did you not understand? :P < 1183950755 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: Am I right in thinking you want to implement a language ontop some new VM written in a language built upon a VM? < 1183950765 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :fax: Yes, you are. < 1183950770 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :thats crazy :P < 1183950780 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :why not just compile smalltalk to java bytecode? < 1183950783 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :fax: Well, would you rather implement a Smalltalk->Java compiler? < 1183950795 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :The thing is, would it give the user as much freedom? < 1183950805 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :why have two VMs?? < 1183950814 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :..when you could have 3 :P < 1183950842 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: Out of curiosity, why smalltalk at all? Do you know smalltalk? < 1183950845 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :fax: If you're up to doing the compile, I'm game. < 1183950861 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :suifur: Yeah. I've been playing with it, and I've come to like it more than Lisp (Heathen, yes). < 1183950867 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: well I would not like to say that I am or not before finishing this scheme to c thing < 1183950881 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: I can't say whether thats heathen or not since I don't know lisp ;). < 1183950898 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :lisp is cool, def. worth trying at some point < 1183950902 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Very. < 1183950918 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :fax: its on my to-learn list, right after Scala/Smalltalk, Erlang and then Lisp < 1183950944 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :What say you, troupe -- a Smalltalk VM or a bytecode compiler? < 1183950961 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: The first thing I thought was a bite code compiler < 1183950971 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: Why would you implement a VM on top of a VM is my question < 1183950983 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :why not write a VM to run on anything if you were to go that route? < 1183951027 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :suifur: Well, because Java has lots of cross platform libraries. < 1183951044 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :And because C is hardly portable :P (but if you do want to do it at a low-level, D probably would be.) < 1183951053 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: ok. So why not just create a bite-code compiler? < 1183951061 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :err byte* < 1183951067 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :suifur: I want that, but my only concern is flexibility. < 1183951079 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: why would it cut flexibility/? < 1183951091 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :suifur: Because in a Smalltalk system, you should be able to customize just about *anything*. < 1183951107 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :(I'm not trying to be annoying or dumb, I just honestly don't know these questions lol) < 1183951134 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: ah, hmmm. I see your point. < 1183951156 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: though done properly, I think the bytecode compiler could work well < 1183951216 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :suifur: Hmm. Then why don't you and RodgerTheGreat and fax toss around the point while I do my daily Japanese work? ;) < 1183951236 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :daily japanese work eh? < 1183951242 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: you still about? < 1183951258 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: how do you keep it up -_- < 1183951260 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :The only reason C seems unportable is Windows. < 1183951293 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :The only reason asm seems unportable is other proccessors. < 1183951304 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Touché :P < 1183951358 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :fax: what do you think? < 1183951368 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :suifur: about what in particular? < 1183951386 0 :suifur!unknown@unknown.invalid PRIVMSG #esoteric :fax: vm on top of vm versus bytecode compiler? < 1183951400 0 :zbrown!unknown@unknown.invalid NICK :rufius < 1183951403 0 :suifur!unknown@unknown.invalid NICK :zbrown < 1183951408 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :ive only really skimmed the jvm notes before < 1183951431 0 :zbrown!unknown@unknown.invalid PRIVMSG #esoteric :fax: I'm assuming you know Java? < 1183951434 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :and I dont know smalltalk really well so I cant really tell if a bytecode compiler would have some flexability problems.. < 1183951439 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1183951452 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :fax: Because I really love the language ;) < 1183951465 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: what ? < 1183951476 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :fax: Japanese. < 1183951480 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :ahh right < 1183951480 0 :zbrown!unknown@unknown.invalid PRIVMSG #esoteric :hmmm, I wish #scala was more active. We could really learn a lot from them since they implemented scala to run in both .NET's CLR and JAv's JVM < 1183951486 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html <-- For the discussion you two are doing. < 1183951508 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :s/doing/having/ < 1183951587 0 :zbrown!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1183951775 0 :zbrown!unknown@unknown.invalid PRIVMSG #esoteric :fax: I feel like the vm within the vm could be an easier problem to solve than a bytecode compiler for smalltalk to java < 1183952956 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Discussion has ceased? < 1183953003 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :you left :p < 1183953029 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :... :P < 1183953036 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I'm going back though. < 1183955451 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :http://www.codu.org/dsss_tutorials/tut_environment.avi < Tutorial on setting up GDC+DSSS+Tango for newbies - opinions? < 1183955453 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Erm < 1183955457 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Wrong channel X-P < 1183955627 0 :immibis!n=IceChat7@125-238-32-194.broadband-telecom.global-gateway.net.nz JOIN :#esoteric < 1183956236 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :GDC ? < 1183956244 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :GNU D Compiler? < 1183956249 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Yeah >_> < 1183956255 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :DSSS? < 1183956260 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :I mean to post that in #d.tango <_< < 1183956266 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :DSSS is a build system for D. < 1183956268 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :D Something Something Something (else) < 1183956270 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1183956272 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Tango? < 1183956281 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :A community-driven D standard library. < 1183956283 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :dead sexy southern sluts < 1183956290 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :... :P < 1183956295 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: How'd you guess the expansion? < 1183956326 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking D Socialist Society of Scripters. < 1183956357 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :GregorR-L: Does D have any cross platform GUI library? < 1183956370 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: wxD and a port of SWT < 1183956390 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Then D has matured since I last saw it. Hmm. < 1183956432 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :There's a program (Tioport) to port (much) Java code to D, so SWT is ported automatically (pretty amazing). < 1183956536 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Wowzerz. < 1183956559 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :What is DWT? < 1183956569 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :An older port of SWT. < 1183956586 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :It was unautomated and Windows-only, isn't supported anymore. < 1183956597 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :http://www.dsource.org/projects/tioport/ < has SWT < 1183956850 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Is CODU your domain? < 1183956887 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. This looks like a job for The Troupe Discussion. < 1183956907 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reappears. < 1183956909 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, codu.org = me < 1183956911 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat, zbrown, fax, ASSEMBLE!!! <-- What do you think of D, since it seems a lot more mature than last time, for a VM. < 1183956929 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :I hate D -_- < 1183956935 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oh yes, I missed that DSSS was originally written by Gregor Richards part, GregorR-L. < 1183956935 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Ha-HAH < 1183956939 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :fax: How come? < 1183956949 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :(Sincerely asking.) < 1183957121 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :*chirp chirp* < 1183957147 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :I dont know what to say except I am totally irrational... but please dont let that have any effect on your plans < 1183957147 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Chirp chirp is a good reason, hmmm... *considers*. < 1183957181 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Uh... so you just hate D? < 1183957193 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I mean, if you say you hate D because you hate C, it's understandable, but.... < 1183957195 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :D killed my father! < 1183957197 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :And raped my mother! < 1183957216 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Why couldn't it rape your father as well? < 1183957218 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :my name is GregorR-L, you killed my father, prepare to die < 1183957249 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: D AIN'T QUEER < 1183957250 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1183957287 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :don't have to be queer to enjoy a warm, damp, tight cavity < 1183957293 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Hahahaha < 1183957297 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :.............................. < 1183957308 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1183957324 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Talking about D led to this *shudder*. < 1183957331 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: see :p < 1183957340 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Well, any elaborations on your reasons, fax, other than this rape business? < 1183957345 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :D its just some bad vibe :P < 1183957355 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :D is a language without a purpose < 1183957362 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Ah-hmm. Reason noted by fax. < 1183957380 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :the most purpose I can think is something like "fix C++s problems" < 1183957392 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :My main concern was that, fat managers like Java a lot more than D. < 1183957405 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :goddamn < 1183957414 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what is it with you and this stupid "practicality" < 1183957421 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :fax: Yeah, that's why Java exists. Only they fixed C++'s problems by removing them and all associated features. < 1183957426 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: :D < 1183957435 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :bad esolite < 1183957479 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I code in Esolangs or Scheme when I want to have fun, I code in other languages when I want to get things done. < 1183957496 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :Scheme is perfectly fine for getting stuff done! < 1183957516 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :*Chirp chirp* < 1183957548 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders if *chirp chirp* is some reference he doesn't get. < 1183957562 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Well, it sure hasn't been garbage collected yet. < 1183957566 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Sukoshi said it at a weird place :P < 1183957569 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Ba dum pum pshhh. < 1183957614 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi wasn't the first. < 1183957619 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: lambda and code transforming macros, everything the body needs! < 1183957636 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: crickets make the sound at the middle of the night when -nothing- is happening :P < 1183957639 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :on saturday june 11, 2005, at 06:15:14, GregorR said "You can put < and > in those, just not -->" < 1183957664 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :HAHAHAHAHA. < 1183957679 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: ...? < 1183957701 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :wtf? :p < 1183958075 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i'm reading #esoteric logs < 1183958124 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :And that line is fascinating because ...? < 1183958464 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Think of ``-->'' as a sexual organ. < 1183958619 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :I'm glad my penis doesn't look like that :P < 1183958667 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I'm glad you're not adding graphic detail to that :P < 1183958685 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Well, I don't want to flood the channel. < 1183958727 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*GROAN* < 1183958805 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Neither does your mom. < 1183959587 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1183960550 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :--> = sex you can't escape from < 1183960852 0 :GreaseMonkey!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183960852 0 :GregorR-L!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183961062 0 :GreaseMonkey!n=ihavdeb4@222-154-150-108.jetstream.xtra.co.nz JOIN :#esoteric < 1183961062 0 :GregorR-L!n=gregor@c-76-27-232-8.hsd1.or.comcast.net JOIN :#esoteric < 1183961189 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :fax: You're quite right: everything the body needs is provided by Tcl. < 1183961209 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :wait Tcl has macros which dont suck? < 1183961213 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :ACTION investigates < 1183961214 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(well, except that lambda's not a *primitive*, but a fairly short, simple proc) < 1183961370 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Anything more complex than doing macros via interp isn't primitive; merely trivial. ;) < 1183961496 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: how is lambda implemented? < 1183961570 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and does it have correct scoping? < 1183961593 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Depends upon the Tcl version. . . < 1183961598 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :;_; < 1183961634 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The CVS version has it as a wrapper around the "apply" command (which takes a list and executes it as an anonymous function). < 1183961668 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oooh < 1183961687 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The stable version involves returning a temporary proc name; this lets the [lambda] feature work with the miriad Tcl functions that assume a proc is pass by reference. < 1183961689 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you can do a doubly linked list and only use one word for the two pointers < 1183961699 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :what how?? < 1183961706 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: Yeah, but xor linking isn't worth it. < 1183961719 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :xor linking is bad. < 1183961723 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :sho w meeeeee < 1183961727 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :I dont beleive it < 1183961735 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fax: you store next ^ prev < 1183961741 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR-L: why? < 1183961744 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://wiki.tcl.tk/519 <-- Lambda implementations in the stable version of Tcl. < 1183961745 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: GC < 1183961746 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: now you cant access either < 1183961752 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fax: yes < 1183961753 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :fax: The pointer is the xor of the previous and next. Since you're always going through it one way or another, you simply xor against the one you last saw. < 1183961761 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fax: you can traverse < 1183961767 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :but then you need to have two items < 1183961782 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :you cant store the head, you need to head and head of tail < 1183961785 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :? < 1183961798 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, those are stored outside the nodes. < 1183961804 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :As per usual. < 1183961824 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :head and tail are stored normally < 1183961899 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :usually I store only the head... < 1183961910 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :oh well thats a neat trick < 1183961921 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :NO IT'S NOT < 1183961923 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :IT'S BAD < 1183961926 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :BAD BAD BAD < 1183961951 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fax: no point in a doubly linked list without storing the tail < 1183961951 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :1) GC. 2) Don't sacrifice readability and understandability for one word. < 1183961971 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR-L: obviously you can only do it in ungced languages... < 1183961972 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://wiki.tcl.tk/10743 <-- I think this is my favorite 8.4 Tcl implementation of anonymous, first-class functions. . . < 1183962014 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Anybody want to help me make a game with my JS 3D engine? :) < 1183962306 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GregorR-L: No, I want to oooh and aaah at something that turns functions into being first-class. < 1183962373 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i think that's worthy of a few ooohs, but not if i don't know tcl < 1183962407 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :guile, not tcl! < 1183962412 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :First step to make functions first-class: rewrite part of the interpreter. . . From within Tcl. :p < 1183962480 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :39 lines of code for the whole thing. < 1183962573 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i think i could give C lambda using cpp < 1183962609 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But giving C lambda using C? < 1183962616 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1183962633 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Tcl is given lambda. . . From pure Tcl. < 1183962635 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :you cant capture free vars < 1183962636 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :C already has first-class functions. < 1183962647 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GregorR-L: But not anonymous ones. < 1183962651 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :True. < 1183962677 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :D has 'em ^^ < 1183962690 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :actually, no, because cpp macros can't edit the toplevel < 1183962690 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :39 lines of code for going from no anonymous functions, no first-class functions to having anonymous first-class functions. < 1183962751 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR-L: closures? < 1183962790 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Any language with anonymous functions has closures, they just may be a bit ugly. < 1183962804 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just tested; yeah, the 39 loc gives proper scoping. < 1183962835 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :closures are local variables which are accessed after leaving the scope, right? < 1183962990 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not quite, they are functions that access such variables < 1183963055 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :one more try, they are the function, bundled together with the variables < 1183963338 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, it's cata- or hylo- or something -morphic :) < 1183963348 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(wrong channel) < 1183963591 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :cata-hylo-morphic? < 1183963814 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :catamorphic or hylomorphic < 1183963830 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :silly haskeller < 1183963876 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: you wouldn't know it was haskell if you weren't one too :D < 1183963930 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(although strictly speaking it is more category theory, which some people occasionally import into haskell) < 1183963931 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :just because i know what haskell language sounds like doesn't mean i'm a haskeller < 1183963963 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and i know oerjan + funny math language = haskell < 1183963967 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1183963982 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :I wish I learned haskell a few years ago < 1183964013 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: hey, i did happen do know math before i knew haskell < 1183964065 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :gotta love that abstract nonsense < 1183964109 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*to < 1183966762 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :http://web.engr.oregonstate.edu/~budd/SmallWorld/ReadMe.html <-- Yay. < 1183966770 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's only an applet though, so we'll have to change that. < 1183966831 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :>:| < 1183966836 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: I thought you said abstract machine < 1183966853 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what < 1183966872 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :fax: Like it? < 1183966875 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Or lurv it?! < 1183966884 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: I read a bit of those books < 1183966894 0 :fax!unknown@unknown.invalid PRIVMSG #esoteric :I think smalltalk looks very clear < 1183966901 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1183967999 0 :clog!unknown@unknown.invalid QUIT :ended < 1183968000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1183968173 0 :Sukoshi!unknown@unknown.invalid QUIT :"Leaving" < 1183968387 0 :ihope_!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183968387 0 :pikhq!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183969568 0 :GreaseMonkey_!n=ihavdeb4@222-154-151-96.jetstream.xtra.co.nz JOIN :#esoteric < 1183969610 0 :GreaseMonkey!unknown@unknown.invalid QUIT :Nick collision from services. < 1183969628 0 :GreaseMonkey_!unknown@unknown.invalid NICK :GreaseMonkey < 1183971719 0 :immibis!unknown@unknown.invalid QUIT :"Rebooting" < 1183972911 0 :GregorR-L!unknown@unknown.invalid QUIT :"Leaving" < 1183975651 0 :GreaseMonkey_!n=ihavdeb4@222-154-144-178.jetstream.xtra.co.nz JOIN :#esoteric < 1183975659 0 :GreaseMonkey!unknown@unknown.invalid QUIT :Nick collision from services. < 1183975726 0 :GreaseMonkey_!unknown@unknown.invalid NICK :GreaseMonkey < 1183977165 0 :oerjan!unknown@unknown.invalid QUIT :"lunch" < 1183977698 0 :RedDak!n=dak@87.19.82.136 JOIN :#esoteric < 1183977854 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :gonna go now, cya < 1183977891 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"^ I'm with stupid" < 1183978270 0 :fax!unknown@unknown.invalid NICK :afx < 1183978677 0 :afx!unknown@unknown.invalid NICK :fax < 1183981933 0 :rufius!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981933 0 :RedDak!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981933 0 :fax!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981933 0 :helios24!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981934 0 :tokigun!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981934 0 :Izzy7!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981934 0 :zbrown!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981934 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981934 0 :meatmanek!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981935 0 :lament!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981935 0 :oklopol!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981935 0 :cmeme!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981935 0 :fizzie!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981935 0 :mtve!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981935 0 :sp3tt!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1183981984 0 :RedDak!n=dak@87.19.82.136 JOIN :#esoteric < 1183981984 0 :fax!n=pacman@amcant.demon.co.uk JOIN :#esoteric < 1183981984 0 :zbrown!i=rufius@unaffiliated/zbrown JOIN :#esoteric < 1183981984 0 :rufius!n=rufius@unaffiliated/zbrown JOIN :#esoteric < 1183981984 0 :RodgerTheGreat!n=Rodger@wads-5-232-125.resnet.mtu.edu JOIN :#esoteric < 1183981984 0 :meatmanek!n=meatmane@cpe-65-29-79-179.indy.res.rr.com JOIN :#esoteric < 1183981984 0 :helios24!n=helios@195.37.106.60 JOIN :#esoteric < 1183981984 0 :lament!n=lament@S010600110999ad06.vc.shawcable.net JOIN :#esoteric < 1183981984 0 :oklopol!n=ville@194.251.103.33 JOIN :#esoteric < 1183981984 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1183981984 0 :tokigun!n=tokigun@haje8.kaist.ac.kr JOIN :#esoteric < 1183981984 0 :mtve!i=mtve@mtve.vm.jvds.com JOIN :#esoteric < 1183981984 0 :sp3tt!n=sp3tt@80-162.cust.umeaenergi.com JOIN :#esoteric < 1183981984 0 :fizzie!n=fis@sesefras.zem.fi JOIN :#esoteric < 1183981984 0 :Izzy7!i=senji@cleopatra.thy.me.uk JOIN :#esoteric < 1183982573 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1183984139 0 :edwardk!n=edwardk@pdpc/supporter/base/edwardk JOIN :#esoteric < 1183984157 0 :edwardk!unknown@unknown.invalid PART #esoteric :? < 1183984401 0 :RedDak!n=dak@87.19.82.136 JOIN :#esoteric < 1183986330 0 :ehird!n=test@user-54457988.lns6-c11.dsl.pol.co.uk JOIN :#esoteric < 1183987471 0 :rufius!unknown@unknown.invalid NICK :suifur < 1183987509 0 :suifur!unknown@unknown.invalid QUIT :"leaving" < 1183987577 0 :rufius!n=rufius@unaffiliated/zbrown JOIN :#esoteric < 1183989076 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what brainfuck needs is continuations. < 1183989087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not gotos, not functions, but nice, simple continuations < 1183989151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you'd only need & (create new continuation, place it at the current cell, place 0 at next cell) and % (get continuation from cell, get argument from next cell, jump to continuation with argument replacing the original 0 from &) < 1183989160 0 :zbrown!unknown@unknown.invalid NICK :suifur < 1183989162 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nice and simple and a pain to use < 1183989164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sounds like brainfuck to me < 1183989167 0 :rufius!unknown@unknown.invalid NICK :zbrown < 1183992442 0 :ihope_!n=ihope@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1183992455 0 :ihope_!unknown@unknown.invalid NICK :ihope < 1183992712 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :=) < 1183993349 0 :zbrown!unknown@unknown.invalid PRIVMSG #esoteric :I think I like smalltalk :) < 1183994395 0 :RedDak!unknown@unknown.invalid QUIT :"I'm quitting... Bye all" < 1183995528 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi, everyone < 1183995999 0 :purple!n=purple@80.93.231.198 JOIN :#esoteric < 1183996006 0 :purple!unknown@unknown.invalid PART #esoteric :? < 1183997624 0 :jix!n=jix@dyndsl-091-096-061-187.ewe-ip-backbone.de JOIN :#esoteric < 1183997865 0 :SilentScience!n=CakeProp@h211.233.213.151.ip.alltel.net JOIN :#esoteric < 1183998064 0 :RedDak!n=dak@87.19.82.136 JOIN :#esoteric < 1183998265 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ello! < 1183998286 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hey, ihope! What's up, man? < 1183998309 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Not much esolang-related. < 1183998329 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Outside of esolangs, first day of driver's ed. < 1183998336 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :(Or drivers' ed, if you want to go that route.) < 1183998416 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I think I'll take a look at some very basic message-passing later today. < 1183998481 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :right now, I'm just kinda doodling and deciding wether this is going to be an "art week" or a "coding week". < 1183998502 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'm kinda between projects, as the Smalltalk thing is only just starting to pick up momentum < 1183998510 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I take it by "art" you mean "art other than coding". < 1183998527 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :haha- yes. < 1183998557 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I consider coding an artform, but I generally mean drawing or ink work when I use the term "art" < 1183998564 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nosd < 1183998571 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :(Nods, even.) < 1183998865 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :'[In] Smalltalk . . . there is no difference between values which are objects and values which are primitive types. . . . This fact is summarised in the commonly heard phrase "In Smalltalk everything is an object" (which would more accurately be expressed as "all values are objects", as variables aren't).' http://en.wikipedia.org/wiki/Smalltalk < 1183998872 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Variables aren't objects! That must be remedied! < 1183998885 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :s/s!/s?/ < 1183998893 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1183998920 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :invent MinisculeSpeak to rectify this oversight- you can do it, ihope! < 1183998949 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I think Sukoshi has been insanely successful in making everyone obsessed with Smalltalk. < 1183999057 0 :fax!unknown@unknown.invalid QUIT :Remote closed the connection < 1183999097 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders all the crazy features a language should have built in < 1183999122 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Monads, delimited continuations (fancy!), message passing, variables as values... < 1183999157 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I misread "Monads" as "Moods" which could make for a hilarious language < 1183999162 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and static dependent typing. < 1183999177 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :"ERROR: Compiler is in a bad mood. Add caffeine and try again." < 1183999214 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and if you wound up with a female compiler, you'd be lucky to get anything compiled at all a couple days a month < 1183999233 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :"Wow, how'd you get it to run so fast?" "Morale." < 1183999258 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :if you kept screwing up, your compiler might get frustrated at you and start scrambling your code out of spite < 1183999280 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :if you became friends with your compiler, it would do more work to optimize your code. < 1183999289 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What do you call the feeling that everyone's an idiot? < 1183999302 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Loathing of humankind? < 1183999316 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Possibly hubris or egotism? < 1183999360 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :"Gah! Everyone around me is an idiot!" < 1183999386 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that's either egotism or working for Microsoft. < 1183999393 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :"ERROR: Programmer is an idiot. Source file deleted." < 1183999401 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :heheheh < 1183999436 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :"ERROR: I'll nullpointer YOUR FACE if you write something that idiotic again, I swear to god." < 1183999584 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Or, if the compiler is happy, "ERROR: Programmer is an idiot. Source file fixed. Changes credited to me." < 1183999597 0 :SilentScience!unknown@unknown.invalid NICK :CakeProphet < 1183999607 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Or, if the compiler is VERY happy, "ERROR: Programmer is an idiot. Source file fixed. Changes credited to programmer." < 1183999616 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi, CakeProphet < 1183999624 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ScientScience! < 1183999633 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Er, ScientSilence. < 1183999643 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :... < 1183999644 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ello. < 1183999644 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :..... < 1183999648 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :HI < 1183999649 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :FIENDS < 1183999654 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ihope: dyslexia much? < 1183999664 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :CHEESECAKE FIELD... er, FIEND < 1183999674 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: something like that. < 1183999859 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is listening to Kb - Beyond the gates from Nectarine Demoscene Radio < 1183999958 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Monads, delimited continuations, message passing, variables as values. Really, generic zippers should be included too. < 1183999977 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :zippers? < 1183999993 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... < 1184000003 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I just remembered how bland the conversation gets here. < 1184000012 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :IT HAS GREAT MOMENTS SOMETIMES THOUGH < 1184000023 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Method to... simulate a pointer, I guess. < 1184000030 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :INDEED GOOD SIR IT DOES QUITE RIGHTLY < 1184000064 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. Read something that sounds like the cat's pajamas (whatever those are) and you realize it's just a pointer :-P < 1184000077 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :after all, not every moment of IRC can be bash.org < 1184000093 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.....at times it can. < 1184000109 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :which is the entire point < 1184000113 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.......................... < 1184000115 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I HATE YOU < 1184000119 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1184000119 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Though perhaps since a variable is pretty much a pointer, generic zippers could replace variables. < 1184000124 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :WOW, CAPITAL LETTERS < 1184000129 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :INDEED < 1184000138 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :CAPSLOCK IS LIKE CRUISE CONTROL FOR COOL < 1184000141 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :WE NEED TO GET GREGORR IN HERE < 1184000151 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....I use shift. capslock is for noobs. < 1184000152 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :INDEED < 1184000157 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ME TOO. < 1184000160 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :FUCK YES < 1184000164 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :SHIFTERS UNITE < 1184000176 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :actually, yeah. Even when I pretend to use capslock I reflexively shift. <:[ < 1184000207 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :......what purpose does capslock serve? < 1184000217 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :NOW, DOES ANybody actually know anything about generic zippers? < 1184000224 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :when will you ever need to... USE CAPITAL LETTERS AT ALL TIMES BY DEFAULT < 1184000233 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....no clue what a zipper is. < 1184000244 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :When you need to use a lot of capital letters. < 1184000250 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...Perhaps #haskell would have a better answer. < 1184000278 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....proglang channels scare me. anything I say spurs a pedantic debate. < 1184000319 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Pedantic debate? < 1184000330 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.......yes < 1184000336 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :#Java sucks hardcode. I hate that place. < 1184000395 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :LOL NO WAI DOOD, LISTS ARE MORE LIKE A BOUNDLESS TAPE OF REFERENCES, NOT A CONTAINER FOR VALUES. < 1184000399 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...and such. < 1184000412 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :except without the surfer/chatspeak slang. < 1184000416 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and more assholeish < 1184000455 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Huh. < 1184000511 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....and everyone wants everyone else to follow their Rules for Syntax Style in Which The One True Way to Format Things is Used < 1184000525 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :like "Geez, what are you- mentally handicapped? Any even introductory programmer should understand the difference between a list and a container. Begone, fool" ? < 1184000535 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.......yeah. < 1184000595 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :YOU SHOULD PROBABLY USE TWO LINE BREAKS INSTEAD OF ONE, AND CAMEL-CASE YOUR METHODS COCKBREATH. < 1184000611 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1184000691 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :me: "So, I'm having trouble with this applet-" #Java: "Why would you use an applet? They suck, and nobody uses them for anything. Use Java webstart." < 1184000757 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...yep. and you'll never get them to help unless you follow that first step. IT'S LIKE #PYTHON. < 1184000775 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....and if you bitch... then they'll say that they've been trying to help you, and you're just not listening. < 1184000789 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1184000806 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and they're usually right. < 1184000819 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :this is why I'm glad that #Esoteric and ##Nonlogic contain large numbers of people who are not gigantic assholes < 1184000848 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I AM A CLASSY ASSHOLE. < 1184000990 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :lamet, lol < 1184001067 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but I'm usually right too. so it doesn't matter. < 1184001136 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yes, but you're the one asking for help :) < 1184001145 0 :sebbu!n=sebbu@ADijon-152-1-64-149.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1184001173 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's people who are certain they're right that are usually huge dicks. < 1184001178 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :in any scenario < 1184001218 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :IN ANY CASE < 1184001222 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I DEPART < 1184001224 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1184001227 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :-evaded- < 1184001284 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :maybe people who are huge dicks tend to be right? :) < 1184001317 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...doesn't matter who's right. everyone's right. when helping someone... being a huge dick doesn't work. < 1184001338 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :they need help with a java applet.... not < 1184001382 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: well, you need to consider whether they need help with a java applet, or only think they do. < 1184001405 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :often it's the latter. < 1184001419 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :very often people make architectural decisions like that without thinking too much. < 1184001438 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :........what? it doesn't matter... they still need help with a java applet. < 1184001502 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :EXCELLENT POINT... OR WHATEVER. AFK < 1184001532 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: when somebody wants to cut a piece of cheese with a hammer, do they "need help with a hammer", or do they need to be pointed out they're using the wrong tool? < 1184001600 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...depends. I'm curious how you'd go about cutting cheese with a hammer... < 1184001606 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :MAKES ME WANT TO TRY < 1184001652 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'd say he needs help with a hammer of a cutting-cheese-with-a-hammer expert. < 1184001678 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: sure, and afterwards, try cutting your hair with a blowtorch < 1184001682 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :good luck < 1184001709 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Weeeell, to be fair, cutting your own hair is a bad idea in general. Let your mechanic cut your hair with a blowtorch. < 1184001730 0 :zbrown!unknown@unknown.invalid PRIVMSG #esoteric :lament: I figure its better for people to screw it up and figure out that thats the wrong way to do it than to be led in the right direction. People learn more from failure than from success. < 1184001735 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: that's an interesting question, should a mechanic or a barber do it? < 1184001775 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :zbrown: that's not true. Consider all the Perl programmers. :) < 1184001815 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....so in conclusion.... I win and am right about everything. your opinions are all moot. < 1184001816 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, to be fair, they had success ... just in a really failurific way. < 1184001819 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :brb < 1184001821 0 :zbrown!unknown@unknown.invalid PRIVMSG #esoteric :lament: True. But perl is a heathen's language! < 1184002658 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :No, dentists should do all hair-cutting. < 1184002676 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :After all, teeth might be made of protein, which is what hair is made of! < 1184002896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ihope, and scientists investigating sub-atomic particles should do /everything/ < 1184002925 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Nah, set theorists should do everything. < 1184002949 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Or first-order logicians. < 1184002992 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :consider a set of first-order logicians. < 1184003020 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I refuse, as I am not a first-order logician. < 1184003041 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :consider a set of people considering sets. < 1184003068 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....computational linguistics. < 1184003070 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I refuse, as I am not a person considering sets. < 1184003080 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION throws conlangs at CakeProphet < 1184003082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :consider a set of (people considering a set of (people considering a set of first-order logicians)) < 1184003099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :consider s-expressions < 1184003114 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I refuse, as I am not a (person considering a set of (people considering a set of first-order logicians)) < 1184003124 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...... < 1184003125 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I refuse, as I am not an element of s-expressions. < 1184003133 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :consider the set of people refusing to consider sets. < 1184003134 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :consider a set. < 1184003172 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Consider. < 1184003195 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/HelloWorld < 1184003207 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I gladly fulfill your request, thereby making me not a person who refuses to consider sets. I refuse for that reason. < 1184003218 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oops, I fulfilled it in the process of refusing to do so... < 1184003242 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....we're going to have to stop this... before my brain explodes. < 1184003281 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Consider the set of people whose brains are made to explode by set theory. < 1184003336 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waits for the explosions < 1184003419 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I refuse, as I am not a person whose brain is made to explode by set theory. < 1184003430 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ye boocher. < 1184003477 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's non-sequitur. < 1184003484 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you don't need to belong to X to consider X. < 1184003541 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1184003553 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well then, prove it by considering the set of smart people. < 1184003554 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1184006478 0 :GregorR!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1184007919 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1184009456 0 :EgoBot!n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net JOIN :#esoteric < 1184009523 0 :GregorR!n=gregor@c-76-27-232-8.hsd1.or.comcast.net JOIN :#esoteric < 1184011894 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ehird: sounds fun < 1184011944 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(brainfuck continuations) < 1184011956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, indeed < 1184011974 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :implement it < 1184011978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1184011981 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :how? < 1184011989 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament, by writing a BF interp < 1184011992 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :continuations need to be stored somewhere < 1184011995 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :where would you store them? < 1184012001 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :in the interpreter... < 1184012004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the tape < 1184012011 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a coninuation would just be a number < 1184012024 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a reference into a continuation array kept by the interpreter < 1184012027 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :continuations in the code: [0] = continuation number, [1] = the argument or 0 < 1184012034 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: i suppose that's one way of doing it. < 1184012036 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :continuations for calls: [0] = cont. num, [1] = the argument to pass < 1184012068 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i don't understand that < 1184012080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :& is like "callcc", and sets [0] = cont number, [1] = the argument or 0 (0 when it hasn't been called yet), % is like calling the continuation [0] with the argument [1] < 1184012092 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :by [0] you mean the first memory cell? < 1184012104 0 :RedDak!n=dak@87.19.82.136 JOIN :#esoteric < 1184012107 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :[0] is wherever the tape pointer is < 1184012111 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1184012111 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[0] = the current memory cell at & or %, [1] = the current cell + 1 < 1184012190 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i think it would be better if & read the cont number instead of writing it < 1184012213 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that makes more sense < 1184012214 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :overwriting the continuation that previously had that number < 1184012223 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's closer to what Scheme does < 1184012226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure i understand < 1184012243 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: have [0] be like the "variable name" for the continuation. < 1184012246 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :+& sets continuation 1 to the current continuation < 1184012254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sounds a bit high level for BF :) < 1184012285 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no higher level than the other way < 1184012290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i guess what i'm talking about is more like goto but with arguments < 1184012316 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :with goto, you specify the label, not have it specified for you < 1184012327 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you have to specify the label with % too < 1184012340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you have to navigate to the cell with the continuation number in it, or manually add it < 1184012362 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :which is bad < 1184012371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how? < 1184012376 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and what happens if you set more than 256 continuations? < 1184012392 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :who said brainfuck cells were limited to 256 symbols? < 1184012402 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :most are < 1184012413 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean 'most', we're creating a new language < 1184012441 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :whatever < 1184012461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :&>>++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.<<% <-- infinite hello world! < 1184012461 0 :GregorR-L!n=gregor@c-76-27-232-8.hsd1.or.comcast.net JOIN :#esoteric < 1184012479 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :user set continuations are better, because then you can allways, say, have continuation 0 be a "return continuation", and then you have subroutines < 1184012485 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :&>>code% is, of course, more fussy than +[>code<] < 1184012506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, framework for subroutines is the origination of this idea < 1184012525 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :except, i would use a stack with the two continuation cells being one member, and use it as a call stack < 1184012540 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i don't see how you can do subroutines without letting the user set the continuation number < 1184012553 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :I don't see why & needs an argument. < 1184012559 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament, it doesn't < 1184012567 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :because the subroutine can't find the return continuation < 1184012577 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"the argument" refers to the argument passed at a symmetrical % call < 1184012605 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(basis: easy passing of where the procedure arguments start in the general stack) < 1184012707 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :to call a subroutine you just do [-]&> if_zero { (load subroutine number) > (load subroutine arg) < % } else { > (return value is the current cell now) } < 1184012757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as far as i know the original &% definitions make it even easier < 1184012767 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i don't think so < 1184012777 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :show me < 1184012801 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure, still working out the best way to define them < 1184012806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe eliminate the arguments altogether? < 1184012816 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :though, that makes stuff a lot harder < 1184012821 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that would make continuations rather worthless < 1184012828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1184012936 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think "& Create a continuation, and set [0] to its id. Set [1] to 0 if we didn't come from a %, the argument from % otherwise." and "% Jump to the continuation whose id is in [0], using [1] as the argument." are the simplest and easiest definitions < 1184012994 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :function definitions would appear to be &>[cell pointer is at argument]<, leaving the function id on the current cell < 1184013007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err - of course, nulling out the argument at the end < 1184013015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so &>[code[-]]< < 1184013032 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and function calls just getting the current cell as the function id then >arg<% < 1184013064 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :to define a subroutine: (load subroutine number)&> if_not_zero {(argument is in the current cell, code goes here) (place return value in current cell) >[-]<[->>+<<]>% } < 1184013086 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :seems a lot more verbose to me =) < 1184013104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of course, that incorporates return values < 1184013116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's up to the user really. < 1184013128 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it needs return values, because the continuation is on a different tape < 1184013145 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if % left a value then it'd be brainfuck+functions not brainfuck+continuations < 1184013147 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it's much better to have the user assign continuation numbers < 1184013170 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :% doesn't leave a value < 1184013304 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :ACTION appears out of the blue. < 1184013454 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :"& overwrite continuation number [0] with the current continauation. Set [1] to 0 if we didn't come from a %, the argument from % otherwise." and "% Jump to the continuation whose id is in [0], using [1] as the argument." < 1184013473 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"continuation number [0]"? < 1184013480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think we have terminology clashes here < 1184013498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1184013503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"continuation whose id is in [0]" < 1184013508 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :continuations are identified by numbers < 1184013511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OK sounds reasonable < 1184013551 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yours is like not letting the user choose the variable name for the function passed to call/cc < 1184013565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah i like your version < 1184013620 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just to make this language more distinct from brainfuck i suggest we have a 0-infinity data size and 0-infinity tape size. =P < 1184013644 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and also because that's helpful if you're compiling some language into brainfuck. which is the whole point of this variation. since continuations make procedures easier < 1184013670 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :but wrapping cells are so fun < 1184013681 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but hell to deal with for compiler writers. =) < 1184013738 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Hmmmmmmmmmmmmmmmmmm < 1184013747 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :You could just use my c2bf's ld :P < 1184013765 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :=p < 1184013798 0 :mtve!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1184013818 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1184013824 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why shouldn't & be < 1184013834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"& overwrite continuation number [0] with the current continauation. Set [0] to 0 if we didn't come from a %, the argument from % otherwise." < 1184013841 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :using [1] is unheard of in BF < 1184013849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but , sets the precedent of overwriting the current cell < 1184013922 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh, right < 1184013941 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :after all, since the continuation no. is computed by the user they can easily copy it someplace < 1184013951 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1184014024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So & is "Replace the continuation whose id is in the current cell with the current continuation, and then set the current cell to 0 if this is just after the & call, or the argument passed to % if we come from there" < 1184014035 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :this is much better than other attempts i've seen to give brainfuck subroutines < 1184014040 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh :) < 1184014071 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :suggestion: a NULL value for cells, for EOF on , and no argument on & < 1184014075 0 :edwardk!n=edwardk@pdpc/supporter/base/edwardk JOIN :#esoteric < 1184014079 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since, you might want to pass 0 as an argument, e.g. < 1184014089 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :eya < 1184014091 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and applied to , for consistency < 1184014102 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :whats NULL? < 1184014114 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :an extra value cells can have? < 1184014130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i assume you know what NULL in itself is =) < 1184014132 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :-1? < 1184014145 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's NULL+1, NULL-1? < 1184014151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :probably NULL? < 1184014158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :actually, no < 1184014163 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then NULL is a black hole cell < 1184014164 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :then you can't put any other value in a cell < 1184014166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-1 sounds good < 1184014173 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but without any other minus numbers < 1184014177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so NULL-1 is 255 < 1184014188 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :NULL being "the value before 0" < 1184014207 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and [ switches on NULL, not 0 (maybe? maybe switch on both?) < 1184014215 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i dunoo < 1184014223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ditto < 1184014230 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i don't like NULL < 1184014263 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i very much don't like null < 1184014272 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :just using 0 for "no argument" is not so bad, though. < 1184014286 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament, there are many valid cases when you'd want to pass 0 as an argument < 1184014300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but i'd suspect none when you'd want to pass the black hole known as null < 1184014302 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :C's longjmp uses 0 < 1184014306 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yes. Just write your program in such a way that passing 0 as an argument can be treated the same as not coming from anywhere. < 1184014319 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, longjmp is not the epitome of good design < 1184014327 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :&[processing unusual arguments] processing 0 argument or nothing < 1184014343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament, processing 0 argument would be run on function creation < 1184014345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :== bad < 1184014368 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :right, so design things in such a way that 0 argument means nothing should be done. < 1184014404 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i can see approximately one way to do that sanely: add one to every argument and subtract it in the function < 1184014427 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's not sane < 1184014436 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's saner than other ways < 1184014553 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :=) < 1184014810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :especially if writing a compiler < 1184014962 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :if the cell size is unbounded than you can return value+1 from a function < 1184014985 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nothing to do with returning - it's to do with calling < 1184015004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but just adding one to the args at call-time and subtracting one at the start of the function sounds reasonable to me < 1184015013 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :er, that's what i meant < 1184015030 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and that won't work if cell values are bounded < 1184015087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes it will < 1184015092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er, true < 1184015094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you couldn't pas < 1184015096 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s 255 < 1184015152 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : after all, not every moment of IRC can be bash.org <<< most of bash is crap. < 1184015178 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :then I guess every moment of IRC *is* bash.org, in a way < 1184015206 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :right < 1184015226 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : ......what purpose does capslock serve? <<< i've never really understood why have both u- and lcase < 1184015233 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ucase is as pretty as it gets. < 1184015241 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, linguists disagree < 1184015268 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, then unbound cells =) < 1184015307 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :remember the good old days before lowercase was invented? < 1184015323 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(AND,LISP,WAS WROTE,LIKE,THIS)? < 1184015368 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(I THINK LISP WAS WROTE (LIKE TIHS)) < 1184015373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't think lisp ever used commas < 1184015380 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1184015406 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :space was a allowed in symbols < 1184015411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :was it? < 1184015412 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :cf the original paper < 1184015413 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :I don't find upper- and lower-case to be particularly valuable. < 1184015417 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that must have been a very early version < 1184015422 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :I love lisp, I love forth, but I can't survive without a type system these days ;) < 1184015429 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Mind you, I use them properly ;) < 1184015464 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :silly haskeller < 1184015468 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :=) < 1184015491 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :i can go slumming in ocaml, coq of f# when its needful ;) < 1184015496 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :er coq or < 1184015564 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's wrong with lisp's type system? < 1184015593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think he means /static/ type system < 1184015618 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :static typing is so C < 1184015630 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and you could make a lisp with static typing < 1184015630 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :type systems tend to be static. < 1184015640 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's rare that a type suddenly changes. < 1184015652 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i suppose in Ruby and Smalltalk that could happen. < 1184015665 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but not, for example, Scheme < 1184015681 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :integers don't suddenly become strings or anything like that :) < 1184015694 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :i like manifest not latent types. there specific enough? =) < 1184015725 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :more terms i have to look up < 1184015729 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :scheme is 'typed' in the latent (what appears to be untyped) sense, haskell is typed in the manifest there is no tag here but the compiler knew what the type was sense. < 1184015761 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: i think you're trying to say that you like languages with statically typed variables. < 1184015793 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: i like lazy languages with strong type systems and snazzy features like dependent types. < 1184015807 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't leave much room < 1184015826 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i get coq and cayenne, maybe epigram ;) < 1184015838 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :and haskell if you want to call GADTs a form of dependent type < 1184015845 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, so current extended BF: "& Replace the continuation whose id is in the current cell with the current continuation, and set the current cell to 0 if we've just ran & or the argument passed to % if we came from that." "% Take the continuation in the current cell, and call it with the argument in the next cell." and unbounded cells < 1184015858 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that allows for 0 arguments, too < 1184015867 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i don't like the concept of types. < 1184015890 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the OO model seems to be more intuitive. < 1184015909 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :in my toy language my type checking is really more a form of control flow analysis and constraint satisfaction than traditional types. i love types, they just aren't strong enough =) < 1184015913 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it's the same < 1184015939 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :i love the 'if it compiles its correct' feeling. < 1184015941 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, sound good? < 1184015948 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yep < 1184015967 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: define correct :) < 1184015979 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bugless < 1184015987 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :god you'd been talking < 1184015990 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1184015998 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: correct in the the compiler checked your pre and post conditions and tried to determine if it would terminate for you, then tucked you into bed and read you a story kind of sense. ;) < 1184016019 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i've never understood these proofs of correctness < 1184016020 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: compiled python is quite correct, although of course something like "1" + 2 would of course raise an exception. < 1184016059 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, so &[-code; some sort of return value setting[-]] is the way to define a function and func>arg+<% is the way to call one < 1184016062 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's one of course too many. < 1184016092 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: the beauty of python is that with a single type (object) you can't possibly have type errors :) < 1184016101 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :i believe that if the compiler on its highest anal retentive setting doesn't emit a warning you should be comfortable that no runtime errors will occur, and i'll even lump exceptions and infinite loops in the class of 'errors'. i'm willing to relax the requirement of termination though ;) < 1184016130 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1184016140 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: but that's crazy and counterproductive. < 1184016151 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: exceptions are not errors, they're just a control flow mechanism. < 1184016162 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: well, its what i've been working towards. exceptions i'm ok with if they are caught < 1184016172 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :exceptions are traditionally Things That Should Never Happen < 1184016189 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :exceptions are now This Happened, And It's Very Possible, But I Don't Like It. Clean It Up, Please. < 1184016195 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: that's also a bad philosophy, since you can always catch everything by surrounding your entire program with a catch clause. < 1184016200 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :i'm ok with exceptions as a control flow mechanism, in my setting they are just a form of delimited continuation, nothing to write home about. < 1184016229 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: i like listening to your tutorials even though i didn't understand what the latter one was about < 1184016235 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: which actually happens in java :) < 1184016242 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ehird: are you going to implement it or should i? < 1184016252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, I probably will =P < 1184016257 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :ok, shall i write out a dissertation on the correct use of exceptions being that you should catch them all as close to the exception as it is possible to understand the intent of the application user? =) < 1184016279 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, Hm - I wonder what else could make BF more friendly to compiler-makers < 1184016284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well - not more friendly rather than not a complete pain < 1184016291 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: the point is, the distinction is not a technical one. < 1184016305 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: i.e. compiled python is "correct" in the technical sense < 1184016334 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :"correct" only as in "no syntax errors", which isn't very useful < 1184016357 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :compiled pythoin is correct with respect to its semantics. i just don't like those semantics < 1184016371 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :promise me you won't talk for long, it's a pita reading 2 hours of logs :) < 1184016397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, Expanding tape size, for one. But that isn't very innovative < 1184016401 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Here is an example of an embarassing bug in Python: < 1184016420 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ehird: most good interpreters do that < 1184016430 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, indeed < 1184016451 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :From a library, I got an error message where the text was "null". Oops, someone had gotten the text and cause arguments the wrong way round to the exception construction. < 1184016462 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :*constructor < 1184016496 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: =) < 1184016525 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :that just wouldn't happen if there were some types < 1184016546 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i didn't realize if you have continuations you automatically get procedures too < 1184016547 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :types make very little sense in an object-oriented language < 1184016558 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i suppose they do make sense (as interfaces) < 1184016559 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lament: huh? < 1184016560 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :erm... < 1184016562 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: not sure i agree. < 1184016564 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, What about EOF behaviour? I suggest leaving the cell as it is - it's the only way that can't be mistaken for \0 or some other character being entered by the user < 1184016573 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :It depends on what you mean by OO... < 1184016580 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: read anything alan kay has to say on the subject. < 1184016584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, well - continuations are a special case of closures, and functions are special cases of closures < 1184016588 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :without them its very hard to ensure that every message you send can be handled on arrival < 1184016590 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :There are at least 9 things that contribute to "being OO" < 1184016596 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :i have, and i still don't agree with him ;) < 1184016611 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :and different languages have different subsets < 1184016624 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Bloodyimplementation inheritance is just one of them < 1184016655 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :http://paulgraham.com/reesoo.html < 1184016657 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :smalltalk is nice for developing in the small, and i do like the live-update properties that you get from allowing freeform permutation of objects on the fly while it runs, which you can't do easily in a more strongly typed system, which is also why erlang is the stability king of functional languages < 1184016687 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :but the win there comes at the expense of usability of other areas of the language. < 1184016702 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Updating a running system conflicts nastily with referential transparency. < 1184016709 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: well, that's always the case with everything :) < 1184016723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, the only other slightly helpful thing i can think of is push and pop functions, pop removing the last element of the tape (last = was actually changed sometime) and placing it in the current cell, push adding to the end of the tape < 1184016727 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but that's a bit high level for BF < 1184016733 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: sure. i just have to pick a point in the design space and camp out in it and see if anyone shows up to the party ;) < 1184016750 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :in my case its 'very strongly typed' but still semi-decidable in practice. < 1184016760 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ehird: there is no end of the tape < 1184016785 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: is haskell strongly typed enough? < 1184016792 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: unfortunately, no. < 1184016805 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: which is what led to my current compiler project in the first place ;) < 1184016823 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, end is defined as the last element in the tape which was touched in some way - +'d or -'d < 1184016831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but - its a bit ill-defined, yeah < 1184016853 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: i suppose if you're against infinite loops, you can never be satisifed :) < 1184016861 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :ij want polymorphic records and variants, subset types, limited termination checking ala NCI, and flow based type refinement, and optimistic evaluation. < 1184016878 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :AFAICT, Haskell is OO in senses 1, 2, 4, 5, 6, 7. But its form of 7 blows < 1184016881 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ooops :-) < 1184016888 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :AFAICT, Haskell is OO in senses 1, 2, 4, 5, 6, 7. But its form of 7 blows almost everything else out of the water. < 1184016892 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: i'm not against them, i just want to be able to say in the type that something is total in an unpointed domain and incur a proof burden < 1184016894 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :typeclasses FTW < 1184016916 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :for the cases where showing that something is well-founded recursive or productive corecursive matters. < 1184016943 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: you've seen Epigram, right? < 1184016949 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :simonrc: yeah < 1184016960 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION knows one of the guys working on that: ecb. < 1184016964 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't really win anything for me over developing in coq though. < 1184016975 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: how can haskell prove termination? < 1184016976 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I haven't used coq much < 1184016978 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but coq has such a funny name. < 1184016985 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, it can't < 1184016988 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: it can't < 1184016990 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :s/much/at all/ < 1184016994 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unless the halting problem has recently been solved =) < 1184017021 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: i get away with it by tracking Pointedness in the types. basically by polluting them in the presence of certain forms of recursion and them slowly relaxing that as i compile via NCI flow analysis < 1184017025 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :occasionally Haskell will prove non-termination for you < 1184017046 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: i understood about half of that < 1184017062 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: lifespan? This variable will live for 10 more iterations :) < 1184017071 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :If your recursion has no base case, Haskell might be able to inferr and impossibly-general type for you < 1184017086 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :like :: [Int] -> [a] < 1184017127 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :basically what i'm doing right now is this, if a function recurses into itself or passes around a function in a manner than admits general recursion i'll tag the type as pointed, its permitted in my semantics to fail to 'unpoint' something, but its never ok for me to say that something will terminate if it doesn't. < 1184017168 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hm, ok < 1184017170 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1184017171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i hate how haskell forbids (\x -> x x) (\x -> x x) < 1184017172 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :if a type is unpointed then its always safe for me to evaluate it in a strict manner, this is actually more liberal than strictness analysis, because strictness says i need the answer, but in this case i say that i may not need the answer, but if you speculate and evaluate it < 1184017177 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1184017179 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean - you can't forbid that priceless expression =) < 1184017180 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :then you will still terminate if you would terminate before < 1184017193 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: nice terminology collision, BTW < 1184017217 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :where? < 1184017238 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: =) < 1184017259 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :"point-free" can mean that no parameters are bound to names. < 1184017262 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: lifespan comes in the form of regions < 1184017269 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, *pointless =) < 1184017282 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, i think that's about it as far as language definition goes. < 1184017296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i can't think of anything more in the spirit of BF that helps compiler-writers or similar folk < 1184017299 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :simonrc: yeah it comes from a different place than unpointed and pointed domains. a pointed CPO is how you view functions in semantics < 1184017330 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :you basically view all functions as continuous functions in a pointed CPO. totally unrelated to the pointfree/pointless debate =) < 1184017332 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: i think Brainfuck is the language for you. < 1184017337 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :does haskell do TCO? < 1184017343 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: Pieces of code without [] are guaranteed to halt < 1184017347 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: yes < 1184017354 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :or does it have other iteration constructs? < 1184017359 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :er bsmntbombdood: yes < 1184017368 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :it has tail call optimization < 1184017385 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it has other iteration methods, but they're based on recursion < 1184017434 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: heh i'll pass on writing my next compiler in bf ;) < 1184017455 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: i think the problem is that any useful code will admit existence of infinite loops. < 1184017465 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :edwardk, but continuations. =( < 1184017492 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: i admit them. i just allow you to request for them to not be present and to be able to type check the safety of a function w.r.t to termination < 1184017530 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :edwardk, how? < 1184017534 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can't determine that. < 1184017537 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: right, i'm just saying the cases in which you would be able to use that are limited and not practically interesting < 1184017540 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: correct in general < 1184017550 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, correct in any turing-complete system < 1184017556 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: actually you'd be surprised how many you can < 1184017570 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what does a language need so that you can implement continuations in it? < 1184017572 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ok. you weren't here when i talked about the premise behind what i've been working on < 1184017575 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :i'll rewind < 1184017595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, well - goto works < 1184017612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if it has eval() and functions, you could even stretch it into that < 1184017616 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i don't think so--how can you save state? < 1184017630 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :eval("function cont" + cont++ + "() {" + compile(inner_cont_code) + "}") or something < 1184017632 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :i've been playing with the edge of undecidability. my type system 'falls back' to a fairly standard type system, but it makes a 'best effort' to prove properties beyond that, so i can appeal to semi-decidability safely and just run the algorithm for a while. < 1184017633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, hm? < 1184017640 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, well - you'd need non-local gotos < 1184017645 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :so, for instance < 1184017647 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :you can define < 1184017656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :something like the structs wrapping jmp_bufs in C use < 1184017659 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :sorted : Ord a => [a] -> Bool < 1184017661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's basically continuations in C < 1184017665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just using non-local gotos < 1184017707 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :then use it in the type as a post condition for sort, sort : Ord a => [a] -> {xs : [a] | sorted xs} which incurs a proof obligation in the compiler. if it can prove it, great it moves on and you see nothing < 1184017710 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :halting int factorial(positive int n) {return n * n - 1}; < 1184017717 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :C can't do non local gotos < 1184017719 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :if it can prove a counter example you get THAT and it stops. < 1184017735 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :if it can't do either it'll offer to let you compile it with a runtime check, but you will at least know it couldn't prove it < 1184017771 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :the same thing happens with an explicit termination annotation. i'll check it, making a best effort, and if it has to give up it shrugs its shoulders emits a warning or an error and moves on. < 1184017808 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :its true that you can't prove these things in general, thats fairly passe. the question is for what class of practical programs can these things be proven automatically and efficiently. < 1184017819 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :" Sum-of-product-of-function pattern - objects are (in effect) restricted to be functions that take as first argument a distinguished method key argument that is drawn from a finite set of simple names." < 1184017821 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1184017824 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament, that is not factorial < 1184017835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, yes it can - setjmp/longjmp is a non-local goto < 1184017836 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :edwardk: only for those where it's obvious by looking at the source, it seems :) < 1184017908 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :so for right now, if you build a factorial function in the toy language the NCI will note the lack of well-founding of negative numbers in most implementations and complain about a negative argument, noting that the function isn't total with a warning or emitting an error if it can show you ever call it with a negative number. < 1184017925 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :it'll also note the termination of positive arguments and it can do that in a bounded number of passes over the code. < 1184017956 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :i don't see the point in not doing it if i can, and the errors it catches are sometimes non-trivial. < 1184017992 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :moreover with a large class of these annotations explicitly made on the standard libraries a lot of misuse cases are caught early on < 1184018003 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it can't show if you ever call it with a negative number < 1184018006 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :furthermore they open up opportunities for the compiler < 1184018006 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :halting problem. < 1184018036 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: again, if i can, i do, if i can't prove that every argument issued to the function is positive, i warn, and can insert a runtime check. < 1184018062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, i can't think of anything else to add to the language - can you? < 1184018067 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: everyone jumps to the halting problem as the answer. its true. but its not the end of the story. a lot of practical programs can be written in coq and its not even turing complete. < 1184018082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :blah at not turing complete. < 1184018088 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ehird: not at the moment < 1184018106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, infinite tape, unbounded cells, continuations- i think that's about it < 1184018113 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :"The word coq means "cock" in French, and stems from a tradition of naming french research development tools" < 1184018172 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what i get out of it is a language in which i can fully express a lot of the invariants in my libraries, where i can quickly throw up counter examples at the user because the 'quickcheck' style facilities can directly use the local invariants, and where counter-example guided unrolling can catch a lot more. < 1184018189 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: have you seen ESC/Haskell? or the other ESC projects? < 1184018197 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :ESC/Haskell is probably the most convincing < 1184018242 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :basically all i do is use the ESC/Haskell approach, wrap it in a nicer syntax and add limited termination checking < 1184018355 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :the combination isn't present elsewhere all in one package < 1184018368 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :lament: yes, we all know that coq is fairly unfortunately named =) < 1184018421 0 :edwardk!unknown@unknown.invalid PRIVMSG #esoteric :ACTION climbs down off his soapbox ;) < 1184018632 0 :zbrown!unknown@unknown.invalid PRIVMSG #esoteric :Any smalltalkers in here right now? If I call a return(^) before the last line of code, does it necessarily end code exection? As I understand it, the compiled/interpreted form of the return(^) comes at the end either way < 1184018724 0 :zbrown!unknown@unknown.invalid PRIVMSG #esoteric :http://nonlogic.org/dump/text/1184015056.html <--- An example. I'm confused as to how they're using the return as a conditional for code that comes after the return < 1184018822 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, i guess i'll just go ahead and implement it < 1184018827 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :k < 1184019925 0 :mtve!i=mtve@mtve.vm.jvds.com JOIN :#esoteric < 1184020115 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :zbrown: hmm < 1184020122 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I think you are parsing it wrong... < 1184020137 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I think it means... < 1184020184 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :^ ((salary isNil) ifTrue: [salary := 0] ifFalse: [salary]) < 1184020205 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :which makes sense < 1184020212 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unlikely SimonRC < 1184020218 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :imo < 1184020230 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :really? < 1184020237 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :It makes sense. < 1184020300 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :roughly, In Java: "public Integer getSalary() { if (salary == null) { salary = 0; return salary; } else { return salary; }" < 1184020317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i guess < 1184020338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what's the alternative? < 1184020359 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I can't see an alternative. < 1184020466 0 :edwardk!unknown@unknown.invalid PART #esoteric :? < 1184021527 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders how BF could be made more compiler-friendly < 1184021551 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :You mean targeting BF? < 1184021695 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :allow arbitrary flowgraphs rather than the current loop construct? < 1184021716 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :I think it's fine *shrugs* < 1184021731 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :It takes a bit of work to make proper continuation/goto/etc, but it's all there and possible. < 1184021735 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Hell, that's the easy part. < 1184021774 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :I'm betting ehird hasn't even looked at C2BF? :P < 1184021791 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR-L, i've taken brief glances at it < 1184021799 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :GregorR-L: how is that, BTW? < 1184021817 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :forked out the $183 needed for the formal C spec? :-P < 1184021818 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: Same as it has been since I stopped working on it. All the fundamentals are there, but I'm too lazy to implement all the generations. < 1184021831 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Heww no - I can C without a spec :P < 1184021850 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, everything necessary for functions, gotos, continuations, etc was all done a long time ago. < 1184022020 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :c < 1184022025 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :C without spec = !C :( < 1184022044 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :C2BF == ridiculous project. < 1184022054 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :100% spec compliance == useless overhead < 1184022071 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Especially since the "memory model" of BF doesn't exactly lend itself to C. < 1184022100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ridiculous is 100% spec compliance < 1184022100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :=) < 1184022122 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm curious though - how exactly do you implement a stack in BF efficiently? < 1184022139 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :I don't - I implement it inefficiently. < 1184022142 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :But anyway. < 1184022159 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1184022216 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to remember the name of the theorem I worked under ... it's the one stated something like "If you have a hotel with infinite rooms, and each is filled, but you need to put new people in, how do you get the rooms? For every renter, move them from room #X to room #2*X" < 1184022226 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :So I have a stack, heap and carry spaces all side-by-side. < 1184022244 0 :Sukoshi!n=Sukoshi@user-11fab8o.dsl.mindspring.com JOIN :#esoteric < 1184022244 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hilbert's hotels < 1184022252 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :That's the one. < 1184022263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s/Hotels/Hotel < 1184022287 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :I have a stack, and a cell next to the stack that is 1 up 'til the end of the stack (to make getting to the end easy). < 1184022353 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: Ya here? < 1184022358 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1184022359 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Or zbrown ? < 1184022360 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yay. < 1184022362 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :what's up? < 1184022364 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1184022366 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Did you see my link yesterday, RodgerTheGreat ? < 1184022377 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :which one in particular? < 1184022396 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :http://web.engr.oregonstate.edu/~budd/SmallWorld/ReadMe.html <-- Koko de kurikku shitekudasai. < 1184022437 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ah, yes- pretty neat little thing < 1184022444 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But that's exactly what we need :) < 1184022450 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :The source is there. We can base it off that. < 1184022466 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I dunno- that almost seems like cheating < 1184022468 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Of course, this is Little Smalltalk, not ST-80, so there will have to be changes, but we can use this model. < 1184022476 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oh no. ST-80 is a lot more to implement :P < 1184022481 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :No Transcript :( < 1184022485 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Recall the Nonlogic motto: Reinventing the wheel for fun! < 1184022493 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. MVC is absent GregorR-L. < 1184022503 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: But this is a practical project :P < 1184022509 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1184022546 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Also another question: My JVM is not finding the LinkedList removeFirst() method. < 1184022571 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, from what I understand, the difference between Little Smalltalk and ST-80 is pretty much just the API (built in Smalltalk on top of the interpreter base) < 1184022571 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ACTION grumbles how she's used to her own linked list implementation in C where she uses structs and pointers, grumble grumble. < 1184022587 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: There are a lot, IIRC. < 1184022604 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: wouldn't a Vector or even an ArrayList be better? < 1184022622 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: Not in this case. < 1184022628 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1184022633 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I'm doing a List of Bencodes (my own class). < 1184022647 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION hugs Java.util < 1184022710 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But it's not finding removeFirst() :( < 1184022722 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :St00pd newfangled package thingamabobbers. < 1184022740 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1184022819 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Well, remove(0) works, but I wonder if removeFirst() is more optimized. < 1184022827 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm. Are you correctly applying generics, as per Java-5-ness? < 1184022844 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :*Whistle whistle whistle* < 1184022877 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I don't want to use Java 5 because last time I remember, GCJ/Open-Java-VMs didn't have Java 5 features yet. < 1184022901 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Y'know, like "LinkedList foo = new LinkedList(); < 1184022903 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I never thought that parameterised types could be broken so badly much until I saw Java Generics. < 1184022905 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1184022910 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gcj/open-java-vms are not worth the trouble < 1184022922 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I know, Java5 generics suck hardcode < 1184022926 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :((java is not worth the trouble. but.) < 1184022957 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yeah... that syntax is kinda ........ < 1184022980 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1184023016 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :At least Java/C++ type parameterisation syntax is better than ML's < 1184023037 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :fair enough < 1184023059 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ML type syntax sucks through a straw < 1184023068 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I mainly dislike Java5 generics because they seem kinda artificially tacked onto the language design < 1184023096 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :artificially tacking stuff onto design is a large part of software engineering. < 1184023125 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :consider the mess that is WWW. < 1184023129 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :eesh < 1184023145 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :What are ``uncheked or unsafe operations'' ? < 1184023160 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I'm not catching exceptions? < 1184023166 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: they mean you either aren't using generics properly or you're doing some shady casting < 1184023174 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1184023179 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it's a noncritical casting error < 1184023180 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Java Generics are all in the name of Bar-Quad-Scum-Batter-Billy-Tea. < 1184023234 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Bar-Quad-Scum-Batter-Billy-Tea being the god of outrageous hacks done to keep old programs working. < 1184023250 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :in this case, the new programs can still run on old JVMs < 1184023254 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: if you add the <> parameterizing to your linkedlist like I mentioned above, it'll work like a charm, I'll bet < 1184023275 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :but even without, it'll still compile and run fine < 1184023309 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1184023335 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oh, another thing -- is it easier to say, catch a List OutOfBounds exception, or is it easier to do an integer check against the bounds? < 1184023336 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION recommends pronouncing "Bar-Quad-Scum-Batter-Billy-Tea" out loud to get the joke. < 1184023354 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: how often will it get out of bounds? < 1184023365 0 :sebbu2!n=sebbu@ADijon-152-1-113-35.w86-218.abo.wanadoo.fr JOIN :#esoteric < 1184023366 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: I doubt it will. < 1184023384 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: that's what runtime checks are for! <:D < 1184023415 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: just let the exception propagate out then, I suppose. < 1184023433 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I would think the integer check is faster, because the stack doesen't have to unwind. < 1184023439 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Alright. < 1184023459 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :but in all seriousness, I believe you'll have to catch the exception if it's thrown, regardless of external checking. Can the program be reasonably expected to continue running if it *does* get an invalid index? < 1184023477 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Hey, the compiler isn't complaining, and I'm not either :) < 1184023477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, =) < 1184023492 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Just my experience with C tells me that this can be accessed incorrectly. < 1184023508 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it depends how much you trust yourself to play by the rules of your own code in other classes < 1184023566 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I would hope to god nobody inserts a Bencode at -1 index. < 1184023573 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But I just don't know how stupid people are. < 1184023605 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shrugs < 1184023621 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I realized something important over the last few days -- it's essential to, at some point, program for a little bit in a lower-level not as sophisticated language. < 1184023635 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Because for a while, you start forgetting just how crappy the lower level ones are. < 1184023675 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1184023732 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :this is why I'm forcing myself to write all my cryptography programs in C++. It's for practice, but it's also so I can even better appreciate Java in all it's glory < 1184023745 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :recursive function of symbolic expressions and their computation by machine < 1184023993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :java? glory? ummm < 1184024184 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: what's wrong with forgetting how crappy they are? < 1184024220 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :some things are best forgotten < 1184024250 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :medicine was pretty crappy 100 years ago, would you undergo an operation using 100-year-old techniques to experience for yourself how crappy it was? < 1184024268 0 :ehird!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1184024274 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :lament: That's hardly a valid analogy. < 1184024309 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i like it < 1184024328 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(although there's a flaw in it) < 1184024366 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Here's two: 1) Using C won't kill you. 2) Many modern medical techniques aren't based on the older techniques, so the older techniques don't actually give you any insights into current ones. < 1184024399 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i don't think 2) is at all valid < 1184024403 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it'd be more like doctors learning 100 year old techniques to see what they were like (potentially learning lifesaving tricks if they find themselves completely without modern tools) < 1184024411 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :2) is wrong both about medicine and about computing. < 1184024430 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :C++'s typesystem has a bit of oomph, at least < 1184024440 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :you can expect the types to do some of the work for you < 1184024459 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :and C++ is great for being really specific about how you want to allocate memory < 1184024462 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :I hardly think that leeches and bloodletting inspired vaccination. < 1184024464 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :unless you just want GC < 1184024480 0 :sebbu!unknown@unknown.invalid QUIT :Connection timed out < 1184024490 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Leeches inspired the use of anti-clotting drugs in surgery < 1184024667 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :say no to drugs. < 1184024683 0 :EgoBot!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024683 0 :zbrown!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024683 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024683 0 :suifur!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024683 0 :lament!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024683 0 :cmeme!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024683 0 :meatmanek!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024683 0 :oklopol!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024683 0 :fizzie!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024945 0 :GregorR-L!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024945 0 :ihope!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024947 0 :sebbu2!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024947 0 :Sukoshi!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024947 0 :CakeProphet!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024947 0 :Izzy7!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024947 0 :tokigun!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024947 0 :helios24!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024948 0 :sp3tt!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024948 0 :mtve!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024949 0 :GregorR!unknown@unknown.invalid QUIT :anthony.freenode.net irc.freenode.net < 1184024999 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1184025017 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION molests SimonRC  < 1184025171 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: ?? < 1184025217 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :we're practically alone < 1184025412 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1184025412 0 :oklopol!n=ville@194.251.103.33 JOIN :#esoteric < 1184025412 0 :lament!n=lament@S010600110999ad06.vc.shawcable.net JOIN :#esoteric < 1184025412 0 :meatmanek!n=meatmane@cpe-65-29-79-179.indy.res.rr.com JOIN :#esoteric < 1184025412 0 :RodgerTheGreat!n=Rodger@wads-5-232-125.resnet.mtu.edu JOIN :#esoteric < 1184025412 0 :suifur!i=rufius@unaffiliated/zbrown JOIN :#esoteric < 1184025412 0 :zbrown!n=rufius@unaffiliated/zbrown JOIN :#esoteric < 1184025412 0 :EgoBot!n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net JOIN :#esoteric < 1184025412 0 :fizzie!n=fis@sesefras.zem.fi JOIN :#esoteric < 1184025412 0 :sebbu2!n=sebbu@ADijon-152-1-113-35.w86-218.abo.wanadoo.fr JOIN :#esoteric < 1184025412 0 :Sukoshi!n=Sukoshi@user-11fab8o.dsl.mindspring.com JOIN :#esoteric < 1184025412 0 :mtve!i=mtve@mtve.vm.jvds.com JOIN :#esoteric < 1184025412 0 :GregorR-L!n=gregor@c-76-27-232-8.hsd1.or.comcast.net JOIN :#esoteric < 1184025412 0 :GregorR!n=gregor@c-76-27-232-8.hsd1.or.comcast.net JOIN :#esoteric < 1184025412 0 :CakeProphet!n=CakeProp@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1184025412 0 :ihope!n=ihope@tapthru/resident/ihope JOIN :#esoteric < 1184025413 0 :helios24!n=helios@195.37.106.60 JOIN :#esoteric < 1184025413 0 :tokigun!n=tokigun@haje8.kaist.ac.kr JOIN :#esoteric < 1184025413 0 :sp3tt!n=sp3tt@80-162.cust.umeaenergi.com JOIN :#esoteric < 1184025413 0 :Izzy7!i=senji@cleopatra.thy.me.uk JOIN :#esoteric < 1184025523 0 :tokigun_!n=tokigun@haje8.kaist.ac.kr JOIN :#esoteric < 1184025583 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: So, have you been playing with Smalltalk?