00:06:26 Are there any reasons not to use Scala? 00:08:35 if you don't have jvm them yes 00:14:09 wow, I knew stinkhorn was slow at the `y' instruction, but... wow 00:14:44 17500 times as slow as ccbi2 00:15:33 I never really considered the allocation strategy on the stack stack since I just used STL containers. 00:15:49 (well, I tried a pool allocator, but I didn't try allocating in bigger chunks) 00:19:09 * Sgeo_ is starting to like Scala 00:19:38 I think I can trim the funge space memory usage significantly, too - allocating a whole fungespace page for writing only a few cells is wasteful 00:21:04 -!- FireFly has quit (Quit: Leaving). 00:21:23 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:46:43 -!- augur_ has quit (Ping timeout: 252 seconds). 00:55:09 -!- coppro has joined. 01:15:31 -!- augur has joined. 01:32:10 -!- Asztal has quit (Ping timeout: 245 seconds). 01:43:41 -!- manager has joined. 01:43:46 www.penisland.us 01:43:56 -!- manager has left (?). 01:44:35 -!- aschueler has quit (Quit: leaving). 01:55:48 That site is both not Pen Island, and surprisingly penis-free. (Although not at all porn-free) 02:21:52 -!- bsmntbombdood__ has joined. 02:22:22 -!- bsmntbombdood_ has quit (Ping timeout: 264 seconds). 02:45:24 -!- bsmntbombdood__ has quit (Ping timeout: 276 seconds). 03:06:58 -!- jcp has quit (Ping timeout: 260 seconds). 03:07:24 -!- lament has joined. 03:09:11 -!- bsmntbombdood has joined. 03:18:36 -!- nooga has joined. 03:21:22 -!- jcp has joined. 03:37:00 -!- uorygl has joined. 03:37:12 I wonder if there's a really easy trick I could use to remember things really well. 03:37:20 If I think of one, I'll let you guys know. :P 03:39:06 <3 Power Grid 03:39:38 Decent board game. 03:39:47 Is that a song by Jerry Martin? 03:39:54 No, alas, it's a board game. 03:39:59 No, it's a board game. 03:40:26 A player bought a plant for 121 Electro.. then lost to a player who had /exactly/ enough money to end the game 03:43:23 Note to self: Doesn't matter that ANGEL is supposed to store my work. Save anyway. 03:43:46 coppro: Hahah. 03:44:28 the funny thing was he would have won if he had just stopped bidding and bought a different power plant for cheaper, paid a little more for resources (it was the fusion plant) and bought himself a winning city 03:46:13 This is.. self-slappingly annoying 03:46:37 Sgeo_: hmm? 03:47:14 Did some homework a while back, put it on the school site through which my professor receives homework 03:47:34 Professor did not receive homework. I don't know if I saved, but if I did, I don't see any evidence of such 03:47:42 :( 03:48:00 I should really start a git repo for my homework 03:53:23 Or do it on paper! 03:53:40 I must admit I sort of like being a Luddite. 03:55:34 I'd lose the paper 03:55:43 lol 03:55:47 I'm in Sgeo_'s boat 03:56:05 I wouldn't lose the paper, I'd leave it in an easy-to-remember but inaccessible place. :P 03:56:35 If you see me taking notes in class, it's either because I'm taking them for someone else [probably a female], or because I hope that the physical action of writing helps memory somehow 03:57:29 If you see me taking notes in class, they are incomprehensible to anyone but me. 03:58:08 It's gotten worse with the addition of kanji to my idiosyncratic script... 03:58:25 pikhq, study the etymologies of Chinese characters. 03:58:36 * Sgeo_ wonders if his professors would allow him to take notes on his phone.. 03:58:54 uorygl: I have a bit. 03:58:55 That way, you'll have tons of little fragments of writable stuff. 03:59:00 Fairly interesting. 03:59:06 Sgeo_: only if your phone is an iPad. :P 03:59:07 Dude, I know 2,000 kanji. 03:59:16 I already have tons of fragments of writable stuff. 03:59:16 :) 03:59:18 Hmm. When did you start learning those things? 03:59:28 Kanji. 03:59:29 uorygl, I'm perfectly willing to use the keyboard of a Nexus One 03:59:46 Start? Few years ago. Go hardcore and actually learn them well? 2.5 months ago. 03:59:53 Hmm. 04:00:21 I hereby decree that I did precisely the same thing with Lojban's gismu. 04:00:33 I did something similar with Haskell 04:00:34 Helpful, no? 04:00:54 Although my hardcore Haskell phase seems to be ending 04:01:16 Anyway, I mentioned wondering if there was a really easy trick I could use to remember things really well. Here's a hinty thing: "Unless your emotions are somehow involved with your brain in any subject you are looking at, you will learn nothing about it." --David Seabury 04:01:30 Not to be confused with David Sedaris, who is some guy I'm actually familiar with. 04:02:00 -!- Oranjer has left (?). 04:02:54 and the most suitable emotion is terror 04:03:56 "Ohmygodohmygod. This word means 'run'. What if someone yells 'ko bajra' at me because a bomb's about to go off and I don't understand and it explodes and I DIE?" 04:10:54 Hah. 04:12:03 http://www.thestar.com/news/insight/article/793455--for-those-who-cannot-see-erotica-in-3-d <3 Canada 04:12:27 * Sgeo_ would ask for help finding his homework, but somehow, I don't think anyone other than myself can help 04:19:47 I'm going to switch to Linux so I can grep 04:23:51 -!- Sgeo_ has quit (Read error: Connection reset by peer). 04:25:11 -!- oklofok has joined. 04:28:33 -!- oklopol has quit (Ping timeout: 248 seconds). 04:49:55 blabs 05:06:52 This soundtrack contains a song called "The Kill Ring". 05:07:03 As far as I can tell, that's an Emacs reference. 05:10:46 -!- jcp has quit (Read error: Connection reset by peer). 05:15:07 -!- oerjan has joined. 05:23:24 I wonder if there's a really easy trick I could use to remember things really well. 05:23:32 i knew one once, but i forgot it. 05:28:02 Alas. 05:28:14 golf 05:28:19 Who's augur ? 05:28:55 a linguist 05:29:11 who's who anyway? :D 05:29:22 A "Whp 05:29:29 My name is Adrian. 05:29:31 I no type can. 05:29:43 A "who's who on #esoteric" book would probably sell well. 05:29:49 :D 05:29:55 so true 05:30:17 What's his connection to me? I apparently know him, but I'm not sure how, in his IRC incarnation. 05:31:16 well how should i know, i've never seen _you_ before yesterday... when you were "idle for 41 days". how did you _manage_ that? 05:31:55 seeing _underlined_ text in a terminal is so _cool_ 05:32:02 I'm often busy. 05:32:28 also are you from norway? i knew a Lamo at university. 05:32:52 i'm in a troll mood 05:33:08 do norwegians actually believe in trolls? 05:33:09 tunes.org/~nef//logs/esoteric/09.08.19 05:33:18 is what brought me here. 05:33:21 nooga: i'm sure there are _some_ 05:34:31 near Bodo 05:35:28 Hrm. This isn't helping. 05:35:31 You've got that Trolltech thing, at least. 05:35:55 The log linked above implies that I know augur elsewhere via another name. 05:36:14 I'm trying to connect the two nodes. 05:36:45 Adrian^L: well "come to defcon" was mentioned 05:37:00 Adrian^L: he used to go as psygnisfive btw 05:37:21 That answers everything. 05:37:28 Thanks, oerjan :) 05:37:38 you're welcome :) 05:38:03 Disorganized ex-crime owes you a favor ;> 05:38:11 whoops 05:38:33 Why whoops? 05:38:46 that sounds scary :D 05:39:04 it ought not. 05:39:45 Why have this channel here, as opposed to, say, 2600Net? 05:40:20 wny not freenode? 05:40:24 ask the founder, who disappeared years ago 05:41:48 mumble. 05:47:21 freenode is awesome, if you've want to talk about softwarem say XYZ, you go to a channel #XYZ on freenode and someone is there 05:47:46 almost always 05:48:02 although I've unfortunately not ever found a channel for discussion of gaming 05:48:23 ./j #sex 05:48:47 software exchange 05:50:44 no, just try it ;d 06:09:53 Adrian^L: So, you have a Wikipedia article. Niceness. 06:10:22 Crappy reasons to get it, but hey. :P 06:14:13 -!- Alex3012 has quit (Read error: Connection reset by peer). 06:14:46 -!- Alex3012 has joined. 06:22:27 -!- Rugxulo has joined. 06:22:57 I think CCBI --befunge93 has a bug with regards to ';' (semicolon) 06:24:41 hmmm, but fbbi -93 seems to also do the same ... shouldn't they only skip "; ... ;" when in 98 mode?? 06:25:02 (CCBI doesn't skip but reflects back, which can't be right in 93 mode) 06:28:00 Why wouldn't reflecting back be right? IIRC the Befunge-93 spec doesn't specify at all what should be done if trying to execute an undefined opcode, and ; is not defined there. 06:28:29 well none of the other 93 interpreters I'm trying seem to reflect, so ... 06:29:03 Yes, but it's still not exactly forbidden. 06:29:18 Admittedly many 93 interps treat non-defined ops as nops. 06:29:49 including the original (although it whines without -q) 06:34:03 -!- sebbu2 has quit (*.net *.split). 06:34:04 -!- augur has quit (*.net *.split). 06:34:04 -!- cheater2 has quit (*.net *.split). 06:34:04 -!- EgoBot has quit (*.net *.split). 06:34:04 -!- HackEgo has quit (*.net *.split). 06:34:04 -!- olsner has quit (*.net *.split). 06:34:04 -!- cal153 has quit (*.net *.split). 06:34:05 -!- oklofok has quit (*.net *.split). 06:34:05 -!- uorygl has quit (*.net *.split). 06:34:05 -!- comex has quit (*.net *.split). 06:34:05 -!- jix has quit (*.net *.split). 06:34:06 -!- Leonidas has quit (*.net *.split). 06:34:06 -!- mycroftiv has quit (*.net *.split). 06:34:06 -!- coppro has quit (*.net *.split). 06:34:07 -!- ineiros has quit (*.net *.split). 06:34:07 -!- Quadrescence has quit (*.net *.split). 06:34:08 -!- Rugxulo has quit (*.net *.split). 06:34:08 -!- SimonRC has quit (*.net *.split). 06:34:09 -!- mtve has quit (*.net *.split). 06:34:09 -!- lifthrasiir has quit (*.net *.split). 06:35:55 -!- Rugxulo has joined. 06:35:55 -!- oklofok has joined. 06:35:55 -!- uorygl has joined. 06:35:55 -!- augur has joined. 06:35:55 -!- coppro has joined. 06:35:55 -!- sebbu2 has joined. 06:35:55 -!- cheater2 has joined. 06:35:55 -!- HackEgo has joined. 06:35:55 -!- EgoBot has joined. 06:35:55 -!- comex has joined. 06:35:55 -!- jix has joined. 06:35:55 -!- Quadrescence has joined. 06:35:55 -!- olsner has joined. 06:35:55 -!- SimonRC has joined. 06:35:55 -!- cal153 has joined. 06:35:55 -!- ineiros has joined. 06:35:55 -!- mtve has joined. 06:35:55 -!- lifthrasiir has joined. 06:35:55 -!- Leonidas has joined. 06:35:55 -!- mycroftiv has joined. 06:36:11 wb 06:36:51 -!- AnMaster has quit (*.net *.split). 06:36:51 -!- Adrian^L has quit (*.net *.split). 06:36:51 -!- atrapado has quit (*.net *.split). 06:36:52 -!- pineapple has quit (*.net *.split). 06:36:52 -!- fungot has quit (*.net *.split). 06:36:53 -!- Geekthras has quit (*.net *.split). 06:36:53 -!- nooga has quit (*.net *.split). 06:36:53 -!- bsmntbombdood has quit (*.net *.split). 06:36:53 -!- sshc has quit (*.net *.split). 06:37:27 -!- nooga has joined. 06:37:27 -!- bsmntbombdood has joined. 06:37:27 -!- atrapado has joined. 06:37:27 -!- AnMaster has joined. 06:37:27 -!- pineapple has joined. 06:37:27 -!- Adrian^L has joined. 06:37:27 -!- sshc has joined. 06:37:27 -!- fungot has joined. 06:37:27 -!- Geekthras has joined. 06:37:53 -!- sshc has quit (Max SendQ exceeded). 06:38:14 -!- sshc has joined. 06:44:54 -!- Rugxulo has quit (Quit: Rugxulo). 06:45:25 -!- oerjan has quit (Quit: leaving). 07:00:52 -!- FireFly has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:03:54 -!- lament has quit (Quit: lament). 08:06:13 -!- Rugxulo has joined. 08:06:42 the Esolang wiki on Befunge really needs revising 08:07:00 but at least somebody added an interesting link lately: "Marsh" ( http://github.com/serprex/Befunge ) 08:07:29 on my P4, it's pretty fast (GCC-compiled), not so much my other cpus 08:09:44 We had some talk about Marsh here. 08:10:00 It's also somewhat broken; the default version doesn't even do "pop 0 from empty stack". 08:10:10 There were some issues with the marsh_safe version too. 08:10:22 C99, assumes "/dev/random" exists, fixit.py kludge (which I'm not entirely sure about) 08:10:47 well, it's obviously not perfect, but it beats the x86 BEFI.COM on this P4 with my lame benchmark.bef 08:11:18 possibly more to do with the P4's quirks than anything, other machines are much slower 08:12:02 Also, re. speed: http://pastebin.com/nfmUUEwq 08:12:20 If you have an actual benchmark.bef for Befunge-93, I'd like to have it. 08:12:24 My Befunge interpreter appears to use the same implementation technique, but with different bugs. :P 08:12:37 so "ff" is yours? 08:12:43 written in what? 08:12:54 Written in C. 08:13:10 you're gonna laugh (or get mad), but here's my "benchmark" (lame, I know): 08:13:11 91+:*-:0`#@ #._ 08:13:20 It's also mostly bug-free: http://pastebin.com/BmmymUz7 08:13:46 fizzie: What's the testfile.txt in question? 08:14:12 pikhq: The Complete Stories, Volume 1, Isaac Asimov. 08:14:20 (I just wanted some mostly-ascii text.) 08:14:23 Mmm. 08:14:40 It's a bit un-redistributable that way; perhaps I should've just generated something. 08:15:18 I'll go fetch something off of Gutenberg then. 08:15:34 fizzie, for a horrible laugh, read this: http://pastebin.com/QekgWsxT 08:16:54 156 ./a.out bench.bf 0.00s user 0.00s system 50% cpu 0.006 total 08:17:09 :) 08:18:12 Rugxulo: Mine might behave a bit less optimally in that benchmark, because ff's playfield is actually 256x256; I do wrapping by unsigned-char overflow. So there's more spaces to go through. 08:18:38 BEFI is actually 128*128, and it didn't hurt much there (obviously) 08:18:47 I guess the point is that GCC is better at P4 than others 08:18:59 -!- FireFly has quit (Quit: Leaving). 08:19:01 (IIRC, 26 secs. for marshsafe on the same benchmark) 08:20:00 I can't compare with cfunge, because cfunge doesn't handle EOF right for B93. 08:20:27 (reflect on EOF is but one valid behavior, and this ROT13 program assumes -1 = EOF instead) 08:20:46 So, need a better benchmark. :/ 08:20:53 27.410 secs. 08:21:02 Waiting for marshsafe to finish here. 08:21:06 (marsh.c but without fixit.py crud) 08:21:27 I haven't looked at what fixit.py does. 08:21:53 Does your benchmark work properly with non-safe marsh? It seems to pop once from empty stack for the first -, but maybe it doesn't hurt there. 08:21:54 so, what should the output from this actually be? 08:22:18 fizzie, who me? I think so, yeah 08:22:40 I'm going to guess "definitely not 156". 08:22:52 no 08:22:57 Hooray, I've found a small testcase that fails. 08:23:01 On my system, it outputs 2147483596 at the end; I guess it does -100 until the cell wraps around. 08:23:13 Good, the only other thing that failed was Hunt the Wumpus. 08:23:14 156 sounds a bit like byte-sized stack cell. 08:23:14 yes 08:23:16 that's correct 08:23:25 2147483596 is correct 08:23:36 Since -100 % 256 would be 156 for some values of %. 08:24:05 Gah. Yeah, it's still on char cells. 08:24:07 27.680 (marshsafe.c) 08:24:08 Lemme change that. 08:24:13 Strange, marshsafe doesn't seem to want to finish. 08:24:33 It now outputs -100 immediately. 08:24:47 Erm. *unsigned* int might help. XD 08:25:01 You want signed stack cells, in fact. 08:25:01 Or not. 08:25:09 Otherwise it'll output 2^32-100 immediately. 08:25:26 There's something else wrong there; it should stay in the loop as long as the value is <0, terminating when it wraps. 08:26:12 Rugxulo: Any ideas why marshsafe.c still hasn't finished for me? It's been some five minutes or so already. :p 08:26:33 how did you compile it? 08:26:57 gcc -o marshsafe marshsafe.c -std=gnu99 -O3 08:27:04 Imma sleep. I'll futz with this in the morning. 08:27:22 here's what I did: 08:27:23 gcc -std=gnu99 -DFUNGE marshsafe.c -o funge.exe -O2 -mtune=native -fmerge-all-constants -fomit-frame-pointer -fno-gcse 08:27:29 (slightly modified from makefile) 08:27:38 Oh, right, that damned -DFUNGE. 08:27:46 The most sensible thing ever. 08:28:15 fizzie, what cpu? (Core2, perhaps?) 08:28:36 It's an old-ish Athlon X2. 08:28:52 Uh, "5600+" or some other such silly model name. 08:29:11 can't be that old if it's X2 08:29:24 That's why the "-ish". 08:29:41 I don't know why he has #ifdef FUNGE ... what other use is marshsafe.c ????? 08:31:05 Gah, it still doesn't seem to be doing much; ^c'd it after three minutes. 08:31:15 try without -O3 08:31:16 Lunch now, will get back to benchmarking after. 08:31:51 I still say CCBI reflecting on ';' in B93 is wrong :-P 08:37:29 3 mins. for CCBI (in B98 mode) 08:44:21 BTW, I think "bef2c -p -o" + GCC ran second fastest on my old P166 08:45:55 7.5 mins. for "ccbi --befunge93" :-/ 08:46:02 weird 08:47:31 hey, I've been running an old version of Marsh, apparently it was updated "1 day ago" !! 08:47:37 -!- aschueler has joined. 08:48:01 (runs Hunt the Wumpus now???) 08:50:47 seems fixit.py is changed, no longer assumes "%rax" is available 08:53:28 27.350 secs (marsh), 27.630 secs (marshsafe) ... so not much difference 08:57:09 heh, "README" (but in French, go figure) 09:00:11 wait, "Bejit" ... perhaps he means JIT for Befunge?? 09:00:14 Mine is around two days old, so I guess it might not be the newest either. 09:00:34 April 11th, that's what it says on the Github site 09:00:43 -!- Gracenotes has quit (Ping timeout: 260 seconds). 09:01:34 Hrm, even with your command line "time ./marshsafe benchmark.bef" -- where benchmark.bef has 91+:*-:0`#@ #._ only -- doesn't seem to finish in any sensible time. 09:01:56 did you remember -DFUNGE ? 09:02:07 Yes, I copy-pasted what you had. 09:02:20 hmmm, odd ... what GCC? 09:02:20 It's also eating 100% of CPU. 09:02:31 gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3 09:02:36 100% of an X2??? that can't be right 09:02:56 Yes, it goes up to 200%. 09:02:59 try with -O0 and see if it finishes there 09:03:19 it definitely should be done in under a minute on a modern cpu 09:03:32 Rugxulo: Uh, I think it's actually because the stack cell type is "long", and long on x86-64 is a bit longer. 09:04:10 I'll try with -m32 as a quick fix. 09:04:39 yikes 09:05:00 well that's an implementation bug anyways, B93 always has 32-bit stack, right? ;-) 09:05:19 -!- Gracenotes has joined. 09:08:30 fungus and mooz links on Esolangs wiki are broken 09:08:50 Yes, mooz's site has been gone for a long long time now. 09:09:09 Hm, there's something wrong with my current, cleaned-up version of ff; for the rot13 benchmark, http://pastebin.com/30vpMbwN 09:09:52 is mooz the same as this guy? http://frox25.no-ip.org/~mtve/code/eso/bef/ 09:10:09 No, that's a different person. 09:10:34 okay, it was the "mtv3" part that confused me 09:11:48 dunno why ff3 is slower, could be anything 09:12:27 MTV3 is a Finnish television channel; they had a free webspace thing going on way back when, mooz had his site there. 09:12:48 mtve = MTV Europe (dunno why he chose that nickname) 09:12:57 heck, he's here now (he's always here but "not") 09:40:49 -!- Tritonio_GR has joined. 09:56:58 -!- tombom has joined. 10:12:48 -!- lereah_ has joined. 10:46:20 -!- Rugxulo has quit (Quit: Rugxulo). 10:48:46 -!- bsmntbombdood has quit (Ping timeout: 264 seconds). 10:55:22 -!- BeholdMyGlory has joined. 11:03:52 -!- bsmntbombdood has joined. 11:12:29 Aw, Rugxulo already went? Anyhow, here's a ff3-vs.-marshsafe benchmark: http://pastebin.com/SgBzjEc6 11:13:53 Slightly different output from the two there. 11:14:00 (The blank line) 11:14:56 How does jitfunge manage on that one? Seems so simple that it might be able to handle it :-) 11:17:03 Hm, it prints out 0. :p 11:17:16 heh 11:20:05 It generates a single trace for most of that, containing 11:20:07 entry: 1 11:20:08 r0 <- STACK 11:20:08 r1 <- - r0, 100 11:20:08 STACK <- r1 11:20:08 r2 <- ` 0, r1 11:20:08 STACK <- r2 11:20:10 entry: 0 11:20:12 r3 <- STACK 11:20:14 _ r3 11:20:16 end 11:20:28 But for some reason the "end" command loops to entry point 0, not entry point 1. 11:21:40 The uncompiled trace looks like http://pastebin.com/03uCcPDD 11:22:28 exit[0] is the branch to the .@ bit, exit[1] should loop to the beginning, not the if itself. 11:25:05 LLVM doesn't seem to compile the equivalent C to just return a constant, but the loop completes in 0.00 seconds anyway. 11:25:59 GCC compiles the equivalent C to an infinite loop; bloody C with its unspecified integer underflow. 11:26:31 Another wrapping bug, heh. 11:26:56 Funny, now it prints out 200. 11:27:18 This time the compiled trace is: 11:27:20 entry: 0 11:27:20 r0 <- STACK 11:27:20 r1 <- - r0, 100 11:27:20 STACK <- r1 11:27:20 r2 <- ` 0, r1 11:27:21 _ r2 11:27:23 end 11:27:24 Can I tell GCC to optimize based on two's complement semantics? 11:28:32 Ah, -fwrapv. 11:28:55 Welp, it doesn't optimize it into a constant either. 11:29:18 Actually, that is "right" in the sense that it should get 200 from that; "r1 <- - r0, 100" means "r1 = 100 - r0", basically, and it's executed with stack of -100. Don't know how I've *again* managed to get arguments in the wrong order. 11:29:35 I thought you fixed that one already? :-P 11:29:43 I thought so too. 11:31:03 I think I may have misfixed it by reordering the stack-pop instruction generation when the fault was in fact in the stack-folding bit. 11:31:36 Both compilers have an extra, unnecessary 'test' instruction in the loop, too. 11:33:13 fis@eris:~/src/jitfunge/src$ time ./jitfunge ../../ff/benchmark.bef 2>/dev/null 11:33:13 2147483596 11:33:13 real 0m0.112s 11:33:13 user 0m0.090s 11:33:13 sys 0m0.020s 11:33:31 Well, it's not too shabby. 11:33:32 Sounds about right. 11:33:52 Are you using LLVM 2.6, by the way? 11:33:55 There's also quite a lot of tracing IO going out to /dev/null. 11:34:07 This is some sort of 2.7, whatever Ubuntu lucid had. 11:34:25 Version: 2.7~svn20100409-0ubuntu1 11:34:45 Alright. 11:35:21 I wonder if fixing this broke whatever it was that I misfixed last time. 11:35:32 It was something about p, but was it in mycology? 11:35:56 If it wasn't, it'll probably turn up in there at some point ;-P 11:36:14 At least current version runs mycology with the GGBGs and BUBADs. :p 11:39:22 Oh, right; it's most likely because the current LLVM codegen doesn't protect the stack, so popping from empty stack will confuse it. Maybe I'll add a test for that, and figure out how to do the funky segfault-trapping stack with LLVM later. 11:40:05 Given that it's platform-specific, you can't do it with just LLVM 11:40:24 Well, maybe there's a related intrinsic somewhere. 11:40:53 Yes, but I probably can hack together something that works on one platform based on what I already have. 11:40:58 The rest can use a slower stack. 11:41:15 I'm not even sure if it is faster; depends on the frequency of empty-stack-pops, of course. 11:41:27 Yes, of course you can use inline asm to do it however you like platform-specifically. 11:45:32 Do I need to create ptrtoint instructions if I want to compare two pointers? 11:46:00 I don't think so, no. 11:46:05 Ah, icmp can compare pointers too. 11:46:06 I think icmp works on pointers. 11:46:17 Yes, I just didn't expect, given the interger-sounding name. 11:46:34 "If the operands are pointer typed, the pointer values are compared as if they were integers." 11:50:16 -!- asiekierka has joined. 11:50:17 hi 11:50:44 i think i had an idea for a 2-command (space (NOP) and non-space (everything else)) esolang 11:51:11 but i don't think it'll be turing-complete 11:51:19 though wait, i have an idea how to make it so 11:54:02 Deewiant: Aw. Adding the stack underflow protection made it run completely without valgrind errors, but mycology's still BU-BAD. Must be a bug in my logic, then. (How unheard-of!) 11:54:15 Astonishing! 11:54:45 At least I got the underflow-protected stack pop done without having to add more basic blocks in the mix. :p 11:54:52 POSTANTOUS: http://pastebin.com/Ce9GLxdn 11:54:56 design draft 11:55:08 also 11:55:14 it's all seen as in 11:55:24 ^ being the NORTH of the instruction pointer's direction 11:55:28 so if it's heading west, ^ is WEST 11:55:32 and like that 11:56:03 what do you think 11:56:16 POSTANTOUS stands for POSition's imporTANT...ous 11:57:40 http://pastebin.com/GLafvxmk 11:58:11 new version of draft 11:58:33 now 11:58:50 the problem is i dont think any "this setup might stand for that, and also that" things can be found 12:02:00 asiekierka: how about building 8088 based computer using prototype board and wires 12:02:27 i wish i had a protoboard and wires 12:02:28 :( 12:03:07 -!- _asw has joined. 12:03:33 http://pastebin.com/frdr6jm9 12:03:37 DRAFT v3 12:03:48 i'm writing BIOS for that thing ;d 12:03:54 wow 12:03:56 lucky you 12:04:10 i wish i could have a huge wirewrap protoboard 12:05:49 not lucky, just bored :D 12:07:37 NEW version: http://pastebin.com/why9uvaY 12:07:43 Also I want to have a prototype board, wires 12:07:45 and tons of chips 12:07:59 i want to make a 6502 based computer 12:08:01 -!- _asw has left (?). 12:08:43 now i think i've implemented every combination 12:08:52 if any other combination is found 12:08:56 it just goes forward 12:09:58 i want a huge wirewrapping protoboard 12:10:00 and wires 12:10:02 and wirewrap tools 12:10:04 and infinity chips 12:16:54 -!- asiekierka has quit (Ping timeout: 258 seconds). 12:20:23 -!- asiekierka has joined. 12:24:57 -!- asiekierka has quit (Ping timeout: 258 seconds). 12:28:29 -!- asiekierka has joined. 12:33:00 -!- asiekierka has quit (Ping timeout: 258 seconds). 12:34:54 -!- kar8nga has joined. 12:36:35 -!- asiekierka has joined. 12:43:21 -!- asiekierka has quit (Ping timeout: 258 seconds). 12:46:50 -!- asiekierka has joined. 12:53:42 -!- asiekierka has quit (Ping timeout: 258 seconds). 12:55:29 and 12:57:11 -!- asiekierka has joined. 13:01:45 -!- asiekierka has quit (Ping timeout: 258 seconds). 13:02:00 Deewiant: "UNDEF: edge # skips column 80" for ff3; does that mean that a # on the left edge skips the right-most column of the playfield? (I mean, you could be using 0-based column indices there, and mean that a # on right edge "skips" the non-existent column 80 and hits 0, which has the opposite meaning.) 13:02:29 I'm not trying to be confusing :-P 13:02:39 That'd be a first! Uh, I mean... 13:02:48 So, the former. 13:02:50 -!- Gregor has set topic: But I forced it right! | This space intentionally left | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 13:03:05 Good, good; that's what I was hoping for, too. 13:05:17 -!- asiekierka has joined. 13:05:18 -!- Asztal has joined. 13:08:05 Deewiant: I did ff3's wrapping by stealing the "border the playfield with two columns/rows of a special 'jump N spaces to the proper direction" idea from mooz, but adapting that to the "code is represented by a playfield-shaped block of jump target pointers" idea from marsh/others -- which means the jump-instructions don't have to worry about someone p'ing them on the playfield ... 13:08:07 ... and finally twisting that by making the playfield be basically a 84x29x4 array of pointers, where depth equals delta, and I have 4 implementations of each instruction, with a hardcoded "ip += offset; goto *ip;" afterwards. 13:08:50 A representative sample: http://pastebin.com/0ZG5S5cR 13:09:04 (That's the <>^v implementations.) 13:09:48 -!- asiekierka has quit (Ping timeout: 258 seconds). 13:09:58 >_< 13:10:06 What, you don't like it?-) 13:11:12 Now do the equivalent for Befunge-98: keep an w*h*5 array where the fifth is used for noncardinal deltas 13:12:02 I guess it could be done, theoretically speaking, but I don't quite feel like it. 13:13:24 -!- asiekierka has joined. 13:15:38 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds). 13:21:42 "About NetHack: twilight under the low overhang of the greek gods, and around the egg, keeping it warm and helping it to open any lock...." 13:21:44 Surreal. 13:22:12 The Nethack ones seem to be the best. 13:22:27 -!- asiekierka has quit (Ping timeout: 258 seconds). 13:22:49 It's a relatively low-order model, IIRC, so it doesn't quote so much verbatim, instead... innovates more. 13:25:56 -!- asiekierka has joined. 13:32:48 -!- asiekierka has quit (Ping timeout: 258 seconds). 13:34:48 -!- tombom_ has joined. 13:36:17 -!- asiekierka has joined. 13:36:39 -!- tombom has quit (Ping timeout: 276 seconds). 13:43:09 -!- asiekierka has quit (Ping timeout: 258 seconds). 13:46:38 -!- asiekierka has joined. 13:56:54 fizzie, "op_goleft_right"? 13:57:17 It's like: Keep left → 13:58:32 Now do the equivalent for Befunge-98: keep an w*h*5 array where the fifth is used for noncardinal deltas <-- This would assume static area/AABBs right? 13:59:14 It's independent of your storage solution, but it's probably just a pessimization with hash tables. 13:59:56 indeed 14:07:18 -!- asiekierka has quit (Ping timeout: 258 seconds). 14:10:47 -!- asiekierka has joined. 14:15:19 AnMaster: op_goleft is the op, and _right is the current delta; so that bit is called when you hit a < while moving right. 14:17:57 And what it does is ip -= sizeof(opset) + sizeof(void *); -- subtracting sizeof(opset) moves it one cell left in the code-playfield, and the sizeof(void *) adjustments alters the "depth" so that it will keep going left from then on. 14:19:02 I probably should've just used a void **ip so that the pointer arithmetic would make that look simpler (ip -= 4+1) there, but, well. 14:20:51 (typedef void *opset[4]; currently.) 14:22:31 -!- augur has quit (Ping timeout: 240 seconds). 14:27:21 heh 14:27:37 fizzie, how much do you gain from those 4 pointers thingy? 14:27:46 fizzie, compared to doing it a more "normal" way 14:28:30 fizzie, also why do you store them interleaved? Wouldn't storing the directions separate possibly be better for cache? Well, depends on the type of program 14:29:12 fizzie, also, are you sure that storing a 32 bit offset to some base wouldn't be faster than storing a full 64-bit pointer? Again due to cache 14:29:45 fizzie, oh and where can I get the full source of that program? 14:30:13 Of course I'm not sure, but it's still faster than marsh, which is somewhat similar but calls a "move" function via a function pointer after each instruction. 14:30:29 hm 14:30:48 fizzie, what does += PF_W * sizeof(opset); do? 14:30:57 PlayField_Width presumably. 14:31:05 Yes. Well, including the borders. 14:31:10 I.e. move down one Y-coordinate. 14:31:11 oh so that is the logic for moving to next cell? 14:31:34 fizzie, hm I would have expected it to be in the (presumably) macro IP_GOTO 14:31:57 #define IP_GOTO do { trace(); goto **(void **)ip; } while (0); 14:32:01 s/;$// 14:32:02 otherwise you have to duplicate a lot in about every function 14:33:15 It can't be in IP_GOTO because it depends on the direction. Most instructions are expanded from a macro, so there it is just "next" which expands to NEXT_LEFT (say) which expands to MOVE_LEFT; IP_GOTO; which expands to ip -= sizeof(opset); IP_GOTO; 14:33:26 fizzie, so no macro for it? Presumably for the non-direction changing instructions you have stuff like ip -= sizeof(opset);, ip += sizeof(opset); and so on duplicated a lot? 14:33:27 These direction-changing commands are special, because I need to adjust the distance to change delta. 14:33:36 ah 14:34:08 fizzie, the down_down, up_up and so on variants don't need that though 14:34:34 fizzie, what is the type of ip? 14:34:37 Yes, I just thought they looked aesthetically more pleasing like that, as opposed to having just MOVE_DOWN there. 14:35:27 It's an unsigned char * at the moment, with casts, but I have been thinking of changing it to void ** which is more right, and would remove some explicit sizeofs thanks to pointer arithmetic rules. 14:35:41 I never need to point between the void *s there, after all. 14:35:57 "so there it is just "next" which expands to NEXT_LEFT (say) which expands to MOVE_LEFT" <-- err, a lot of indirection in those macros? ;P 14:36:33 fizzie, yes the sizeof thingy confused me. What is opset btw? 14:36:41 (typedef void *opset[4]; currently.) 14:36:50 hm 14:37:27 fizzie, url to this amazing code 14:37:29 It's basically the four pointers to the different-delta implementations of a single playfield cell (or a single instruction, in the ops table). 14:37:33 There is still no URL. 14:37:43 fizzie, any reason not to upload it somewhere? 14:38:13 No particular reason, no. I just don't have a habit of sharing absolutely everything I do. 14:38:32 :/ 14:38:39 fizzie, could you please share this one? 14:38:58 Aren't you a more 98 person, anyway? 14:39:27 Your habits are poor. 14:39:30 It is still interesting to study. 14:39:34 I'll try to remember how I had my git.zem.fi configured as soon as I finish testing the non-interleaved version. 14:39:50 fizzie, how many files is it? 14:39:58 One. 14:40:05 well then, why not pastebin? ;) 14:41:37 fizzie, btw hypothesis: interleaved will possibly be better for programs turning a lot. It would most likely be better for >:#,_@ style constructs. Non-interleaved will be better for when the program goes in a straight line most of the time. 14:42:01 -!- BeholdMyGlory has joined. 14:42:16 Well, if you absolutely must have an intermediate version, http://pastebin.com/ah2NcAgV 14:43:02 fizzie, hm? You mean one mixed interleaved/non-interleaved? 14:43:45 No, that's the interleaved thing. 14:43:50 ah good 14:43:53 But it's not release-quality. :p 14:44:14 fizzie, TURN()? 14:44:29 Turns to arbitrary delta. 14:44:39 fizzie, is it 93 + extras then? 14:44:40 -!- MizardX has joined. 14:44:59 No, "arbitrary" meaning any of the four cardinal ones not depending on what the ip is now. 14:45:05 That's a rather curious meaning, but anyway. 14:45:19 fizzie, oh, but why would it be useful for 93? 14:45:35 oh wait, ? 14:46:22 Hrm? I use it in ? only, yes. I could have specialized versions of ? for different deltas (they'd look very much like the current op_gofoo_bars) but I didn't think it was so performance-sensitive. 14:46:49 hah 14:46:59 fizzie, high speed random number generators! 14:47:50 fizzie, huh? where is next defined? 14:48:00 It's a macro parameter. 14:48:03 oh duh 14:49:09 -!- oerjan has joined. 14:51:26 fizzie, out of interest, why if and not switch for op_rand? 14:52:13 No real reason for that either. The if takes perhaps two lines less vertical space. 14:52:24 Or three, depending on bracing. 14:52:26 hm perhaps 14:52:45 Or zero, depending on bracing. :-P 14:52:47 or one less but that would be messy 14:53:38 switch (t) { case 0: TURN(0); NEXT_LEFT; 14:53:38 case 1: TURN(1): NEXT_RIGHT; 14:53:38 case 2: TURN(2): NEXT_UP; 14:53:38 case 3: TURN(3): NEXT_DOWN; } 14:53:39 you wouldn't need a variable t though, so that line would be removed and it would be rand()%4 in the switch header 14:53:53 True that. 14:54:01 So negative one, depending on bracing. 14:54:12 Deewiant, or two less 14:54:18 Two? 14:54:28 Deewiant, yes, just write two of the cases on the same line 14:54:41 That's getting unreadable already :-P 14:54:43 I didn't say it was a good idea 14:55:09 Doesn't fit in 80 columns. 14:55:13 fizzie, memcpy(pfcode[pos], ops[val], sizeof *pfcode); <-- wonderful 14:55:31 What's special about that? 14:56:09 Deewiant, did I say it was special? 14:56:18 You said it was wonderful, which is certainly special. 14:56:26 -!- augur has joined. 14:56:41 mhm 14:56:59 I'll have to remove those memcpys for the non-interleaved versions, unfortunately. Updating four far-away locations on each 'p' might hurt. Well, we'll see after some testing. 14:57:18 fizzie, ah hm didn't think about that 14:57:37 fizzie, remember to test it on a wide selection of representative b93 programs ;) 14:58:02 pahaha 14:58:08 Adrian^L: i should've known it was you 15:00:01 lordy, did you actually idle in here for a month before you said something? 15:05:57 -!- asiekierka has quit (Ping timeout: 258 seconds). 15:09:26 -!- asiekierka has joined. 15:11:47 -!- augur has quit (Ping timeout: 276 seconds). 15:18:36 -!- asiekierka has quit (Ping timeout: 258 seconds). 15:19:49 -!- augur has joined. 15:22:05 -!- asiekierka has joined. 15:26:32 fizzie, how goes jitfunge now? 15:27:08 how far does it get in mycology and can it run underload.b98? 15:27:14 BUBAD. 15:27:25 Deewiant, BUBAD? That looks mangled 15:27:37 GGBG. 15:27:49 Deewiant, so , is completely broken or what? 15:28:19 jitfunge has a hard time being "completely broken", it seems to usually be partially broken. 15:28:21 assuming GGBG was what it output for GOOD 15:28:26 :D 15:28:30 It wasn't. 15:28:36 Deewiant, then what was it? 15:28:42 It was GGBG. I don't know why it output it. 15:28:57 heh 15:29:12 Deewiant, but at what point does it output that? 15:29:13 , seems fine, anyhow. 15:29:17 See the logs. 15:30:23 Deewiant, which part of it? 15:31:21 Of the logs? Just grep for GGBG. 15:31:24 oh found it 15:31:34 GOOD: 10` = 1 15:31:34 GGBG 15:31:34 GOOD: a pushes 10 15:31:35 hm 15:31:40 it skips several lines there 15:31:43 as far as I can tell 15:32:54 Deewiant, btw: 15:32:57 GOOD: a pushes 10 15:32:57 GOOD: b-f push 11-15 15:33:02 why are those separated? 15:33:19 like why not: a-f pushes 10-15 15:33:23 IIRC, it only checks for reflection on a. 15:33:28 GOOD: a pushes 10 15:33:28 GOOD: b-f push 11-15heh 15:33:29 argh 15:33:34 * AnMaster kills synergy 15:33:35 Or something like that. 15:33:41 heh was what I typed 15:33:51 then I got a ghost paste in the buffer at the start somehow 15:33:57 Or it has a couple of error messages for a, but just that one GOOD/BAD for b-f. 15:34:00 just a split second before I hit enter 15:34:09 hm 15:36:16 Based on an average of one (1) runs, the difference between interleaving isn't very large: http://pastebin.com/J3YshH7a 15:36:24 -!- FireFly has joined. 15:36:37 Discount the copy-paste problem that got the compilation and running on the same line. 15:36:42 fizzie, what is the benchmark? 15:36:43 (1) doesn't tend to work that well, I'd do (2). 15:37:04 fizzie, btw how does that ff3.c handle # in column 80 when going > ? 15:37:07 AnMaster: 91+:*-:0`#@ #._ 15:37:38 Deewiant, oh I see. 15:37:56 AnMaster: UNDEF: edge # skips column 80 15:37:57 91+:*, incidentally, is an awfully complicated way of writing "d". 15:38:08 ah 15:38:23 fizzie, I mean, you don't crash due to missing the marker in the padding column 15:38:42 AnMaster: There's two column's worth of padding because of that. 15:38:48 Deewiant, eh how does 91+:* add up to d? 15:38:54 Not d, "d". 15:39:01 oh hah 15:39:06 but why 15:39:21 In -98, the equivalents would be a:* and 'd 15:39:54 Deewiant, I guess it is semantics: Is it used as a char or as a number 15:40:22 Bah, who cares about assigning semantics to stack cells in Befunge :-P 15:40:34 isn't 91+:*-:0` comparing -100 to 0? 15:40:43 On the first iteration, yes. 15:40:47 oh right 15:41:09 That code is equivalent to: int s = 0; do s -= 100; while (s <= 0); 15:44:45 Deewiant, unfair to bignum ;P 15:45:17 A bit unfair to 64-bit cells too, like I noticed when trying to benchmark against marsh, which uses a stack made out of longs. 15:45:52 hah 15:46:06 fizzie, how long until you gave up? Or did it finish? 15:46:22 -!- coppro has quit (Ping timeout: 246 seconds). 15:46:51 * AnMaster is unsure what rough timeframe it would end up in for 64-bit cells 15:47:23 multiply by 2^32 ~= 4 billion 15:47:30 lets say 6 seconds for 32-bit. Then we have 6 * 2^32... Ouch 15:47:58 I waited some five minutes or so. 15:48:02 Yeah, I ran it for about 10 mins in CCBI and cfunge and then realized they were both 64-bit :-P 15:48:18 about 817 years 15:48:20 it seems 15:48:27 Only? 15:48:32 Long enough anyways. 15:48:38 well, I could have typoed in units(1) 15:48:38 `calc 6*2^32 seconds in years 15:48:51 oerjan, what bot? 15:48:52 6 * (2^32) seconds = 816.613247 years 15:48:55 ah 15:49:10 `run type calc 15:49:11 calc is /tmp/hackenv.15888/bin/calc 15:49:13 marsh takes 12 seconds on my system; not that another power of 2 matters *that* much. 15:49:16 `file bin/calc 15:49:18 bin/calc: Bourne-Again shell script text executable 15:49:50 `run head bin/calc | tr '\n' '|' 15:49:51 #!/bin/bash|if [ ! "$1" ]|then| echo 'Calculate what?'| exit 1|fi||QUERY=`echo -n "$1" | od -t x1 -A n -w1000 | tr " " %`||lynx --cfg=/dev/null --lss=/dev/null \| 15:50:11 `run grep -i google bin/calc 15:50:12 --dump --width=1000 'http://google.com/search?q='"$QUERY" | 15:50:15 ah 15:50:49 :-P 15:50:53 Deewiant, how long did it take for 32-bit CCBI? 15:51:11 I hadn't a 32-bit CCBI binary so I haven't tried. 15:51:17 ah 15:51:35 Deewiant, presumably more than 6 seconds though 15:52:40 bbl 15:53:33 3 mins. for CCBI (in B98 mode) 15:53:40 Don't know what to compare that to, though. 15:53:47 Or what version, for that matter. 15:54:03 Deewiant: Did you notice the part about CCBI reflecting on ; in 93-mode? 15:54:36 Yes, and no need to single out ;, it'll reflect on every non-93 instruction. 15:55:23 Right, well, he was strongly against that sort of thing. :p 15:55:43 Yes, I noticed. :-P 15:56:22 CCBI takes 27 seconds for me here. 15:56:33 -93 only. 15:57:25 Average of 20 runs; not much of a difference: http://pastebin.com/EwDv8J2e 15:57:51 Could even have been other stuff on the system, it's not very idle. 15:58:00 11 seconds in -98; I wonder how that manages to be faster. 15:58:55 Oh, it could be the wraparound. 15:59:03 It probably is, actually. 15:59:28 * Deewiant makes it non-wrappy 16:00:25 Yeah, now it's 9 seconds in -93 and 14 in -98. 16:00:53 The Befunge-93 loader always makes an 80x25 box, you see. 16:01:12 But, IIRC, it uses the same wrapping code as -98. 16:01:26 So for every iteration, the -93 did an extra 70 or so nops. 16:02:34 ff3 does those nops too; haven't bothered to try tracking borders. For non-p-heavy programs it could make sense to put the wrapping instructions around the program, not the whole playfield. 16:06:53 Right, well, he was strongly against that sort of thing. :p <-- who? Rugxulo? And why is he against it. 16:07:48 So for every iteration, the -93 did an extra 70 or so nops. <-- yet it was faster? 16:08:07 No, it was more than twice as slow. 16:08:12 Yeah, now it's 9 seconds in -93 and 14 in -98. 16:08:19 you reversed the order then 16:08:22 Notice how the tense changed. 16:08:36 aha 16:08:40 "_Now_ it _is_ [faster in -93]" 16:08:52 "The -93 _did_ an extra 70 or so nops" 16:09:08 But, IIRC, it uses the same wrapping code as -98. <-- should have been used there then? 16:09:10 or something 16:09:20 The Befunge-93 loader always makes an 80x25 box, you see. <-- or on that line 16:09:31 Eh? 16:09:32 -!- Tritonio_GR has quit (Read error: Connection reset by peer). 16:09:37 Those remain correct. 16:09:52 Deewiant, so how did you make it faster if you didn't change those 16:10:02 AnMaster: 2010-04-13 17:59:04 * Deewiant makes it non-wrappy 16:10:11 ah 16:10:16 didn't notice that 16:10:44 Deewiant, then why is 93 mode faster than 98 mode? Completely different mainloop or something? 16:10:57 Well yes, lots of simplifications can be mode. 16:10:59 made. 16:11:26 Deewiant, true but is it worth the code duplication and such? 16:11:56 The code duplication would happen anyway, to not slow down 98. 16:12:06 hah 16:12:42 fizzie, why @eris? A strange system name to me 16:13:58 Couldn't figure out anything else, so used the well-used and -reused Greeks. 16:14:08 ah 16:14:13 fizzie, who was eris then 16:14:25 Goddess of discord; also the goddess of discordians. 16:14:26 Simplifying the wrapping code brought it down to 16 seconds. Still loses to -98, though. 16:14:31 hah 16:14:35 * oerjan throws AnMaster an apple 16:14:45 oerjan: Be careful, you might throw it over his head. 16:14:53 * oerjan then whistles innocently 16:15:00 -!- lereah_ has quit (Quit: Leaving). 16:15:10 :D 16:15:11 oerjan, I'm not picking up anything _you_ threw. 16:15:23 who knows, it could be a tick one that sprays water at you or something 16:15:40 Momus, where fungot runs, is another one of those. 16:15:40 fizzie: i'd be happy to help you with that? 16:15:44 Momus or Momos (μῶμος) was in Greek mythology the god of satire, mockery, censure, writers, poets; a spirit of evil-spirited blame and unfair criticism. 16:15:45 darn, saved by his natural paranoia 16:15:48 Thought it appropriate for a webserver. 16:16:32 fizzie, quite a diverse list 16:16:53 especially the censure part doesn't seem to fit in 16:17:21 `define censure 16:17:23 * harsh criticism or disapproval \ * reprimand: rebuke formally \ * excommunication: the state of being excommunicated 16:18:57 -!- comex has quit (Quit: leaving). 16:19:24 * AnMaster puts the apple in oerjan's pocket, picking it up using a long pole with a griping tool at the end 16:20:30 -!- comex has joined. 16:20:43 I wonder why CCBI is about 5-10% faster on underload.b98 when it's got 64-bit cells. 16:20:56 Deewiant, heh 16:21:42 you fool, it was a golden apple! 16:22:00 golden delicious, to be precise. *munch* 16:22:01 oerjan, well the grip was coated in aqua regia. 16:22:27 (with a thickening substance added, so you can actually coat with it) 16:22:44 oerjan, I don't think that is healthy to eat 16:23:30 i've got plenty of acid in my stomach already. 16:23:52 hah 16:35:17 -!- charlls has joined. 16:49:58 -!- nooga has quit (Ping timeout: 264 seconds). 17:38:31 -!- asiekierka has quit (Ping timeout: 258 seconds). 17:41:01 -!- asiekierka has joined. 17:46:50 -!- cheater2 has quit (Ping timeout: 240 seconds). 17:47:43 -!- asiekierka has quit (Ping timeout: 258 seconds). 17:50:03 -!- asiekierka has joined. 17:51:21 -!- cheater2 has joined. 17:53:08 -!- Geekthras has quit (Ping timeout: 240 seconds). 17:55:42 -!- Geekthras has joined. 18:01:31 -!- asiekierka has quit (Ping timeout: 258 seconds). 18:03:51 -!- asiekierka has joined. 18:05:26 -!- charlesq__ has joined. 18:05:51 -!- charlesq__ has quit (Read error: Connection reset by peer). 18:08:48 -!- charlls has quit (Ping timeout: 258 seconds). 18:09:10 -!- cheater2 has quit (Ping timeout: 264 seconds). 18:23:05 -!- charlls has joined. 18:23:14 -!- gapz has joined. 18:23:30 -!- gapz has left (?). 18:23:59 -!- aschueler has quit (Ping timeout: 276 seconds). 18:25:06 -!- aschueler has joined. 18:31:20 -!- Gracenotes has quit (Ping timeout: 276 seconds). 18:33:12 -!- nooga has joined. 19:26:07 -!- kar8nga has quit (Remote host closed the connection). 19:30:45 -!- pikhq has quit (Read error: Connection reset by peer). 19:41:53 fizzie, so how goes it? 19:53:44 Which "it"? 19:53:51 -!- cheater2 has joined. 20:00:48 -!- Tritonio_GR has joined. 20:18:52 -!- cat_ has joined. 20:32:47 -!- cat_ has quit (Read error: Connection reset by peer). 20:32:56 -!- cat_ has joined. 20:33:18 -!- cat_ has left (?). 20:50:09 -!- oerjan has quit (Quit: leaving). 21:15:36 -!- ais523 has joined. 21:22:08 -!- asiekierka has quit. 21:28:00 -!- pikhq has joined. 21:30:59 Internet back! 21:31:40 fizzie, jitfunge and ff3 21:31:45 or whatever 21:32:05 fizzie, and does -fmerge-all-constants really make any difference? 21:32:10 and does it still work then? 21:32:26 I'm getting half a mind to write a Befunge-98 interpreter. 21:32:38 Oh, BTW, I fixed my Befunge-93 interpreter. 21:32:44 pikhq, ah, link? 21:32:51 Un momento. 21:32:59 http://sprunge.us/CSZJ 21:33:05 I prefer a memento to be frank ;P 21:33:24 AnMaster: The command line was from Rugxulo's marsh compilation, I just used the same flags to be fair; probably doesn't much matter. 21:34:28 pikhq, it still counts -128 is not a prime 21:34:42 pikhq, still valgrind errors too 21:34:53 AnMaster: My funges aren't really going; I'm too flu-ish to work on them. But you can get the latest (optionally non-interleaved) ff3 from http://git.zem.fi/ff if you like. There's also a nasty jitfunge bug I've been trying to track, but probably won't tonight. 21:34:56 AnMaster: Uh, WTF and WTF? 21:35:20 pikhq, sec 21:35:23 jitfunge *brain explodes* 21:35:32 AnMaster: Valgrind's stack traces are indeed not very useful for problems in LLVM's JIT'd functions: 21:35:33 ==9627== Conditional jump or move depends on uninitialised value(s) 21:35:34 ==9627== at 0x4048354: ??? 21:35:34 ==9627== by 0x5C22C4C: (below main) (libc-start.c:226) 21:35:41 AnMaster: Well, it definitely does Wumpus correctly. :P 21:35:50 pikhq, http://sprunge.us/iHXP 21:36:21 fizzie, what about gdb? Is it as useless or does llvm do some funky JIT debug info that gdb can read? 21:36:51 fizzie, oh and with --db-attach remember to never to s or c! When I did that I had to kill -KILL valgrind 21:37:03 I presume the same applies to any other continue commands 21:37:40 AnMaster: Oh, that's an easy fix. 21:38:13 AnMaster: Well, I could attach a debugger, I guess. There's a minor pessimization in the code in that it creates an "entry point" at the end of a (looping) function instead of the beginning; that results in a bit convoluted LLVM assembly, but I don't want to fix it because it would probably hide this bug. 21:38:38 pikhq, what was the bug with wumpus btw? 21:39:01 AnMaster: I had val1 and val2 as unsigned ints instead of ints. 21:39:17 Thus screwing up signed comparison. 21:39:19 http://sprunge.us/LGJX 21:39:32 pikhq, heh that caused wumpus failing? 21:39:36 Still getting issues with prime, but no invalid reads outside of libc. 21:39:37 Yes. 21:39:48 It also caused the failure of a simple benchmark. 21:40:32 pikhq, I still get negative values in prime? 21:40:54 AnMaster: I'm not sure. 21:40:58 or do you mean that was the still left issue 21:40:59 AnMaster: Heh... if I add the "--db-attach=yes" flag, the error disappears. 21:41:05 fizzie, whoops 21:41:12 Yes, that's the still-remaining issue. 21:41:18 I'm honestly not sure how that's doing wrap-around. 21:41:36 pikhq, printf("%d") -> printf("%u") or such perhaps 21:41:38 ? 21:41:42 haven't looked at the code 21:42:03 what are you doing 21:42:07 printf %i? 21:42:15 what the heck is %i 21:42:32 ... Signed integer. 21:42:39 pikhq, that is the issue then :P 21:42:44 No it's not. 21:42:55 hm 21:42:56 okay 21:43:04 *Oh*. 21:43:19 That's sticking numbers in fungespace, yes? 21:43:24 pikhq, yes 21:43:33 Fungespace is a bunch of signed chars. 21:43:38 pikhq, is that the spec? 21:43:50 "Undefined". 21:44:07 pikhq, does it say it is char even? 21:44:20 It's an "80x25 torus of ASCII text", that's about all. 21:44:37 No, it would be entirely valid for that to be 7-bit. 21:44:38 Many make it unsigned bytes. 21:44:39 pikhq, oh and it segfaults on pi2 again 21:45:14 9 s->buf = realloc(s->buf, s->bufsz); 21:45:16 on that line 21:45:23 *** glibc detected *** /home/arvid/dragon/funges/pikhq-bef/pikhq-bef-tux: realloc(): invalid next size: 0x0000000000607010 *** 21:45:26 How odd. 21:45:40 AnMaster: Here's the very useful gdb backtrace on the error: 21:45:42 pikhq, valgrind shows a write error before 21:45:43 (gdb) bt 21:45:43 #0 0x0000000004048354 in ?? () 21:45:43 #1 0x00000007ff0002e0 in ?? () 21:45:43 #2 0x0000000005c77a3f in _IO_new_file_overflow (f=0x0, ch=-16776704) at fileops.c:889 21:45:43 #3 0x0000000000000000 in ?? () 21:45:59 fizzie, hah 21:46:09 fizzie, disassemble, I guess that is all you can do 21:46:25 pikhq, I suspect you overwrite malloc bookkeeping data 21:46:30 just a hunch 21:46:48 fungespace[val1][val2] = val3; 21:46:57 pikhq, hm? 21:47:07 AnMaster: Yes, it's just that the disassemblies are a lot more understandable when it's my code generator instead of LLVM's. 21:47:08 pikhq, you fail at bounds checking? :D 21:47:18 Yes, there is no bounds checking. 21:47:21 fizzie, hah 21:47:31 pikhq, well that is wrong ;P 21:47:46 AnMaster: No, it's invoking undefined behavior. 21:47:47 :P 21:47:48 pikhq, I would do it abs(x) % 80 and so on 21:48:08 pikhq, sure, but I consider it a bug to crash on invalid input 21:48:09 I'll go make it do more sane behavior, though. 21:48:12 for any app 21:48:33 -!- charlls has quit (Read error: Connection reset by peer). 21:48:43 AnMaster: Yes, this is why I'm adding boundschecking. 21:48:48 :) 21:49:06 pikhq, I recommend using a fuzz tester btw. It would catch this type of stuff 21:49:42 Eh. 21:49:53 Please input a number: 3 21:49:54 UNDEF: got 3 which is hopefully correct. 21:49:54 Please input a character: UNDEF: got 10 ' 21:49:54 ' which is hopefully correct. 21:49:56 ff3 doesn't do bounds checking either, to be honest; it's not like a well-behaved program would need it. 21:49:59 I don't think that is how it should work 21:50:05 but it might be undef in b93 21:50:12 There's... Issues with that. 21:50:23 It's undefined, but yes, I should fix it. 21:50:29 I think it's undef in b98 as well. 21:50:30 pikhq, in b98 I'm pretty sure integer input should eat the newline if one follows it directly 21:50:37 Deewiant, is it? Huh 21:50:37 fizzie: Link to fastfunge? 21:50:39 IIRC the spec doesn't say that. 21:50:43 AnMaster: "Undefined but I should fix it." 21:50:48 Deewiant, "everyone does it"? 21:50:56 I did it because it seemed sensible, and since then it seems everybody else does it. :-P 21:51:01 Deewiant, well okay 21:51:28 Deewiant, you are a trendsetter ;P 21:51:36 Yep :-P 21:51:39 pikhq: http://git.zem.fi/ff 21:51:57 pikhq, I get valgrind errors enter a to mycouser as the number 21:52:08 yes the letter a 21:52:17 ==27876== Use of uninitialised value of size 8 21:52:18 ==27876== at 0x4E695CB: _itoa_word (in /lib/libc-2.11.1.so) 21:52:19 AnMaster: One screaming bug at a time man. :P 21:52:27 pikhq, link to bug tracker? 21:52:55 AnMaster: irc://irc.freenode.com/esoteric 21:53:00 haha 21:53:13 pikhq, well I will write them down in a text file and pastebin that 21:56:16 pikhq, okay for me to paste the bug descriptions now? 21:56:33 Invalid reads fixed (stupidity in stack regrowing). 21:56:36 http://sprunge.us/TfeK 21:56:39 mycouser.b98: 21:56:40 * valgrind errors on ctrl-d at integer prompt. B98 reflects. Unknown what B93 does. 21:56:40 * valgrind errors on non-numeric data at integer prompt. This might be undef in b93, b98 tends to (defined to?) discard leading non-numeric data, and keep retrying until it get some numeric data. 21:56:43 Erm. Resizing. 21:57:04 Yes, that latter one is defined. 21:59:01 The only valgrind errors I'm seeing are from libc... 21:59:25 I have a sneaking suspicion that their printf does crazy stuff. 21:59:47 pikhq, the ones I see there are itoa 22:00:13 pikhq, http://sprunge.us/KbTd 22:00:29 pikhq, and printf 22:00:47 pikhq, but that might be because itoa returns some undef value 22:00:52 due to you passing it a non-number 22:00:55 Possible. 22:01:36 pikhq, oh see: 22:01:38 ==27931== Uninitialised value was created by a stack allocation 22:01:38 ==27931== at 0x400C68: instrs (pikhq-bef.c:153) 22:01:43 with valgrind --track-origins=yes ./pikhq-bef-tux ~/dragon/src/own/cfunge/trunk/mycology/mycouser.b98 22:02:05 Oh, that's helpful. 22:02:11 pikhq, well yes, it is slower too 22:02:19 well not noticeable so for this case 22:02:28 Except that nothing is made at that line. 22:02:37 Except the stack frame itself. 22:02:37 pikhq, sure it is, the stack frame 22:02:40 pikhq, exactly 22:02:49 pikhq, which means you know which function 22:03:20 heh seems to be main one 22:03:42 pikhq, point is, I think you do something funky when trying to parse letters as integers 22:03:49 *Ah*. 22:04:07 When that happens, the value ends up being unchanged from what it was. 22:04:09 bad pikhq not checking return value of scanf :P 22:04:15 Said value is... Undefined. 22:05:15 exactly. ("Don't use scanf()" is my preference, but if you use it you should know the semantics, because then you will decide not to use it) 22:05:21 ;) 22:05:28 http://sprunge.us/CJcX 22:05:36 What's wrong with scanf? 22:05:51 There it is without odd valgrind errors, and I'll go about fixing the actual *behavior* next time the mood strikes. 22:06:03 (I know what to fix and how to fix it, just can't be bothered to) 22:06:27 Deewiant, that it is a mess? Especially for reading strings 22:06:34 somewhat less so for integers, but still 22:06:38 How is it a mess? 22:07:28 Deewiant, well, I don't know how to explain it. It feels like gets() almost in "eww" level 22:07:43 Seems fine to me :-P 22:07:47 only way it could be worse would be using global buffers and being non-reentrant 22:08:04 strtok() is that level of ewww 22:08:28 "* The strtok() function uses a static buffer while parsing, so it's not thread safe. Use strtok_r() if this matters to you." 22:09:12 What I'd expect from C :-P 22:10:29 hah 22:10:54 pikhq, testing on random data I get a valgrind error 22:10:59 http://sprunge.us/JMQU 22:11:04 that was on the program itself 22:11:14 should I filebin my compiled version? 22:11:44 pikhq, or can you reproduce it with your own copy? 22:12:55 pikhq, *prod*? 22:13:08 What's your rush? 22:13:53 Deewiant, ? 22:14:00 "*prod*" 22:14:44 I want to know if I should filebin it or go do other stuff 22:14:49 while being afk 22:15:12 wow I got it to do: 22:15:14 Illegal instruction 22:15:17 "*prod*" generally doesn't help 22:15:21 by running it on /dev/urandom 22:15:22 :D 22:15:29 >_< 22:15:39 pikhq, see http://sprunge.us/NAIM too 22:15:46 Deewiant, yes but it still shouldn't crash! 22:16:06 IIRC pikhq was accepting crashes for undefined behaviour 22:16:56 theory: it crashes on negative values because lookup table go from 0 to 256 22:17:04 err 22:17:06 0-255 22:17:07 and fungespace is signed 22:17:16 so it reads below the place it should read 22:19:19 okay there are two things. One is somehow loading the file it can end up doing something fishy 22:19:26 the other seems to be what I thought 22:21:53 Deewiant, basically, using chars in the range 128-255 I think you can cause it to execute any code you want 22:22:19 but I'm not sure how much you can trigger it. Some tests on urandom had it jumping into unmapped address space at one point 22:22:55 ==28011== Access not within mapped region at address 0xD39AD3D 22:22:55 ==28011== at 0xD39AD3D: ??? 22:22:55 ==28011== by 0x400C56: main (pikhq-bef.c:150) 22:23:19 or: 22:23:20 ==28013== Bad permissions for mapped region at address 0x3 22:23:20 ==28013== at 0x3: ??? 22:23:20 ==28013== by 0x400C56: main (pikhq-bef.c:150) 22:23:53 Deewiant, wow I got it to end up inside the valgrind helper itself 22:23:55 ==28016== Bad permissions for mapped region at address 0x380040B0 22:23:55 ==28016== at 0x380040B0: ??? (in /usr/lib/valgrind/exp-ptrcheck-amd64-linux) 22:25:42 -!- Oranjer has joined. 22:26:40 "You bumped the wumpus." <-- huh I thought you were eaten instead 22:26:55 There are variants. 22:27:08 -!- Oranjer has quit (Read error: Connection reset by peer). 22:27:35 it seems so 22:28:19 -!- jcp has joined. 22:28:44 -!- Oranjer has joined. 22:29:23 -!- Oranjer has quit (Read error: Connection reset by peer). 22:30:45 -!- Oranjer has joined. 22:36:18 AnMaster: Yeah, well. Make fungespace signed. 22:36:19 Erm. Unsigned. 22:36:53 pikhq, no idea where that is 22:37:38 pikhq, -Dchar="unsigned char"? 22:38:03 (nah, would be evil) 22:38:17 http://sprunge.us/KJTi 22:38:19 Thar. 22:39:26 pikhq, and still this: http://sprunge.us/dJId 22:39:46 pikhq, something messed up in file loading 22:41:19 pikhq, basically you need exp-ptrcheck to detect it because it is writing in a valid area of the memory. Just not the *right* valid area 22:42:03 pikhq, it happens on mycology too I think you go one further than your array 22:42:07 for funge space 22:42:09 or something like that 22:42:11 s/<=/ while(j < 25) { 22:42:28 That should be what the line reads. 22:42:34 145 fungespace[j][i] = c; 22:42:37 is what it reads? 22:42:43 Trivial fix, and surprising that didn't cause breakage. 22:42:49 oh 22:42:50 right 22:43:00 I was going 1 row too far into the array was all. 22:43:10 pikhq, indeed 22:43:29 pikhq, it probably went into some other static data 22:43:41 and valgrind --tool=memcheck (the default) can't detect that 22:43:51 Probably 22:44:13 pikhq, actually, it would have said some other object then. In fact I believe it went into an unused part of the same page 22:44:20 or something like that 22:44:35 and if it is a non-dynamically allocated block memcheck won't do anything much with it 22:45:37 So, it basically managed to not screw anything up via magic. 22:49:01 -!- jcp has quit (Read error: Operation timed out). 22:51:18 -!- songhead95 has joined. 22:53:53 brainfuck compilers for handhelds? 22:54:50 No interpreters! 22:55:05 I have never written a brainfuck interpreter for a handheld!!! 22:55:10 any tips? 22:55:18 wow: http://code.msdn.microsoft.com/ookLanguage 22:55:24 songhead95: hmm, you may be able to write one yourself 22:55:33 BF interps/compilers are some of the easiest programs to write around 22:55:53 as for that msdn link, it doesn't even seem to be an April Fool's joke 22:55:54 yes. I have written compilers for gameboy and iphone 22:55:57 The *only* thing that's even vaguely difficult is parsing it. 22:56:06 don't know how to write an interpreter though 22:56:08 they've just taken to using esolangs as examples for some reason 22:56:16 songhead95: basically, you try to mimic the structure of the program 22:56:28 as in, if the command is >, then add one to the pointer, etc 22:56:32 basically a massive switch statement 22:56:46 yes, I know I sound like a noob, but the '[' and ']' always get me 22:56:54 while looping always gets me 22:56:54 the only slightly difficult thing to do there is handling loops; for BF interps, there are at least three ways to do it, probably five or 6 22:57:09 nice 22:57:23 one easy one is to move forwards/backwards through the program counting brackets until you reach a balance 22:57:34 songhead95: Don't worry. That's the one that it's *possible* to screw up without being a complete noob. :P 22:57:34 -!- oklofok has quit (Read error: No route to host). 22:57:54 -!- oklopol has joined. 22:58:28 so if I'm writing in a c like language, I want to have the whole program stored in a char array 22:58:35 Likely. 22:58:42 and an interger reading it one character at a time 22:58:52 like code[instruction] 22:58:57 For the simple case, yes. 22:59:08 alright 22:59:15 that works fine for BF, it's arguably designed so that that's possible 22:59:34 ok 22:59:48 I will something, and be back! 23:00:53 oh yeah, and one other thing. 23:00:59 I am going to be writing it in bc 23:01:17 so the putchar and getchar will be in base 10/16 23:01:53 or maybe I'll try C first 23:02:01 yeah that sounds easier 23:02:13 sorry i tend to talk to myself in public online 23:02:57 doesn't matter, monologuing can be useful 23:03:04 you sometimes get logreaders responding to you months later 23:03:13 oh 23:03:24 or even just lurkers coming up with something insightful 23:03:35 Yeah, monologuing is fairly normal here. 23:03:54 \\////\\\\///\\\/// 23:04:09 oh I was just playing with the keyboard and accidently hit enter 23:04:18 I don't get a prize for that, do I? 23:04:35 `google bc language 23:04:37 bc is "an arbitrary precision calculator language" with syntax similar to the C programming language. It is generally used by typing the command bc on a ... \ [13]POSIX bc - [14]Plan 9 bc - [15]GNU bc - [16]Example code 23:04:43 Oh, that bc :P 23:04:46 o 23:04:59 songhead95: meh, that's along the same lines as random o-ing 23:05:19 sometimes I type a lot to unstick keys on a keyboard (although not often needed here), and press return just to give something to talk aobut 23:05:21 *about 23:05:55 pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp 23:05:56 -!- coppro has joined. 23:06:02 POOPPY! 23:06:23 I LIKE CHICKEN 23:07:09 hmm, maybe I should link coppro to http://code.msdn.microsoft.com/ookLanguage too 23:08:10 Cross compiling C for the ipod touch, with headers like stdio.h 23:08:15 for the brainfuck 23:08:28 lawlwtf 23:08:46 songhead95: That violates the Apple SDK's license agreement :P 23:08:48 Oo 23:08:48 hmm, maybe I should link coppro to http://code.msdn.microsoft.com/ookLanguage too <-- wth 23:09:17 AnMaster: as far as I can tell, Microsoft wanted an example of adding a new language to Visual Studio 23:09:20 ah 23:09:29 and picked a relatively simple esolang in order to keep the example simple 23:09:32 ais523, why didn't they pick intercal ;P 23:09:36 hah 23:09:38 or unlambda 23:09:44 it is still kind-of crazy that there's semi-offiical support for Ook! in Visual Studio 2010, though 23:09:55 I refuse to believe that you can integrate new languages until they make it easy to use a custom build system 23:09:55 heh, I guess both INTERCAL and Unlambda would be too complex for an example 23:09:57 or dupdog 23:10:08 hardly anyone's heard of dupdog 23:10:10 -!- Oranjer has quit (Read error: Connection reset by peer). 23:10:24 which one was dupdog now again? 23:10:38 AnMaster: it was one developed in this channel when someone was messing with egobot 23:10:42 http://esolangs.org/wiki/Dupdog if you need a link 23:11:19 it's one of those languages that "we" think is almost certainly sub-TC, but can't prove it 23:11:20 -!- Oranjer has joined. 23:11:41 -!- tombom_ has quit (Quit: Leaving). 23:11:43 oh the dual interpreter one 23:11:53 (if you like that category of langs, Xigxag's a fun one; it's been proven that nontrivial Xigxag programs grow indefinitely, but not that you can't get TC behaviour from them anyway) 23:12:21 my favorite category of the wiki is unknown computational class 23:12:47 My favorite category is Languages written by Gregor Richards 23:13:33 By 'sub-TC', you mean you think it is not TC? 23:13:43 ais523, idea: implement it in a sub-TC lang 23:13:51 ais523, I don't think it would be impossible 23:13:54 coppro: yep 23:14:05 well, to be precise, sub-TC means it can't do everything that a TC lang can 23:14:22 uncomputable is also non-TC, but it's over TC rather than under 23:14:32 ok 23:14:45 although the existence of uncomputable langs is really a matter of philosophy, as to whether they can really be said to exist or not 23:14:47 a language that's only command is "X" 23:14:52 you can define them but not implement them 23:14:53 X prints out one of two things 23:15:01 P=NP or P!=NP 23:15:01 ais523: Guhh ... not necessarily? A language can be uncomputable but not useful for computation, can't it? 23:15:09 who will write the interpreter 23:15:13 Gregor: good point, it's independent 23:15:15 ais523, that makes natural languages uncomputable right? 23:15:35 AnMaster: natural languages are incompletely specified, you can't work out their computational class as a result 23:15:53 songhead95: it's trivial to write an interp for that, just so long as you don't care about the output being correct 23:15:59 ais523, well if you can describe an uncomputable language in natural languages... 23:16:16 AnMaster: again, arguably you can't describe /anything/ in a natural language 23:16:26 ais523, eh? 23:16:30 and I'm not convinced being able to describe something is the same as being able to implement it 23:16:37 hm okay 23:16:45 AnMaster: because the meaning isn't pinned down to the level required to have a useful implementation 23:16:56 I have a slightly related question 23:17:21 ais523, can you implement anything in a natural language? Well I guess IRP... 23:17:26 songhead95: well, feel free to ask it; also, you need to allow for the way that multiple conversations can happen in the same channel 23:17:31 AnMaster: I'm not sure if IRP coutns 23:17:32 *counts 23:17:35 Yay IRP 8-D 23:17:36 ais523, heh 23:17:42 but it's one of those langs like HQ9+ 23:17:46 obviously useless, yet it makes you think 23:18:05 ais523, it is far more powerful than HQ9+ if the interpreters are in the mood for it ;P 23:18:19 AnMaster: yep, but rather less accurate 23:18:30 -!- Sgeo has joined. 23:18:34 what do we have the computational class of HQ9+ down as atm anyway? 23:18:36 ais523, well, it is probabilistic 23:18:46 probabilisticness makes it so hard to tell 23:18:48 and the probability decreases with the complexity of the program 23:19:10 HQ9+ is probabalistic? 23:19:17 Sgeo, no. IRP 23:19:33 if there were a theoretical computer with two processors, one infinitely fast, and another at 1hz, and it's function is to run code on the infinite speed processor, piping random input to it while the 1hz processor waits 1 second, would it solve the halting problem because all possible outcomes/modes of running were run in 1 second? 23:19:57 songhead95: yep, the existence of an infinitely fast computer is one way to get uncomputable behaviour 23:20:04 or, well, anything that lets you do infinite computations in finite time 23:20:37 all known methods to get uncomputable behaviour are impossible to implement; if someone found something super-TC that could be implemented, it would be a major shock to anyone who knew what the terms meant 23:20:49 so the halting problem is near-computable when the code doesn't take input, and is run on a superfast processor 23:21:13 well, you can think of it as being only a "factor of infinity" away from being computable 23:21:17 but that's rather a large factor 23:21:42 ais523, it would be a major shock to me if someone found something that was an UTM and could be implemented 23:21:47 as an UTM I mean 23:22:01 wouldn't a factor of infinity be infinity 23:22:02 ? 23:22:02 AnMaster: because that requires infinite data storage 23:22:06 songhead95: yes 23:22:10 so there goes my theory 23:22:13 the point is, you need a computer that's infinitely more powerful than existing ones 23:22:18 any finite number isn't good enough 23:22:19 ais523, well yes that is why a real life UTM would be a major shock indeed 23:22:35 AnMaster: real life extendable-storage is entirely possible, though 23:22:44 and the only reason it wouldn't work is the Earth running out of resources to extend it 23:22:47 ais523, but if the universe is infinite (I don't know which way the astronomers currently think it is) then I guess... 23:22:48 -!- FireFly has quit (Quit: Leaving). 23:23:00 AnMaster: the observable universe is finite 23:23:21 (by definition) 23:23:29 ais523, yes but it only needs to be infinite in potentia. You can start the program while you are still building the end of the tape 23:23:30 It could be infinite 23:23:47 Slereah: The UNIVERSE could be, the OBSERVABLE universe could not. 23:23:54 There were some theories about an infinite observable universe 23:24:03 Back in the static model 23:24:08 ais523, sure, you might have to pause the thing if it caught up with you and continue extending it 23:24:15 I suppose if time goes infinitely back, sure, but that's all weird :P 23:24:16 Gregor: by definition, combined with the values of a few constants which we happen to know the approximate values of 23:24:20 AnMaster: pausing's fine 23:24:24 the issue is literally running out of storage 23:24:30 Scala: Good language, or bad language 23:24:36 never used it 23:24:38 Ugly language. 23:24:45 -!- BeholdMyGlory has quit (Remote host closed the connection). 23:24:49 -!- augur has quit (Ping timeout: 240 seconds). 23:24:53 The usual argument against it was the blackness of the sky 23:25:04 But there are actually some configuration where it doesn't happen 23:25:13 A universe with a fractal structure works 23:25:16 pity alise isn't here, that's who you should ask for (relatively accurate) judgements on how good languages are 23:25:22 ais523, indeed. Well if the universe is infinite and the observable universe is not then you could just extend the tape when it was needed 23:25:38 as you can never catch up with the speed of light this is no problem 23:25:46 AnMaster : You cannot, actually 23:25:52 AnMaster: it is a problem, because you can never get outside the observable area 23:25:54 There were some calculations done about this 23:25:58 it doesn't get bigger, it gets smaller over time 23:26:04 ais523, eh? 23:26:10 Also, space expansion 23:26:10 how would that work 23:26:12 so you can't "wait for things to become observable" 23:26:23 ais523, how can it get smaller over time+ 23:26:26 s/+/?/ 23:26:40 AnMaster: think of it staying the same size but everything else getting bigger to compensate 23:26:44 so effectively, it gets smallre 23:26:45 *smaller 23:26:48 Grrr 23:26:48 err 23:27:00 ais523, you mean that space expands? okay 23:27:02 I did NOT want to be reminded about how there's a RoboZZle app for iPhone but not Android 23:27:14 ais523, well does one end of the tape have to be able to observe the other end? 23:27:32 AnMaster: yes, or you can /never/ get to the bit of the tape you can't observe 23:27:36 as in, you have two different programs 23:27:40 you seem to be missing the concept of "observable" here 23:27:55 there is no way that anything that isn't observable, from your point of view, can ever affect you 23:27:59 no matter what you do or what happens 23:28:03 at least, with current physics 23:28:04 ais523, well I assume that if I wait long enough the light from it will reach me. Otherwise I would just setup a wormhole and go over there 23:28:12 AnMaster: no, it won't 23:28:18 ais523, that makes no sense 23:28:19 it's moving away from you at faster than the speed of light 23:28:20 Would it be a bad thing to do most of my recreational programming in Scala? 23:28:28 and the light gets further away from you over time 23:28:34 ais523, well okay so the tape would break by that wouldn't it? 23:28:50 ais523, how comes earth and everything isn't torn apart by this 23:28:50 AnMaster: probably, yes 23:29:08 AnMaster: because the effect over a small scale is too small to notice 23:29:22 and gravity/elasticity is a much stronger effect on the small scale 23:29:30 where by "small" I mean "smaller than a galaxy or so" 23:29:35 ais523, okay what about a wormhole then when you start reaching the problematic area? 23:29:46 -!- augur has joined. 23:29:48 AnMaster: wormholes may change the way this works 23:29:56 but they haven't been proven to exist 23:30:12 also, so would finding something with better information storage density than a black hole 23:30:22 (note: that's a theoretical limit, nobody's entirely sure how to store information in a black hole) 23:30:24 ais523, ? 23:30:31 hah 23:30:35 I wonder what it's like outside of time-space, in a black hole 23:31:37 songhead95: impossible to perceive with any known measuring device, I imagine 23:31:38 -!- Oranjer has quit (Read error: Connection reset by peer). 23:32:01 -!- Oranjer has joined. 23:32:42 looking at something that falls into a black hole from the outside, it's like it sort of stops and fades 23:33:02 it falls in slowly over the course of forever, but quickly the light disappears 23:33:14 because otherwise you could generate energy like that 23:33:23 (exponential decay in theory) 23:33:32 I just wish to add to this: current models are *models* that means that they are more or less accurate approximations of "reality". That could explain some weirdness related to black holes 23:33:44 probably less accurate, the universe is just that weird 23:33:46 I'm not saying it is so, just that it is worth considering 23:33:53 theory: some amused deity is making the laws of physics up as they go along 23:34:07 ais523, hah 23:34:11 coming up with some new weirdness whenever they reach a level at which we can actually detect what happens 23:34:14 ais523, sounds like discworld almost 23:34:15 :D 23:34:18 this seems to explain most of physics, IMO 23:34:26 the answer is obvious 23:34:26 `addquote theory: some amused deity is making the laws of physics up as they go along 23:34:29 149| theory: some amused deity is making the laws of physics up as they go along 23:34:32 the world is a computer simulation 23:34:49 ais523, sure. I recently heard that from the point of view of a photon, every distance is zero 23:34:49 at high levels, things work in simple manner because they've been programmed that way 23:34:50 coppro: However, not that lame "statistically we're a computer simulation" theory BS. 23:34:55 also, time doesn't pass 23:35:09 The universe is a computer simulation, within a computer simulation, within a computer simulation ad infinitum. 23:35:12 amongst many other things this doesn't explain the term "light year" 23:35:13 :P 23:35:14 at low levels, things break down because we get to the actual level near code 23:35:16 Gregor: nah 23:35:18 The universe contains itself (in a simulation) and is its own cause. 23:35:24 Gregor: that theory fails, because statistically speaking, we're likely to have a different theory of statistics from other simulations 23:35:31 Gregor: The universe is clearly a highly accurate universe implementation. 23:35:36 ais523: That's why I called it lame :P 23:35:40 and as a result, the universe that contains ours is likely to have a different theory of statistics from ours 23:35:44 and so, all bets are off 23:35:54 what? 23:36:01 pikhq: What a hilariously useless statement X-D 23:36:11 The universe that contains ours... 23:36:13 I know, isn't it? 23:36:15 oh and another thing: photons lack mass. Yet they can push things (see: solar sails) 23:36:20 how the fuck is that possible 23:36:31 they have momentum 23:36:33 AnMaster: Photons possess energy. 23:36:37 pikhq, hm 23:36:58 when they hit something, they vibrate slower and push a little 23:37:00 they have (mass-energy) 23:37:04 energy is conserved 23:37:07 Another fun thing: you know the weird photon/wave duality of light? 23:37:12 Not just light. 23:37:13 pikhq, yes 23:37:15 not just light 23:37:17 pikhq, electrons too 23:37:18 Electrons do the same thing. 23:37:18 and so on 23:37:20 yeah 23:37:21 and sound waves 23:37:22 I know 23:37:26 and fullerenes 23:37:28 we should create a partical/wave-dual esolang 23:37:32 Uhh, not sound waves ... or fullerenes. 23:37:32 coppro, sound wave behave like particles?? 23:37:37 yes 23:37:39 phonons! 23:37:43 [citation needed] 23:37:43 AnMaster: Yes. 23:37:49 do soundwaves have the same capabilities of photons, like pushing things? 23:37:59 pikhq, how the fuck does a sound wave behave like a particle 23:38:04 http://en.wikipedia.org/wiki/Phonon 23:38:05 songhead95: Sound waves are literally the pushing of things. 23:38:06 songhead95: soundwaves can certainly push things, given that they're inherently mechanical anyway 23:38:14 heh 23:38:50 wth 23:38:58 and yes, Gregor, fullerenes have been experimentally observed to have wavelengths too. De Broglie's equation applies to all waves and particles 23:39:20 fullerenes? 23:39:22 coppro, what is the wavelength of a coppro? 23:39:32 Sgeo, carbon allotrope (sp?) 23:39:33 AnMaster: Fairly low. 23:39:34 depends on how fast I'm moving 23:39:43 I've seen a book where the wavelength of a human was calculated 23:39:55 and it was really really incredibly small 23:39:56 ais523, heh, what did it end up at 23:40:03 can't remember the exact value 23:40:14 ais523, well, to the order of magnitude? 23:40:26 AnMaster: smaller than even most stuff that comes up in fundamental physics 23:40:31 hahaha I played wikipedia race, and in 14 links got from Phonon to house of wax(film) 23:40:40 maybe around 10^-30, to an order of magnitude of order of magnitudes 23:41:01 heh 23:41:10 ais523, in meters? 23:41:16 who cares 23:41:26 could be any unit you like at that degree of inaccuracy 23:41:27 apparently, when walking, my wavelength is roughly 1.5*10^-35 metres 23:41:32 ais523, well if it was in Hz it would be rather different 23:41:35 than if it was in meters 23:41:47 Hz are not a measure of distance 23:41:52 coppro, correct 23:41:55 1/distance 23:42:05 which is why it would end up so differently 23:42:08 1/period 23:42:17 AnMaster: http://en.wikipedia.org/wiki/Matter_wave Calculate it yourself. 23:42:18 :) 23:42:23 Hz = s^-1 23:42:49 You can actually do quantum mechanics without the whole wave thing 23:42:54 hm how did you get from wavelength to hz then? 23:42:56 ... 23:43:01 I'm too sleepy 23:43:38 Wavelength is related to frequency by velocity 23:43:44 ah 23:43:56 *momentum 23:44:00 no 23:44:15 (yes) 23:44:21 momentum has a mass dimension 23:44:28 wavelength and frequency do not 23:44:35 Hence the Planck constant 23:44:49 I wasn't talking about the de Broglie equation 23:44:56 Oh. 23:44:59 But 23:45:06 This also works for light 23:45:10 -!- augur has quit (Ping timeout: 264 seconds). 23:45:11 And phonons 23:45:15 f\ = v 23:45:17 Even though they're only pseudoparticles 23:45:35 for light, this is extra simple because v = c in a vacuum 23:46:40 fullerons 23:47:02 no wait i suppose fullerene already refers to the particle version 23:47:36 fulleraves? 23:47:46 full rave? 23:50:12 -!- Oranjer has quit (Read error: Connection reset by peer). 23:51:00 -!- Oranjer has joined. 23:55:00 do people usually get mad if you haphazardly post large chunks of code and ask what your doing wrong? 23:55:56 songhead95 : Post them on pastebin 23:56:08 ok 23:57:25 http://pastebin.com/ZD1faJ6X 23:57:42 I followed earlier instructions without adding the loops yet