< 1269475981 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1269476056 0 :pikhq!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1269476188 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Didn't get a perfect grade on my exam. < 1269476197 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Now arguing that her answers are incorrect < 1269476201 0 :pikhq!~pikhq@75-106-100-139.cust.wildblue.net JOIN :#esoteric < 1269476223 0 :Oranjer!unknown@unknown.invalid PRIVMSG #esoteric :damn straight < 1269476228 0 :Oranjer!unknown@unknown.invalid PRIVMSG #esoteric :fight the....fight < 1269476267 0 :FireFly!unknown@unknown.invalid QUIT :Quit: Leaving < 1269476973 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1269477061 0 :Sgeo!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1269478854 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1269480476 0 :augur!~augur@c-68-54-80-152.hsd1.md.comcast.net JOIN :#esoteric < 1269480545 0 :myndzi\!myndzi@tengototen.net JOIN :#esoteric < 1269480601 0 :Gregor!unknown@unknown.invalid QUIT :*.net *.split < 1269480601 0 :olsner!unknown@unknown.invalid QUIT :*.net *.split < 1269480602 0 :jcp!unknown@unknown.invalid QUIT :*.net *.split < 1269480603 0 :pikhq!unknown@unknown.invalid QUIT :*.net *.split < 1269480603 0 :uorygl!unknown@unknown.invalid QUIT :*.net *.split < 1269480603 0 :cheater2!unknown@unknown.invalid QUIT :*.net *.split < 1269480604 0 :ineiros!unknown@unknown.invalid QUIT :*.net *.split < 1269480604 0 :lament!unknown@unknown.invalid QUIT :*.net *.split < 1269480605 0 :sshc!unknown@unknown.invalid QUIT :*.net *.split < 1269480607 0 :pineapple!unknown@unknown.invalid QUIT :*.net *.split < 1269480607 0 :rodgort!unknown@unknown.invalid QUIT :*.net *.split < 1269480607 0 :chickenzilla!unknown@unknown.invalid QUIT :*.net *.split < 1269480608 0 :myndzi!unknown@unknown.invalid QUIT :*.net *.split < 1269480608 0 :jix_!unknown@unknown.invalid QUIT :*.net *.split < 1269480608 0 :cal153!unknown@unknown.invalid QUIT :*.net *.split < 1269480608 0 :SimonRC!unknown@unknown.invalid QUIT :*.net *.split < 1269480609 0 :mtve!unknown@unknown.invalid QUIT :*.net *.split < 1269480769 0 :SimonRC!~sc@fof.durge.org JOIN :#esoteric < 1269480769 0 :jcp!~jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1269480769 0 :Gregor!~gregor@65.183.185.22 JOIN :#esoteric < 1269480769 0 :olsner!~salparot@c83-252-161-133.bredband.comhem.se JOIN :#esoteric < 1269480769 0 :chickenzilla!~chicken@olol.eu JOIN :#esoteric < 1269480769 0 :rodgort!~rodgort@li14-39.members.linode.com JOIN :#esoteric < 1269480769 0 :pineapple!~pineapple@cpc3-aztw11-0-0-cust24.aztw.cable.virginmedia.com JOIN :#esoteric < 1269480790 0 :sshc!~sshc@unaffiliated/sshc JOIN :#esoteric < 1269480797 0 :pikhq!~pikhq@75-106-100-139.cust.wildblue.net JOIN :#esoteric < 1269480797 0 :uorygl!~Warrigal@rrcs-70-63-156-144.midsouth.biz.rr.com JOIN :#esoteric < 1269480797 0 :cheater2!~cheater@ip-80-226-192-10.vodafone-net.de JOIN :#esoteric < 1269480797 0 :lament!~lament@S0106001b63f462cc.vc.shawcable.net JOIN :#esoteric < 1269480797 0 :ineiros!~itniemin@james.ics.hut.fi JOIN :#esoteric < 1269480799 0 :jix!~jix@cyb0rg.org JOIN :#esoteric < 1269480821 0 :augur!unknown@unknown.invalid NICK :Guest8510 < 1269480924 0 :cal153!~cal@c-69-181-46-213.hsd1.ca.comcast.net JOIN :#esoteric < 1269480973 0 :Gracenotes!~person@wikipedia/Gracenotes JOIN :#esoteric < 1269481525 0 :HackEgo!~HackEgo@codu.xen.prgmr.com JOIN :#esoteric < 1269481526 0 :EgoBot!~EgoBot@codu.xen.prgmr.com JOIN :#esoteric < 1269482719 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks for an excuse to reference http://media.fukung.net/images/6793/chowneduck.jpg on Wikipedia (NSFW) < 1269482763 0 :pineapple!unknown@unknown.invalid PRIVMSG #esoteric :should i click? < 1269482774 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :YES < 1269482782 0 :pineapple!unknown@unknown.invalid PRIVMSG #esoteric :... < 1269482832 0 :Oranjer!unknown@unknown.invalid PRIVMSG #esoteric :what! < 1269482924 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1269483212 0 :Tritonio_GR!~Tritonio@150.140.224.130 JOIN :#esoteric < 1269483909 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION eats pineapple < 1269483968 0 :Oranjer!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1269484137 0 :Guest8510!unknown@unknown.invalid NICK :augur < 1269484145 0 :coppro!unknown@unknown.invalid QUIT :Quit: reboot < 1269484358 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1269484747 0 :Asztal!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1269485643 0 :pikhq!unknown@unknown.invalid QUIT :Quit: leaving < 1269485754 0 :pikhq!~pikhq@75-106-100-139.cust.wildblue.net JOIN :#esoteric < 1269485907 0 :pikhq!unknown@unknown.invalid QUIT :Client Quit < 1269486311 0 :sshc!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1269486311 0 :SimonRC!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1269486318 0 :uorygl!unknown@unknown.invalid QUIT :*.net *.split < 1269486318 0 :cheater2!unknown@unknown.invalid QUIT :*.net *.split < 1269486318 0 :ineiros!unknown@unknown.invalid QUIT :*.net *.split < 1269486318 0 :lament!unknown@unknown.invalid QUIT :*.net *.split < 1269486350 0 :sshc!~sshc@unaffiliated/sshc JOIN :#esoteric < 1269486379 0 :SimonRC!~sc@fof.durge.org JOIN :#esoteric < 1269486416 0 :uorygl!~Warrigal@rrcs-70-63-156-144.midsouth.biz.rr.com JOIN :#esoteric < 1269486416 0 :cheater2!~cheater@ip-80-226-192-10.vodafone-net.de JOIN :#esoteric < 1269486416 0 :lament!~lament@S0106001b63f462cc.vc.shawcable.net JOIN :#esoteric < 1269486416 0 :ineiros!~itniemin@james.ics.hut.fi JOIN :#esoteric < 1269486531 0 :adu!~ajr@pool-74-96-89-29.washdc.fios.verizon.net JOIN :#esoteric < 1269487172 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1269487425 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tried to argue that the Data Structures class should use Python < 1269487445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe http://en.wikipedia.org/wiki/Not_safe_for_work? < 1269487470 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :WadImiss? < 1269487491 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm asleep, can't answer < 1269487788 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: that sounds horrible < 1269487825 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :howso? < 1269487846 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :because, data structures are a low-level concept; they should be implemented in a low-level language < 1269487930 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Well, are there low-level languages that are less syntactically insane than C++? < 1269487948 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :C < 1269488002 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thinks we use Modula-2, way back :) < 1269488005 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*used < 1269488229 0 :mtve!~mtve@65.98.99.53 JOIN :#esoteric < 1269488432 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: :D < 1269488436 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :ACTION hugs oklopol < 1269488437 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :hey < 1269488438 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1269489157 0 :Oranjer!unknown@unknown.invalid PART #esoteric :? < 1269490134 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :adu: after my great start yesterday, I'm sure my completed program has about 10 stylistic pas faux < 1269490188 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should go eat < 1269490219 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.org/885958 < 1269490689 0 :Tritonio_GR!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1269491152 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :coppro: the main thing i notice is that you are using a lot of == rather than pattern matching < 1269491174 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yeah; not sure how to pattern match against my monster of a type < 1269491179 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(at least, to pattern match nicely < 1269491453 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :step (VM {future = []}) = return () < 1269491472 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ah, thanks < 1269491475 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION rewrites < 1269491562 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1269492014 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I'm having one issue: jump f o c i v@(VM {future = o:_}) is not a valid pattern? < 1269492054 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :coppro: indeed you cannot compare things in patterns. call the second o' or something and add a | o == o' guard < 1269492060 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1269492085 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :coppro: maybe i'm a little late, but you might want to use a case expression if it's awkward to do all the pattern matching at top level (i.e. case instr of ...) < 1269492136 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ah < 1269492145 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Well, I've already rewritten it, and it doesn't look too horrid < 1269492172 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it was mainly that value = ... that made me wonder, since you are using it in several branches < 1269492190 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :good < 1269492315 0 :nooga!~nooga@sc82.internetdsl.tpnet.pl JOIN :#esoteric < 1269492334 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1269492344 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :not sure about jump though; the inability to compare in a guard is annoying < 1269492372 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I guess I have no choice but to use another guard instead of a pattern < 1269492692 0 :pikhq!~pikhq@75-106-100-139.cust.wildblue.net JOIN :#esoteric < 1269492827 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yay, it works again < 1269492844 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1269492928 0 :adu!unknown@unknown.invalid QUIT :Quit: adu < 1269493060 0 :adu!~ajr@pool-74-96-89-29.washdc.fios.verizon.net JOIN :#esoteric < 1269493114 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i just woke up < 1269493144 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :there's a party in my flat and i don't even know who did this party < 1269493164 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Is that innuendo? < 1269493197 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, it's in the front < 1269493395 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I SEE WUT U DID THAR < 1269493414 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :took you long enough :D < 1269493489 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I was AFK :P < 1269493692 0 :jcp!unknown@unknown.invalid QUIT :Changing host < 1269493692 0 :jcp!~jw@unaffiliated/javawizard2539/bot/bztraining JOIN :#esoteric < 1269493729 0 :jcp!unknown@unknown.invalid QUIT :Changing host < 1269493729 0 :jcp!~jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1269494278 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What's the language where === is used for case statements? < 1269494293 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Too many languages in too short a period of time can be confusing < 1269494646 0 :pineapple!unknown@unknown.invalid PRIVMSG #esoteric :i've not heard of that one < 1269494860 0 :augur!~augur@c-68-54-80-152.hsd1.md.comcast.net JOIN :#esoteric < 1269497486 0 :Asztal!~asztal@host86-156-99-114.range86-156.btcentralplus.com JOIN :#esoteric < 1269497811 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1269498661 0 :jcp!unknown@unknown.invalid QUIT :Quit: I will do anything (almost) for a new router. < 1269498917 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: I dunno; which languages actually have ===? PHP's the only one I can think of offhand < 1269498932 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I think I may be thinking of Ruby < 1269498962 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Right now trying to get a handle on Erlang instead of sleeping < 1269498994 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ah yes, it is Ruby, according to the doc < 1269499021 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :============== < 1269499052 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that, to me, looks like something out of perldoc < 1269499060 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(yes, I know it isn't) < 1269499115 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is overdosing on languages < 1269499177 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: the Erlang language is simple, but coding Erlang is all about the library < 1269499302 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION really should find a motivation to learn Erlang < 1269499553 0 :adu!unknown@unknown.invalid QUIT :*.net *.split < 1269499554 0 :Sgeo!unknown@unknown.invalid QUIT :*.net *.split < 1269499554 0 :AnMaster!unknown@unknown.invalid QUIT :*.net *.split < 1269499554 0 :Quadrescence!unknown@unknown.invalid QUIT :*.net *.split < 1269499555 0 :yiyus!unknown@unknown.invalid QUIT :*.net *.split < 1269499622 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1269499986 0 :adu!~ajr@pool-74-96-89-29.washdc.fios.verizon.net JOIN :#esoteric < 1269499986 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1269499986 0 :Quadrescence!~quad@unaffiliated/quadrescence JOIN :#esoteric < 1269499986 0 :AnMaster!~AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1269499986 0 :yiyus!1242712427@je.je.je JOIN :#esoteric < 1269500102 0 :sebbu2!~sebbu@ADijon-152-1-22-206.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1269500106 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1269500123 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1269500823 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :For some reason, Erlang isn't really grabbing my interest < 1269501092 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :because you're tired? < 1269501099 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :because the online stuff sucks? < 1269501469 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1269503875 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1269503943 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1269503947 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :erlang is boring < 1269503999 0 :clog!unknown@unknown.invalid QUIT :ended < 1269504000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1269504836 0 :Asztal!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1269504928 0 :Gracenotes!unknown@unknown.invalid QUIT :Quit: Leaving < 1269507017 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1269507648 0 :nooga_!~nooga@sc82.internetdsl.tpnet.pl JOIN :#esoteric < 1269507818 0 :nooga!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1269509523 0 :myndzi\!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1269509566 0 :myndzi!myndzi@tengototen.net JOIN :#esoteric < 1269510032 0 :cheater2!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1269510099 0 :cheater2!~cheater@ip-80-226-238-241.vodafone-net.de JOIN :#esoteric < 1269510528 0 :Geekthras!unknown@unknown.invalid PRIVMSG #esoteric :coppro: doesn't javascript have ===? < 1269510542 0 :Geekthras!unknown@unknown.invalid PRIVMSG #esoteric :doesn't it check real equality instead of confusing equality? < 1269510977 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1269512285 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :heyo. < 1269512295 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :ais523: would you be interested in ... a challenge? < 1269512295 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric ::x < 1269512304 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :augur: it depends on the details < 1269512331 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :basically, i will design an esolang of some sort < 1269512337 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :relatively simple and not complicated at all < 1269512345 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :maybe ill even use an existing one < 1269512347 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :who knows < 1269512359 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and then ill provide some visualization of a program executing. < 1269512371 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I have to deduce the esolang from that visualization? < 1269512376 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1269512382 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :or at least the constructs of the language < 1269512407 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it sounds interesting, at least < 1269512420 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably best if, as last time, we make guesses to you via PM, so everyone can play < 1269512490 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :actually, i like the idea of this being collaborative. < 1269512539 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :the idea is that it should be vaguely like reverse engineering the brain < 1269512545 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :all you have is data about program execution < 1269512552 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and you dont even know what the data represents < 1269512903 0 :lereah_!~lereah@nanpc301.in2p3.fr JOIN :#esoteric < 1269516486 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1269516559 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1269517883 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Found another apparent bug in cfunge's bounds calculation; this time I'm a bit more sure because efunge agrees with CCBI < 1269518891 0 :sebbu2!~sebbu@ADijon-152-1-14-103.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1269518898 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1269518914 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1269526733 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, oh? < 1269526735 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what is it < 1269526743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and do you have a test case < 1269526763 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(by the way, I hope you realise that efunge could be incorrect as well) < 1269526771 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :http://tar.us.to:12345/ run slowdown.b98 on mycology.b98 < 1269526786 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, wget http://tar.us.to:12345/ ? < 1269526796 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, click the link and download the two files. < 1269526831 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so what am I supposed to look for? < 1269526850 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :grr, I've just closed Firefox three times by accident in the last ten minutes < 1269526852 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It quits right after the relevant line of output. < 1269526856 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :by typoing control-Q rather than control-W < 1269526860 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1269526885 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, build/cfunge experimental/slowdown.b98 experimental/mycology.b98 ? < 1269526893 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :For example. < 1269526895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hrrm < 1269526902 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, are those BAD relevant? < 1269526905 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :efunge will probably take a few minutes. < 1269526907 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, ignore the GOOD/BAD. < 1269526910 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1269526911 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Just look at the last line. < 1269526925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :" That the greatest point, relative to that point, is ( 180 544 )"? < 1269526932 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1269526938 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Compare to efunge. < 1269526961 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waits on efunge < 1269526979 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, how fast is that computer where it takes "a few minutes"? < 1269526993 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah done < 1269526994 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It takes a bit under 20 seconds for me. < 1269526997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :" That the greatest point, relative to that point, is ( 180 539 )" < 1269526999 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1269527002 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay different value I see < 1269527004 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1269527028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, is the 544 correct at any point btw? < 1269527043 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: If you remove a couple of lines from the end of the file (five was enough IIRC) cfunge and efunge will agree. < 1269527051 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1269527054 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I don't think so. < 1269527060 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But it might be. < 1269527068 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what do those lines do btw? < 1269527077 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Those lines at the end of the file do nothing. < 1269527080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hrrm < 1269527085 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You can remove any five lines that aren't executed, IIRC. < 1269527089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't both shrink equally much then < 1269527097 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also remove from which file? cfunge or efunge? < 1269527108 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :efunge shrinks by five, cfunge shrinks by five plus the five that it's getting wrong now. < 1269527119 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :From mycology.b98. < 1269527122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1269527135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so what on earth is going on there ^_^ < 1269527143 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1269527147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, does it matter that: < 1269527152 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cfunge: That the least point containing a non-space cell is ( 65000 64995 ) < 1269527160 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :efunge: That the least point containing a non-space cell is ( 65000 65000 ) < 1269527166 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well yes, that would appear to be the cause of the problem. < 1269527182 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so what causes that difference in least space cell I wonder < 1269527198 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it seems that slowdown decides on different positions for the upper corner to me? < 1269527212 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That slowdown has been hard-coded to use 65000,65000 < 1269527233 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well then, so what we are looking at is what is going on at (65000,64995) then? < 1269527246 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yep < 1269527325 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, does it quit by @ or by q? < 1269527328 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :q < 1269527330 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders where to set the breakpoint < 1269527331 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1269527730 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so manually setting fspace.boundsexact=false and running bounds shrinking fixes it < 1269527742 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so probably that flag isn't set when it should be < 1269527758 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now of course, figuring out when it should be set is a different issue < 1269527767 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hrrm < 1269527795 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :s/a different/another/ < 1269527845 0 :Asztal!~asztal@host86-156-99-114.range86-156.btcentralplus.com JOIN :#esoteric < 1269527845 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, are you sure there is never anything at the y coordinate 64995 ? < 1269527860 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No < 1269527876 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I can't think of what might be there but I can't remember the full details of how slowdown works < 1269527936 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries break fungespace_set if position.y=64995 < 1269527962 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which dumped me right into gdb < 1269527964 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a write to < 1269527972 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print *position < 1269527972 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$2 = {x = 4, y = 64995} < 1269527978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess that must be early on < 1269527991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :considering nothing has yet been printed on stdio < 1269528000 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, any clue as to what that might be? < 1269528002 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :slowdown doesn't print anything to stdio < 1269528011 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :doesn't mycology write to (-5,-5)? < 1269528018 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well then it is before or very very early on in mycology < 1269528029 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: take stdio buffering into account < 1269528032 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: No, to (-3,-2); and this one doesn't since it goes straight to the y test < 1269528035 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1269528047 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: This Mycology does only the y test < 1269528055 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes but since it is line buffered it must be quite early on still I guess < 1269528065 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It starts out by running y and saying "y claims all of the following" < 1269528075 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well it's a p < 1269528080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how very helpful XD < 1269528082 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If it's a p before the y it's from slowdown < 1269528086 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Where's it at? < 1269528099 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, trying to remember what variable it was in < 1269528099 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sec < 1269528116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print *ip < 1269528116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$4 = {stack = 0x247d420, position = {x = 14, y = 1}, delta = {x = 1, y = 0}, storageOffset = {x = 0, y = 0}, mode = 0 '\0', needMove = true, stringLastWasSpace = false, < 1269528116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : fingerSUBRisRelative = false, ID = 0, stackstack = 0x247d400, fingerOpcodes = {{size = 0, top = 0, entries = 0x0} }, fingerHRTItimestamp = 0x0} < 1269528118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so < 1269528122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(14,1) < 1269528130 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That's odd :-P < 1269528137 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, why is it that? < 1269528160 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: storageOffset = 0,0 and that bit is "044p"... < 1269528174 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1269528201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print *position < 1269528201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$5 = {x = 4, y = 4} < 1269528201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print *offset < 1269528201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$6 = {x = 0, y = 0} < 1269528211 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and down another frame where they are added together < 1269528224 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print *position < 1269528224 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$7 = {x = 4, y = 64995} < 1269528228 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah what the hell < 1269528233 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-D < 1269528240 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the call is: fungespace_set(value, vector_create_ref(position->x + offset->x, position->y + offset->y)); < 1269528250 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to me this looks almost like a compiler bug < 1269528256 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hrrm < 1269528259 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: are any of the variables in question changed inside the functions themselves? < 1269528265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or vector_create_ref messing up?! < 1269528274 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Is it written in asm? ;-) < 1269528277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, no don't think so < 1269528283 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, no < 1269528296 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define vector_create_ref(a, b) (& (funge_vector) { .x = (a), .y = (b) }) < 1269528304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well, *I* can't see anything wrong with that < 1269528326 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe gdb is messing up somehow? < 1269528329 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It's worth seeing whether it's just GCC failing at compound literal codegen < 1269528337 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1269528347 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well, it is odd that it hasn't showed up before this then < 1269528399 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well, build with icc gives same results < 1269528413 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :From gdb too? :-) < 1269528413 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so does clang build < 1269528418 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not running under gdb < 1269528421 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just checking the bug < 1269528450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to remember how to get icc to generate a usable-with-gdb binary < 1269528553 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hrrm I can't get any values for that condition to break with icc < 1269528559 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not even the supposed correct value < 1269528569 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : by typoing control-Q rather than control-W <-- heh synchronicity, i just today read this link on reddit: http://www.codinghorror.com/blog/2010/03/the-opposite-of-fitts-law.html < 1269528584 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1269528586 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it never breaks < 1269528592 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :even without condition < 1269528594 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what the heck < 1269528598 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION prods icc < 1269528604 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ACTION recommends printf debugging < 1269528607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: maybe there isn't enough debug info to tell where to break < 1269528610 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and that example was mentioned in one of the comments (either on the blog or reddit) < 1269528627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well gdb usually complains instead of happily reporting that the breakpoint was set in that case < 1269528629 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: On the blog. < 1269528635 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I suspect inlining behind my back < 1269528651 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Compile without optimizations? < 1269528671 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also the thing i previously mentioned about simon tatham puzzles's q command fits right in :( < 1269528672 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, did so... < 1269528679 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lets try clang < 1269528680 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, how does a compound literal like that work, memory-wise? Apparently you can take the address of it, but how long does it live? < 1269528684 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Seems strange that it'd inline in that case... < 1269528711 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oops. gdb errored on that break < 1269528726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Die: DW_TAG_restrict_type (abbrev = 12, offset = 37969) < 1269528726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : has children: FALSE < 1269528726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : attributes: < 1269528726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : DW_AT_type (DW_FORM_ref4) constant ref: 37963 (adjusted) < 1269528726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Dwarf Error: Cannot find type of die [in module /home/arvid/src/own/cfunge/trunk/build_clang/cfunge] < 1269528728 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :interesting error < 1269528749 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :whatever "die" is. I don't remember any such function < 1269528768 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :die is the Debugging Information Entry < 1269528771 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1269528808 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Ah, automatic storage duration with the enclosing block. < 1269528811 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :die, evil bugs, die < 1269528815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well since it is never returned it should be fine < 1269528826 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is used as an argument in a function call < 1269528877 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes, that sounds safe enough. But just "never returned" is not good enough; you can't use it even in the same function if you go outside the block it was in. < 1269528882 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway it seems like gdb messes it up < 1269528905 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since if continuing after that break it breaks a lot more, but after that the program just ends up printing garbage < 1269528922 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Something like "foo *p; if (cond) { p = vector_create_ref(...); } else { p = vector_create_ref(...); } func(p);" would be unsafe, as far as I can tell. < 1269528930 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed that wouldn't work < 1269528939 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sneaky. < 1269528939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that isn't how it is used there (or anywhere else that I know of) < 1269528959 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: All the more reason to use ?: instead of if-else < 1269528959 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :do gdb ends up changing something it seems < 1269529014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait, I found it < 1269529015 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-_- < 1269529022 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wrong syntax to gdb's break if < 1269529022 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :_-_ < 1269529046 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah now we found a true one I think < 1269529055 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print *position < 1269529056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$1 = {x = 64995, y = 64995} < 1269529059 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so lets see where < 1269529080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$2 = {stack = 0x18e7420, position = {x = 6, y = 35}, delta = {x = 0, y = 1}, storageOffset = {x = 65000, y = 65000}, < 1269529087 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, does that make any sense for it? < 1269529107 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, evidently it uses that. < 1269529110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the arguments to p was {x = -5, y = -5} < 1269529116 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And zero. < 1269529121 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, why are you writing something there < 1269529127 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It's a temporary. < 1269529128 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed a 0 < 1269529142 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, sure but what for? < 1269529166 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think it counts the number of cells to p, to give the correct argument to k. < 1269529185 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, at {x = 25, y = 37} it writes an 1 to the same place btw < 1269529200 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And thereafter a 2, and then a 3, all the way to 152100, yes. :-P < 1269529209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gah < 1269529211 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But then it's spaced in the kp. < 1269529222 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If you break at 65067,65000 you'll see it's blank. < 1269529245 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1269529318 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it writes a space much earlier than that < 1269529330 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ip is at (25,37) when it first writes a space there < 1269529332 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1269529353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1269529357 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is probably counting still < 1269529362 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1269529363 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but value is now 32 < 1269529368 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It's a nonspace until the kp. < 1269529384 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it is in fact a space when it puts the value 32 there :P < 1269529387 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for counting < 1269529414 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's a nonspace after 33 until the kp. :-P < 1269529421 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is true < 1269529469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err wait < 1269529475 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, did you say "65067,65000"? < 1269529488 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :2010-03-25 15:59:58 ( Deewiant) If you break at 65067,65000 < 1269529492 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :when ip is at {x = 64998, y = 65000} it writes a space there < 1269529505 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, that's where the k is. < 1269529520 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so what's with the "65067" then? < 1269529532 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :65067,65000 is the first non-marker to be executed after the kp. < 1269529543 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sometimes i wonder if AnMaster is ircing with telnet or something < 1269529559 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(AnMaster: Deewiant, did you say "65067,65000"?) < 1269529702 0 :Tritonio_GR!~Tritonio@150.140.224.130 JOIN :#esoteric < 1269529784 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, is this 64995,64995 the first thing that k clears or something? < 1269529801 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if making it the last thing would make a difference to the bug < 1269529813 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :would be really interested in knowing that. < 1269529860 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ACTION prints out a 456325-cell stack < 1269529931 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It's not the first, it's around the tenth or so < 1269529934 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1269529938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but fairly early on at least < 1269529948 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Eighth, to be exact < 1269529996 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It clears (0,-1), (0,-2), (0,-3), (-1,-1), (-2,-2), (-3,-3), (-4,-4), (-5,-5), and then the original source. < 1269530007 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(Apply the storage offset yourself.) < 1269530010 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1269530025 0 :adu!unknown@unknown.invalid QUIT :Quit: adu < 1269530130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1269530151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so well the minimisation function does something wrong when called once < 1269530157 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but if called again "fixes" it < 1269530190 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1269530231 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aaah < 1269530237 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: what algorithm are you using to find bounds? < 1269530260 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well that is the thing. It uses a simple heuristics to select algorithm < 1269530319 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for "small" current bounds it uses a "shrink bounds towards the middle" algorithm based on the row/col value count info < 1269530336 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but for very large bounds it seems likely that most of it is sparse < 1269530345 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so thus it enumerates the values in the hash table < 1269530353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and it seems like the bug is in the large model < 1269530436 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, this has got me wondering if there's a general O(1) algo for bounds update < 1269530447 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that is, O(1) both on unblanking cells, and on blanking them < 1269530458 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and the reason the x bound is right < 1269530464 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is that it uses the small model at that point < 1269530480 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because the difference is _just_ in between the difference in this case < 1269530486 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :topLeftCorner = {x = 0, y = 0}, bottomRightCorner = {x = 65180, y = 65539} < 1269530489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :are the previous bounds < 1269530508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the cut-off is 0x10000 < 1269530510 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, probably not, as that would likely lead to O(n) sorting < 1269530513 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I figured it was something like that; I minimized the point to (65000,65000) when trying to find something as small as possible < 1269530519 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can do bounds update in O(log n), though < 1269530527 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: For what n < 1269530533 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, right < 1269530535 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Size, number of updates? < 1269530541 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in the number of cells that don't contain spaces < 1269530549 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1269530554 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? < 1269530559 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: efunge was annoyingly slow when it was 500 million ;-P < 1269530564 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hah < 1269530584 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: in each cell, hold a pointer to the next cell and previous cell sorted vertically over horizontally, and horizontally over vertically < 1269530587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'm not sure why really. Maybe bignums aren't as efficient as they could be? < 1269530596 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that doesn't really make sense here < 1269530607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then, blanking a cell is O(1) (just remove the element from the linked lists) < 1269530608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well okay < 1269530616 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now, there only problem is finding the previous and next cell < 1269530623 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: General slowness. slowdown runs 11 million ticks before getting to Mycology. < 1269530626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how do you do random access of the cells? < 1269530632 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which, if you use something like a skiplist rather than linked list, is O(log n) < 1269530640 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you do random access by looking at them in your hash table < 1269530641 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: And this was before I had cut off around 400 lines from the mycology.b98. < 1269530649 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, heh < 1269530650 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is in addition to whatever mechanism you normally use for updates < 1269530658 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :O(log n), but the constant factor is rather nastily large < 1269530665 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well okay, the storage requirement is non-trivial isn't it? < 1269530671 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1269530674 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It only quintuples the size of a cell :-) < 1269530679 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what I do is to keep a count of set values in each column and row < 1269530689 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I suggested that algo a while back, too < 1269530700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1269530702 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it's O(n) in the size of the area before bounds shrinking < 1269530710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, eh? < 1269530722 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :O(n) in size but O(log n) in memory < 1269530723 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh you mean for executing < 1269530724 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because shrinking bounds means you need to check every count to see if it's 0 or not < 1269530725 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yours is the other way around < 1269530729 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1269530729 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Err < 1269530732 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :s/in size/in CPU/ < 1269530735 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Or time, whatever. < 1269530743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1269530758 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: that algo's O(n) in both, as you need to store the arrays < 1269530768 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, sparse arrays though < 1269530772 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, the small algo for cfunge is O(n) in memory, O(n) in time < 1269530790 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, it is O(n) in the worst case, you're right. < 1269530793 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, except outside the basic static area which is something like 1024x1024 unless I misremember < 1269530807 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I thought it was 512x1024, to fit Mycology ;-P < 1269530815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, maybe it was, I don't remember < 1269530857 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :considering that it grows fairly rapidly in size due to the multiplication there you can't make it too big < 1269530937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also the algorithm is fairly fast in practise. < 1269530947 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for the range I use it in < 1269530961 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes; I'm wondering what the theoretically best-in-the-limit-in-the-worst-case algo is < 1269530964 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :faster than the large model in fact (profiled for a number of programs, not just mycology) < 1269530970 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than the one that's most practically useful < 1269530981 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1269531192 0 :nooga_!unknown@unknown.invalid PRIVMSG #esoteric :Mycology? < 1269531195 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ooh, instead of putting pointers in the cells, you could just record, for each row and column with a nonspace cell in, the next and previous row or column with a nonspace cell in < 1269531200 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nooga_: automated Befunge testsuite < 1269531204 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant wrote it < 1269531206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh god, is it that simple... < 1269531208 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Store cells in a heap and you get it in O(1)? < 1269531212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it can't be can it.. < 1269531234 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It helps, but you still have to calculate whether the row/column has spaces. < 1269531236 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: no, not O(1), because you can't remove entries from a heap < 1269531245 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm? < 1269531257 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I mean, it's not a super-improvement. :-P < 1269531269 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what isn't compared to what? < 1269531288 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Your "oh god" stuff < 1269531291 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there probably is a way to make a heap with removable entries, though (maybe use a heap and hashtable together?) < 1269531293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I was talking about the cause of the bug. < 1269531293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1269531304 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Ah, I thought you were talking about what ais just said. < 1269531304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now I have to figure out how to fix it < 1269531308 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So what's wrong < 1269531316 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: You can pop from a heap. < 1269531325 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: but not remove entries from inside the heap < 1269531328 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :only if they're at the top < 1269531332 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Yes you can, it's just O(n). :-P < 1269531333 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can remove entries from a heap, just increase-key it up and then remove it? < 1269531338 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I *think* but I'm not quite sure yet that I just check if there is an entry in the hash table for that column, but not what value that entry has < 1269531342 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's O(log n) < 1269531344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(column or row) < 1269531345 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: But the bounds calculation itself is O(1). < 1269531350 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ah, thanks < 1269531360 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Assuming you have a pointer to it, yes. < 1269531362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, for normal funge space I drop the cell if I write a space, instead of storing a space < 1269531378 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but it seems I don't do the same thing for the bounds array when they hit 0 < 1269531380 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so we now have an algo that's O(log n) in the number of times a row or column has had a value in it once and then removed again < 1269531400 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also it's impossible to do that in O(1) with any heap iirc < 1269531405 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: right < 1269531425 0 :nooga_!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1269531431 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :removing the top entry of a heap is O(log n), isn't it? or is it adding an entry that's O(log n)? < 1269531437 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :depends < 1269531441 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one of them must be, or you could have an O(n) sort < 1269531443 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1269531444 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in a fibonacci heap only deletion is O(1) < 1269531448 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :* O(n) comparison sort < 1269531462 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :even merge is O(1) < 1269531464 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Amortized O(1) is possible. < 1269531464 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I assumed you meant binary heap < 1269531479 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: not for both operations < 1269531490 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh well in a binary heap only merge is O(n), and pretty much everything else is O(log n) < 1269531493 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Which both? < 1269531502 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :both remove top, and add anywhere < 1269531516 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, true. < 1269531587 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :an operation that's O(log n) in the number of rows+columns every time you p a cell is not really optimal, though < 1269531591 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's actually really easy to make everything except remove top O(1), just put them in a stack or something... :P < 1269531600 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: yes < 1269531608 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but having a fast remove top is what makes a heap a heap, IMO < 1269531638 0 :werdan7!unknown@unknown.invalid QUIT :Ping timeout: 608 seconds < 1269531663 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is it trivially easy/impossible to make addition O(log n) and remove top O(1)? < 1269531666 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, you'd just use a type of heap with O(1) add, and O(log n) delete and delete top < 1269531670 0 :pineapple!unknown@unknown.invalid PRIVMSG #esoteric :ais523: why is it incorrect today? < 1269531690 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if it was correct today, then it would be incorrect today by what it says, a contradiction < 1269531734 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: hmm, that's an interesting question < 1269531751 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :O(1) remove top implies that it has to be stored in completely sorted order, in some sense < 1269531756 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1269531771 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can easily do it O(log n) add, O(1) remove top /amortized/, by simply amortizing the remove onto the ad < 1269531772 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*add < 1269531860 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well right, but isn't even binary heap amortized O(1) for everything except remove top, everything that's removed has to have been added at some point < 1269531870 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh well i guess you don't have to remove < 1269531879 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's different < 1269531900 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because you, on the other hand, have to add before you can remove < 1269531911 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but yeah i meant actual constant time < 1269532010 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, pushed fix. < 1269532023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, might take a few minutes to be visible due to caching effects < 1269532055 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, actually you can't < 1269532086 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, I'm wrong, you can < 1269532103 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because adding to a tree of size n, and removing from a tree of size n, must mirror exactly, or have more adds < 1269532111 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what gets amortized onto what is weird, though < 1269532135 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Right, appears to work now. < 1269532163 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well the thing is complexities of a data structure should be considered one big whole, it's just harder to express < 1269532203 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1269532204 0 :werdan7!~w7@freenode/staff/wikimedia.werdan7 JOIN :#esoteric < 1269532222 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think you could remove top O(1) exactly if you keep a linked list + a tree for addition < 1269532222 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. in a fibonacci heap, if you add loads of elements then extract top once, it actually does an O(n) search for the top element < 1269532232 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: adding to a tree is O(log n) < 1269532234 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I might have time to do a release this week. Not sure < 1269532250 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if I don't, it is unlikely to happen for several weeks < 1269532253 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but that O(n) is amortized onto all the adds you did, and the deletes are O(log n) after that < 1269532257 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes, but don't modify the tree when removing < 1269532269 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but I'll wait until the weekend at least, in case you find more bugs < 1269532292 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, as for efunge being slow. Have you tried with HiPE? < 1269532298 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wait with that until you add something else < 1269532298 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: then extract top is O(n) in the number of previous extracts < 1269532310 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: How? < 1269532314 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no, because you _keep_ a linked list < 1269532323 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, first check erlang is compiled with hipe < 1269532325 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :run erl < 1269532328 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :see the first line there < 1269532332 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :[hipe] < 1269532332 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :goes like: < 1269532336 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i said keep a linked list + a tree, modify only list on removal < 1269532344 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, the idea is that you add elements to the tree, and it's a tree of pointers to the linked list < 1269532350 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gah copy paste is broken < 1269532350 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1269532353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION kicks synergy < 1269532354 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ^ < 1269532367 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so adding is O(log n) to both add to the tree, and find where in the list to add it, and O(1) to add to the linked list in the appropriate place < 1269532376 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes it is hipe enabled < 1269532382 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, then see efunge README < 1269532402 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why is it O(1) to add to the linked list? < 1269532410 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ERL_COMPILER_OPTIONS='[inline,native,{hipe,[o3]}]' make < 1269532412 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, is in there < 1269532421 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, be sure to make clean first < 1269532426 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: because you have a pointer to where in the list you're adding it, and so can just update a constant number of next and prev pointers < 1269532428 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or it won't be rebuilt < 1269532435 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, this might or might not help < 1269532444 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :four for a doubly linked list, two for a singly linked list < 1269532448 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and at most it will do a small difference. < 1269532448 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, well then doesn't the linked list work as a heap already? < 1269532453 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then one more to get the new tree element to point to the list < 1269532467 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you need to look at the tree (which is presumably kept balanced and sorted) to know where in the list to add, though < 1269532490 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this has gotten to the stage where i'd start making things precise. < 1269532502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, did it make any measurable difference? < 1269532524 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Around 50-70% improvement (if I remember the previous time correctly) < 1269532530 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, wow < 1269532535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is a lot more than I expected < 1269532539 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Still 10x too slow ;-P < 1269532546 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh the tree is a search tree, right < 1269532547 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I expected around 10% improvement at *most* < 1269532556 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that makes more sense < 1269532562 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I might have built without any optimizations previously. < 1269532578 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well, probably, that is the default. Anyway on normal mycology it seems pretty fast to me < 1269532591 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Mycology is a very fast program to run. < 1269532596 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, apparently Brodal queues have the same (non-amortized) performance as the amortized performance of Fibonnacci heaps < 1269532598 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course cfunge is a lot faster at mycology < 1269532617 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes it is nowdays. Before HRTI check was taking quite a lot of time. Did you change anything about how that was done? < 1269532624 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :couldn't you just detect mycology and cat a model output? < 1269532635 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what would the point of that be? < 1269532641 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :How would you detect it? < 1269532654 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, sha256 hash? < 1269532655 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you need to look at the tree (which is presumably kept balanced and sorted) to know where in the list to add, though < 1269532666 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*you could compare to a stored copy as you read it in < 1269532666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, would be version specific yes < 1269532670 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I don't think I've changed it recently but maybe I misremember < 1269532675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not recently < 1269532682 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but maybe the past 1.5 years < 1269532687 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :note that that is a plausible typo, it only takes one keypress or touchpad knock to accidentally repeat a previous line rather than write a new one < 1269532695 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I changed it at some point, but I think that was to make it slower, not faster. < 1269532699 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1269532721 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ? < 1269532741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how would touchpad do that < 1269532743 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you know how readline works, pressing up gives you a previous line? < 1269532747 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : up arrow key press yes < 1269532751 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, both the up arrow key press does < 1269532751 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but touchpad? < 1269532754 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and scrolling the mouse wheel < 1269532761 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you can do a mouse-wheel-scroll by touching the touchpad < 1269532765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, here scrolling mouse wheel scrolls the terminal < 1269532780 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: same here, but I'm not using a terminal < 1269532789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well what program then? < 1269532813 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also iirc you can turn that scroll thing off for touchpad < 1269532817 0 :nooga!~nooga@sc82.internetdsl.tpnet.pl JOIN :#esoteric < 1269532826 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I know, I turned it on deliberately < 1269532830 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not having a mouse, it's actually useful < 1269532837 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway, what client < 1269532856 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Konversation, and only if the cursor is over the message-typing box at the time < 1269533008 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why did you ask what client I was using rather than CTCP VERSIONing it? < 1269533008 0 :nooga_!unknown@unknown.invalid QUIT :Ping timeout: 258 seconds < 1269533216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, heh < 1269533275 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster's client doesn't respond to VERSION < 1269533302 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, correct. I have a *!*@* ignore on CTCP and DCC (apart from CTCP ACTION) < 1269533311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :this is due to spam < 1269534322 0 :nooga!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1269534848 0 :jcp!~jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1269534996 0 :charlls!~charlls@201.226.222.130 JOIN :#esoteric < 1269535411 0 :MigoMipo!~migomipo@84-217-15-239.tn.glocalnet.net JOIN :#esoteric < 1269536711 0 :werdan7!unknown@unknown.invalid QUIT :Ping timeout: 622 seconds < 1269536906 0 :Tritonio_GR!unknown@unknown.invalid QUIT :Ping timeout: 258 seconds < 1269536924 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1269537466 0 :werdan7!~w7@freenode/staff/wikimedia.werdan7 JOIN :#esoteric < 1269537770 0 :coppro!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1269538138 0 :lereah_!unknown@unknown.invalid QUIT :Remote host closed the connection < 1269540157 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1269540959 0 :oerjan!unknown@unknown.invalid QUIT :Quit: Good night < 1269541535 0 :Tritonio_GR!~Tritonio@150.140.231.97 JOIN :#esoteric < 1269541564 0 :ais523!unknown@unknown.invalid QUIT :Remote host closed the connection < 1269542062 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw what was the cause of that bug in ccbi that you thought was a bug in cfunge and efunge? < 1269542121 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Logic error < 1269542156 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Basically the bounds were right the first time, but not thereafter (if they changed) < 1269542178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1269542315 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1269542578 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1269542998 0 :Slereah!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1269543373 0 :Slereah!~Slereah@ANantes-259-1-28-91.w92-135.abo.wanadoo.fr JOIN :#esoteric < 1269543715 0 :charlesq__!~charlls@201.226.222.130 JOIN :#esoteric < 1269543719 0 :charlesq__!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1269543898 0 :charlls!unknown@unknown.invalid QUIT :Ping timeout: 258 seconds < 1269544324 0 :Tritonio_GR!unknown@unknown.invalid QUIT :Quit: Leaving. < 1269544421 0 :mibygl_!~cc55c4a0@gateway/web/freenode/x-lserhflghhhxyuea JOIN :#esoteric < 1269544435 0 :mibygl_!unknown@unknown.invalid PRIVMSG #esoteric :If you defunge something, it is defunct. If you befunge something, it is befunct. < 1269544437 0 :mibygl_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION bows. < 1269545032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1269545057 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mibygl_, so you plan to make a language called defunge now? < 1269545076 0 :mibygl_!unknown@unknown.invalid PRIVMSG #esoteric :Probably not. < 1269545140 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION growls at newscientist articles costing money < 1269545160 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Where else am I likely to find articles related to psychology stuff? < 1269545243 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, why are you so angry over it costing money? < 1269545281 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Because I want free stuff < 1269545293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tough luck? < 1269545309 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :At any rate, I don't feel like spending money just to do a simple homework assignment, just because I don't know where else to look < 1269545454 0 :mibygl_!unknown@unknown.invalid PRIVMSG #esoteric :Your library? < 1269545473 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I just want to find something online < 1269545488 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Some nice news article about the physical brain or about conditioning < 1269545532 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://7thspace.com/headlines/339167/effects_of_local_anesthesia_of_the_cerebellum_on_classical_fear_conditioning_in_goldfish.html maybe < 1269545569 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, universities generally have subscriptions for various stuff btw. < 1269545575 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so connecting from there might work < 1269545596 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same goes for some libraries to some stuff, not as common though < 1269545611 0 :mibygl_!unknown@unknown.invalid PRIVMSG #esoteric :My library has online stuff. < 1269545611 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh and yeah, checking the books in the library would probably work < 1269545639 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :How about I just use this article I found < 1269545645 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mibygl_, usually just encyclopedias and such accessible from the public computers in the library in my experience < 1269545673 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, sure, but that isn't what the discussion is about any more < 1269545674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1269545931 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION plays a bit of Robozzle < 1269546633 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1269547002 0 :mibygl_!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1269549441 0 :Azstal!~asztal@host86-156-103-118.range86-156.btcentralplus.com JOIN :#esoteric < 1269549554 0 :Asztal!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1269549568 0 :Azstal!unknown@unknown.invalid NICK :Asztal < 1269550739 0 :Oranjer!~HP_Admini@adsl-71-7-92.cae.bellsouth.net JOIN :#esoteric < 1269550855 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1269552941 0 :Phantom_Hoover!~chatzilla@cpc4-sgyl29-2-0-cust108.sgyl.cable.virginmedia.com JOIN :#esoteric < 1269553035 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Re the wire-crossing problem, specifically the strong version on the wiki page, what effect does the TCness of Rule 110 have on this? < 1269553266 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Quit: ChatZilla 0.9.86 [Firefox 3.5.8/20100214235838] < 1269553267 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is the wire crossing problem now again? < 1269553272 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1269553285 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :impatient guy < 1269553371 0 :Oranjer!unknown@unknown.invalid PRIVMSG #esoteric :hahahaha < 1269553376 0 :Oranjer!unknown@unknown.invalid PRIVMSG #esoteric :could have been an accident < 1269553839 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm what about the wire crossing problem in wireworld < 1269553870 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah seems possible < 1269553897 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION remembers learning of wireworld from Mirek's Celebration < 1269553903 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Mirek's Celebration? < 1269553997 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :". It’s a testament to our modesty that it was not until September 2004 that we wrote up our work." < 1269554015 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :CA program < 1269554031 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :? < 1269554086 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION fires up golly to try some out < 1269554393 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Someone should make a C compiler for the Wireworld computer < 1269554739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, near impossible considering how little memory it has < 1269554740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1269554754 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and the weird architecture < 1269554787 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION imagines wireworld but with induction as well < 1269554850 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the wireworld computer looks so pretty < 1269554870 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :much nicer than the life turing machine < 1269555062 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, true < 1269555269 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Was the strong version the one where memory is considered too (and the weak version was just for control logic)? < 1269555324 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Ilari, don < 1269555327 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :don't* remember < 1269555840 0 :Oranjer!unknown@unknown.invalid PART #esoteric :? < 1269556222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :off topic question < 1269556230 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I guess someone in here should know < 1269556232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :network sound < 1269556235 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how do you do it < 1269556249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, I want to forward sound from one computer to another < 1269556257 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so all sound plays through one computer < 1269556281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks at fizzie as the most likely person to know < 1269556292 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm he is away < 1269556377 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lattices are too complicated < 1269556406 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've been doing this one exercise about them for like 6 hours < 1269556409 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1269556474 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, heh < 1269556489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, tell me, what are they. Simplify if needed < 1269556536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I just want a "popular science" kind of view, nothing to detailed. Just enough to know what the heck they are roughly < 1269556542 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :posets where any two elements have a sup and an inf, that is, for all x, y \in L there's a z such that z >= x, z >= y, and for all w >= x, w >= y, w >= z < 1269556546 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1269556555 0 :Phantom_Hoover!~chatzilla@cpc4-sgyl29-2-0-cust108.sgyl.cable.virginmedia.com JOIN :#esoteric < 1269556563 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well then they are these pretty things you can draaw < 1269556566 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*draw < 1269556567 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hahaa < 1269556575 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Mm, CAs. < 1269556580 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, are they related to matrices in any ways? < 1269556590 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i doubt it < 1269556597 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where did you get that idea < 1269556610 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Crissy-crossy things? < 1269556629 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, well the name < 1269556640 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh right < 1269556640 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, anyway, what are their applications? < 1269556654 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well they have all sorts of applications in universal algebra < 1269556680 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :WP gives about five different definitions for mathematical lattices. < 1269556680 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I have no clue what that is XD < 1269556690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, wonderful < 1269556705 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, any of them halfway understandable to a non-mathematician? < 1269556707 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i know two < 1269556731 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the poset one was probably a bad choice, because AnMaster already knows boolean algebras, i think < 1269556734 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :One of them is set theory, which you don't even do in any standard curriculum I know of until uni. < 1269556740 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lattices are just boolean algebras without complement, 0 and 1 < 1269556743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I know a bit about them, No expert < 1269556749 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, wait what < 1269556758 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and they don't have to be distributive < 1269556765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, boolean without true, false or complement? < 1269556768 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :did you just say that? < 1269556776 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh not two-valued boolean? < 1269556783 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, lattices are like boolean algebras but more general < 1269556788 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i didn't say 2-elem did i < 1269556794 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Algebrae, surely? < 1269556800 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Oh, wait, no. < 1269556803 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Arabic root. < 1269556820 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've only seen algebras in serious contexts < 1269556846 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :And that is probably the correct form. < 1269556955 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :So, wait, are we talking about the set theory lattices, the vectory ones or the graphy ones? < 1269557234 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the algebra called lattice. < 1269557241 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :are there multiple? < 1269557382 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the "type of partially ordered set" < 1269557482 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm supposed to prove congruence lattices of lattices are distributive < 1269557562 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which i imagine would follow quite easily if i understood what actually happens when we make a congruence where a = b in a lattice < 1269557870 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: More cfunge bugs! Either o or i, don't know which. http://tar.us.to:12345/mycology.b98 < 1269557896 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Why "mycology"? < 1269557898 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Also, efunge apparently doesn't like q with a negative value; might not be a bug. < 1269557908 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What could it possibly have to do with mushrooms? < 1269557917 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Funge ~= fungus < 1269557936 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Wasn't my idea, there was a test suite called "Fungus" before this. < 1269557943 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So I just rolled with it. < 1269558050 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i love it how a question that's taken me ~3 hours is between two questions that follow from the definitions so directly i can't really come up with anything to write down except "A because B, B because A" < 1269558062 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*-it < 1269558095 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or maybe more like "clearly A => B, clearly B => A" < 1269558115 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :What's the difficult one? < 1269558137 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"congruence lattices of lattices are distributive" is the one that's taken me 6 hours < 1269558152 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the 3 hour one is about lattices too, but i'm afraid you might directly see the solution to that < 1269558162 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which would be embarrassing < 1269558176 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i hope the distributivity one sounds complicated enough that no one looks into it < 1269558182 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1269558184 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Distributive over what? < 1269558207 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What does "congruent" mean in this context? < 1269558211 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a lattice is distributive if a ^ (b v c) = (a ^ b) v (a ^ c), and same for ^ and v reversed < 1269558227 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(for all elements a, b, c in the lattice) < 1269558280 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a congruence ~ is an equivalence relation of algebra A s.t. if f is an n-ary operation of A, and a_1 ~ b_1, ..., a_n ~ b_n, then f(a_1, ..., a_n) ~ f(b_1, ..., b_n) < 1269558306 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1269558313 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :an equivalence relation on the algebra's elements that's compatible with the algebra's operations < 1269558368 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I had a crazy idea today < 1269558380 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :What if types aren't distinct entities? < 1269558454 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What? < 1269558461 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Umm... < 1269558484 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I don't know. < 1269558504 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :They would be indistinct entities? < 1269558526 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :in other words, a value can possess multiple types at once < 1269558526 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the congruence lattice is formed by taking all the congruences of a lattice, and having the lattice operations be (~_1) ^ (~_2) = (~_1) \cap (~_2) and (~_1) v (~_2) = (~) such that { x ~ y | iff there's a sequence of elements a_1, ..., a_n in L such that x ~_1 a_1 ~_2 a_2 ~_1 a_3 ~_2 ... ~_1 y} < 1269558545 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :its actual type would be the union of all its "datapacks", which is what I've named then < 1269558546 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*them < 1269558559 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where \cap is done on the set representation of the congruences, {(a, b) | a ~ b} < 1269558597 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the actual problem is probably easier than following this explanation < 1269558656 0 :MigoMipo!unknown@unknown.invalid QUIT :Remote host closed the connection < 1269558712 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yep. < 1269558728 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Even having proper formatting would do a world of good. < 1269558850 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*all the congruences of an algebra < 1269558853 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in the general case < 1269558866 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1269558878 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :clearly {x ~ y | iff there's a sequence of elements a_1, ..., a_n in L such that x ~_1 a_1 ~_2 a_2 ~_1 a_3 ~_2 ... ~_1 y} is a congruence < 1269558884 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :for any algebra < 1269558968 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :One of my ideas is for language that doesn't have named variables, only indirection operator as interface to memory. < 1269559017 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Are you trying to get help on your maths (homework|assignment|.*) on an esoteric language board? < 1269559057 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no not really, just chatting because i'm getting frustrated with the problems < 1269559069 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and i can only chat about the problems because after a day of doing them nothing else seems important < 1269559083 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: So, the Lambda calculus with DeBruin indices. < 1269559105 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :If number type is bignum, then that would be TC given sufficient set of other operations (but it isn't TC with bounded numbers, unless there is another kind of memory). < 1269559109 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's not exactly the kind of problem you can ask help for if people don't know what lattices are < 1269559116 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because it's a very hard problem even if you do < 1269559213 0 :Tritonio_GR!~Tritonio@150.140.231.97 JOIN :#esoteric < 1269559252 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: but i occasionally do ask for help here because #math is full of maggots and i don't know any alternatives to irc < 1269559302 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :*joins #math* < 1269559306 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1269559364 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a rather hostile place from time to time < 1269559374 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I can imagine. < 1269559416 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :example idea for my language: there would be a Nil datapack with no contents, and a value could be expressed as either Nil or an Int by {Nil~Int} (or, equivalently, {Int~Nil}, ~ being XOR < 1269559417 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mostly because most people who ask questions there are fucking retarded < 1269559479 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Why not just {Int}? < 1269559482 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but also because the people who answer questions there are fucking retarded < 1269559489 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Int just means Int, which must have a value < 1269559502 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :{Nil~Int} means "either Nil or Int, but not both" < 1269559522 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ideally, it would have type inference so you'd never have to write that out < 1269559582 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Weakly typed languages can put any value into any variable. How that's different? < 1269559624 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :...okay about the problem that's taken me 3 hours now, i just read the next page of the book and there's a relevant theorem which i'd forgotten about < 1269559631 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :great stuff < 1269559635 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: this is strongly typed < 1269559636 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What stage are you at? < 1269559641 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :oklopol < 1269559641 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"stage"? < 1269559653 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :University, I presume? < 1269559655 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well university obviously < 1269559656 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: And some datapacks would require the presence of others, effectively creating inheritance < 1269559675 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :our high school universal algebra course didn't do lattices. < 1269559725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : AnMaster: More cfunge bugs! Either o or i, don't know which. http://tar.us.to:12345/mycology.b98 < 1269559726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so < 1269559728 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what does it do < 1269559745 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It quits right after the relevant output. < 1269559749 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes < 1269559752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but what *should* happen < 1269559755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and what happens instead < 1269559758 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Run efunge. < 1269559778 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, why can't you just explain what in the file is wrong < 1269559780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1269559786 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Because I haven't checked. < 1269559793 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :cfunge says BAD, efunge and ccbi don't -> not my problem. < 1269559802 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1269559804 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ cat mycotmp0.tmp < 1269559804 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :B < 1269559804 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :C < 1269559808 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gah < 1269559810 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :irc ate a newline < 1269559815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there was a newline at the top < 1269559822 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :There should be an A there to start with. < 1269559827 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1269559838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, where does the A come from? < 1269559846 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what if it turns out befunge is just a big waste of you people's time? < 1269559850 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You can see the area being printed if you grep for "|A |" < 1269559855 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and it never gets you a job or anything < 1269559862 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I'd be surprised if it turns out it isn't < 1269559871 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It may've already got me a job or three < 1269559879 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1269559886 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Who knows if it really made a difference, but it did come up in the interview. < 1269559887 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, there is no C there < 1269559892 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so where does the C come from? < 1269559894 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1269559896 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes there is. < 1269559918 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, B NC? < 1269559922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what the heck is that < 1269559936 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ASCII too advanced for you? :-P < 1269559941 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The N gets overwritten with a newline < 1269559944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1269559959 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, should there be a space after the B? < 1269559963 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1269559968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not in text mode < 1269559971 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :should be stripped < 1269559972 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well, er, depends on what you mean < 1269559973 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't it? < 1269559980 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That's UNDEF and noted in the output < 1269559989 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I can make a good case for it both being stripped and for it staying there < 1269559999 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That's UNDEF and noted in the output < 1269560001 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1269560020 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I was considering requiring stripping but I got lazy. < 1269560025 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, also something is fishy with the y test: < 1269560030 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : That the greatest point, relative to that point, is ( 183 177 ) < 1269560031 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: should have been ( 183 911 ) < 1269560041 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that seems improbably to be a cfunge bug < 1269560047 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :improbable* < 1269560055 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Surprise! If I give only the first 200 lines of Mycology the y test complains that it doesn't have all of it < 1269560080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, however since you told me before one should fix the first bug first I really should fix it first ;P < 1269560085 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(nah not really) < 1269560095 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Go ahead, fill the file with nonsense if you want :-P < 1269560099 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1269560116 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Just add "x\n" 734 times... < 1269560122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :asdjfILHGWAIUhpwoaiuehföaokshf sfasdga asgf8395ansjsahflkajhelkfhsTo be an infinite number of apes or not to befjahslkjr2a < 1269560136 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That works too, just don't go over 180 columns. < 1269560140 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1269560170 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what is "A\nB[ ]\nC[\n]" used for? < 1269560178 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Nothing, it's a comment. < 1269560180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1269560225 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, interesting ><>p on the line below it < 1269560231 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now why do you want that!? < 1269560242 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :do you test t there or something < 1269560245 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It's part of the concurrency testing. < 1269560249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1269560284 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nice "radiator" string btw. < 1269560296 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Radiator? < 1269560308 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Oh, that <<<<<<<<< stuff? :-P < 1269560311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, think a hot water radiator < 1269560313 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it goes like < 1269560317 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yeah < 1269560318 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :> v < 1269560322 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :v < < 1269560324 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :> v < 1269560325 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :v < < 1269560326 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1269560330 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so that bit is what I meant < 1269560337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what was the <<<<<< bit then? < 1269560350 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is a bit strange too < 1269560362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :waste of cycles < 1269560362 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It's overkill error testing for ] with a noncardinal delta < 1269560376 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well you have it elsewhere too < 1269560383 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I reappropriated that block of code within it (which used to be all <<<<<<<<) for this stuff < 1269560386 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :>"$"$>>>>>>>> < 1269560387 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for example < 1269560394 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which seems weird < 1269560398 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That's concurrency testing again. < 1269560401 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1269560410 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, all around the file stuff? < 1269560413 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :seems somewhat messy < 1269560416 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, immediately after. < 1269560418 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to not keep them separated < 1269560450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, physically in the file the |A | thing is the line *after* it < 1269560453 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But because you made the annoying realization that o in text mode can be tested, I had to add that somewhere, so now it's a bit more confusing that way. < 1269560461 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1269560469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :stupid me < 1269560475 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks at the source < 1269560476 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it's all your fault. < 1269560502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you didn't *have* to test it though < 1269560508 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes I did :-P < 1269560525 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Quit: ChatZilla 0.9.86 [Firefox 3.5.8/20100214235838] < 1269560586 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Network audio cross-platform seems to be a horrible mess; the ones I know about on Linux are JACK's rather kludgy-looking "netjack" thing, and Pulseaudio's (which is pretty popular) network server support. Oh, and ESD does audio-over-network, too, but I doubt that's used very much nowadays. < 1269560602 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Pulse's networking might be the best bet if your system uses that already. < 1269560619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Fungespace (105,148) to (109,150) follows: < 1269560620 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :A | < 1269560620 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :B < 1269560620 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :C| < 1269560621 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1269560624 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1269560631 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't escape newline < 1269560655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I have pulseaudio on one system, plain ALSA with "jack when required" on the other < 1269560667 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Surely the memory can be increased < 1269560675 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although architecture issues are probably significant < 1269560676 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm what about http://alsa.opensrc.org/index.php/Network < 1269560763 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :after a while (depending on the speed of your computer, it could easily be half an hour) < 1269560766 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Bleh < 1269560769 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well, yes, alsa's pretty flexibly configurable too, it sounds reasonable that you could hack some arecord-netcat-aplay plumbing, but it does sound a bit messy. < 1269560779 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :But then, that was written some time ago, presumably < 1269560791 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to make sense of his code for text file mode < 1269560827 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ssize_t lastspace = (ssize_t)size->x; ???? < 1269560840 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: output audio | ssh host dd of=/dev/dsp ;-) < 1269560851 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I think JACK's netjack is at least somewhat latency-optimized, though obviously networking is horribly slow compared to anything else. Though I guess netcat's UDP mode is not such a horribly bad idea either. < 1269560861 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm < 1269560870 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, would use it for games < 1269560883 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Of course no authentication or any fancy negotiation there; if you have that "nc -u -l -p 8100 | aplay" running, it basically means that any UDP packets that come to that port come out of your speakers directly. < 1269560888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in, wesnoth or widelands or whatever < 1269560903 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, anyway I'm on a trusted lan basically < 1269560990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh what the heck did that logic do < 1269560995 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Yes, that's for playback, but how you get apps to send the audio as UDP packets? < 1269560998 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you want it only now and then, I guess that "arecord to capture what would come out" + nc + aplay solution is not too bad. I wouldn't keep that thing running all the time. < 1269561026 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: "arecord -t wav -f cd | nc -u server port" is what they used there. < 1269561031 0 :Oranjer!~HP_Admini@adsl-71-7-92.cae.bellsouth.net JOIN :#esoteric < 1269561034 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay I think that test is broken < 1269561061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so I know the cause of the bug, but I have absolutely no clue how to fix it yet < 1269561068 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Heh < 1269561071 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :What's the cause, then < 1269561080 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: (You just need to set the capture source to "mixer" so that it captures what would go out locally.) < 1269561091 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, one or several off by one errors in the code that strips spaces from the end of each line < 1269561109 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1269561112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, problem is that when I "fix" it, it breaks the logic elsewhere < 1269561134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I can atm get right for either multi-char lines or for single-char lines < 1269561137 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure why < 1269561175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw, doesn't the spec say there shouldn't be any EOL? < 1269561178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at the end < 1269561184 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or do I misremember < 1269561222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, should it strip empty lines? I don < 1269561225 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :don't* remember < 1269561249 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm willing to read that as "any extra EOLs"; it's a UNIX convention that newlines are line terminators, not line separators, after all. < 1269561264 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I guess netcat's UDP mode will at least make small enough UDP packets that they are less than the MTU, so you won't get that much lag out of that particular bit; given 1500 or so bytes, that's just 375 samples (< 10 ms) of 44.1kHz 16-bit stereo. It's anyone's guess how much arecord will buffer before doing any write()s, of course. < 1269561270 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And no, it shouldn't strip empty lines. < 1269561274 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, right < 1269561289 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm? < 1269561295 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh I see what you mean < 1269561296 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1269561311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I think cfunge strips all of them, I don't know if efunge strips all < 1269561369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, 16-bits only? :/ < 1269561402 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Evidently it does. < 1269561433 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well, you can push anything through that, of course. I was just calculating those numbers based on what they used ("-f cd"). < 1269561522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, pushing fix, cache effects might apply < 1269561571 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Hang on, I think there might be an efunge bug here too (or CCBI) < 1269561587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ?