< 1259626326 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1259627482 0 :adam_d!unknown@unknown.invalid QUIT :"Leaving" < 1259633829 0 :SimonRC!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1259633856 0 :SimonRC!n=sc@fof.durge.org JOIN :#esoteric < 1259638428 0 :augur!unknown@unknown.invalid QUIT :Connection timed out < 1259640683 0 :Gregor!n=gregor@65.183.185.22 JOIN :#esoteric < 1259640805 0 :Pthing!unknown@unknown.invalid QUIT :Remote closed the connection < 1259642740 0 :quantumEd!unknown@unknown.invalid QUIT :"Leaving" < 1259643264 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1259643454 0 :olsner!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1259643555 0 :olsner!n=salparot@h-60-96.A163.priv.bahnhof.se JOIN :#esoteric < 1259645054 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :okokokokokokokokokokokokokokokokoko < 1259645056 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :okokokokokokokoko < 1259645063 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :okokokokokokokokoko < 1259645075 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :okokokokokokoko < 1259645088 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :good evening mister < 1259645094 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :good morning < 1259645113 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's december already! < 1259645125 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :weeew! < 1259645135 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :holy fucking shit! < 1259645137 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :CRIIIIMBO < 1259645140 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well in some time zones < 1259645148 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :in this time zone < 1259645204 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i wish i could sleep more < 1259645229 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :time for dyslexics to start ruing the coming of satan < 1259645269 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wait rue is the wrong word < 1259645324 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it seems like it could be slightly wrong. < 1259645371 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :false friend with norwegian "grue", i say < 1259645426 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the only important timezone is whenever rollover ends < 1259645429 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :which, fortunately, was already < 1259645440 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm wait english has grue too, and it fits better < 1259645450 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :rollover? < 1259645484 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well you know where it happens last < 1259645486 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i sincerely doubt the east pacific has changed yet < 1259645505 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: KoL < 1259645513 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1259645521 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :SPEAK ENGLISH YOU INFIDEL < 1259645530 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Kingdom of Loathing < 1259645535 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :coppro: What's your MOXIE? < 1259645541 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah? < 1259645552 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :337 buffed, 262 unbuffed! < 1259645582 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :BYE ALL OF YOU, SEE YOU IN HELL < 1259645586 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :~> < 1259645654 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :December means Crimbo (and Hanukkimbo...) in KoL, which means YAY < 1259645737 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1259646311 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1259650164 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259652676 0 :augur!n=augur@216-164-33-76.c3-0.slvr-ubr2.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1259654399 0 :clog!unknown@unknown.invalid QUIT :ended < 1259654400 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1259656128 0 :Slereah_!n=Slereah@ANantes-259-1-84-123.w92-139.abo.wanadoo.fr JOIN :#esoteric < 1259656758 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259657591 0 :dbc!unknown@unknown.invalid QUIT :Remote closed the connection < 1259658115 0 :dbc!n=daniel@130-94-161-238-dsl.hevanet.com JOIN :#esoteric < 1259661521 0 :Asztal!n=asztal@host86-158-81-44.range86-158.btcentralplus.com JOIN :#esoteric < 1259663015 0 :BeholdMyGlory!n=behold@62.119.155.253 JOIN :#esoteric < 1259667011 0 :sebbu!n=sebbu@ADijon-152-1-42-206.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1259667672 0 :sebbu2!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259669172 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1259676119 0 :BeholdMyGlory!n=behold@d83-183-181-73.cust.tele2.se JOIN :#esoteric < 1259677035 0 :augur!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259677182 0 :MigoMipo!n=MigoMipo@84-217-8-188.tn.glocalnet.net JOIN :#esoteric < 1259677398 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1259677979 0 :augur!n=augur@129-2-175-79.wireless.umd.edu JOIN :#esoteric < 1259677984 0 :kar8nga!n=kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1259678674 0 :quantumEd!n=somebody@unaffiliated/fax JOIN :#esoteric < 1259679925 0 :quantumEd!unknown@unknown.invalid QUIT :"Leaving" < 1259682533 0 :coppro!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259682997 0 :ais523!i=93bcc029@gateway/web/freenode/x-fktbentsegixdyld JOIN :#esoteric < 1259683261 0 :antoine!n=chatzill@ARennes-357-1-133-199.w90-12.abo.wanadoo.fr JOIN :#esoteric < 1259683337 0 :antoine!unknown@unknown.invalid QUIT :Client Quit < 1259683389 0 :quantumEd!n=somebody@unaffiliated/fax JOIN :#esoteric < 1259684147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, iwc < 1259684191 0 :Pthing!n=pthing@cpc11-pres4-0-0-cust168.pres.cable.virginmedia.com JOIN :#esoteric < 1259684245 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1259684250 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also, happy birthday < 1259684261 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :happy birthdays all around! < 1259684269 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1259684281 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but i suppose to AnMaster most of all. < 1259684301 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklofok :o < 1259684328 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, what is P(someone else having bday on 1 December in this channel)? < 1259684382 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :1-(364/365)^n < 1259684389 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :anmaster, we know how to calculate this stuff. dont be silly. < 1259684401 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :11% < 1259684410 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :augur, I didn't claim you didn't < 1259684447 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i assumed he just wanted someone to tell him the prob < 1259684459 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, would this be affected if we knew that some of the remaining ones didn't? And what if you were allowed to switch door then? < 1259684465 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : < 1259684671 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :anyway we have the random variables X_i for each dude on the chan except you, 1 for having a birthday, P(\exists i: X_i > 0) = 1 - P(X_1 == 0 and ... and X_n == 0) = 1 - P(X_1 == 0)P(X_2 == 0)...P(X_n == 0) = what i said, because these are clearly independent < 1259684700 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :X_i's are bernoulli distributed with probability 1/365 < 1259684736 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :or you could think of it as a binomial distribution, but i prefer this way < 1259684855 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(where independence is to justify equality number 2) < 1259684880 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, what about leap years? < 1259684889 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(how does that work with bdays anyway? < 1259684891 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :) < 1259684919 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :most leap people have their birthdays on feb 28th < 1259684924 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :afaiu < 1259684930 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1259684939 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :or 1st march < 1259684943 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1259684947 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1259684986 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, how would this be handled if humanity started to colonise other planets? With possibly different lengths of day and year. < 1259684999 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but yes, i didn't account for that, it introduces less error than the fact people reproduce different amounts at different months < 1259685006 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what about 1.5 year per *day* for example? < 1259685030 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :birthyear instead of birthday then? < 1259685047 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :birth unix timestamp < 1259685054 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ooh good idea < 1259685076 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, but how often would that repeat? I mean, every 10000 or such? < 1259685096 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no that would be too often < 1259685123 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :birthday every 3 hours does sound intriguing < 1259685127 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not accounting for leap years or leap seconds an earth-year would be roughly 31536000 seconds < 1259685201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so to round it, what about every 32000000 second? < 1259685204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or maybe 31 < 1259685211 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(plus those zeros) < 1259685247 0 :BeholdMyGlory!n=behold@d83-183-181-73.cust.tele2.se JOIN :#esoteric < 1259685282 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :33554432 is close < 1259685296 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :2**25 < 1259685299 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION notes that writing (* 365 24 60 60) is much more compact than 365 * 24 * 60 * 60 (and skipping those spaces is ugly) < 1259685309 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, oh good point < 1259686033 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(365 24 60 60)'*t < 1259686052 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wait, I can shorten that < 1259686061 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(365 24 60:)'t < 1259686099 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*/365 60 60 24 < 1259686105 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(j) < 1259686155 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :woah, J and Underlambda come to the same length for that? < 1259686177 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'd expect Underlambda to be about twice as verbose on average < 1259686187 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which, considering I'm comparing it to J here, is pretty good < 1259686196 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :that's crazy < 1259686228 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I need to get back to working on it sometime, I don't think any of the half-finished interps implement t yet < 1259686239 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it's basically fold < 1259686255 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(map is rather harder to implement, but that's planned to be part of the lang eventually) < 1259686348 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION notes that having constant arity functions is significantly easier to parse < 1259686374 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :t is constant arity in Underlambda < 1259686382 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it has arity 2, a function and a list < 1259686409 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's defined even if the function doesn't take two arguments, but I suspect taking two arguments will be the usual use-case as it makes it act like fold < 1259686419 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(that is, two arguments, one return) < 1259686424 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ooh < 1259686428 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :car is '!t < 1259686428 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(* 365 24 60 60)? Bah. That's silliness. 365 24*60*60* < 1259686442 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: that's silliness as it doesn't generalise well < 1259686456 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Kinda joking there. < 1259686461 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :365 24*60*60* is correct Underlambda too, though < 1259686464 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :given that it's an RPN language < 1259686471 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I prefer 365*24*60*60, generally. < 1259686497 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Unless, of course, I'm trying to just operate a calculator. < 1259686507 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yes, what if the division of a year into pieces changed! dangerous mixing data and control < 1259686512 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :RPN, IMO, is very much write-only. < 1259686535 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :thank god ehird isn't here < 1259686568 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: why? < 1259686576 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(and you know he logreads, right?) < 1259686601 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :iirc he likes factor < 1259686609 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, some calendars, like the Aztec calendar, you need both addition and multiplication to calculate the length of a year < 1259686624 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and yes, i know he logreads < 1259686656 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :"oklofok: thank god ehird isn't here" was targeted to logreading ehird most of all < 1259686681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :grr, I should work on Unlambda some time but I have so much else to do right now < 1259686688 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*Underlambda < 1259686690 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :unlambda? < 1259686692 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :haha :D < 1259686694 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, Unlambda too < 1259686705 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I want to write a compiler from Unlambda into Underlambda < 1259686708 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I used to have one, but deleted it by mistake < 1259686711 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :months ago < 1259686739 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :did you specifically optimize underlambda and underload for easy mixing-up with unlambda < 1259686758 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :underlambda was specifically optimised for that, underload's etymology is unrelated < 1259686775 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but underlambda is a logical enough name for a purely functional underload < 1259686784 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :underload is the one i've been confusing all my life < 1259686826 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1259686833 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was originally a tarpit version of overload < 1259686854 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and overload is pretty much abandoned now because underlambda does much the same thing but is more elegant < 1259686950 0 :asiekierka!i=asiekier@078088180066.elblag.vectranet.pl JOIN :#esoteric < 1259686951 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :NO < 1259686952 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :no < 1259686958 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :NOT MY PRECIOUS SOLDERS < 1259686963 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :I PAID A LOT FOR THM AND THEY DIED < 1259686987 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: stop derailing the conversation, it was actually ontopic for once < 1259686990 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that's wr for you. < 1259687008 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :i love derailing conversations tho < 1259687016 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :well < 1259687018 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :what was it about < 1259687023 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, I'm kind of worried < 1259687028 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there was a weird whirring sound for a while < 1259687032 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then a bang above me < 1259687036 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now there's the smell of burnt silicon < 1259687041 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1259687043 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :did your brain overheard < 1259687053 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, I think it was the flourescent lights here < 1259687058 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I turned it off, anyway < 1259687059 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just in case < 1259687063 0 :calamari!n=calamari@ip72-211-145-161.tc.ph.cox.net JOIN :#esoteric < 1259687076 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :overheard :P so now we're confusing overload and overheard too! < 1259687088 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and overheating < 1259687088 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what's with these over-/under- terms < 1259687097 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :underhead < 1259687105 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well i'm not sure that works because it's not a name of a language of yours < 1259687123 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :!ul (/)(~:S(*)*~):^ < 1259687130 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (/)(~:S(*)*~):^ < 1259687130 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :/ < 1259687133 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :umm < 1259687136 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (/)(~:S(*)*~^):^ < 1259687136 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :/ ...out of stack! < 1259687140 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :again umm < 1259687148 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (/)(~:S(*)*~:^):^ < 1259687148 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric ://*/**/***/****/*****/******/*******/********/*********/**********/***********/************/*************/**************/***************/****************/*****************/******************/*******************/********************/*********************/**********************/***********************/*********************** ...too much output! < 1259687149 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :so umm ~ was... pop? < 1259687152 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's better < 1259687157 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :~ is swap < 1259687159 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :nono swap right < 1259687161 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1259687170 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :gah, I've forgotten how to do loops properly < 1259687175 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or rather, failed to generalise < 1259687182 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my brain still had (:^):^ as the basic infinite loop < 1259687193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but forgot to add one of the :^s when it came to writing a larger one < 1259687199 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :cool, i can actually still read taht < 1259687201 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*that < 1259687210 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :take that, pikhq's wild theories about rpn! < 1259687219 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what are they? that it's unreadable? < 1259687231 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :"pikhq: RPN, IMO, is very much write-only." < 1259687233 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I find RPN natural for certain types of statements < 1259687252 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. Mathematica would be a lot more readable if it was all postfix, rather than a mix of postfix, prefix, and infix < 1259687356 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's kinda annoying math notation is 2d, i don't know how to memorize treeform data < 1259687369 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :treeform?? < 1259687387 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :one of my dreamlets is to memorize "schaum's handbook of mathematical formulas and stuff" < 1259687390 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(((a b) (c d)) ((e f) (g h))) < 1259687394 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err yes treeform < 1259687424 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :what's in that book? < 1259687429 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :formulas and stuff < 1259687430 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :mostly < 1259687434 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1259687437 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :what like y = sin x < 1259687458 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah stuff like sin^2 x + cos^2 x = 1 < 1259687467 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :that's pythagoras theorem < 1259687500 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :anyway you can prove everything like that in trigology by converting it to a complex rational polynomial (which has decidible equality) < 1259687506 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :all these equations are trivial < 1259687509 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well there's the slight difference that pythagora's theorem is just an observation about the physical world, that's a consequence of the definitions of sin and cos < 1259687544 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well i'm not saying i just want to memorize the trivial ones < 1259687549 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :you think triangles only work because of complex transcendental functions? < 1259687557 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: *trigonometry? < 1259687562 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've never heard "trigology" used before < 1259687568 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: you can define distance in other ways. < 1259687570 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yeah stuff like sin and cosine < 1259687587 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ugh, bad flashbacks < 1259687600 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :pythagorean theorem says if you define distance as sqrt(x^2 + y^2), then distance is sqrt(x^2 + y^2) < 1259687602 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one of the weirdest experiences in my life was walking into a room during Maths camp < 1259687612 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and seeing three people playing three-player table tennis while chanting trig identities < 1259687634 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :admittedly, it would have been weirder still /outside/ maths camp < 1259687638 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it was pretty jarring even then < 1259687676 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :anyway even if you're correct, and all trigonometric identities in formula books are in fact trivial to prove in your head and directly see the applications of, there's still the integration formulas, and constants. < 1259687721 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: learn Tschebychev's inequality < 1259687731 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :apparently it implies most of the other interesting inequalities, but is a pain to memorise < 1259687934 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :oklofok bull shit!!!!! < 1259687981 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :don't make math too formal it takes the soul out of it < 1259687989 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :pythagoras isn't about square roots < 1259688091 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :then what's it about < 1259688118 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :right angle triangle < 1259688119 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you have to define distance before you can prove the pythagorean theorem gives you that < 1259688127 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :no you don't < 1259688155 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :alrighty. i'm not following you < 1259688228 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :nobody defines distance = sqrt(x^2 + y^2) THEN learns pythoagoras theorem < 1259688263 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :distance = sqrt(x^2 + y^2) is because pythagoras theorem is _true_ < 1259688289 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yes. it's true with the metric defined with sqrt(x^2 + y^2) < 1259688307 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :R can have other metrics < 1259688330 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :what are you saying, non-euclidean geometry? < 1259688400 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i don't know which metrics give non-euclidean and which give euclidean geometries < 1259688454 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :oklofok just look at this picture, http://thinkzone.wlonk.com/MathGems/pics/pythagorean_theorem.gif -- this proves pythagoras without any "R" or "metric" or analytic geometry < 1259688477 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i mean the pythagorean theorem is a model that's nice for doing basic physics < 1259688480 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the original proof of Pythagoras' theorem was entirely geometrical, IIRC < 1259688499 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :well basic physics is a different matter < 1259688501 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :the prof can only be geometrical < 1259688504 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*proof < 1259688528 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :there can be no proof that isn't purely geometrical, because there is no inherent metric for the reals, you have to define one. < 1259688531 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :you have given a non geometrical proof -_- < 1259688547 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :where did i give one? < 1259688555 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :you said distance = distance because it is < 1259688616 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well right, that's the usual definition of distance in R^2, i guess definitions prove themselves < 1259688646 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :http://thinkzone.wlonk.com/MathGems/pics/pythagorean_theorem.gif <<< this is meaningless < 1259688675 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :no it's got meaning, the meaning is what proves pythagoras theorem < 1259688682 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: I mean, not only purely geometrical, but without an attempt to translate it into mathematical language < 1259688686 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well it's a nice experiment in kindergarden physics < 1259688696 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that image is a nice proof, though < 1259688699 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :how does physics have anything to do with it? < 1259688700 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but it's just a physics experiment < 1259688702 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :I don't see any relation < 1259688707 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the whole point is that d^2 = x^2 + y^2 < 1259688723 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you're proving the paper behaves according to the definition of distance on R^2 < 1259688740 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it proves that by showing that x^2 + y^2 + 4 copies of the original triangle's area = d^2 + 4 copies of the original triangle's area < 1259688749 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :the picture of a triangle is not important, the _Perfect_ triangle which it denotes is what you must consider < 1259688755 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :if you were traveling near speed of light, that proof wouldn't apply anymore < 1259688758 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can express Pythagoras' theorem in terms of areas rather than distances < 1259688766 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well, no not really < 1259688772 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: it was originally < 1259688785 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :arguably, the corollary to distances is a different theorem < 1259688785 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but with papers and you traveling all around at different speeds, i'm sure it could bend a bit < 1259688848 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ais523: to verify areas of things have to do with multiplication is another fun kindergarden physics experiment :P < 1259688870 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :I don't think any of this is < 1259688871 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :kindergarden physics < 1259688876 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :I would say it is: Mathematics < 1259688881 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it is not: mathematics < 1259688886 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it has nothing to do with: mathematics < 1259688901 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :maybe to you mathematics is deduction trees which a computer can say "VALID" or "INVALID" < 1259688906 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one of my favourite proofs is the one I came up with myself that 1^3 + 2^3 + 3^3 + ... + n^3 = (1 + 2 + 3 + ... + n)^2 < 1259688926 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, I like the combinatorial proof of Fermat's Little Theorem, although it isn't mine < 1259688932 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :mathematics is taking objects that behave in a certain way, and proving that implies them behaving in some other way as well < 1259688935 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :ais523 how did you prove that? < 1259688970 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok, consider a "times table" (a table where the element at (i,j) is i*j) < 1259688991 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you multiply out the RHS of that expression, you get the sum of all elements in a times tabnle < 1259688994 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*times table < 1259689010 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now, you divide the times table into areas based on the highest coordinate < 1259689017 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :i.e. (1,1) has highest coordinate 1 < 1259689027 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(1,2), (2,2), (2,1) have highest coordinate 2 < 1259689028 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1259689050 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :up to (1,n), (2,n), (3,n), ... (n,n), ... (n,3), (n,2), (n,1) with highest coordinate n < 1259689062 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :say if you take all the values with highest coordinate i < 1259689063 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1259689070 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :the rest is just algebra < 1259689073 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1259689073 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then you get i*(1+2+3+...+i+...+3+2+1) < 1259689079 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is i^3 < 1259689119 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that's a mathematical proof, you define numbers that behave in a certain way, and a few operations on them, then you prove those operations mix in an interesting way < 1259689129 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :that's cool ais523 < 1259689164 0 :kar8nga!unknown@unknown.invalid QUIT :Remote closed the connection < 1259689186 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as for the proof of Fermat's Little Theorem (which isn't mine, but is just as cool): we're trying to prove that (a^p) % p = a % p < 1259689199 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or in other words, p divides (a^p-a) < 1259689216 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now, suppose you have p objects arranged in a circle, each of which can be any of a colours < 1259689219 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :the nicest proof for that is a corollary from group theory, but go on < 1259689241 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you might change my mind < 1259689248 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :interruptingfok < 1259689249 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you rotate the circle, you need to rotate it an entire revolution to get back to the original arrangement of colours, unless all the objects are the same colour < 1259689263 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because there's a prime number of colours, so there's no other way to get a repeating pattern around the circle < 1259689272 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so there are a^p-a arrangements that aren't a solid colour < 1259689310 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and because you can't get the same arrangement twice as you rotate any of them, the total number must therefore be divisible by p < 1259689321 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(because p is the number of positions you can rotate to) < 1259689345 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1259689350 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that's actually the corollary in disguise :) < 1259689356 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh, same proof? < 1259689358 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a very neat one, anyway < 1259689360 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well i think so < 1259689375 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is nice, it means we don't have to debate about which is better < 1259689384 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :the idea in group theory is if you have some group, and a subgroup of its, then the size of the subgroup divides the parent groups size < 1259689386 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*group's < 1259689401 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :let's see... < 1259689402 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, same proof I think < 1259689407 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :one of those arrangements < 1259689414 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err < 1259689418 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i need to think :P < 1259689482 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :okay i'll leave making this precise to oerjan < 1259689486 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :I don't see that one ais523 < 1259689500 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :how does "the total number must therefore be divisible by p" follow? < 1259689518 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: you have a partition of a^p-a into equivalence classes of size p < 1259689527 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :q.e.d. < 1259689558 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: because you can divide the a^p-a possible colourings into sets of p, which are the same up to rotation < 1259689589 0 :FireFly!n=firefly@1-1-3-36a.tul.sth.bostream.se JOIN :#esoteric < 1259689604 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :ah, excellent! < 1259689607 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :the equivalence classes partition the set, and each is of size p, so you have p * (number of equivalence classes) = a^p - a < 1259689706 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the group theory one proves many other things though :P < 1259689723 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, it's two parts to the same theorem < 1259689729 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the group theory proof is the second half of my proof < 1259689910 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure it's easy to extend that to the general case < 1259689922 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :neither am I < 1259689926 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: please explain that proof to me in terms of abstract algebra! < 1259690175 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :the idea for the usual proof is you take some subgroup H of a group, now it follows from the axioms of a group and the definition of a subgroup that it's an equivalence relation of the group's elements whether aH == bH, now because each aH is of the same size, we have |H| divides |G| < 1259690193 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that one doesn't directly work for infinite groups ofc < 1259690209 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :aH just means multiplying all the subgroup's elements by a < 1259690224 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1259690305 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ugh, more spam phone calls < 1259690327 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there are loads to this office, I take the phone off the hook until they end in the hope of costing the spammers money < 1259690330 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and don't actually listen to them < 1259690348 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um what, i wasn't paying attention < 1259690351 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh and p divides a^p-a follows from this when you take the multiplicative group of p elements and consider the subgroup generated by a, it's size must divide the size of the original group, but the group's size is p, so also must be the whole p, which means the first power of a that is 1 can be p-1 < 1259690371 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :subgroup generated by a = take 1, a, a^2, a^3, ... < 1259690400 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: we're discussing the combinatorial and group-theoretical proofs of Fermat's Little Theorem < 1259690403 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :well you really want = {..., a^-2, a^-1, a^0, a^1, a^2, ...} < 1259690403 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and whether or not they're the same < 1259690418 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :but that's irrelevant here I suppose < 1259690426 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well right, i was talking about the finite case < 1259690450 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :usually you need the inverses, but in the finite case, a^k = 1 for some k, so a^(k-1) is the inverse of a, so you don't need the explicitly < 1259690457 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :hmm I don't like this notation I used with the dots < 1259690461 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*them < 1259690471 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :why not < 1259690472 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :? < 1259690481 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :it seems to suggest that all the elements are different < 1259690493 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :but maybe a^-2 = a^0 < 1259690538 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well luckily you have { ... } there to remove duplicates! < 1259690556 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :usually implemented using a hash table < 1259690563 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :what lol < 1259690698 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i wanna do algebra so bad, i had a few courses in algebra in spring, but i only realized after taking them how awesome it was :P < 1259690821 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :my currently mushy brain cannot see how the two proofs would be ewuivalent < 1259690829 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*equivalent < 1259690841 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well i'm thinking he's implicitly defining some group of sort of permutations < 1259690850 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but instead of p objects in p places, you have a objects < 1259690860 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :or maybe nothing like that < 1259690873 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :I should do something in Underload. < 1259690888 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well an action of a group of p elements on a set of a^p elements < 1259690890 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :I've got a book on algebra but I haven't read it yet < 1259690902 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :all i know is they have the same feel, you divide the whole thing into equivalence classes of size p < 1259690941 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :both of them prove a^p-a/p is an integer :P < 1259690959 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :(a^p-a)/a < 1259690961 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :sigh < 1259690975 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :no /p was correct < 1259690980 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: his proof is also a group proof, but it's not the _same_ proof... < 1259690983 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :wel < 1259690984 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :l < 1259690993 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(a^p-a)/a is also an integer, true :P < 1259691028 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: oh well i suppose that's a good point < 1259691054 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :damn you, i'm always right until you show up < 1259691069 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :NOW WHY MIGHT THAT BE < 1259691087 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :IT'S PROBABLY BECAUSE OF QUANTUM < 1259691801 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :should i do fun stuff or not fun stuff? both need to be done by thursday < 1259691814 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :fun stuff < 1259691818 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :actually food is third option < 1259691847 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :eat first, then you'll enjoy both the fun and the unfun stuff more < 1259691853 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :alright, i have all the votes i need < 1259691854 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1259691869 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but i'm sorta full, it's just the food will go bad if i don't eat it... :P < 1259691876 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ugh < 1259691878 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well i'm not that full, something in-between < 1259691883 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :eat it just before it goes bad? < 1259691895 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yes i'll put like a timer in the fridge < 1259691899 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :use it for mold experiments < 1259691925 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the world needs new antibiotics! < 1259691928 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i've ben bacheloring it up for 5 days, there's enough mold experiments here already. < 1259691932 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*been < 1259691943 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think possibly the best advice here is that asking #esoteric for advice on this sort of thing is a bad idea < 1259691961 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hey i got exactly the answer i wanted < 1259691969 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i mean at first < 1259691982 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh at first, yes... < 1259691984 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :also why is it so hard to remember quantumEd is fax < 1259691993 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :why does it even matter? < 1259691997 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: it's the uncertainty < 1259692014 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, why would you ask if you already wanted a particular answer? < 1259692023 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :why does it matter who you are? because you have a personality < 1259692029 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :except to get statements from us that you could later use to destroy our political careers < 1259692050 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :in fact a very distinct one < 1259692152 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :also it's nice to know which ones are noobies, because i behave slightly differently based on the portions < 1259692236 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes, you need to be polite until they are properly addicted < 1259692277 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1259692469 0 :quantumEd!unknown@unknown.invalid QUIT :"Leaving" < 1259692508 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :wait that's the opposite of what should happen if a regular has a new nick! < 1259692510 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION observes quantumEd's momentum to be away from this channel < 1259692552 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :his position is now relatively unknown, though < 1259692552 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :not that i was that nice to him, i told him his math was wrong, which is pretty much the worst thing you can do to a person < 1259692565 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i mean if my math was wrong i'd probably kill someone < 1259692568 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA < 1259692592 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :don't speak of things too horrible to contemplate < 1259692629 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :starting to doubt your math after me and fizzie's talk about reals? < 1259692634 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: you know, it's OK to unbelieve things you previously believed if someone points out errors in them < 1259692641 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :otherwise, you'd end up believing everything, which is even worse < 1259692662 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but there's a certain point in life where your math is set. mine is. < 1259692677 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wait, what? < 1259692680 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1259692689 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm a research student < 1259692695 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and therefore, /expect/ to be discovering new maths < 1259692710 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but i expect new maths to fit my maths. < 1259692741 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'm using the definition of math relevant to the maths being wrong comment < 1259692783 0 :quantumEd!n=somebody@unaffiliated/fax JOIN :#esoteric < 1259692784 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1259692794 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :also i proved a pretty ridiculous micro-lemma today, Q is an identifying code of R < 1259692816 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :if we call R as a code, points are codewords < 1259692820 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*a code < 1259692870 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :identifying code = there's some r such that the map x -> B(x, r) \cap I is an injection < 1259692889 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*I is an identifying code < 1259692934 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(basically you can determine a point by which elements of the identifing code are within some distance of it) < 1259692955 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:^:^:^:^)(~:(*)~^S(/)S:(:)~^~(*)~^(!!()())~**~:^):^ < 1259692956 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...too much prog! < 1259692957 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm isn't identifying code == dense subset of R ? < 1259692972 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*:*:*:*)(~:(*)~^S(/)S:(:)~^~(*)~^(!!()())~**~:^):^ < 1259692972 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :****************/***************/**************/*************/************/***********/**********/*********/********/*******/******/*****/****/***/**/*///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ...too much output! < 1259692978 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: not exactly, consider taking all the intervals (2k, 2k+1) out < 1259692981 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and taking radius 1 < 1259692987 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :or, if that doesn't work < 1259692994 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1259692996 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :at least you can remove some small interval < 1259693016 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok but any dense subset is an identifying code < 1259693020 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yes, i think so < 1259693057 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well, if x != y, then there's an open interval between the extremes of the balls around them < 1259693063 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and in that open set, there's an element < 1259693071 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*:*:*:*)(~:(*)~^S(/)S:(:)~^~(*)~^(!!()())~**:(!())~^~a(^)~*^~:^):^ < 1259693071 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :****************/ < 1259693085 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*:*:*:*)(~:(*)~^S(/)S:(:)~^~(*)~^(!!()())~**:(!())~^(!())~^~a(^)~*^~:^):^ < 1259693086 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :****************/***************/**************/*************/************/***********/**********/*********/********/*******/******/*****/****/***/**/*/ < 1259693088 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1259693101 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*:*:*:*:*)(~:(*)~^S(/)S:(:)~^~(*)~^(!!()())~**:(!())~^(!())~^~a(^)~*^~:^):^ < 1259693101 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :********************************/*******************************/******************************/*****************************/****************************/***************************/**************************/*************************/************************/***********************/**********************/**************** ...too much output! < 1259693111 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*::*:**:*)(~:(*)~^S(/)S:(:)~^~(*)~^(!!()())~**:(!())~^(!())~^~a(^)~*^~:^):^ < 1259693112 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :********************/*******************/******************/*****************/****************/***************/**************/*************/************/***********/**********/*********/********/*******/******/*****/****/***/**/*/ < 1259693127 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (::*:*:**:*)(~:(*)~^S(/)S:(:)~^~(*)~^(!!()())~**:(!())~^(!())~^~a(^)~*^~:^):^ < 1259693127 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :******************/*****************/****************/***************/**************/*************/************/***********/**********/*********/********/*******/******/*****/****/***/**/*/ < 1259693134 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*:*::**:*)(~:(*)~^S(/)S:(:)~^~(*)~^(!!()())~**:(!())~^(!())~^~a(^)~*^~:^):^ < 1259693134 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :************************/***********************/**********************/*********************/********************/*******************/******************/*****************/****************/***************/**************/*************/************/***********/**********/*********/********/*******/******/*****/****/***/**/*/ ...too much output! < 1259693177 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: first of all i think the definition of some sort of denseness closure is relevant here, take the union of all closed intervals C such that C \cap I is dense in C < 1259693186 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*:*::**:*)(~:(*)~^S:(:)~^~(*)~^(!!()())~**:(!())~^(!())~^~a(:(/)~^S^)~*^~:^):^ < 1259693186 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :************************/***********************/**********************/*********************/********************/*******************/******************/*****************/****************/***************/**************/*************/************/***********/**********/*********/********/*******/******/*****/****/***/**/* < 1259693195 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :perfect < 1259693196 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :because we just case about whether the endpoints land on somewhere like that < 1259693223 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it'd look neater in Underlambda, I wouldn't have to write all those operations out by hand < 1259693225 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ais523: isn't it great how things are fun to relearn again once you've forgotten them :P < 1259693232 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :"relearn again" < 1259693237 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: ok other attempt: I is an identifying code with given r iff (I-r) union (I+r) is dense subset of R < 1259693240 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: well, in this case it's more reminding myself of how it works < 1259693257 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ah < 1259693263 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, interestin that there's exactly one a command in that < 1259693267 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*interesting < 1259693268 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that's so obvious < 1259693274 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ACTION bangs head to wall < 1259693319 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, I've known the expression for decrement for ages, just haven't written it into a program like that < 1259693333 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh. i have. < 1259693339 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :on the chan < 1259693341 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :with you watching < 1259693342 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i think < 1259693366 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :after all, (:)~^~(*)~^(!!()())~** is rather messy < 1259693413 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that would be ':`'*`(!01)&* in Underlambda, just with simple abbreviations < 1259693429 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and probably just 1- with full abbreviations < 1259693452 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wait, no, not (!01) < 1259693455 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that makes no sense for this < 1259693462 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(!!()()) it would probably remain < 1259693469 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :0 pushes a 0, not runs a 0 < 1259693482 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: to humiliate myself further, i actually originally tried to prove Q is *not* an identifying code < 1259693485 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(!0^1) would work < 1259693495 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or (!!1 1) < 1259693515 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but mentioned this to a prof, and he said think again < 1259693591 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(!())~^(!())~^ would be 0`0` in Underlambda < 1259693594 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or !! in C < 1259693812 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1259693870 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm vaguely wondering if 0` should be a single character, but it wouldn't be used enough < 1259693899 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so in fact the best you can do is to cover "half" of R (measuring proportions using the obvious system based on limits) < 1259693913 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :at least i think it follows from that < 1259693931 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well cover, if you take the closure i explained earlier < 1259693951 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :taking the union of dense closed intervals first < 1259694009 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let's see... that whole section near the end, minus printing the slash, could be written :@gg^ < 1259694024 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is a lot shorter than :(!())~^(!())~^~a(:(/)~^S^)~*^~ < 1259694052 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ooh, thought of a clever way to allow for the slash < 1259694072 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*:*::**:*)(~:(*)~^S:(:)~^~(*)~^(!!()())~**:(!())~^(!())~^~a(^)~*^~:^):((/)S)*^ < 1259694073 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :************************************************************************************************************************************************************************************************************************************************************************************************************/ < 1259694076 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or not < 1259694081 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*:*::**:*)(~:(*)~^S:(:)~^~(*)~^(!!()())~**:(!())~^(!())~^~a(^)~*^~:^):((/)S)*~^ < 1259694081 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :************************************************************************************************************************************************************************************************************************************************************************************************************/////////////////////// < 1259694096 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wait what, why did those do the same thing < 1259694129 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, they didn't < 1259694137 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh, appending to the wrong end of the loop < 1259694141 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*:*::**:*)(~:(*)~^S:(:)~^~(*)~^(!!()())~**:(!())~^(!())~^~a(^)~*^~:^):((/)S)~*~^ < 1259694142 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :************************/***********************/**********************/*********************/********************/*******************/******************/*****************/****************/***************/**************/*************/************/***********/**********/*********/********/*******/******/*****/****/***/**/* < 1259694452 0 :Gracenotes!unknown@unknown.invalid QUIT :Remote closed the connection < 1259694467 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1259694769 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ooh, seems my issue with the Windows 7 computer that used to be here was actually Microsoft's fault < 1259694778 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than incompetence by the IT support department < 1259694782 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :http://news.bbc.co.uk/1/hi/technology/8388253.stm < 1259694831 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, actually mine might be different, as it happened during boot rather than after login < 1259695397 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :these exercises just get easier and easier because students never manage to present all 7 during the 2 hour session, so we keep falling more and more behind, next week there's 3 last week's problems to show < 1259695421 0 :asiekierka!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259695427 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(we usually have 7 problems, and a random student is chosen to present each) < 1259695584 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :so not exactly a foolproof system < 1259696299 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Man, I really must be not feeling well: typing is hard. < 1259696355 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe you're tired < 1259696364 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I know I am, and probably I'm typoing more as a result < 1259696378 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :after all, I had to type "typoing" three times before I got the first two letters right < 1259696382 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Headache. < 1259696391 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I somehow managed to spell "probably" with a capital P, and had to correct that too < 1259696396 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm doing "okay" so long as I avoid flourescent lights. < 1259696404 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(such as are in every building on campus) < 1259696422 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Flickering lights hurt like fuck. < 1259696449 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sounds like migrane, then < 1259696455 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :'Tis just that. < 1259696463 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Migraines suck. < 1259697188 0 :MigoMipo!unknown@unknown.invalid QUIT : < 1259698067 0 :MigoMipo!n=MigoMipo@84-217-8-188.tn.glocalnet.net JOIN :#esoteric < 1259698674 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1259698699 0 :adam_d!n=Adam@AAnnecy-751-1-11-29.w90-52.abo.wanadoo.fr JOIN :#esoteric < 1259698881 0 :BeholdMyGlory!n=behold@d83-183-181-73.cust.tele2.se JOIN :#esoteric < 1259699134 0 :jpc!n=jw@unaffiliated/javawizard2539 JOIN :#esoteric < 1259699141 0 :jpc!unknown@unknown.invalid PART #esoteric :? < 1259699144 0 :jpc!n=jw@unaffiliated/javawizard2539 JOIN :#esoteric < 1259699183 0 :jpc!unknown@unknown.invalid PRIVMSG #esoteric :heya FireFly < 1259699190 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Hi :P < 1259699197 0 :jpc!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is jcp, I just have two accounts since I have too many channels for one < 1259699243 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Oh, didn't even notice the difference at first glance < 1259700072 0 :calamari_!n=calamari@ip72-211-145-161.tc.ph.cox.net JOIN :#esoteric < 1259700093 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :argh I just ran into a system that lacked less < 1259700102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in, only pager around is "more" < 1259700113 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: use vi < 1259700119 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it has similar bindings to less < 1259700122 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just allows editing too < 1259700123 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, not around, nor emacs. There is nano however < 1259700132 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wait, no vi? not even vim.tiny? < 1259700139 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :something is wrong with the universe < 1259700141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, no vi or vim < 1259700163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, shell is zsh. There is also ash, but no bash < 1259700172 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :*what the fracking hell* < 1259700176 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok, something is /very/ wrong with the universe < 1259700189 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if the same pattern repeats for other programs < 1259700195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coreutils is gnu btw < 1259700200 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as far as I can tell it is sane < 1259700208 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: contradiction < 1259700219 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well, "no less sane than usually" < 1259700249 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, what calculators are available? let me guess, dc and Mathematica? < 1259700265 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :languages... asm and Haskell? < 1259700290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, dc isn't there < 1259700295 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nor is bc < 1259700304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nor Mathematica. < 1259700310 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1259700312 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I'm not sure what the binary for it is called < 1259700314 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was just trying to guess the pattern < 1259700323 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/usr/bin/mathematica? < 1259700336 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it has gcc but not g++ < 1259700361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gnu as exists. No ghc or hugs < 1259700363 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nor erlang < 1259700367 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is strange as g++ is generally the same or a very similar binary < 1259700369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nor any scheme that I know of < 1259700388 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, you can use --enable-languages iirc to say you don't want c++ < 1259700400 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1259700411 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I mean, they must have /deliberately/ excluded C++ support < 1259700418 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :only time I've done that was for gcc-bf < 1259700420 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i just made a reduction in the wrong direction < 1259700429 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because I didn't want to bother working out an ABI for exception handling < 1259700614 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, apart from that, hm... there is joe too. The text editor I mean < 1259700615 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no pico < 1259700629 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :joe? < 1259700638 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, nano /and/ pico would be ridiculous < 1259700655 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :IIRC, nano's bug-compatible with pico by default, apart from supporting more commands < 1259700796 0 :quantumEd!unknown@unknown.invalid QUIT :"Leaving" < 1259700810 0 :quantumEd!n=somebody@unaffiliated/fax JOIN :#esoteric < 1259700945 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: you've done gcc-bf? < 1259700945 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's my project, yes < 1259700955 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not finished, and unlikely to be for a while due to RL pressures, and not being top of my esolang priorities (Feather and Underlambda are higher) < 1259700963 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :ahh < 1259700973 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but finished enough to feel like an incredibly buggy finished program rather than an unfinished one < 1259700993 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :so you compile c to bf? < 1259701005 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1259701012 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, in two stages < 1259701019 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I compile C to ABI, which is an invented asm-like language < 1259701021 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then ABI to BF < 1259701026 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the first compiler is done, the second isn't < 1259701033 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :neat! < 1259701055 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :I tried to figure out gcc a few times but I always got bogged down < 1259701067 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :congrats on getting past that point :) < 1259701079 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I even found a bug in gcc, but it was in a codepath that isn't used for any of the architectures they support < 1259701085 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so arguably, it isn't a bug, and probably they don't care < 1259701093 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :so is ABI something you created? < 1259701102 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1259701110 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :most of it maps onto BF pretty simply < 1259701141 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. tadd2.8 %r0, %r1, %r2 would be (with the pointer at r0) [-<+<+>>] < 1259701157 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but some bits, e.g. compare, multiplication, and, are harder < 1259701175 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically it's about as powerful as a typical RISC assembly language < 1259701177 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :may I see a buggy copy? < 1259701179 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but designed to be good for BF in particular < 1259701193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :calamari_: yes, except for the difficulty of transferring the files in question < 1259701209 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the entire gcc source distribution is rather large, as is that for newlib < 1259701215 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :I made a bf assembly language a while back and tried to port it, but again, like I say I got stuck hehe < 1259701234 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I'm not entirely sure if it would work if you downloaded a current gcc version, rather than the one I'm working with < 1259701239 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, gcc-bf isn't on this computer < 1259701250 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I have a computer with it on, 'twould just take a while to boot < 1259701272 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION boots it < 1259701276 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :well honestly I was just going to look at it to understand < 1259701294 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, the gcc build process is truly insane < 1259701303 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so much so, that I have my own parallel build process that is also insane < 1259701315 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and runs it a bit at a time, occasionally using Perl scripts to modify gcc's own build process < 1259701343 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :that sounds about right for gcc < 1259701359 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :you must have an incredible amount of patience < 1259701369 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fun fact: gcc .md files are all polygolts < 1259701372 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*polyglots < 1259701377 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :between two similar but not identical languages < 1259701384 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Patch of GCC, rather than full source tree? < 1259701390 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Still probably large, but less so. < 1259701401 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's mostly confined to one directory < 1259701413 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And yeah, GCC's build system is freaking insane. < 1259701425 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and a few patches to the build system, lying to it to tell it that bf-unknown-none is a processor supported by GNU < 1259701452 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :what is your register size, 32 bits? < 1259701457 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :8 < 1259701467 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :oh, nice < 1259701467 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although, int=32 < 1259701473 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Well, ideally it is a supported processor. :P < 1259701477 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so an int takes up 4 registers < 1259701499 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Though the binutils probably don't much care for it... < 1259701519 0 :ais523_!n=ais523@147.188.254.115 JOIN :#esoteric < 1259701524 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :binutils are custom < 1259701530 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods < 1259701532 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :ld does the actual assembling < 1259701538 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :ar is a wrapper around tar < 1259701542 0 :ais523!unknown@unknown.invalid QUIT :Nick collision from services. < 1259701545 0 :ais523_!unknown@unknown.invalid NICK :ais523 < 1259701577 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And ranlib is a noop? < 1259701658 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1259701667 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, it's a no-op even on most sane systems < 1259701701 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :It's a no-op on Linux. < 1259701707 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :It's not a no-op on Mac OS X.' < 1259701726 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Wots all this about bf-gcc now? < 1259701734 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Is it still maintained/developed? < 1259701754 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It is such a shame that the ar format is not even remotely standardised. < 1259701772 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Yeah, ais523 still develops it, just not a whole lot. < 1259701779 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: not really; I haven't abandoned on it, but it's so far down my list of priorities there's unlikely to be progress for years < 1259701916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, if you made the diff against base gcc available < 1259701926 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'm trying to do that right now < 1259701927 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :someone else could set up a repo and take over < 1259701935 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh and tell us what version the base gcc is < 1259701945 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can guess from the build script < 1259701953 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as it has the exact version number and date in < 1259702006 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :do you have a bf hello world it made? < 1259702006 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I would probably begin by porting it to modern gcc. to avoid all hell breaking loose. Well I guess less of a risk of that actually when it isn't bootstrapped < 1259702027 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: bootstrapping it would be insane < 1259702028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :calamari_, that's several MB when encoded with runlength < 1259702031 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes < 1259702034 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :hahaha < 1259702062 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :calamari_, I have seen it < 1259702064 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :due to the need to add in a runtime, etc < 1259702065 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not sure if I have it around < 1259702067 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :bootstrapping what? < 1259702071 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :calamari_: gcc < 1259702076 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gcc-bf compiled to bf < 1259702077 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because that would imply compiling gcc into brainfuck < 1259702077 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :nah it's okay I'll believe you < 1259702078 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :would be insane < 1259702113 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :http://filebin.ca/akqbhj/gcc-bf.tar.gz is the diff against gcc and newlib, and the build script < 1259702114 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :I bootstrapped my bf assembler, but that's at a completely different scale hehe < 1259702130 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, I haven't got a hello world to work that uses either stdio, or unix syscalls < 1259702138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1259702150 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the famous several-MB one requires use of __bf_out < 1259702152 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, do you know if it is gcc->abi or abi->bf issue? < 1259702162 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the second, almost certainly < 1259702166 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, actually it seems to be 435K < 1259702170 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's less-well tested, also less complete < 1259702175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it was several MB if *not* RLL encoded < 1259702176 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that was it < 1259702184 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: thanks! :) < 1259702186 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just found it < 1259702188 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :gcc-bf assumes that runlength is optimised < 1259702209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, do you have an ABI interpreter? < 1259702216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, or any other useful testing tools < 1259702220 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :source tarballs you need: gcc-4.2-20070719.tar.lzma newlib-1.16.0.tar.gz < 1259702221 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no < 1259702226 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, there is one testing tool < 1259702229 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1259702233 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :bfrle, my BF interp < 1259702237 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, link? < 1259702238 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is designed specifically to debug gcc-bf < 1259702244 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :link = not online, let me tarball it up too < 1259702264 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, no need, it's in the tarball I've already posted < 1259702271 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in the patches/ dir < 1259702277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, does this support out of tree builds? < 1259702299 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the build system is very inflexible < 1259702301 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So, the really major thing that GCC-BF misses is functioning syscalls? (and therefore most of libc) < 1259702311 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it always cp -rs the original tree < 1259702313 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and then modifies it < 1259702329 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, and ABI->BF stuff < 1259702329 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then it builds gcc and newlib in a mix of in-tree and out-of-tree < 1259702331 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess < 1259702335 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :copying the resulting files into a fourth tree < 1259702339 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is the one you actually run it from < 1259702344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :*blink* < 1259702348 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: no, the really major thing it's missing is multiplication < 1259702359 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ... Multiplication. Really. < 1259702360 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is, I suspect, the reason that the syscalls aren't functioning < 1259702370 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I told you I hadn't finished < 1259702379 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :True. < 1259702379 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :/you/ try writing a 64-bit multiply in BF < 1259702385 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :argh I was just adding it to a bzr repo < 1259702394 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :turns out it was already darcsed < 1259702394 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that has some modicum of efficiency < 1259702398 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it isn't, really < 1259702402 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that darcs repo isn't a proper repo < 1259702406 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :adding patches/config-bf/_darcs/inventory < 1259702408 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :see? < 1259702409 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's basically used as a versions repository < 1259702416 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, huh? < 1259702417 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I presume you have 64-bit adding? < 1259702418 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :normally, you commit code after you write it < 1259702421 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yes, of course < 1259702424 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well yes < 1259702432 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in that repo, I was commiting just before I did something potentially disasterous < 1259702440 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I could roll back to before what I did < 1259702446 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. That makes it only *quite* painful. < 1259702447 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, ignore all the documentation in that tree, it's wrong < 1259702488 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, it's accuratish enough to give an idea of what I'm doing, but not the details < 1259702488 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the comments in the source, OTOH, are up to date < 1259702488 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm... so can I use darcs on it < 1259702488 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1259702490 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or is there some crucial part missing < 1259702499 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just don't expect the version history to make any sense, unless you're drunk at the time < 1259702507 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it seems only part of patches/ has _darcs? < 1259702511 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the top dir does not < 1259702514 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in fact < 1259702514 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: correct < 1259702519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :only config-bf does? < 1259702522 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's just the gcc bit that was in darcs < 1259702529 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my suggestion is that you rm -r the _darcs dir < 1259702535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, only config-bf has darcs stuff < 1259702535 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and then, version with any versioning system you like < 1259702539 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1259702545 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I will use bzr as you probably know < 1259702551 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't mind that at all, why should I? < 1259702610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gcc-4.2-20070719 hm < 1259702643 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, is that based on upstream or some distro? < 1259702659 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because only gcc-4.2-20070719 I can find is from ubuntu bug reports < 1259702668 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's what I got by doing apt-get source gcc-source < 1259702670 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or something like that < 1259702679 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's probably a nightly < 1259702702 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, do you remember what version of debian or ubuntu you did that on? < 1259702704 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :considering my jaunty has 4.3.3 < 1259702708 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not 4.2* < 1259702743 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, but considering the date, 7.10 seems plausible < 1259702752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what was that one called? < 1259702763 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :feisty < 1259702773 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1259702792 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what about gutsy? would that match? < 1259702797 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it match better with googling < 1259702804 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, miscounted < 1259702806 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, it was gutsy < 1259702813 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks for a timeline < 1259702925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, why is lucid 10.04? rather than 10.0 < 1259702934 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :date-based < 1259702937 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :april 2010 < 1259702938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1259702951 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if somehow they're late with the release, it'd be 10.05 < 1259702965 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the pressure to release every 6 months is one of the things that leaves Ubuntu rather buggy < 1259702972 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is that the reason for 6.06? < 1259702985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :two months of delay < 1259703000 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, which one will be the next LTS? < 1259703010 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is going to aim for next LTS and stay on that < 1259703073 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think lucid is an LTS < 1259703102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah yes < 1259703111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well I guess karmic before then for a bit < 1259703125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, was jaunty unusually stable or what? < 1259703134 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was stabler than karmic, at least < 1259703139 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1259703145 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :different versions seem to be stable for different people, for some reason < 1259703158 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :OTOH, the wireless works even better with karmic than it did with jaunty < 1259703171 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(with earlier versions it was somewhat broken) < 1259703172 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I would say my gentoo system is one of the most stable systems I owner < 1259703174 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :owned* < 1259703187 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in fact my arch system manages to be bleeding edge *and* stable < 1259703234 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what is config-bf? < 1259703258 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a directory that becomes config/bf inside gcc itself < 1259703263 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1259703269 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it contains all the patches to gcc that deal with actually doing interesting things < 1259703273 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as opposed to build tweaks, etc < 1259703281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is the darcs command to show full log? < 1259703286 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :darcs changes < 1259703289 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but you won't get much out of it < 1259703293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1259703319 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is cc0 < 1259703337 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a pseudo-register that refers to the flags < 1259703340 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :like overflow, carry, etc < 1259703350 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :gcc-bf has a physical cc0, also cc1, cc2, and cc3 < 1259703355 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which are used as temporaries when doing comparisons < 1259703366 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what is collect2? < 1259703371 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a wrapper for ld < 1259703379 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is actually named ld, normally, when it's installed < 1259703388 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it deals with things like constructors in C++ < 1259703393 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :by wrapping around main < 1259703402 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, you use little endian? < 1259703402 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1259703406 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's an awful hack, and something that gets in my way a lot, and that I don't actually need < 1259703415 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I use little-endian to make casting easier < 1259703429 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, huh? < 1259703448 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(short)x is in the same memory location as (long)x < 1259703463 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you use big-endian, you have to write code for downcasting < 1259703478 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is the main theoretical advantage for little-endian, as far as I know < 1259703479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1259703481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, please explain the purpose of patch-libgcc-mk.pl to someone who don't know perl < 1259703494 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it patches the build system < 1259703500 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why a perl script < 1259703501 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for that < 1259703502 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I could have used sed instead, but the Perl is cleaner < 1259703508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why not just a diff? < 1259703517 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, libgcc contains implementations of things like floating-point emulation < 1259703534 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the build script for libgcc is generated dynamically during the compilation of gcc < 1259703539 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so doesn't exist initially, to be patched < 1259703549 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, did you consider doing an llvm backend instead? < 1259703555 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not at the time < 1259703558 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I might, at some point < 1259703565 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, since llvm supports PIC16 and such even < 1259703584 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, gcc assumes, for some reason, that the largest possible integer is twice the native word size < 1259703604 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is a strange assumption to make, given that __int128_t exists and it compiles on 32-bit systems < 1259703611 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, heh? < 1259703615 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it's even violating its own assumptions there < 1259703618 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how does that work then < 1259703630 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably there's a separate hack in an entirely different part of the code < 1259703639 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, of course llvm backend would imply C++ that really feels like C++ < 1259703651 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, one of the things that libgcc does is things like 64-bit operations in terms of 32-bit operations < 1259703667 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my idea, basically, was to get it to also do 32-bit in terms of 16-bit, and 16-bit in terms of 8-bit < 1259703687 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that means I don't need to write an enormous number of cases in the linker < 1259703697 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :things like 64-bit multiplication are bad enough < 1259703717 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, is newlib from gutsy too? < 1259703725 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1259703738 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as ehird will tell you, I rarely look for things on the Web < 1259703742 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and did you use the patches from ubuntu? < 1259703751 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :definitely no in the case of gcc < 1259703756 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for newlib? < 1259703759 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :given that the tarball I downloaded contained another tarball < 1259703762 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for newlib, I'm actually not sur < 1259703764 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*sure < 1259703788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ouch nested tarballs < 1259703796 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1259703826 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what is libbf for? < 1259703836 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :syscalls < 1259703849 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's basically the libc < 1259703855 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, newlib is the libc < 1259703880 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but you can't write a libc entirely from scratch < 1259703880 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as it would be unable to do I/O, etc < 1259703880 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it's all the bits of libc that can't be written in pure C < 1259703893 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :libbf is, instead, written in magic < 1259703899 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : but you can't write a libc entirely from scratch <-- why not? it would just take some time < 1259703912 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I/O, etc < 1259703917 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, you need inline ASM < 1259703919 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or something else similar < 1259703923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well. that isn't what you said < 1259703932 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I meant, in pure C < 1259703935 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1259703942 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now it makes sense < 1259703947 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the funny thing is, some of it is pure C < 1259703955 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :given that the filesystem is a linked list stored on the heap < 1259703962 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the C standard requires files < 1259703968 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but doesn't require them to persist past the end of the program < 1259703969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, is the ABI documented anywhere? < 1259703996 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which? < 1259704002 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ABI the asm, or ABI the application binary interface? < 1259704014 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the interface is documented, to some extent, in comments in bf.g < 1259704014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, your own fault for confusing it < 1259704015 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and < 1259704017 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*bf.h < 1259704020 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :both would be useful < 1259704020 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I did that deliberately < 1259704027 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I meant asm in this case < 1259704029 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the asm is documented, to some extent, in bf-ld < 1259704036 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/String_operations <<< look at the definition of prefix-closed, is it just me or does that make no sense? < 1259704039 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, where is the asm -> bf translator? < 1259704043 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is it the perl bf-ld? < 1259704048 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1259704051 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if so I will probably rewrite it < 1259704051 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :bf-ld does most of the actual work < 1259704056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to be in python or something < 1259704064 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that'd be rewriting more than half the project < 1259704071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well, I don't know perl < 1259704073 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although, don't let that stop you if you really want to < 1259704073 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :for instance Pref({aaa}) would be the empty set < 1259704093 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, is your longjmp stuff tested? < 1259704115 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, and indeed I think it doesn't work < 1259704115 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it took long enough to get just regular function calls working < 1259704115 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? I have no clue about how it should work really < 1259704120 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: same way it's implemented in any other language < 1259704127 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, "any other target" < 1259704130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you mean < 1259704130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but < 1259704131 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1259704138 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :except that in gcc-bf, you also have to clear the frame pointer stack < 1259704140 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I have no clue how it usually work < 1259704147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, wait what? < 1259704149 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is something that AFAIK no processor has in hardware < 1259704153 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :normally it's implemented as a linked list instead < 1259704172 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what would happen with -fomit-frame-pointer in gcc-bf? < 1259704179 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I don't think you can actually do that < 1259704187 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :OTOH, the frame pointer doesn't take up a register < 1259704188 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, why do you need the frame pointer? < 1259704205 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you can return from functions when you use alloca or VLAs < 1259704221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm? how does "normal" targets handle that? < 1259704232 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :by adding a frame pointer for functions that use them, IIRC < 1259704244 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :omit-frame-pointer doesn't necessarily omit it everywhere < 1259704246 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :only when it's safe < 1259704249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why not do that? < 1259704290 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because, there is a hardware frame pointer stack < 1259704293 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is a lot lot more efficient than storing the pointer as an intege < 1259704295 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*integer < 1259704302 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :dereferencing a numeric pointer is slow slow slow in BF < 1259704312 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just doing [<] until you find a 0 is much faster < 1259704313 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1259704348 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, it would reduce the computational class < 1259704353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-abi < 1259704353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Output the ABI produced by the link as well as the final brainfuck < 1259704353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :code. < 1259704353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-asm < 1259704353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Output the low-level ABI that shows what the ABI was transformed to < 1259704354 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just before final ABI output. < 1259704356 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1259704358 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :gcc-bf has no problems allowing you to go over the top of pointer-accessible memory < 1259704367 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can't actually overflow the stack < 1259704382 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just, you mustn't ask for or dereference a pointer to stack elements above the top of memory < 1259704402 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what happens to the frame pointer in callees? like a VLA-allocating function calling one using alloca? < 1259704413 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it stays on the frame pointer stack, obviously < 1259704424 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, on other processors, it gets saved in a register somewhere, I think < 1259704424 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh you said register I thought? < 1259704435 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, the registers get mapped to memory when you call a function anyway < 1259704448 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, like uh sparc? < 1259704454 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, I mean manually < 1259704457 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1259704462 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you need to preserve the content of a register across a function call < 1259704472 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :be it the frame pointer or anything else < 1259704477 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then you copy it to memory < 1259704479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, aren't usually half of them caller saved and half callee-saved? < 1259704480 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or such < 1259704480 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :standard compiler design < 1259704485 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: actually, correct in this case too < 1259704496 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how many registers? < 1259704500 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :64 general-purpose < 1259704505 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :32 caller-saved, 32 callee-saved < 1259704514 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, many special-purpose ones < 1259704516 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, not more? < 1259704519 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no < 1259704540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, why not? if memory is slow and registers less so you would want more no? < 1259704565 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :partly to prevent register scheduling taking forever < 1259704587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? but what about current arches with lots of registers? < 1259704598 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :64 is lots < 1259704600 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and llvm internally uses 1024 virtual registers < 1259704606 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I could add more, I suppose < 1259704618 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, would have to check if it would help or not < 1259704635 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what special purpose registers are there? < 1259704651 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's a nice list in bf-ld somewhere, let me find it < 1259704672 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :look at argloc < 1259704698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm a lot of regexes? < 1259704703 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :regexpes* < 1259704705 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :* < 1259704721 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what are their functions? < 1259704746 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a scratch register, two carry registers, two maintained at 0, three temp registers < 1259704746 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also three pointers (mark, stack, frame) < 1259704746 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :two maintained at 0? < 1259704757 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: for leaving loops, etc < 1259704763 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, why two? < 1259704763 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's two a specific distance apart < 1259704765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1259704768 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so that you can become sure where the pointer is < 1259704773 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :when you weren't sure where it was before < 1259704778 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's the easiest way to do conditionals < 1259704796 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*four temp registers < 1259704810 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, you went for softfloat? < 1259704815 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1259704820 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, why? < 1259704821 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wait, why are you even asking that question? < 1259704837 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: if it is not utterly obvious why you'd use softfloat in a brainfuck-based simulated processor < 1259704841 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then what is wrong with you < 1259704848 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, softfloat would be even slower wouldn't it than one that is optimised bf one, right? < 1259704876 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I mean, it would need to split across registers < 1259704883 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and what if they aren't next to each other? < 1259704890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :even if they were, would it help much? < 1259704910 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :floating's going to be soft anyway < 1259704916 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and if you do write a good hard float library for BF < 1259704917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well yes < 1259704922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1259704923 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :publish it, it'd be useful even outside gcc-bf < 1259704943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, does a bf library even make sense < 1259704943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :outside the context of gcc-bf < 1259704948 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :err, yes? < 1259704952 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1259704955 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1259704960 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you could use it #define-style < 1259704962 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess as a set of functions listed on a page < 1259704970 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or possibly do cleverer things, depending on what you were doing < 1259704992 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, did you consider compiling to pebble first? < 1259705013 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, there wouldn't be much of a point < 1259705023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1259705038 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :((test x$1 = xrc || test x$1 = xcr || test x$1 = xcru) && shift && tar czvf $* ) || (test x$1 = xx && shift && tar xzvf $* ) || (echo Usage: bf-ar cr archive.a file.o [file.o [...]]) < 1259705040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bf-ar < 1259705041 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is nice < 1259705044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but what the hell? < 1259705060 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :void _exit (int rv) { (void) rv; goto *(void*)0; } < 1259705075 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, uh < 1259705081 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :possibly my favourite C function I've ever written < 1259705088 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-D < 1259705090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that would go to start of program no? < 1259705094 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not in gcc-bf < 1259705097 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which starts at origin 1 < 1259705098 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in gcc-bf < 1259705100 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh hah < 1259705126 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or possibly some other value, determined by the linker < 1259705126 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, so lowest page is mapped? < 1259705126 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or wait < 1259705126 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"page" < 1259705126 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :does not make sense < 1259705142 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :function pointers are just tags in gcc-bf < 1259705147 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they don't point to actual memory locations < 1259705153 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they're just used to identify which function you mea < 1259705153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, same or separate code and data pointers? < 1259705154 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*mean < 1259705157 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah separate < 1259705165 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :code and data pointers are in separate ranges of values < 1259705173 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in fact, code, stack, and heap are < 1259705176 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, limits? < 1259705186 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they're distinguished by the first byte, which is 0x0, 0x1, or 0x2 < 1259705193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, top byte < 1259705197 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, shouldn't you provide a limits.h? < 1259705199 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the less significant bytes are the value < 1259705204 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, limits.h is in newlib, I think < 1259705227 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well it is target-specific < 1259705233 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to some extent < 1259705247 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bf-old.c bf-old.h bf-old.md bf-protos.h bf.c bf.h bf.md notesfromesolang.txt t-bf < 1259705248 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1259705251 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what's those < 1259705261 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :um, you don't want to know < 1259705269 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, bf-old you can ignore < 1259705269 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, they are in config-bf < 1259705272 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's before I created the darcs repo < 1259705276 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I would *need* to know < 1259705279 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :t-bf is to do with the build system < 1259705287 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and is a timestamp file (no content but the modification time) < 1259705288 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :# Generate floating point emulation libraries. < 1259705289 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in t-bf < 1259705291 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1259705300 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wait, what? < 1259705304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes < 1259705310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :FPBIT = fp-bit.c < 1259705310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :DPBIT = dp-bit.c < 1259705311 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, no it isn't < 1259705314 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :t-bf is a makefile fragment < 1259705320 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that gets dynamically injected into gcc's makefiles < 1259705322 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's one for every arch < 1259705325 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, where are those .c files < 1259705327 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(sorry, I muddled it with something else) < 1259705332 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and somewhere in gcc < 1259705340 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :those are the standard single and double precision float emu libraries < 1259705387 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, do you have any sort of todo list or roadmap or such? < 1259705400 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :look for unimplemented bits in bf-ld < 1259705403 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1259705409 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the gcc side is finished, barring bugfixes < 1259705418 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and the bf-protos.h bf.c bf.h bf.md files? < 1259705421 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway: bf.h is a header file that describes the application binary interface < 1259705425 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :bf.c is code generation < 1259705436 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and bf.md is hard to describe in a single line < 1259705447 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, it's code in a gcc-specific DSL < 1259705457 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which generates RTL, and compiles it to asm < 1259705466 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the RTL is modified by other bits of gcc after it's been generated, though < 1259705478 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :bf-protos.h I can't remember, I'd have to look at it < 1259705479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/* TODO: hook TARGET_ADDRESS_COST to give the optmizer some clues about how < 1259705479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : expensive various operations are. Possibly TARGET_RTX_COSTS too. */ < 1259705481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :afail < 1259705483 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :afaik* < 1259705489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that depends on interpreter/compiler < 1259705491 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for bf < 1259705495 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, it's just function prototypes < 1259705506 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which have to be in a separate file for a gcc-build-system-related reason I can't remembe < 1259705508 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*remember < 1259705528 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, on the ABI compiler, yes < 1259705535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ? < 1259705539 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, it's telling it things like xor is slower than mov for setting things to 0 < 1259705544 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which it can't guess without being told < 1259705549 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh right < 1259705558 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, is [-] "mov"? < 1259705572 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1259705577 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, mov.8 0 < 1259705588 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you'd have to say where it was, too < 1259705589 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, one operand? < 1259705594 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :two operands < 1259705605 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also what about mov reg->reg or mov mem->reg < 1259705606 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or such < 1259705615 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"mov.8 $0, %r4" is the actual syntax < 1259705621 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :instead of mov immediate->* < 1259705638 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that isn't mov, as you can't do that in brainfuck < 1259705640 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, why the . thing < 1259705641 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :instead, you'd use tadd < 1259705644 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: bitwidths < 1259705657 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, unusual notation for it? < 1259705666 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : mov.8 $0, %r4 < 1259705668 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : tadd2.8 (%mark), %r4, %scratch < 1259705669 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : tadd.8 %scratch, (%mark) < 1259705675 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it isn't an unprecedented notation < 1259705677 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it isn't an unprecedented notation < 1259705687 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no need to repeat that < 1259705689 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, that above there is an addition from a register to memory < 1259705691 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: typo < 1259705694 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1259705699 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wait, no < 1259705711 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a move from memory to register < 1259705714 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :above that in what file? < 1259705719 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :first step: set $r4 to 0 < 1259705724 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no, what I just pasted < 1259705727 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :above in the conversation < 1259705739 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :second step: add (%mark) to %r4 and %scratch < 1259705740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, does llvm use a similar .x thingy? < 1259705755 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :third step: add %scratch to (%mark) < 1259705760 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I don't know < 1259705770 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why is there a bf.h outside config-bf? < 1259705771 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but gcc's pretty flexible in asm notations, I imagine llvm is too < 1259705776 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :different one < 1259705778 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's < 1259705780 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for use by user programs < 1259705782 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1259705804 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, note those are transfer-additions < 1259705809 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which set their first argument to 0 < 1259705832 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that clear, transfer-add, transfer-add is the usual way to copy a value without destroying the original < 1259705862 0 :MigoMipo!unknown@unknown.invalid QUIT :"When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net" < 1259705865 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(%mark) is special, btw < 1259705875 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the mark is a pointer, that marks a memory location on the heap or stack < 1259705883 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you can use the place that pointer points to like a register < 1259705892 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's the only way you can access memory in general < 1259705909 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how much memory does bfrle try to allocate < 1259705923 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean by that? < 1259705933 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :klee: Executor.cpp:566: void klee::Executor::initializeGlobals(klee::ExecutionState&): Assertion `mo && "out of memory"' failed. < 1259705938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :when I try to run it under klee < 1259705944 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what's klee? < 1259705946 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which handles cfunge file after dropping mmap < 1259705959 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, llvm tool that symbolically executes all possible paths in the program < 1259705959 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, and it allocates just enough to hold the program < 1259705960 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :http://www.mikseri.net/artists/sortokausi.40541.php < 1259705962 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :really cool < 1259705962 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh lol < 1259705963 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :not here < 1259705968 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :sry :P < 1259705968 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the BF tape < 1259705968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, still rather buggy < 1259705984 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my guess is, it noticed that it was possible for it to allocate unlimited amounts of memory < 1259705988 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which a BF interp can < 1259705991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, not likely. < 1259705992 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and as a result, tried < 1259706020 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, as I didn't even mark any variable as symbolic yet < 1259706031 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you have to tell it what variables/what input is symbolic < 1259706037 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so it tries that when finding bugs < 1259706056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like argc/argv usually < 1259706056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or sometimes a specific variable directly in source < 1259706080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :without that it would just say "generated one test case, on one path" < 1259706085 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh: #define TAPELENGTH 100663378 < 1259706091 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's what's happening < 1259706102 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I set the length of the tape to the area of the tape that gcc-bf can use < 1259706106 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that seems extremely long < 1259706112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how many mb is it? < 1259706122 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :around 100 < 1259706127 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1259706150 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :96.000078201 MB, it seems < 1259706159 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :gcc-bf can access 16 MB of tape and 16 MB of stack < 1259706166 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, right < 1259706171 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :16+16 < 96 < 1259706180 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there are four bytes of bookkeeping for every byte of heap/stack < 1259706186 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I meant heap and stack < 1259706198 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :every six bytes contains one heap, one stack, four bookkeeping < 1259706199 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that's 128 MB then < 1259706209 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so 16*6 = 96MB < 1259706213 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1259706214 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the tiny extra amount is registers < 1259706222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(16+16)*4? < 1259706223 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1259706228 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no < 1259706239 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, one byte of heap and stack need four bytes of bookkeeping between them < 1259706247 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523,oh < 1259706252 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they have one dedicated byte of bookkeeping each, and two between them, to be precise < 1259706255 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but that's an implementation detail < 1259706256 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(16+16)*2 ? < 1259706273 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :16*6 < 1259706276 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1259706282 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how comes some are shared? < 1259706329 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I need to sleep < 1259706346 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :every six bytes contains: one unused value (to keep locations a multiple of 6), mark pointer for the stack, stack data, stack/heap pointer, mark pointer for the heap, heap data < 1259706359 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :where pointers are set to 1 if the pointer doesn't point there, or 0 otherwise < 1259706371 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*stack/frame poitner < 1259706373 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*pointer < 1259706377 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what is the padding used by gcc-bf? none? < 1259706378 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there can be multiple frame pointers < 1259706382 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :correct, no padding < 1259706387 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it would be a waste of space < 1259706391 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1259706414 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :except for bitfields up to a multiple of 8 bits, but you don't use those if you want the program to run at all efficiently < 1259706424 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what are the sizes of char/short/int/long/long long/float/double/long double ? < 1259706446 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in octets, 1/2/4/4/8/4/8/8 < 1259706460 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1259706469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1259706469 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :double and long double are the same, as are int and long < 1259706483 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because everyone seems to assume 32-bit int nowadays < 1259706496 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, wouldn't bitfields be just turned into bitwise and/or? < 1259706497 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I want as many existing programs as possible to compile unmodified < 1259706499 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1259706501 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and shifts < 1259706502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait, those are slow < 1259706512 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I rather like my implementation of bitwise and and or < 1259706522 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it involves repeated multiplication by 128, IIRC < 1259706569 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, idea for next project: gcc-intercal < 1259706581 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for compiling C to C-INTERCAL < 1259706587 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'm likely to continue working on gcc-bf until at least such time as it can port C-INTERCAL to BF < 1259706610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I doubt c-intercal will fit < 1259706616 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the memory < 1259706618 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in 96MB? < 1259706619 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's quite a lot < 1259706628 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :bear in mind that I grew up with floppy disk < 1259706630 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*disks < 1259706632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, in 96 *inefficiently used* MB < 1259706644 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, 16 MB stack, 16 MB heap, from the C program's point of view < 1259706651 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1259706652 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*16 MiB < 1259706663 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and cfunge would burst that for heap at least < 1259706666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not for stac < 1259706669 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :stack* < 1259706678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I doubt if cfunge ever uses more than 1 MB stack < 1259706681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it's trying to store a giant hash table < 1259706690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, giant static array too < 1259706693 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1259706700 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you got rid of the static array, or made it relatively small < 1259706704 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but what sort of program uses 16MB *stack*? < 1259706712 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anything that recurses a lot < 1259706717 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or that declares large arrays on the stack < 1259706719 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"meh" < 1259706727 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or especially, botbh < 1259706729 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*both < 1259706750 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, will check cfunge stack and heap usage with massif tomorrow < 1259706773 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :are you going to all this trouble just to port cfunge to brainfuck? < 1259706777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no way < 1259706784 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :good < 1259706788 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I thought you'd gone mad for a moment < 1259706791 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, madder than normal < 1259706799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, there is no way I will try to port cfunge to anything non-POSIX. < 1259706808 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it's just way way too much work < 1259706810 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :gcc-bf is meant to be POSIX, eventually < 1259706819 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it has quite a bit of POSIX already, via newlib < 1259706822 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. signals < 1259706823 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that day it might run cfunge *shrug* < 1259706833 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's single-process, though < 1259706837 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you call fork, you get EAGAIN < 1259706849 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and what about mmap()? < 1259706859 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that would actually be surprisingly easy < 1259706862 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :given that the files are in memory anyway < 1259706876 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it would just be a wrapper around realloc < 1259706882 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, uh what < 1259706893 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how would a read only mmap be a wrapper around realloc? < 1259706907 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :read only means undefined behaviour if you try to write, doesn't it? < 1259706911 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what about aio? I considered adding that to cfunge, just for the hell of it < 1259706915 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well yes. < 1259706919 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or rather < 1259706927 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :aio wouldn't work, for the same reason forking doesn't work < 1259706928 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : PROT_READ Pages may be read. < 1259706943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, poll()? < 1259706946 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I don't think anything explicitly bans allowing people to write if they just requested read access < 1259706953 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I can't remember what that one does < 1259706961 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what about PROT_NONE? < 1259706973 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, anyway you need to have a page size for mmap < 1259706975 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, poll would be rather degenerate < 1259706977 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is your page size? < 1259706981 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :1, probably < 1259706986 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :*shudder* < 1259706988 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no reason to make it anything else < 1259707003 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I'm sure that will break something < 1259707007 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :given that you can map to more than one page, IIRC < 1259707022 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :page break has to be 1, I think < 1259707030 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :given that sbrk works on 1-byte granularity < 1259707033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1259707047 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(the implementation of sbrk is also rather fun, but nowhere near as fun as that of exit) < 1259707050 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :The two constants _SC_PAGESIZE and _SC_PAGE_SIZE may be defined to have the same value. < 1259707051 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1259707057 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :go team POSIX < 1259707060 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is all I can say < 1259707080 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I like the "may be" < 1259707094 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yeah exactly the bit I referred to < 1259707104 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, here's probably the confusingest bit from the implementation to sbrk: static void* brk = &__brkpos; < 1259707111 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that only works with gcc < 1259707113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually make that "go austin group" < 1259707114 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1259707117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is "team posix" < 1259707123 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :given that brkpos is defined as extern void __brkpos; < 1259707128 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :OTOH, it only needs to work with gcc < 1259707174 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1259707183 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what about boehm-gc < 1259707186 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it needs to be ported < 1259707216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if nothing else to allow gcc bootstrap < 1259707217 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1259707266 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :its entire method of operation wouldn't work < 1259707276 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :given that pointers and ordinary integers look very similar in gcc-bf < 1259707290 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although, actually < 1259707301 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :given that stack and heap memory always starts 0x01 or 0x02 < 1259707307 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1259707321 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the chance that an integer and a pointer clashed would be low enough that it probably would manage to actually collect something < 1259707353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, libgcc < 1259707357 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how do you handle that < 1259707361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :isn't it partly asm? < 1259707364 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no < 1259707367 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1259707367 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's written entirely in C < 1259707374 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, for all arches? < 1259707385 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, except you can write bits of asm and they take precedence over it < 1259707390 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1259707402 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and not all arches has everything? < 1259707406 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean < 1259707416 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you wouldn't need 64-bit division stuff there on x86-64 < 1259707429 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1259707435 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is why its makefile is generated by script, I think < 1259707439 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and therefore has to be patched by script < 1259707460 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one amusing fact: if you don't implement enough primitives to be able to implement all operations < 1259707464 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. no multiplication at all < 1259707473 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then libgcc goes into an infinite recursive loop < 1259707477 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as it's compiled into calls to itself < 1259707506 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :fun < 1259707533 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : colordiff -Naur <(nm -D /lib32/libgcc_s.so.1 | grep ' T ' | cut -d' ' -f3- | sort -n) <(nm -D /lib64/libgcc_s.so.1 | grep ' T ' | cut -d' ' -f3- | sort -n) < 1259707535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1259707567 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hah < 1259707589 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, shouldn't it do multiplication by addition? < 1259707601 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for 8-bit, yes < 1259707608 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :beyond 8-bit, that's hilariously inefficient < 1259707621 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, so it could do it in terms of the 8-bit < 1259707624 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, in theory < 1259707626 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1259707631 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in practice, it seems to screw up < 1259707644 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, " beyond 8-bit, that's hilariously inefficient" <-- hah isn't that what gcc-bf does? < 1259707648 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1259707648 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or at least, gcc's incapable of comprehending that a system's only multiplier can only handle 8-bit numbers < 1259707653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well yes < 1259707655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and no < 1259707655 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: gcc-bf is surprisingly efficient, on an RLE system < 1259707657 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's meant to be < 1259707728 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what about division < 1259707739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I know of CPUs lacking integer division < 1259707747 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :PIC12F* for example < 1259707747 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they may well be special-cased < 1259707759 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I doubt you would use C for it < 1259707762 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: probably not lacking a bit shift tho, right? < 1259707765 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :are there any CPUs that /gcc targets/ that lack integer division? < 1259707765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what with the limited memory < 1259707771 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :calamari_, I forgot. it was years ago < 1259707774 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I coded for it < 1259707790 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is an "embedded microcontroller" kind of thing < 1259707794 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you can use that shift to do division.. < 1259707799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :calamari_, well yes < 1259707817 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :calamari_, think it had 12 bit address space or something < 1259707858 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :calamari_, http://ww1.microchip.com/downloads/en/DeviceDoc/41190E.pdf < 1259707860 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :datasheet < 1259707891 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :I finally started work on the bf interp for my wristwatch < 1259707900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :calamari_, XD < 1259707908 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :joking right? < 1259707913 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :no < 1259707916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :WHAT? < 1259707938 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :Timex Datalink USB < 1259707939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :uh? < 1259707985 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://en.wikipedia.org/wiki/Timex_Datalink#Timex_Datalink_USB < 1259708066 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :it should be able to fit about 200 bf instructions in ram < 1259708078 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :(using a simple 4 bit encoding) < 1259708112 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :I considered 3 bit, but the overhead isn't worth it < 1259708136 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :and it only buys like 20 more instructions < 1259708298 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :it's a fun toy.. I once destabilized my watch running a program in my debugging app, and it took about 30 minutes before it finally reset, fortunately it did not beep < 1259708332 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :how long would the tape be? < 1259708365 0 :FireFly|xchat!n=firefly@1-1-3-36a.tul.sth.bostream.se JOIN :#esoteric < 1259708383 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: whatever is left from the program memory plus 24 bytes < 1259708407 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you're not going to be able to run very big BF programs, then < 1259708432 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :no, but that's okay because I'm not going to want to enter big programs using the crown of a wristwatch < 1259708452 0 :FireFly!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259708455 0 :FireFly|xchat!unknown@unknown.invalid NICK :FireFly < 1259708480 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :and since it doesn't use ascii, programs would have to custom written for the watch < 1259708528 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :well that and only being able to display 14 characters on one screen < 1259708563 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1259708602 0 :calamari_!unknown@unknown.invalid NICK :calamari < 1259708770 0 :FireFly!unknown@unknown.invalid QUIT :"Leaving" < 1259710410 0 :augur!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out)