< 1156637085 0 :CakeProphet!unknown@unknown.invalid QUIT :"haaaaaaaaaa" < 1156637502 0 :CakeProphet!n=CakeProp@h220.248.213.151.ip.alltel.net JOIN :#esoteric < 1156637803 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :TYPEINFO IN PLOF!!!!! < 1156637815 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ooh, the suspense. < 1156637836 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :a = [ < 1156637836 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric : blah = "hi" < 1156637836 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :]; < 1156637836 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :if(in(a, a.type), {println("YAY");}); < 1156637837 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Argh! < 1156637844 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :"debian login: " < 1156637905 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :root < 1156638039 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I was hoping that it would ask if I wanted to decide on a class, race, gender and alignment or not. < 1156638046 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1156638134 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I have a little script thing called /dev/startnethack that's supposed to remount the filesystem as read-write and run NetHack. < 1156638148 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Then I put init=/dev/startnethack in my boot settings. < 1156638206 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION writes rw init=/usr/games/nethack < 1156638474 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION pops back to Linux to be greeted with "Who are you?" < 1156638504 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric : /dev is sort of a bad place to put that ... < 1156638553 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :s/dev/bin/ < 1156638562 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric : /dev/bin is sort of a bad place to put that ... < 1156638571 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Is it? < 1156638585 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Well, /dev is generally a pseudofilesystem... < 1156638664 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION exits NetHack and is greeted with a kernel panic < 1156638672 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Or is that... hmm. < 1156638700 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, duh. You tried killing init. < 1156638721 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And, sadly, Linux doesn't handle that quite right. < 1156638735 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How am I supposed to shut down Linux from within NetHack, then? < 1156639080 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Run it with a different program that just runs nethack then shutdown. < 1156639158 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Now, what if NetHack were an operating system? There'd be stuff like a portal to a web browser level... < 1156639164 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The lynx hits! The firefox hits! < 1156639170 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Then that would be stupid. < 1156639288 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, it would... < 1156640426 0 :pgimeno!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1156640475 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ipes over the ocean of error messages < 1156640530 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Wahb wahb wahb... < 1156641226 0 :RodgerTheGreat_!n=Rodger@24-213-19-194.static.mrqt.mi.charter.com JOIN :#esoteric < 1156641322 0 :RodgerTheGreat_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1156641352 0 :RodgerTheGreat_!n=Rodger@24-213-19-194.static.mrqt.mi.charter.com JOIN :#esoteric < 1156641390 0 :pgimeno!n=pgimeno@124.Red-80-59-211.staticIP.rima-tde.net JOIN :#esoteric < 1156642751 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries booting into GHCi next < 1156642782 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yep, it worked. < 1156642850 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Fascinating. < 1156643851 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Nick collision from services. < 1156643914 0 :RodgerTheGreat!n=RodgerTh@wads-5-233-121.resnet.mtu.edu JOIN :#esoteric < 1156643957 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Nick collision from services. < 1156644021 0 :RodgerTheGreat!n=RodgerTh@wads-5-233-121.resnet.mtu.edu JOIN :#esoteric < 1156644113 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Nick collision from services. < 1156644240 0 :RodgerTheGreat!n=RodgerTh@wads-5-233-121.resnet.mtu.edu JOIN :#esoteric < 1156644330 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :rgh < 1156644363 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :this is what I get for leaving the computer in my room running without changing it to AFK first. < 1156644763 0 :tgwizard!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1156644827 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :No, this is what the rest of us get for you levaing the computer in your room without changing it to AFK first :-P < 1156644904 0 :RodgerTheGreat_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1156644920 0 :RodgerTheGreat_!n=Rodger@24-213-19-194.static.mrqt.mi.charter.com JOIN :#esoteric < 1156645015 0 :RodgerTheGreat_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1156645057 0 :RodgerTheGreat_!n=Rodger@24-213-19-194.static.mrqt.mi.charter.com JOIN :#esoteric < 1156645107 0 :RodgerTheGreat_!unknown@unknown.invalid PART #esoteric :? < 1156645144 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1156646154 0 :wooby!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1156646784 0 :calamari!n=calamari@ip68-231-173-86.tc.ph.cox.net JOIN :#esoteric < 1156646794 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1156646847 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :'lo < 1156646849 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Also, < 1156646850 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :A = [ < 1156646850 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric : foo = { println("Foo"); } < 1156646850 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :]; < 1156646850 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :B = A + [ < 1156646851 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric : bar = { println("Bar"); } < 1156646852 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :]; < 1156646854 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :A.foo(); < 1156646857 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :if(in(A, B.type), { println("It's an A!"); }); < 1156646898 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hey Gregor.. have a flex question for you.. < 1156646912 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :does it automatically read from stdin, or do I need to feed it somehow? < 1156646932 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Hm < 1156646974 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :I think if you just run yyparse(), it's from stdin... < 1156646991 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Looks like that from C2BF < 1156647046 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :argh.. never mind. PEBCAK < 1156647204 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Isn't the above code sexy? ^^ < 1156647263 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :what does it do? < 1156647278 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :It says "Foo" then "It's an A!" < 1156647325 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :is this a lang you made? < 1156647340 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :http://www.codu.org/plof/ < 1156647346 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :(Not designed to be esoteric) < 1156647357 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :It's a functional/imperative/oo hybrid. < 1156647455 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :functional languages confuse me < 1156647499 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Well, "Plof attempts to be usable as a functional programming language, but without alienating imperative programmers." < 1156647591 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hmm.. is that code adding a function to a list? < 1156647635 0 :RodgerTheGreat_!n=Rodger@24-213-19-194.static.mrqt.mi.charter.com JOIN :#esoteric < 1156647659 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :[] = an object < 1156647666 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :And it adds a function to the object, yes. < 1156647680 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Then it makes B, which is derived from A, so B.type includes A. < 1156647702 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1156647716 0 :RodgerTheGreat_!unknown@unknown.invalid NICK :RodgerTheGreat < 1156649335 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :PEBCAK? < 1156649350 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :problem is solved. < 1156649633 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :lament: Problem Exists Between Chair and Keyboard [sic, PEBKAC] < 1156649660 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yes, I know < 1156649676 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I've considered purchasing the T-shirt. < 1156650183 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Pff < 1156650196 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :http://www.cafepress.com/donotputthebaby < The T-shirts you should buy < 1156650234 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't have mine yet. I'll wait for the next revision. < 1156650344 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :I've been thinking I'll need to put fewer on. < 1156650352 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :It's hard to tell what's going on on the 40 one. < 1156650390 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1156650660 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I only see 5 < 1156650724 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :well, 6 if you count the 90 cent stamps < 1156650795 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :"The 40 one" = "the t-shirt with 40 images" < 1156650979 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :ERM < 1156650980 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :20 < 1156650981 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1156650984 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :5x4 < 1156650995 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :I'm thinking 4x3 < 1156651479 0 :GregorR-L!unknown@unknown.invalid QUIT :"Leaving" < 1156653287 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1156653986 0 :anonfunc!n=pimaniac@adsl-67-117-30-249.dsl.chic01.pacbell.net JOIN :#esoteric < 1156654366 0 :ihope!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1156655127 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1156658489 0 :pgimeno!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1156658636 0 :calamari!n=calamari@ip68-231-173-86.tc.ph.cox.net JOIN :#esoteric < 1156658654 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1156659439 0 :pgimeno!n=pgimeno@124.Red-80-59-211.staticIP.rima-tde.net JOIN :#esoteric < 1156659456 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hi Pedro < 1156659525 0 :ivan`!unknown@unknown.invalid QUIT :" HydraIRC -> http://www.hydrairc.com <- 100,000+ downloads can't be wrong" < 1156659709 0 :anonfunc!unknown@unknown.invalid QUIT : < 1156659873 0 :ivan`!i=ivan@wikipedia/ivan JOIN :#esoteric < 1156660323 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1156662920 0 :Arrogant!i=Scott@146.orlando-06-08rs.fl.dial-access.att.net JOIN :#esoteric < 1156665574 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++>++++++++++++++++++++++++++++++++++++++++++++++++++++++++<[>.<-] < 1156665576 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :8888 < 1156665591 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<[>.<-] < 1156665594 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :;;;; < 1156665599 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<[>.<-] < 1156665599 0 :clog!unknown@unknown.invalid QUIT :ended < 1156665600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1156665602 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :==== < 1156665626 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++++++++++++++++++++++++++++++++++++++++>,[>.<-] < 1156665628 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1156665631 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :3 CakeProphet: bf < 1156665632 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :4 CakeProphet: bf < 1156665634 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :5 CakeProphet: ps < 1156665640 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!i 3 fuck < 1156665647 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!i 4 fuck < 1156665662 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1156665665 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :3 CakeProphet: bf < 1156665667 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :4 CakeProphet: ps < 1156665672 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!i 3 fuck < 1156665700 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1156665704 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :3 CakeProphet: bf < 1156665706 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :4 CakeProphet: ps < 1156665716 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1156665720 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1156665722 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl < 1156665736 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!show 3 < 1156665738 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :fffffffffffffffffffffffffffffffffffffffffffffffffuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuccccccccccccccccccccccccccccccccccccccccccccccccckkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkfffffffffffffffffffffffffffffffffffffffffffffffffuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuccccccccccccccccccccccccccccccccccccccccccccccccckkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk < 1156665748 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Excellent. < 1156665785 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Excellent. < 1156665791 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!show 3 < 1156665820 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1156665823 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1156665824 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl < 1156665830 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!help ls < 1156665834 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Use: ls [dir] Function: list a directory in the pseudofilesystem < 1156665861 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!help eof < 1156665864 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Use: eof Function: send EOF to a process < 1156665874 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!help flush < 1156665876 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Use: flush Function: flush the output buffer, discarding any current output < 1156666394 0 :_jol_!n=_@c5850-a3-2-62-147-61-62.dial.proxad.net JOIN :#esoteric < 1156668246 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Good job shouting out expletives *makes thumbs up sign*. < 1156668350 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :And making ineffecient programs :P < 1156668680 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Is there any reccomended programming style in Scheme? < 1156668703 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Since it has good imperative and functional elements, is any one of them preferred, or can you program either way, or what? < 1156668940 0 :_jol_!unknown@unknown.invalid QUIT :"leaving" < 1156669159 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Razor-X, Doesn't matter... although it's pretty function... < 1156669173 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :You can customize on it a ton with functions. < 1156669192 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1156669207 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Yeah... you can customize it with functions but..... < 1156669217 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :You know, functional, imperial? Internal state? < 1156669283 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Razor-X, Just do a mix of the two. < 1156669306 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :I guess.... < 1156669316 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :That's why I liked Haskell. At least it keeps you in one paradigm :P < 1156669756 0 :Arrogant!unknown@unknown.invalid PRIVMSG #esoteric :Razor-X, Scheme tends to emphasize functional, but does allow for state modification with a number of functions, often suffixed with a "!" < 1156669780 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Mmmm... yeah. < 1156669793 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :I'm comfortable programming both ways, but I wonder if I should be ``functional until I have to''. < 1156669846 0 :Arrogant!unknown@unknown.invalid PRIVMSG #esoteric :Razor-X, be functional as long as it is reasonable, I'd say. < 1156669858 0 :Arrogant!unknown@unknown.invalid PRIVMSG #esoteric :I think Haskell goes beyond reasonable. < 1156669862 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1156669879 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :I've gotten used to Haskell quite a bit though, so I can easily emulate state in a purely functional form. < 1156669906 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Well, there's only one jam I really came up with (multithreading two different functions that depend on one independant state). < 1156670479 0 :ivan`!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1156670767 0 :ivan`!i=ivan@wikipedia/ivan JOIN :#esoteric < 1156673622 0 :smokecfh!n=user@53549344.cable.casema.nl JOIN :#esoteric < 1156673643 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Mmmm. This BF interpreter in the making should be easy to convert into a DBF interpreter when the time comes. < 1156674943 0 :CXI!i=Sanity@dialup-156.89.221.203.acc50-kent-syd.comindico.com.au JOIN :#esoteric < 1156675605 0 :_jol_!n=_@c5850-a3-2-62-147-23-85.dial.proxad.net JOIN :#esoteric < 1156676678 0 :_jol_!unknown@unknown.invalid QUIT :"leaving" < 1156677492 0 :CXI!unknown@unknown.invalid QUIT :"If you're reading this, it's probably xchat's fault." < 1156681239 0 :Arrogant!unknown@unknown.invalid QUIT :"Leaving" < 1156681426 0 :smokecfh!unknown@unknown.invalid QUIT :Remote closed the connection < 1156682832 0 :jix!n=jix@L635d.l.strato-dslnet.de JOIN :#esoteric < 1156684296 0 :tgwizard!n=tgwizard@c-e33fe155.178-1-64736c10.cust.bredbandsbolaget.se JOIN :#esoteric < 1156685352 0 :ihope!n=foo@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1156686292 0 :ihope!unknown@unknown.invalid QUIT :"http://tunes.org/~nef/logs/esoteric/06.08.09" < 1156689769 0 :RodgerTheGreat!n=RodgerTh@wads-5-233-121.resnet.mtu.edu JOIN :#esoteric < 1156694967 0 :GreyKnight!n=greykt@88-108-250-8.dynamic.dsl.as9105.com JOIN :#esoteric < 1156695005 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION makes out with his graphing calculator. . . < 1156696699 0 :_jol_!n=_@c5850-a3-2-62-147-61-177.dial.proxad.net JOIN :#esoteric < 1156698947 0 :_jol_!unknown@unknown.invalid QUIT :"leaving" < 1156704067 0 :GreyKnight!unknown@unknown.invalid QUIT :"." < 1156709926 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Have fun. < 1156709955 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I stopped a while ago; seems saliva + batteries = pain. < 1156709981 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Good job *makes thumbs up sign*! < 1156710004 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION claps < 1156710029 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: Soon, your Java interpreter for DBF will not stand alone! < 1156710054 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should totally make a DBF compiler < 1156710137 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Bub. Don't steal my idea. < 1156710149 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :oh, awesome. < 1156710150 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1156710152 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should totally make EgoDBF < 1156710162 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :fellow DBF coders! < 1156710168 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not even one that compiles directly to machine code? < 1156710175 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :No, not DBF coders. We won't touch DBF after the interpreters are done. < 1156710181 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Ew pikhq. < 1156710183 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :<:( < 1156710202 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :egobfc2m compiles to machine code ^^ < 1156710209 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :JIT = teh rawx < 1156710213 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Well, this was originally meant to be a BF interpreter, but it should be trivial to extend this to DBF. < 1156710221 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION really should figure out how to do machine code. . . < 1156710240 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: First you get gcc, then you get gobjdump :P < 1156710246 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Meh. I'll write the DBF compiler in Tcl, since I'm really good at it. . . < 1156710272 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :I could've written a DBF interpreter in Ruby or Haskell (or maybe even C) but that would take out the fun. < 1156710276 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Maybe I'll just have it output ASM, and rely on gas to assemble it (like, I believe, GCC does?)? < 1156710297 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :This is going to be a weird functional-imperative hybrid interpreter thing. < 1156710301 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Yah. < 1156710345 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Or I'll be lazy and compile to C. :p < 1156710356 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and this is also Object Oriented. < 1156710378 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Functional, Imperative, OO. Fun. < 1156710436 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is already being crazy, and thinking of ways to optimise the compiler. . . < 1156710495 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :This isn't going to be too optimized. Just a expand-as-needed tape. < 1156710503 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :But I mean, that's all you really need. < 1156710508 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :*an < 1156710524 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Maybe get it to run each loop, and test to see if it does something which can be more easily summed up in a simple C instruction? < 1156710568 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Like, instead of [>-<+], it'd do *p=*(p++);*(p++)=0;? < 1156710606 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Writing a BF->C compiler? < 1156710610 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :That's incredibly trivial, come on. < 1156710620 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :You can write that in sed in a few minutes. < 1156710675 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :A highly optimising DBF->C compiler. . . < 1156710725 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :This is going to be odd. It's going to compile BF to its own language and then interpret it. < 1156710732 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :So it's like a compiler/interpreter. < 1156710747 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :DBF, BF, whatever. < 1156710766 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mine's going to interpret little bits of it in order to try and optimise it. . . < 1156710806 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Have fun! *makes thumbs-up sign* < 1156710812 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1156710835 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :!bf +.>+++++[>++<-]>. < 1156710839 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric : < 1156710850 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :...... < 1156710856 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1156710860 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :3 CakeProphet: bf < 1156710862 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :4 Razor-X: ps < 1156710869 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :!kill 3 < 1156710870 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Process 3 killed. < 1156710877 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :That process has been running forever. < 1156710882 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :I guess I forgot the ASCII code for newline :(. < 1156710921 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++++++++. < 1156710943 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Come on, newline, damn you! < 1156710956 0 :cmeme!unknown@unknown.invalid QUIT :"Client terminated by server" < 1156710973 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :newline (CR) = ASCII 12 < 1156710976 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :er, 13 < 1156710988 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1156711001 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I assure you, it's ASCII 10. < 1156711019 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that < 1156711022 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :is LF < 1156711032 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And LF is \n, or newline. < 1156711059 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :On IRC, isn't it CR/LF ? < 1156711067 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :I believe the internet works on CR/LF basis. < 1156711099 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :On IRC, it's LF. < 1156711102 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :unless your client/bot does otherwise < 1156711106 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :!bf +++++[>++>+++<<-]>.>--. < 1156711122 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :i WAS RIGHT. < 1156711125 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's Windows that does CR/Lf. < 1156711126 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Errr.... < 1156711129 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm. < 1156711130 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :*I was right. < 1156711135 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :No, the internet uses CR/LF. < 1156711144 0 :lindi-_!unknown@unknown.invalid PRIVMSG #esoteric :internet? < 1156711150 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :pretty much everything does < 1156711163 0 :lindi-_!unknown@unknown.invalid PRIVMSG #esoteric :Razor-X: you mean HTTP 1.0? < 1156711168 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Meaning that it's accepted as a general standard that a newline in a TCP stream is CR/LF. < 1156711177 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :If it makes you feel happy to be pedantic :P. < 1156711190 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++++++++++++++[>++<-]>.<++++++++++. < 1156711192 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric : < 1156711193 0 :lindi-_!unknown@unknown.invalid PRIVMSG #esoteric :Razor-X: no it's not, i just wrote a daemon that wants unix style newlines < 1156711206 0 :lindi-_!unknown@unknown.invalid PRIVMSG #esoteric :last week < 1156711210 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Razor-X: It's only the Windows world that does CR/LF. < 1156711223 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In general, Internet protocols use LF. < 1156711232 0 :lindi-_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: huh? < 1156711244 0 :lindi-_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: can you name a few? < 1156711249 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: It's only Windows that uses LF. . . Everyone else uses either LF or CR (old-style makes). < 1156711256 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :lindi-_: Unix style newline is LF. < 1156711257 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Line-translation specifies how end-of-line characters will be translated when reading or writing to the socket. If this is unspecified or #f, then lines will be terminated by cr-lf, which is the standard for most internet protocols. < 1156711272 0 :lindi-_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: i mean, can you name a few such protocols < 1156711279 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Yesh. Bubs. Yesh. < 1156711313 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Newline Have fun. < 1156711335 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to continue supporting Razor-X here. Wether you guys like it or not, WinDOS is the standard, and as such, CR/LF is the most common form of a newline. < 1156711340 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Plus, when I wrote my IRC bot, Haskell uses the local LF as a newline, but a CR used to creep in the protocol. < 1156711365 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :I had to make sure the trailing CR was taken out when writing the bot. < 1156711451 0 :lindi-_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: the page you linked has "Most textual Internet protocols ... use of ASCII CR+LF" < 1156711462 0 :lindi-_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: and not LF as you said :/ < 1156711491 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :lindi-_: Argh. < 1156711524 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1156711534 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :lindi-_: Who the hell decided "Oh, hey! Let's use Windows and DOS's specs, instead of the other OS's specs, which drives our network!" < 1156711549 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: It's not ``who the hell'', it's actually a pretty smart reason. < 1156711552 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :After all, that decision was sort-of made before DOS and Windows were on the Internet. . . < 1156711556 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :I believe the reason was decided even before Windows came. < 1156711559 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1156711565 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Teletype < 1156711572 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Razor-X: What? Using CRLF when everyone on it used LF? < 1156711577 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :CR and LF used to have discrete meanings, y'know. < 1156711582 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Somehow, that doesn't make sense. < 1156711585 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :If you read the Project Gutenberg FAQ, the reason CR/LF was chosen is because UNIX based machines used CR and Apple based machines used LF. < 1156711600 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :CR- returns the print head. LF- advances the paper. < 1156711603 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Therefore you generate a newline on *both* platforms, only with an extraneous character. < 1156711606 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it's really that simple. < 1156711628 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :It was designed for portability in applications, IIRC. < 1156711687 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'm think the teletype control-codes thing is more likely it originally happened, but I can believe that PG did it for that reason. < 1156711702 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :*more likely why it happened < 1156711706 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :PG did it for cross compatibility, yeah. < 1156711721 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :That way newlines work for all three platforms at once. < 1156711726 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1156711746 0 :lindi-_!unknown@unknown.invalid PRIVMSG #esoteric :as if < 1156711752 0 :lindi-_!unknown@unknown.invalid NICK :lindi- < 1156711765 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Better than no newlines :P. < 1156711774 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure about that < 1156711783 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :at least the user would notice that the file is broken < 1156711804 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :now the file can look ok but still utilities can fail to parse it < 1156711804 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Well, the only thing you would get is a trailing \r or \p on Linux or Mac machines. < 1156711836 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Well, if you're parsing it, yeah you'll have to substitute out the extraneous character. < 1156711873 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :But you know that no-one will agree on a standard (I like LF only because it's a lower number, and it's only one character, so you keep size down to a minimum). < 1156711919 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Razor-X: LF is UNIX, CR is old Apple. < 1156711932 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Mac/Apple, whatever. < 1156711945 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now, it's only CRLF (Windows) and LF (everyone else). . . < 1156711945 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :It's another one of those Useless Holy Wars :D. < 1156712019 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CRLF hearkens back to the days of paper terminals. . . < 1156712065 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :why o why didn't the ASCII code designers add a "line terminator" character? < 1156712077 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I was thinking the same thing -_-''. < 1156712102 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :They added ETX, but everyone uses their own EOF instead of ETX. < 1156712124 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :All I know is that Unicode has fixed that. . . < 1156712138 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :and why is LF the UNIX line terminator and CR the code generated by the Enter key? < 1156712142 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Thing is, people add things because they feel like it, and people then defend it to the death because it becomes their religion. < 1156712161 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Code generated by the Enter key *should* be EOT. < 1156712166 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Logically speaking. < 1156712186 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :By simply stating that all Unicode implementations must accept LF, CR, LF, NEL (Next Line), FF (Form Feed), Ls (Line Seperator), and PS (Paragraph Seperator) as newlines. ;) < 1156712199 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: what do you mean it is generated by enter key? < 1156712206 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: keyboard does not know about ASCII afaik < 1156712227 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :lindi-: well, most systems translate the ENTER keycode into CR < 1156712245 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :lindi-: The BIOS can either translate to ASCII or leave as seperate keycodes, though. < 1156712288 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :good ol' INT 16h returned CR for Enter < 1156712429 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: heh, I've just found http://www.w3.org/TR/newline < 1156713765 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Quick question about how coding works. < 1156713785 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Does assigning a pre-existing variable a new value cut down on memory costs? < 1156713801 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Like.. instead of making a new variable.. you replace an old one? < 1156713939 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. . .ish. < 1156713979 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's better to just use descriptive variable names. < 1156713991 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :They're there for your sanity's sake, after all. . . < 1156714140 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Cool, so the base is pretty much done. Time to make a parser. < 1156714155 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION might want to actually work on his idea. . . < 1156714170 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: ... Yeah, it's even cheaper to directly reference function results. < 1156714187 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :The more variables you use, the more beginner-ish your program looks. < 1156714328 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :directly reference function results? < 1156714348 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Oh... you mean just put the function in the variable rather than giving its own variable? < 1156714353 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1156714362 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Oh... well duh.. I never do that. < 1156714364 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :That's just silly. < 1156714366 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1156714376 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :You probably can do it even less. < 1156714379 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to recycle his variables in clever ways. < 1156714389 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Code in Haskell and you'll really realize that you very rarely need variables at all. < 1156714406 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :(Since Haskell doesen't give you variables.) < 1156714410 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hard to imagine... but I can see what you mean. < 1156714430 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Well... it uses function arguements... which are a kind of "variable". < 1156714496 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :They're local bindings, since they're scope expires outside of the local chunk of code. < 1156714512 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :*their < 1156714556 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Yep. Now to write the parser for BF, and when I know that works, I'll simply extend the parser for DBF and all should work out fine. < 1156714663 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It would seem that local bindings would require memory... since the computer needs to recognize that the variable is only usable in a certain chunk. < 1156714669 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :"more memory" < 1156714713 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :It does. < 1156714754 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :But unless you redefine the definition of a function parameter that seems more-or-less universal in all computer languages, you're going to need those bindings *anyways*. < 1156714778 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :But in actuality, I'll be going to a stupid place that talks about Indian property, and then I have to do my Japanese words for the day, and finish off some more of my summer homework. *Then* I can come back and write the parser. < 1156714953 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm... < 1156714983 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Too bad you can't save memory by somehow creating a single variable that holds multiple values. < 1156714994 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Well... there's arrays. < 1156715018 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :But arrays use about the same amount of memory as multiple variables right? < 1156715029 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, maybe even more. < 1156715038 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :What about lists? < 1156715046 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :Linked lists? < 1156715054 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shrugs < 1156715058 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Either. < 1156715079 0 :Razor-X!unknown@unknown.invalid PRIVMSG #esoteric :I would think they take up more memory than an array, seeing how they're all cons'ed to each other, but I'm not sure. < 1156715277 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm... sentinel nodes... how useful? < 1156715794 0 :sexteddy!n=sex@h-69-3-122-197.dnvtco56.dynamic.covad.net JOIN :#esoteric < 1156715815 0 :sexteddy!unknown@unknown.invalid PART #esoteric :? < 1156716593 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm < 1156716605 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to create a BF parser in Python... < 1156716619 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and then... with that BF parser... construct a Python interpreter. < 1156716638 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thinks about how to design his little interpreter for the purpose of optimisation. . . < 1156716677 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Use a single variable instead of an array. < 1156716683 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :What kind of interpreter? < 1156716687 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :For what? < 1156716738 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I want to use an interpreter function to be able to run each loop in some Brainfuck code so that it can see what each loop does to the array. < 1156716763 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Ah... yeah that would be handy < 1156716798 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wishes he had a way to quickly see every variable in every state change of a program. < 1156716815 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: odb does that < 1156716815 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So that instead of doing several lines to get "32" in the array, it could do, say, "*p=(*p)*5;". . . < 1156716860 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If this could be done, it'd make optimising the output code very efficient. < 1156716861 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :INstead of an array. < 1156716877 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Use a series of integers bound to a single variable... that'll save you like what... 4 bytes? < 1156716882 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1156716899 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No, instead of the more direct translation of +++++[>+++++<-]. . . < 1156716916 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Examine the code before performing it? < 1156716918 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's a DBF compiler. < 1156716929 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't know DBF < 1156716941 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Examine the code before doing a braindead compilation, so that it can do a much smarter compilation. < 1156716948 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeah < 1156716980 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It could count the repetitions of something before actually doing anything. < 1156717003 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Keep reading until a symbol change... count out the number of same symbols... and then perform them all at once? Would that be more efficient? < 1156717037 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :+ < 1156717039 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :+ < 1156717040 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :+ < 1156717042 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :[ < 1156717043 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Ah < 1156717054 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :symbol change... there were 3 +'s... so perform them now. < 1156717076 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION was roleplaying a computer program... freaky... :P < 1156717107 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :And then doing something special for loops < 1156717211 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm... for loops it could take the value of the current cell, scan over the loop, then multiply the values of each operation by three... no idea how that's more efficient (at all) but it sounds neato. < 1156717233 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :By "three" I mean to say "The value of CurrentCell" < 1156717239 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :in order to optimize a program, you'd have to identify higher-level constructs. A useful step could be to replace all >> and < with references to variables < 1156717302 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :but, for example, you'd want the compiler to identify an entire multiply construct, and just replace it with an instruction to load that value into memory < 1156717322 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm... good idea. < 1156717328 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :several compilation passes would probably be the best way to do it. < 1156717357 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Instead of readining it symbol-for-symbol... incrementing the pointer too many times... it could just read << and <<< as the variables themselves. < 1156717380 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :"break it up", (rather than down) into a higher-level language until you have something that can be more efficiently turned into assembly. < 1156717383 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1156717411 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :something like the opposite of what BFBASIC does < 1156717418 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to get it to evaluate what each loop does, so that I can transform the stuff done by that loop into a higher-level construct. . . < 1156717443 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :At least, that's what I'm thinking about having it do. < 1156717443 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :interestingly, really inefficient code would probably be the easiest to abstract into something C-like < 1156717448 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I like the idea of just using three or four variables to do everything. < 1156717475 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And having it replace > and < with variables would actually make it easy to evaluate. . . < 1156717487 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1156717497 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1156717519 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1156717523 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :glad I could help < 1156717558 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the actual conversion could get a bit tricky (because > and < represent relative addressing), but certainly not insurmountable < 1156717558 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :This could be a rather large project. . . < 1156717570 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :just imagine the potential payoff < 1156717585 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :you're effectively talking about making a BF disassembler. < 1156717593 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :array = 0000 point = 1 if CurrentSymbol == ">": poiner = pointer*10 if CurrentSymbol == "+": array = array + pointer < 1156717610 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Once I've got this done, though, it could really kick ass. < 1156717618 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1156717643 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'll probably write it as a C/Tcl hybrid. . . < 1156717658 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :But then you have the problem of having values greater than 10... so that won't work right. < 1156717663 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION slaps himself. < 1156717739 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I assure you: It's stupid trying to do everything in three or four variables. < 1156717759 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Efficient, maybe, but it'll drive you insane, and I don't want to be the one maintaining the code after you. < 1156717776 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ditto < 1156717783 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is already insane... < 1156717800 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I seem to remember establishing that two days ago < 1156717809 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In the real world, the programmer's spent time is much more important the computational time. . . < 1156717861 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's cool though.. like solving a puzzle ^_^ < 1156717963 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :God damn. . . < 1156717970 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I simply must get this idea written. < 1156718013 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :go, pikhq, go! < 1156718086 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :This evaluator is going to be the hard part. . . < 1156718088 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. . . < 1156718327 0 :CXI!n=Sanity@dialup-51.89.221.203.acc50-kent-syd.comindico.com.au JOIN :#esoteric < 1156718409 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i registered for university! < 1156718414 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :8 math courses < 1156719227 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm getting no grants whatsoever this year X_X < 1156719228 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yaaaaaaaaaaaaaaaaaaay < 1156719270 0 :tgwizard!unknown@unknown.invalid QUIT :Remote closed the connection < 1156719356 0 :ihope!n=foo@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1156719397 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What if I posted a programming language which consisted of copyright notices on the wiki? :-) < 1156719501 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm. < 1156719581 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Let us join together to create the ultimate in Brainfuck compilers! :p < 1156719631 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :So... < 1156719645 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I just built a BF interpreter... well I'm working on it... and I need a quick way to convert shit into ASCII... < 1156719648 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :This program is copyright (C) ihope 2072. This program is copyright (C) ihope 2101. This program is copyright (C) ihope 2108. This program is copyright (C) ihope 2108. < 1156719653 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION checks his Python docs. < 1156719678 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I know how to do it in C, and how to do it in Haskell... < 1156719691 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And probably Pascal, too. < 1156719705 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Nah, not Pascal. C and Haskell. < 1156719731 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION would ideally like to make this Brainfuck implementation support a lot of different Brainfuck variants. . . < 1156719775 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :DBF can trivially be compiled into BF < 1156719780 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has far too many ideas in his head < 1156719782 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: I know. < 1156719785 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :thus, it's a good candidate < 1156719804 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Likewise, BF can trivially be compiled into DBF. ;) < 1156719827 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's only a matter of stripping characters that are comments in BF but not DBF. ;) < 1156719828 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that's a bit more trivial < 1156719840 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :optimizing BF into DBF is nontrivial < 1156719910 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION figured it out. < 1156719935 0 :Sgeo!n=Sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1156719952 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Now I'm trying to figure out how to use Python's encode method to encode input into a series of digits. < 1156719977 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :A series of digits? < 1156719983 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is going to go out and design the overall architecture of this thing. . . < 1156719986 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeah... like BF digits. < 1156719987 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What do you need series of digits for? < 1156719998 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :To put into the... current cell. < 1156720030 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Okay... just so I know... in the traditional BF implementation... does , accept characters or just BF code? < 1156720077 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It usually accepts a character and puts its ASCII value into the cell, I think. < 1156720095 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Thought so. < 1156720113 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :So that's what I'm doing... figuring out how to use Python's encode to encode text into an ASCII value. < 1156720305 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What does encode do, exactly? < 1156720314 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Encodes a string into unicode. < 1156720329 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :With... whatever codec you specfy. < 1156720354 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... apparently Python has ord() and chr() just like Haskell. < 1156720369 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ord() = character to integer, chr() = integer to character. < 1156720370 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :If it does... I've never heard of it. < 1156720373 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :OH. < 1156720384 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Well... kinda. < 1156720390 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to have this compiler be slightly traditional in architecture: Frontends for the various BF variants, which compile into an intermediate language. Then, we run the optimisation routines on the intermediate code, and pass it through to the backends, which output the final code. < 1156720430 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Seems a tried & true design, and makes for a clean architecture. . . < 1156720438 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ihope, str() returns a string representation of whatever you put in it.... and int() returns an integer of something. < 1156720462 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Is str() like Haskell's show? < 1156720471 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What happens if you put a string into it? < 1156720486 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I was just about to find out... as it might be my solution. < 1156720516 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Welll.. < 1156720537 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>>> int("lol") < 1156720539 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Traceback (most recent call last): < 1156720540 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric : File "", line 1, in -toplevel- < 1156720542 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric : int("lol") < 1156720543 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ValueError: invalid literal for int(): lol < 1156720574 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>>> int("0") < 1156720576 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1156720616 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :str() is more flexible than int()... str() will pretty much return anything as a string. < 1156720970 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thinks. . . < 1156721029 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Oh OH < 1156721035 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think I can use a translation table. < 1156721063 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric : | translate(...) < 1156721065 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric : | S.translate(table [,deletechars]) -> string < 1156721066 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric : | < 1156721068 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric : | Return a copy of the string S, where all characters occurring < 1156721070 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric : | in the optional argument deletechars are removed, and the < 1156721071 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric : | remaining characters have been mapped through the given < 1156721073 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric : | translation table, which must be a string of length 256. < 1156721112 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Why not just use ord? < 1156721127 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :You mean int()? < 1156721147 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm.. oh.. Python has an ord function... but it might be an alias of int() < 1156721151 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You want to translate characters into numbers, don't you? < 1156721160 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Oh oh oh < 1156721166 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeah ord is what I want. < 1156721168 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1156721174 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION didn't know Python had ord() < 1156721185 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :All those built-in functions I've never used throw me off guard. < 1156721300 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It also has chr() < 1156721378 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric : Hmm... apparently Python has ord() and chr() just like Haskell. < 1156721410 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If I were sufficiently insane, I could get this thing running, and make it target Brainfuck (thereby producing highly efficient Brainfuck code). :p < 1156721440 0 :CXI!unknown@unknown.invalid QUIT :Connection timed out < 1156721492 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has finished his BF parser. < 1156721562 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Someone give me some BF to parse. < 1156721570 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :To give it a test run. < 1156721607 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :!bf_txtgen There. < 1156721610 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :/bin/bash: /opt/sablevm/bin/sablevm: No such file or directory < 1156721610 0 :CXI!n=Sanity@dialup-142.89.221.203.acc50-kent-syd.comindico.com.au JOIN :#esoteric < 1156721634 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Whee. < 1156721652 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :[-]+[,.[-]+] < 1156721689 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :79 +++++++++++++++[>++++++>++++++++>+++++++>+++<<<<-]>------.>>-.---.<------.>.>+. [30] < 1156721837 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what his intermediate language should look like. . . < 1156721915 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :+15[>+6>+7>+3<4-]>-6.>2-.-3.<-6.>.>+. < 1156721991 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And now we're back to the issue of how to write the optimising routines. < 1156722012 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(although that alone should serve to optimise things a bit) < 1156722106 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But I might as well at least try and get a simple frontend written. < 1156722110 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yay my first error! < 1156722149 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm.. < 1156722163 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What sort of error? < 1156722166 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Well... to make the array infinite.. I attempted to make it nest itself... :D < 1156722177 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :But... that apparently doesn't work in Python. < 1156722258 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Make it nest itself? < 1156722279 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Well.. now that I think about it... that wouldn't work anyways. < 1156722284 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Sounds like generators you're after... < 1156722287 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :A recursive array. < 1156722330 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I could just give it a finite size... < 1156722405 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ihope, What's the standard size for a BF array? < 1156722421 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :At least 30000 cells. < 1156722590 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION makes the program print a list of 30000 0's for him.. so he doesn't have to. < 1156723031 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :. . .