00:06:26 <Sgeo_> Are there any reasons not to use Scala?
00:14:09 <Asztal> wow, I knew stinkhorn was slow at the `y' instruction, but... wow
00:14:44 <Asztal> 17500 times as slow as ccbi2
00:15:33 <Asztal> I never really considered the allocation strategy on the stack stack since I just used STL containers.
00:15:49 <Asztal> (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 <Asztal> 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:56 -!- manager has left (?).
01:44:35 -!- aschueler has quit (Quit: leaving).
01:55:48 <Gregor> 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 <uorygl> I wonder if there's a really easy trick I could use to remember things really well.
03:37:20 <uorygl> If I think of one, I'll let you guys know. :P
03:39:38 <pikhq> Decent board game.
03:39:47 <uorygl> Is that a song by Jerry Martin?
03:39:54 <uorygl> No, alas, it's a board game.
03:39:59 <pikhq> No, it's a board game.
03:40:26 <coppro> 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 <Sgeo_> Note to self: Doesn't matter that ANGEL is supposed to store my work. Save anyway.
03:44:28 <coppro> 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 <Sgeo_> This is.. self-slappingly annoying
03:47:14 <Sgeo_> Did some homework a while back, put it on the school site through which my professor receives homework
03:47:34 <Sgeo_> 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:48:00 <coppro> I should really start a git repo for my homework
03:53:40 <uorygl> I must admit I sort of like being a Luddite.
03:55:34 <Sgeo_> I'd lose the paper
03:56:05 <uorygl> I wouldn't lose the paper, I'd leave it in an easy-to-remember but inaccessible place. :P
03:56:35 <Sgeo_> 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 <pikhq> If you see me taking notes in class, they are incomprehensible to anyone but me.
03:58:08 <pikhq> It's gotten worse with the addition of kanji to my idiosyncratic script...
03:58:25 <uorygl> 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 <pikhq> uorygl: I have a bit.
03:58:55 <uorygl> That way, you'll have tons of little fragments of writable stuff.
03:59:00 <pikhq> Fairly interesting.
03:59:06 <uorygl> Sgeo_: only if your phone is an iPad. :P
03:59:07 <pikhq> Dude, I know 2,000 kanji.
03:59:16 <pikhq> I already have tons of fragments of writable stuff.
03:59:18 <uorygl> Hmm. When did you start learning those things?
03:59:29 <Sgeo_> uorygl, I'm perfectly willing to use the keyboard of a Nexus One
03:59:46 <pikhq> Start? Few years ago. Go hardcore and actually learn them well? 2.5 months ago.
04:00:21 <uorygl> I hereby decree that I did precisely the same thing with Lojban's gismu.
04:00:33 <Sgeo_> I did something similar with Haskell
04:00:54 <Sgeo_> Although my hardcore Haskell phase seems to be ending
04:01:16 <uorygl> 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 <uorygl> 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 <lament> and the most suitable emotion is terror
04:03:56 <uorygl> "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:12:03 <Gregor> 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 <Sgeo_> 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).
05:06:52 <uorygl> This soundtrack contains a song called "The Kill Ring".
05:07:03 <uorygl> 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 <oerjan> <uorygl> I wonder if there's a really easy trick I could use to remember things really well.
05:23:32 <oerjan> i knew one once, but i forgot it.
05:29:11 <nooga> who's who anyway? :D
05:29:43 <fizzie> A "who's who on #esoteric" book would probably sell well.
05:30:17 <Adrian^L> What's his connection to me? I apparently know him, but I'm not sure how, in his IRC incarnation.
05:31:16 <oerjan> 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 <nooga> seeing _underlined_ text in a terminal is so _cool_
05:32:28 <oerjan> also are you from norway? i knew a Lamo at university.
05:32:52 <nooga> i'm in a troll mood
05:33:08 <nooga> do norwegians actually believe in trolls?
05:33:09 <Adrian^L> tunes.org/~nef//logs/esoteric/09.08.19
05:33:21 <oerjan> nooga: i'm sure there are _some_
05:35:31 <fizzie> You've got that Trolltech thing, at least.
05:35:55 <Adrian^L> The log linked above implies that I know augur elsewhere via another name.
05:36:14 <Adrian^L> I'm trying to connect the two nodes.
05:36:45 <oerjan> Adrian^L: well "come to defcon" was mentioned
05:37:00 <oerjan> Adrian^L: he used to go as psygnisfive btw
05:38:03 <Adrian^L> Disorganized ex-crime owes you a favor ;>
05:39:45 <Adrian^L> Why have this channel here, as opposed to, say, 2600Net?
05:40:24 <oerjan> ask the founder, who disappeared years ago
05:47:21 <nooga> 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:48:02 <coppro> although I've unfortunately not ever found a channel for discussion of gaming
05:50:44 <nooga> no, just try it ;d
06:09:53 <pikhq> Adrian^L: So, you have a Wikipedia article. Niceness.
06:10:22 <pikhq> 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 <Rugxulo> I think CCBI --befunge93 has a bug with regards to ';' (semicolon)
06:24:41 <Rugxulo> hmmm, but fbbi -93 seems to also do the same ... shouldn't they only skip "; ... ;" when in 98 mode??
06:25:02 <Rugxulo> (CCBI doesn't skip but reflects back, which can't be right in 93 mode)
06:28:00 <fizzie> 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 <Rugxulo> well none of the other 93 interpreters I'm trying seem to reflect, so ...
06:29:03 <fizzie> Yes, but it's still not exactly forbidden.
06:29:18 <fizzie> Admittedly many 93 interps treat non-defined ops as nops.
06:29:49 <Rugxulo> 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: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 <Rugxulo> the Esolang wiki on Befunge really needs revising
08:07:00 <Rugxulo> but at least somebody added an interesting link lately: "Marsh" ( http://github.com/serprex/Befunge )
08:07:29 <Rugxulo> on my P4, it's pretty fast (GCC-compiled), not so much my other cpus
08:09:44 <fizzie> We had some talk about Marsh here.
08:10:00 <fizzie> It's also somewhat broken; the default version doesn't even do "pop 0 from empty stack".
08:10:10 <fizzie> There were some issues with the marsh_safe version too.
08:10:22 <Rugxulo> C99, assumes "/dev/random" exists, fixit.py kludge (which I'm not entirely sure about)
08:10:47 <Rugxulo> well, it's obviously not perfect, but it beats the x86 BEFI.COM on this P4 with my lame benchmark.bef
08:11:18 <Rugxulo> possibly more to do with the P4's quirks than anything, other machines are much slower
08:12:02 <fizzie> Also, re. speed: http://pastebin.com/nfmUUEwq
08:12:20 <fizzie> If you have an actual benchmark.bef for Befunge-93, I'd like to have it.
08:12:24 <pikhq> My Befunge interpreter appears to use the same implementation technique, but with different bugs. :P
08:13:10 <Rugxulo> you're gonna laugh (or get mad), but here's my "benchmark" (lame, I know):
08:13:20 <fizzie> It's also mostly bug-free: http://pastebin.com/BmmymUz7
08:13:46 <pikhq> fizzie: What's the testfile.txt in question?
08:14:12 <fizzie> pikhq: The Complete Stories, Volume 1, Isaac Asimov.
08:14:20 <fizzie> (I just wanted some mostly-ascii text.)
08:14:40 <fizzie> It's a bit un-redistributable that way; perhaps I should've just generated something.
08:15:18 <pikhq> I'll go fetch something off of Gutenberg then.
08:15:34 <Rugxulo> fizzie, for a horrible laugh, read this: http://pastebin.com/QekgWsxT
08:16:54 <pikhq> 156 ./a.out bench.bf 0.00s user 0.00s system 50% cpu 0.006 total
08:18:12 <fizzie> 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 <Rugxulo> BEFI is actually 128*128, and it didn't hurt much there (obviously)
08:18:47 <Rugxulo> I guess the point is that GCC is better at P4 than others
08:18:59 -!- FireFly has quit (Quit: Leaving).
08:19:01 <Rugxulo> (IIRC, 26 secs. for marshsafe on the same benchmark)
08:20:00 <pikhq> I can't compare with cfunge, because cfunge doesn't handle EOF right for B93.
08:20:27 <pikhq> (reflect on EOF is but one valid behavior, and this ROT13 program assumes -1 = EOF instead)
08:20:46 <pikhq> So, need a better benchmark. :/
08:21:02 <fizzie> Waiting for marshsafe to finish here.
08:21:06 <Rugxulo> (marsh.c but without fixit.py crud)
08:21:27 <fizzie> I haven't looked at what fixit.py does.
08:21:53 <fizzie> 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 <pikhq> so, what should the output from this actually be?
08:22:18 <Rugxulo> fizzie, who me? I think so, yeah
08:22:40 <pikhq> I'm going to guess "definitely not 156".
08:22:57 <pikhq> Hooray, I've found a small testcase that fails.
08:23:01 <fizzie> On my system, it outputs 2147483596 at the end; I guess it does -100 until the cell wraps around.
08:23:13 <pikhq> Good, the only other thing that failed was Hunt the Wumpus.
08:23:14 <fizzie> 156 sounds a bit like byte-sized stack cell.
08:23:36 <fizzie> Since -100 % 256 would be 156 for some values of %.
08:24:05 <pikhq> Gah. Yeah, it's still on char cells.
08:24:08 <pikhq> Lemme change that.
08:24:13 <fizzie> Strange, marshsafe doesn't seem to want to finish.
08:24:33 <pikhq> It now outputs -100 immediately.
08:24:47 <pikhq> Erm. *unsigned* int might help. XD
08:25:01 <fizzie> You want signed stack cells, in fact.
08:25:09 <fizzie> Otherwise it'll output 2^32-100 immediately.
08:25:26 <fizzie> 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 <fizzie> Rugxulo: Any ideas why marshsafe.c still hasn't finished for me? It's been some five minutes or so already. :p
08:26:57 <fizzie> gcc -o marshsafe marshsafe.c -std=gnu99 -O3
08:27:04 <pikhq> Imma sleep. I'll futz with this in the morning.
08:27:23 <Rugxulo> gcc -std=gnu99 -DFUNGE marshsafe.c -o funge.exe -O2 -mtune=native -fmerge-all-constants -fomit-frame-pointer -fno-gcse
08:27:29 <Rugxulo> (slightly modified from makefile)
08:27:38 <fizzie> Oh, right, that damned -DFUNGE.
08:27:46 <fizzie> The most sensible thing ever.
08:28:15 <Rugxulo> fizzie, what cpu? (Core2, perhaps?)
08:28:36 <fizzie> It's an old-ish Athlon X2.
08:28:52 <fizzie> Uh, "5600+" or some other such silly model name.
08:29:11 <Rugxulo> can't be that old if it's X2
08:29:24 <fizzie> That's why the "-ish".
08:29:41 <Rugxulo> I don't know why he has #ifdef FUNGE ... what other use is marshsafe.c ?????
08:31:05 <fizzie> Gah, it still doesn't seem to be doing much; ^c'd it after three minutes.
08:31:16 <fizzie> Lunch now, will get back to benchmarking after.
08:31:51 <Rugxulo> I still say CCBI reflecting on ';' in B93 is wrong :-P
08:37:29 <Rugxulo> 3 mins. for CCBI (in B98 mode)
08:44:21 <Rugxulo> BTW, I think "bef2c -p -o" + GCC ran second fastest on my old P166
08:45:55 <Rugxulo> 7.5 mins. for "ccbi --befunge93" :-/
08:47:31 <Rugxulo> 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 <Rugxulo> (runs Hunt the Wumpus now???)
08:50:47 <Rugxulo> seems fixit.py is changed, no longer assumes "%rax" is available
08:53:28 <Rugxulo> 27.350 secs (marsh), 27.630 secs (marshsafe) ... so not much difference
08:57:09 <Rugxulo> heh, "README" (but in French, go figure)
09:00:11 <Rugxulo> wait, "Bejit" ... perhaps he means JIT for Befunge??
09:00:14 <fizzie> Mine is around two days old, so I guess it might not be the newest either.
09:00:34 <Rugxulo> April 11th, that's what it says on the Github site
09:00:43 -!- Gracenotes has quit (Ping timeout: 260 seconds).
09:01:34 <fizzie> 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 <Rugxulo> did you remember -DFUNGE ?
09:02:07 <fizzie> Yes, I copy-pasted what you had.
09:02:20 <fizzie> It's also eating 100% of CPU.
09:02:31 <fizzie> gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
09:02:36 <Rugxulo> 100% of an X2??? that can't be right
09:02:56 <fizzie> Yes, it goes up to 200%.
09:02:59 <Rugxulo> try with -O0 and see if it finishes there
09:03:19 <Rugxulo> it definitely should be done in under a minute on a modern cpu
09:03:32 <fizzie> 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 <fizzie> I'll try with -m32 as a quick fix.
09:05:00 <Rugxulo> well that's an implementation bug anyways, B93 always has 32-bit stack, right? ;-)
09:05:19 -!- Gracenotes has joined.
09:08:30 <Rugxulo> fungus and mooz links on Esolangs wiki are broken
09:08:50 <fizzie> Yes, mooz's site has been gone for a long long time now.
09:09:09 <fizzie> Hm, there's something wrong with my current, cleaned-up version of ff; for the rot13 benchmark, http://pastebin.com/30vpMbwN
09:09:52 <Rugxulo> is mooz the same as this guy? http://frox25.no-ip.org/~mtve/code/eso/bef/
09:10:09 <fizzie> No, that's a different person.
09:10:34 <Rugxulo> okay, it was the "mtv3" part that confused me
09:11:48 <Rugxulo> dunno why ff3 is slower, could be anything
09:12:27 <fizzie> 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 <Rugxulo> mtve = MTV Europe (dunno why he chose that nickname)
09:12:57 <Rugxulo> 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 <fizzie> Aw, Rugxulo already went? Anyhow, here's a ff3-vs.-marshsafe benchmark: http://pastebin.com/SgBzjEc6
11:13:53 <Deewiant> Slightly different output from the two there.
11:14:56 <Deewiant> How does jitfunge manage on that one? Seems so simple that it might be able to handle it :-)
11:17:03 <fizzie> Hm, it prints out 0. :p
11:20:05 <fizzie> It generates a single trace for most of that, containing
11:20:28 <fizzie> But for some reason the "end" command loops to entry point 0, not entry point 1.
11:21:40 <fizzie> The uncompiled trace looks like http://pastebin.com/03uCcPDD
11:22:28 <fizzie> exit[0] is the branch to the .@ bit, exit[1] should loop to the beginning, not the if itself.
11:25:05 <Deewiant> 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 <Deewiant> GCC compiles the equivalent C to an infinite loop; bloody C with its unspecified integer underflow.
11:26:31 <fizzie> Another wrapping bug, heh.
11:26:56 <fizzie> Funny, now it prints out 200.
11:27:18 <fizzie> This time the compiled trace is:
11:27:24 <Deewiant> Can I tell GCC to optimize based on two's complement semantics?
11:28:55 <Deewiant> Welp, it doesn't optimize it into a constant either.
11:29:18 <fizzie> 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 <Deewiant> I thought you fixed that one already? :-P
11:31:03 <fizzie> 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 <Deewiant> Both compilers have an extra, unnecessary 'test' instruction in the loop, too.
11:33:13 <fizzie> fis@eris:~/src/jitfunge/src$ time ./jitfunge ../../ff/benchmark.bef 2>/dev/null
11:33:31 <fizzie> Well, it's not too shabby.
11:33:52 <Deewiant> Are you using LLVM 2.6, by the way?
11:33:55 <fizzie> There's also quite a lot of tracing IO going out to /dev/null.
11:34:07 <fizzie> This is some sort of 2.7, whatever Ubuntu lucid had.
11:34:25 <fizzie> Version: 2.7~svn20100409-0ubuntu1
11:35:21 <fizzie> I wonder if fixing this broke whatever it was that I misfixed last time.
11:35:32 <fizzie> It was something about p, but was it in mycology?
11:35:56 <Deewiant> If it wasn't, it'll probably turn up in there at some point ;-P
11:36:14 <fizzie> At least current version runs mycology with the GGBGs and BUBADs. :p
11:39:22 <fizzie> 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 <Deewiant> Given that it's platform-specific, you can't do it with just LLVM
11:40:24 <Deewiant> Well, maybe there's a related intrinsic somewhere.
11:40:53 <fizzie> Yes, but I probably can hack together something that works on one platform based on what I already have.
11:40:58 <fizzie> The rest can use a slower stack.
11:41:15 <fizzie> I'm not even sure if it is faster; depends on the frequency of empty-stack-pops, of course.
11:41:27 <Deewiant> Yes, of course you can use inline asm to do it however you like platform-specifically.
11:45:32 <fizzie> Do I need to create ptrtoint instructions if I want to compare two pointers?
11:46:05 <fizzie> Ah, icmp can compare pointers too.
11:46:06 <Deewiant> I think icmp works on pointers.
11:46:17 <fizzie> Yes, I just didn't expect, given the interger-sounding name.
11:46:34 <fizzie> "If the operands are pointer typed, the pointer values are compared as if they were integers."
11:50:16 -!- asiekierka has joined.
11:50:44 <asiekierka> i think i had an idea for a 2-command (space (NOP) and non-space (everything else)) esolang
11:51:11 <asiekierka> but i don't think it'll be turing-complete
11:51:19 <asiekierka> though wait, i have an idea how to make it so
11:54:02 <fizzie> 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:45 <fizzie> At least I got the underflow-protected stack pop done without having to add more basic blocks in the mix. :p
11:54:52 <asiekierka> POSTANTOUS: http://pastebin.com/Ce9GLxdn
11:55:24 <asiekierka> ^ being the NORTH of the instruction pointer's direction
11:56:16 <asiekierka> POSTANTOUS stands for POSition's imporTANT...ous
11:58:50 <asiekierka> the problem is i dont think any "this setup might stand for that, and also that" things can be found
12:02:00 <nooga> asiekierka: how about building 8088 based computer using prototype board and wires
12:03:07 -!- _asw has joined.
12:03:48 <nooga> i'm writing BIOS for that thing ;d
12:04:10 <asiekierka> i wish i could have a huge wirewrap protoboard
12:05:49 <nooga> not lucky, just bored :D
12:07:37 <asiekierka> NEW version: http://pastebin.com/why9uvaY
12:07:43 <asiekierka> Also I want to have a prototype board, wires
12:08:01 -!- _asw has left (?).
12:08:43 <asiekierka> now i think i've implemented every combination
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:57:11 -!- asiekierka has joined.
13:01:45 -!- asiekierka has quit (Ping timeout: 258 seconds).
13:02:00 <fizzie> 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 <Deewiant> I'm not trying to be confusing :-P
13:02:39 <fizzie> That'd be a first! Uh, I mean...
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 <fizzie> 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 <fizzie> 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 <fizzie> ... 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 <fizzie> A representative sample: http://pastebin.com/0ZG5S5cR
13:09:04 <fizzie> (That's the <>^v implementations.)
13:09:48 -!- asiekierka has quit (Ping timeout: 258 seconds).
13:10:06 <fizzie> What, you don't like it?-)
13:11:12 <Deewiant> Now do the equivalent for Befunge-98: keep an w*h*5 array where the fifth is used for noncardinal deltas
13:12:02 <fizzie> 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 <fizzie> "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:22:12 <Deewiant> The Nethack ones seem to be the best.
13:22:27 -!- asiekierka has quit (Ping timeout: 258 seconds).
13:22:49 <fizzie> 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:58:32 <AnMaster> <Deewiant> 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 <Deewiant> It's independent of your storage solution, but it's probably just a pessimization with hash tables.
14:07:18 -!- asiekierka has quit (Ping timeout: 258 seconds).
14:10:47 -!- asiekierka has joined.
14:15:19 <fizzie> 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 <fizzie> 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 <fizzie> 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 <fizzie> (typedef void *opset[4]; currently.)
14:22:31 -!- augur has quit (Ping timeout: 240 seconds).
14:27:37 <AnMaster> fizzie, how much do you gain from those 4 pointers thingy?
14:27:46 <AnMaster> fizzie, compared to doing it a more "normal" way
14:28:30 <AnMaster> 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 <AnMaster> 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 <AnMaster> fizzie, oh and where can I get the full source of that program?
14:30:13 <fizzie> 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:48 <AnMaster> fizzie, what does += PF_W * sizeof(opset); do?
14:31:05 <fizzie> Yes. Well, including the borders.
14:31:10 <Deewiant> I.e. move down one Y-coordinate.
14:31:11 <AnMaster> oh so that is the logic for moving to next cell?
14:31:34 <AnMaster> fizzie, hm I would have expected it to be in the (presumably) macro IP_GOTO
14:31:57 <fizzie> #define IP_GOTO do { trace(); goto **(void **)ip; } while (0);
14:32:02 <AnMaster> otherwise you have to duplicate a lot in about every function
14:33:15 <fizzie> 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 <AnMaster> 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 <fizzie> These direction-changing commands are special, because I need to adjust the distance to change delta.
14:34:08 <AnMaster> fizzie, the down_down, up_up and so on variants don't need that though
14:34:34 <AnMaster> fizzie, what is the type of ip?
14:34:37 <fizzie> Yes, I just thought they looked aesthetically more pleasing like that, as opposed to having just MOVE_DOWN there.
14:35:27 <fizzie> 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 <fizzie> I never need to point between the void *s there, after all.
14:35:57 <AnMaster> "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 <AnMaster> fizzie, yes the sizeof thingy confused me. What is opset btw?
14:36:41 <fizzie> <fizzie> (typedef void *opset[4]; currently.)
14:37:27 <AnMaster> fizzie, url to this amazing code
14:37:29 <fizzie> 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 <fizzie> There is still no URL.
14:37:43 <AnMaster> fizzie, any reason not to upload it somewhere?
14:38:13 <fizzie> No particular reason, no. I just don't have a habit of sharing absolutely everything I do.
14:38:39 <AnMaster> fizzie, could you please share this one?
14:38:58 <fizzie> Aren't you a more 98 person, anyway?
14:39:30 <AnMaster> It is still interesting to study.
14:39:34 <fizzie> I'll try to remember how I had my git.zem.fi configured as soon as I finish testing the non-interleaved version.
14:40:05 <AnMaster> well then, why not pastebin? ;)
14:41:37 <AnMaster> 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 <fizzie> Well, if you absolutely must have an intermediate version, http://pastebin.com/ah2NcAgV
14:43:02 <AnMaster> fizzie, hm? You mean one mixed interleaved/non-interleaved?
14:43:45 <fizzie> No, that's the interleaved thing.
14:43:53 <fizzie> But it's not release-quality. :p
14:44:29 <fizzie> Turns to arbitrary delta.
14:44:39 <AnMaster> fizzie, is it 93 + extras then?
14:44:40 -!- MizardX has joined.
14:44:59 <fizzie> No, "arbitrary" meaning any of the four cardinal ones not depending on what the ip is now.
14:45:05 <fizzie> That's a rather curious meaning, but anyway.
14:45:19 <AnMaster> fizzie, oh, but why would it be useful for 93?
14:46:22 <fizzie> 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:59 <AnMaster> fizzie, high speed random number generators!
14:47:50 <AnMaster> fizzie, huh? where is next defined?
14:48:00 <fizzie> It's a macro parameter.
14:49:09 -!- oerjan has joined.
14:51:26 <AnMaster> fizzie, out of interest, why if and not switch for op_rand?
14:52:13 <fizzie> No real reason for that either. The if takes perhaps two lines less vertical space.
14:52:24 <fizzie> Or three, depending on bracing.
14:52:45 <Deewiant> Or zero, depending on bracing. :-P
14:52:47 <AnMaster> or one less but that would be messy
14:53:38 <Deewiant> switch (t) { case 0: TURN(0); NEXT_LEFT;
14:53:39 <AnMaster> 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:54:01 <Deewiant> So negative one, depending on bracing.
14:54:28 <AnMaster> Deewiant, yes, just write two of the cases on the same line
14:54:41 <Deewiant> That's getting unreadable already :-P
14:54:43 <AnMaster> I didn't say it was a good idea
14:55:13 <AnMaster> fizzie, memcpy(pfcode[pos], ops[val], sizeof *pfcode); <-- wonderful
14:56:09 <AnMaster> Deewiant, did I say it was special?
14:56:18 <Deewiant> You said it was wonderful, which is certainly special.
14:56:26 -!- augur has joined.
14:56:59 <fizzie> 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 <AnMaster> fizzie, ah hm didn't think about that
14:57:37 <AnMaster> fizzie, remember to test it on a wide selection of representative b93 programs ;)
14:58:08 <augur> Adrian^L: i should've known it was you
15:00:01 <augur> 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 <AnMaster> fizzie, how goes jitfunge now?
15:27:08 <AnMaster> how far does it get in mycology and can it run underload.b98?
15:27:25 <AnMaster> Deewiant, BUBAD? That looks mangled
15:27:49 <AnMaster> Deewiant, so , is completely broken or what?
15:28:19 <Deewiant> jitfunge has a hard time being "completely broken", it seems to usually be partially broken.
15:28:21 <AnMaster> assuming GGBG was what it output for GOOD
15:28:42 <Deewiant> It was GGBG. I don't know why it output it.
15:29:12 <AnMaster> Deewiant, but at what point does it output that?
15:31:21 <Deewiant> Of the logs? Just grep for GGBG.
15:33:19 <AnMaster> like why not: a-f pushes 10-15
15:33:23 <Deewiant> IIRC, it only checks for reflection on a.
15:33:51 <AnMaster> then I got a ghost paste in the buffer at the start somehow
15:33:57 <Deewiant> Or it has a couple of error messages for a, but just that one GOOD/BAD for b-f.
15:34:00 <AnMaster> just a split second before I hit enter
15:36:16 <fizzie> 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 <fizzie> Discount the copy-paste problem that got the compilation and running on the same line.
15:36:42 <AnMaster> fizzie, what is the benchmark?
15:36:43 <Deewiant> (1) doesn't tend to work that well, I'd do (2).
15:37:04 <AnMaster> fizzie, btw how does that ff3.c handle # in column 80 when going > ?
15:37:56 <fizzie> AnMaster: UNDEF: edge # skips column 80
15:37:57 <Deewiant> 91+:*, incidentally, is an awfully complicated way of writing "d".
15:38:23 <AnMaster> fizzie, I mean, you don't crash due to missing the marker in the padding column
15:38:42 <fizzie> AnMaster: There's two column's worth of padding because of that.
15:38:48 <AnMaster> Deewiant, eh how does 91+:* add up to d?
15:39:21 <Deewiant> In -98, the equivalents would be a:* and 'd
15:39:54 <AnMaster> Deewiant, I guess it is semantics: Is it used as a char or as a number
15:40:22 <Deewiant> Bah, who cares about assigning semantics to stack cells in Befunge :-P
15:40:34 <AnMaster> isn't 91+:*-:0` comparing -100 to 0?
15:41:09 <Deewiant> That code is equivalent to: int s = 0; do s -= 100; while (s <= 0);
15:45:17 <fizzie> 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:46:06 <AnMaster> 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 <oerjan> multiply by 2^32 ~= 4 billion
15:47:30 <AnMaster> lets say 6 seconds for 32-bit. Then we have 6 * 2^32... Ouch
15:47:58 <fizzie> I waited some five minutes or so.
15:48:02 <Deewiant> Yeah, I ran it for about 10 mins in CCBI and cfunge and then realized they were both 64-bit :-P
15:48:38 <AnMaster> well, I could have typoed in units(1)
15:48:38 <oerjan> `calc 6*2^32 seconds in years
15:48:52 <HackEgo> 6 * (2^32) seconds = 816.613247 years
15:49:11 <HackEgo> calc is /tmp/hackenv.15888/bin/calc
15:49:13 <fizzie> marsh takes 12 seconds on my system; not that another power of 2 matters *that* much.
15:49:18 <HackEgo> bin/calc: Bourne-Again shell script text executable
15:49:50 <AnMaster> `run head bin/calc | tr '\n' '|'
15:49:51 <HackEgo> #!/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:12 <HackEgo> --dump --width=1000 'http://google.com/search?q='"$QUERY" |
15:50:53 <AnMaster> Deewiant, how long did it take for 32-bit CCBI?
15:51:11 <Deewiant> I hadn't a 32-bit CCBI binary so I haven't tried.
15:51:35 <AnMaster> Deewiant, presumably more than 6 seconds though
15:53:33 <fizzie> <Rugxulo> 3 mins. for CCBI (in B98 mode)
15:53:40 <fizzie> Don't know what to compare that to, though.
15:53:47 <fizzie> Or what version, for that matter.
15:54:03 <fizzie> Deewiant: Did you notice the part about CCBI reflecting on ; in 93-mode?
15:54:36 <Deewiant> Yes, and no need to single out ;, it'll reflect on every non-93 instruction.
15:55:23 <fizzie> Right, well, he was strongly against that sort of thing. :p
15:56:22 <Deewiant> CCBI takes 27 seconds for me here.
15:57:25 <fizzie> Average of 20 runs; not much of a difference: http://pastebin.com/EwDv8J2e
15:57:51 <fizzie> Could even have been other stuff on the system, it's not very idle.
15:58:00 <Deewiant> 11 seconds in -98; I wonder how that manages to be faster.
15:58:55 <Deewiant> Oh, it could be the wraparound.
16:00:25 <Deewiant> Yeah, now it's 9 seconds in -93 and 14 in -98.
16:00:53 <Deewiant> The Befunge-93 loader always makes an 80x25 box, you see.
16:01:12 <Deewiant> But, IIRC, it uses the same wrapping code as -98.
16:01:26 <Deewiant> So for every iteration, the -93 did an extra 70 or so nops.
16:02:34 <fizzie> 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 <AnMaster> <fizzie> Right, well, he was strongly against that sort of thing. :p <-- who? Rugxulo? And why is he against it.
16:07:48 <AnMaster> <Deewiant> So for every iteration, the -93 did an extra 70 or so nops. <-- yet it was faster?
16:08:07 <Deewiant> No, it was more than twice as slow.
16:08:12 <AnMaster> <Deewiant> Yeah, now it's 9 seconds in -93 and 14 in -98.
16:08:40 <Deewiant> "_Now_ it _is_ [faster in -93]"
16:08:52 <Deewiant> "The -93 _did_ an extra 70 or so nops"
16:09:08 <AnMaster> <Deewiant> But, IIRC, it uses the same wrapping code as -98. <-- should have been used there then?
16:09:20 <AnMaster> <Deewiant> The Befunge-93 loader always makes an 80x25 box, you see. <-- or on that line
16:09:32 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
16:09:52 <AnMaster> Deewiant, so how did you make it faster if you didn't change those
16:10:02 <Deewiant> AnMaster: 2010-04-13 17:59:04 * Deewiant makes it non-wrappy
16:10:44 <AnMaster> Deewiant, then why is 93 mode faster than 98 mode? Completely different mainloop or something?
16:10:57 <Deewiant> Well yes, lots of simplifications can be mode.
16:11:26 <AnMaster> Deewiant, true but is it worth the code duplication and such?
16:11:56 <Deewiant> The code duplication would happen anyway, to not slow down 98.
16:12:42 <AnMaster> fizzie, why @eris? A strange system name to me
16:13:58 <fizzie> Couldn't figure out anything else, so used the well-used and -reused Greeks.
16:14:25 <fizzie> Goddess of discord; also the goddess of discordians.
16:14:26 <Deewiant> Simplifying the wrapping code brought it down to 16 seconds. Still loses to -98, though.
16:14:35 * oerjan throws AnMaster an apple
16:14:45 <fizzie> 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:11 <AnMaster> oerjan, I'm not picking up anything _you_ threw.
16:15:23 <AnMaster> who knows, it could be a tick one that sprays water at you or something
16:15:40 <fizzie> Momus, where fungot runs, is another one of those.
16:15:40 <fungot> fizzie: i'd be happy to help you with that?
16:15:44 <fizzie> 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 <oerjan> darn, saved by his natural paranoia
16:15:48 <fizzie> Thought it appropriate for a webserver.
16:16:53 <AnMaster> especially the censure part doesn't seem to fit in
16:17:23 <HackEgo> * 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 <Deewiant> I wonder why CCBI is about 5-10% faster on underload.b98 when it's got 64-bit cells.
16:21:42 <oerjan> you fool, it was a golden apple!
16:22:00 <oerjan> golden delicious, to be precise. *munch*
16:22:01 <AnMaster> oerjan, well the grip was coated in aqua regia.
16:22:27 <AnMaster> (with a thickening substance added, so you can actually coat with it)
16:22:44 <AnMaster> oerjan, I don't think that is healthy to eat
16:23:30 <oerjan> i've got plenty of acid in my stomach already.
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: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:32:05 <AnMaster> fizzie, and does -fmerge-all-constants really make any difference?
21:32:26 <pikhq> I'm getting half a mind to write a Befunge-98 interpreter.
21:32:38 <pikhq> Oh, BTW, I fixed my Befunge-93 interpreter.
21:32:59 <pikhq> http://sprunge.us/CSZJ
21:33:05 <AnMaster> I prefer a memento to be frank ;P
21:33:24 <fizzie> 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 <AnMaster> pikhq, it still counts -128 is not a prime
21:34:42 <AnMaster> pikhq, still valgrind errors too
21:34:53 <fizzie> 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 <pikhq> AnMaster: Uh, WTF and WTF?
21:35:23 <Gregor> jitfunge *brain explodes*
21:35:32 <fizzie> AnMaster: Valgrind's stack traces are indeed not very useful for problems in LLVM's JIT'd functions:
21:35:33 <fizzie> ==9627== Conditional jump or move depends on uninitialised value(s)
21:35:34 <fizzie> ==9627== at 0x4048354: ???
21:35:34 <fizzie> ==9627== by 0x5C22C4C: (below main) (libc-start.c:226)
21:35:41 <pikhq> AnMaster: Well, it definitely does Wumpus correctly. :P
21:36:21 <AnMaster> fizzie, what about gdb? Is it as useless or does llvm do some funky JIT debug info that gdb can read?
21:36:51 <AnMaster> 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 <AnMaster> I presume the same applies to any other continue commands
21:37:40 <pikhq> AnMaster: Oh, that's an easy fix.
21:38:13 <fizzie> 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 <AnMaster> pikhq, what was the bug with wumpus btw?
21:39:01 <pikhq> AnMaster: I had val1 and val2 as unsigned ints instead of ints.
21:39:17 <pikhq> Thus screwing up signed comparison.
21:39:19 <pikhq> http://sprunge.us/LGJX
21:39:32 <AnMaster> pikhq, heh that caused wumpus failing?
21:39:36 <pikhq> Still getting issues with prime, but no invalid reads outside of libc.
21:39:48 <pikhq> It also caused the failure of a simple benchmark.
21:40:32 <AnMaster> pikhq, I still get negative values in prime?
21:40:54 <pikhq> AnMaster: I'm not sure.
21:40:58 <AnMaster> or do you mean that was the still left issue
21:40:59 <fizzie> AnMaster: Heh... if I add the "--db-attach=yes" flag, the error disappears.
21:41:12 <pikhq> Yes, that's the still-remaining issue.
21:41:18 <pikhq> I'm honestly not sure how that's doing wrap-around.
21:41:36 <AnMaster> pikhq, printf("%d") -> printf("%u") or such perhaps
21:42:32 <pikhq> ... Signed integer.
21:42:39 <AnMaster> pikhq, that is the issue then :P
21:43:19 <pikhq> That's sticking numbers in fungespace, yes?
21:43:33 <pikhq> Fungespace is a bunch of signed chars.
21:44:07 <AnMaster> pikhq, does it say it is char even?
21:44:20 <fizzie> It's an "80x25 torus of ASCII text", that's about all.
21:44:37 <pikhq> No, it would be entirely valid for that to be 7-bit.
21:44:38 <fizzie> Many make it unsigned bytes.
21:44:39 <AnMaster> pikhq, oh and it segfaults on pi2 again
21:45:14 <AnMaster> 9 s->buf = realloc(s->buf, s->bufsz);
21:45:23 <AnMaster> *** glibc detected *** /home/arvid/dragon/funges/pikhq-bef/pikhq-bef-tux: realloc(): invalid next size: 0x0000000000607010 ***
21:45:40 <fizzie> AnMaster: Here's the very useful gdb backtrace on the error:
21:45:42 <AnMaster> pikhq, valgrind shows a write error before
21:45:43 <fizzie> #0 0x0000000004048354 in ?? ()
21:45:43 <fizzie> #1 0x00000007ff0002e0 in ?? ()
21:45:43 <fizzie> #2 0x0000000005c77a3f in _IO_new_file_overflow (f=0x0, ch=-16776704) at fileops.c:889
21:45:43 <fizzie> #3 0x0000000000000000 in ?? ()
21:46:09 <AnMaster> fizzie, disassemble, I guess that is all you can do
21:46:25 <AnMaster> pikhq, I suspect you overwrite malloc bookkeeping data
21:46:48 <pikhq> fungespace[val1][val2] = val3;
21:47:07 <fizzie> 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 <AnMaster> pikhq, you fail at bounds checking? :D
21:47:18 <pikhq> Yes, there is no bounds checking.
21:47:46 <pikhq> AnMaster: No, it's invoking undefined behavior.
21:47:48 <AnMaster> pikhq, I would do it abs(x) % 80 and so on
21:48:08 <AnMaster> pikhq, sure, but I consider it a bug to crash on invalid input
21:48:09 <pikhq> I'll go make it do more sane behavior, though.
21:48:33 -!- charlls has quit (Read error: Connection reset by peer).
21:48:43 <pikhq> AnMaster: Yes, this is why I'm adding boundschecking.
21:49:06 <AnMaster> pikhq, I recommend using a fuzz tester btw. It would catch this type of stuff
21:49:54 <AnMaster> UNDEF: got 3 which is hopefully correct.
21:49:54 <AnMaster> Please input a character: UNDEF: got 10 '
21:49:56 <fizzie> ff3 doesn't do bounds checking either, to be honest; it's not like a well-behaved program would need it.
21:49:59 <AnMaster> I don't think that is how it should work
21:50:12 <pikhq> There's... Issues with that.
21:50:23 <pikhq> It's undefined, but yes, I should fix it.
21:50:29 <Deewiant> I think it's undef in b98 as well.
21:50:30 <AnMaster> pikhq, in b98 I'm pretty sure integer input should eat the newline if one follows it directly
21:50:37 <pikhq> fizzie: Link to fastfunge?
21:50:39 <Deewiant> IIRC the spec doesn't say that.
21:50:43 <pikhq> AnMaster: "Undefined but I should fix it."
21:50:56 <Deewiant> I did it because it seemed sensible, and since then it seems everybody else does it. :-P
21:51:28 <AnMaster> Deewiant, you are a trendsetter ;P
21:51:39 <fizzie> pikhq: http://git.zem.fi/ff
21:51:57 <AnMaster> pikhq, I get valgrind errors enter a to mycouser as the number
21:52:17 <AnMaster> ==27876== Use of uninitialised value of size 8
21:52:18 <AnMaster> ==27876== at 0x4E695CB: _itoa_word (in /lib/libc-2.11.1.so)
21:52:19 <pikhq> AnMaster: One screaming bug at a time man. :P
21:52:55 <pikhq> AnMaster: irc://irc.freenode.com/esoteric
21:53:13 <AnMaster> pikhq, well I will write them down in a text file and pastebin that
21:56:16 <AnMaster> pikhq, okay for me to paste the bug descriptions now?
21:56:33 <pikhq> Invalid reads fixed (stupidity in stack regrowing).
21:56:36 <pikhq> http://sprunge.us/TfeK
21:56:40 <AnMaster> * valgrind errors on ctrl-d at integer prompt. B98 reflects. Unknown what B93 does.
21:56:40 <AnMaster> * 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:57:04 <Deewiant> Yes, that latter one is defined.
21:59:01 <pikhq> The only valgrind errors I'm seeing are from libc...
21:59:25 <pikhq> I have a sneaking suspicion that their printf does crazy stuff.
21:59:47 <AnMaster> pikhq, the ones I see there are itoa
22:00:47 <AnMaster> pikhq, but that might be because itoa returns some undef value
22:00:52 <AnMaster> due to you passing it a non-number
22:01:38 <AnMaster> ==27931== Uninitialised value was created by a stack allocation
22:01:38 <AnMaster> ==27931== at 0x400C68: instrs (pikhq-bef.c:153)
22:01:43 <AnMaster> with valgrind --track-origins=yes ./pikhq-bef-tux ~/dragon/src/own/cfunge/trunk/mycology/mycouser.b98
22:02:05 <pikhq> Oh, that's helpful.
22:02:11 <AnMaster> pikhq, well yes, it is slower too
22:02:19 <AnMaster> well not noticeable so for this case
22:02:28 <pikhq> Except that nothing is made at that line.
22:02:37 <pikhq> Except the stack frame itself.
22:02:37 <AnMaster> pikhq, sure it is, the stack frame
22:02:49 <AnMaster> pikhq, which means you know which function
22:03:42 <AnMaster> pikhq, point is, I think you do something funky when trying to parse letters as integers
22:04:07 <pikhq> When that happens, the value ends up being unchanged from what it was.
22:04:09 <AnMaster> bad pikhq not checking return value of scanf :P
22:04:15 <pikhq> Said value is... Undefined.
22:05:15 <AnMaster> 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:28 <pikhq> http://sprunge.us/CJcX
22:05:51 <pikhq> There it is without odd valgrind errors, and I'll go about fixing the actual *behavior* next time the mood strikes.
22:06:03 <pikhq> (I know what to fix and how to fix it, just can't be bothered to)
22:06:27 <AnMaster> Deewiant, that it is a mess? Especially for reading strings
22:06:34 <AnMaster> somewhat less so for integers, but still
22:07:28 <AnMaster> Deewiant, well, I don't know how to explain it. It feels like gets() almost in "eww" level
22:07:47 <AnMaster> only way it could be worse would be using global buffers and being non-reentrant
22:08:04 <AnMaster> strtok() is that level of ewww
22:08:28 <AnMaster> "* The strtok() function uses a static buffer while parsing, so it's not thread safe. Use strtok_r() if this matters to you."
22:10:54 <AnMaster> pikhq, testing on random data I get a valgrind error
22:11:04 <AnMaster> that was on the program itself
22:11:14 <AnMaster> should I filebin my compiled version?
22:11:44 <AnMaster> pikhq, or can you reproduce it with your own copy?
22:14:44 <AnMaster> I want to know if I should filebin it or go do other stuff
22:15:17 <Deewiant> "*prod*" generally doesn't help
22:15:39 <AnMaster> pikhq, see http://sprunge.us/NAIM too
22:15:46 <AnMaster> Deewiant, yes but it still shouldn't crash!
22:16:06 <Deewiant> IIRC pikhq was accepting crashes for undefined behaviour
22:16:56 <AnMaster> theory: it crashes on negative values because lookup table go from 0 to 256
22:17:16 <AnMaster> so it reads below the place it should read
22:19:19 <AnMaster> okay there are two things. One is somehow loading the file it can end up doing something fishy
22:19:26 <AnMaster> the other seems to be what I thought
22:21:53 <AnMaster> Deewiant, basically, using chars in the range 128-255 I think you can cause it to execute any code you want
22:22:19 <AnMaster> 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 <AnMaster> ==28011== Access not within mapped region at address 0xD39AD3D
22:22:55 <AnMaster> ==28011== by 0x400C56: main (pikhq-bef.c:150)
22:23:20 <AnMaster> ==28013== Bad permissions for mapped region at address 0x3
22:23:20 <AnMaster> ==28013== by 0x400C56: main (pikhq-bef.c:150)
22:23:53 <AnMaster> Deewiant, wow I got it to end up inside the valgrind helper itself
22:23:55 <AnMaster> ==28016== Bad permissions for mapped region at address 0x380040B0
22:23:55 <AnMaster> ==28016== at 0x380040B0: ??? (in /usr/lib/valgrind/exp-ptrcheck-amd64-linux)
22:25:42 -!- Oranjer has joined.
22:26:40 <AnMaster> "You bumped the wumpus." <-- huh I thought you were eaten instead
22:27:08 -!- Oranjer has quit (Read error: Connection reset by peer).
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 <pikhq> AnMaster: Yeah, well. Make fungespace signed.
22:37:38 <AnMaster> pikhq, -Dchar="unsigned char"?
22:38:17 <pikhq> http://sprunge.us/KJTi
22:39:26 <AnMaster> pikhq, and still this: http://sprunge.us/dJId
22:39:46 <AnMaster> pikhq, something messed up in file loading
22:41:19 <AnMaster> 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 <AnMaster> pikhq, it happens on mycology too I think you go one further than your array
22:42:28 <pikhq> That should be what the line reads.
22:42:43 <pikhq> Trivial fix, and surprising that didn't cause breakage.
22:43:00 <pikhq> I was going 1 row too far into the array was all.
22:43:29 <AnMaster> pikhq, it probably went into some other static data
22:43:41 <AnMaster> and valgrind --tool=memcheck (the default) can't detect that
22:44:13 <AnMaster> 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:35 <AnMaster> and if it is a non-dynamically allocated block memcheck won't do anything much with it
22:45:37 <pikhq> 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:55:05 <songhead95> I have never written a brainfuck interpreter for a handheld!!!
22:55:18 <ais523> wow: http://code.msdn.microsoft.com/ookLanguage
22:55:24 <ais523> songhead95: hmm, you may be able to write one yourself
22:55:33 <ais523> BF interps/compilers are some of the easiest programs to write around
22:55:53 <ais523> as for that msdn link, it doesn't even seem to be an April Fool's joke
22:55:54 <songhead95> yes. I have written compilers for gameboy and iphone
22:55:57 <pikhq> The *only* thing that's even vaguely difficult is parsing it.
22:56:06 <songhead95> don't know how to write an interpreter though
22:56:08 <ais523> they've just taken to using esolangs as examples for some reason
22:56:16 <ais523> songhead95: basically, you try to mimic the structure of the program
22:56:28 <ais523> as in, if the command is >, then add one to the pointer, etc
22:56:32 <ais523> basically a massive switch statement
22:56:46 <songhead95> yes, I know I sound like a noob, but the '[' and ']' always get me
22:56:54 <ais523> 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:23 <ais523> one easy one is to move forwards/backwards through the program counting brackets until you reach a balance
22:57:34 <pikhq> 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 <songhead95> so if I'm writing in a c like language, I want to have the whole program stored in a char array
22:58:42 <songhead95> and an interger reading it one character at a time
22:58:57 <pikhq> For the simple case, yes.
22:59:15 <ais523> that works fine for BF, it's arguably designed so that that's possible
23:01:17 <songhead95> so the putchar and getchar will be in base 10/16
23:02:13 <songhead95> sorry i tend to talk to myself in public online
23:02:57 <ais523> doesn't matter, monologuing can be useful
23:03:04 <ais523> you sometimes get logreaders responding to you months later
23:03:24 <ais523> or even just lurkers coming up with something insightful
23:03:35 <pikhq> Yeah, monologuing is fairly normal here.
23:04:09 <songhead95> oh I was just playing with the keyboard and accidently hit enter
23:04:37 <HackEgo> 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:59 <ais523> songhead95: meh, that's along the same lines as random o-ing
23:05:19 <ais523> 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:55 <Gregor> pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
23:05:56 -!- coppro has joined.
23:07:09 <ais523> hmm, maybe I should link coppro to http://code.msdn.microsoft.com/ookLanguage too
23:08:10 <songhead95> Cross compiling C for the ipod touch, with headers like stdio.h
23:08:46 <Gregor> songhead95: That violates the Apple SDK's license agreement :P
23:08:48 <AnMaster> <ais523> hmm, maybe I should link coppro to http://code.msdn.microsoft.com/ookLanguage too <-- wth
23:09:17 <ais523> AnMaster: as far as I can tell, Microsoft wanted an example of adding a new language to Visual Studio
23:09:29 <ais523> and picked a relatively simple esolang in order to keep the example simple
23:09:32 <AnMaster> ais523, why didn't they pick intercal ;P
23:09:44 <ais523> it is still kind-of crazy that there's semi-offiical support for Ook! in Visual Studio 2010, though
23:09:55 <coppro> I refuse to believe that you can integrate new languages until they make it easy to use a custom build system
23:09:55 <ais523> heh, I guess both INTERCAL and Unlambda would be too complex for an example
23:10:08 <ais523> hardly anyone's heard of dupdog
23:10:10 -!- Oranjer has quit (Read error: Connection reset by peer).
23:10:24 <AnMaster> which one was dupdog now again?
23:10:38 <ais523> AnMaster: it was one developed in this channel when someone was messing with egobot
23:10:42 <ais523> http://esolangs.org/wiki/Dupdog if you need a link
23:11:19 <ais523> 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:53 <ais523> (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 <songhead95> my favorite category of the wiki is unknown computational class
23:12:47 <Gregor> My favorite category is Languages written by Gregor Richards
23:13:33 <coppro> By 'sub-TC', you mean you think it is not TC?
23:13:43 <AnMaster> ais523, idea: implement it in a sub-TC lang
23:13:51 <AnMaster> ais523, I don't think it would be impossible
23:14:05 <ais523> well, to be precise, sub-TC means it can't do everything that a TC lang can
23:14:22 <ais523> uncomputable is also non-TC, but it's over TC rather than under
23:14:45 <ais523> 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:52 <ais523> you can define them but not implement them
23:15:01 <Gregor> ais523: Guhh ... not necessarily? A language can be uncomputable but not useful for computation, can't it?
23:15:13 <ais523> Gregor: good point, it's independent
23:15:15 <AnMaster> ais523, that makes natural languages uncomputable right?
23:15:35 <ais523> AnMaster: natural languages are incompletely specified, you can't work out their computational class as a result
23:15:53 <ais523> 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 <AnMaster> ais523, well if you can describe an uncomputable language in natural languages...
23:16:16 <ais523> AnMaster: again, arguably you can't describe /anything/ in a natural language
23:16:30 <ais523> and I'm not convinced being able to describe something is the same as being able to implement it
23:16:45 <ais523> AnMaster: because the meaning isn't pinned down to the level required to have a useful implementation
23:17:21 <AnMaster> ais523, can you implement anything in a natural language? Well I guess IRP...
23:17:26 <ais523> 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 <ais523> AnMaster: I'm not sure if IRP coutns
23:17:42 <ais523> but it's one of those langs like HQ9+
23:17:46 <ais523> obviously useless, yet it makes you think
23:18:05 <AnMaster> ais523, it is far more powerful than HQ9+ if the interpreters are in the mood for it ;P
23:18:19 <ais523> AnMaster: yep, but rather less accurate
23:18:30 -!- Sgeo has joined.
23:18:34 <ais523> what do we have the computational class of HQ9+ down as atm anyway?
23:18:36 <AnMaster> ais523, well, it is probabilistic
23:18:46 <ais523> probabilisticness makes it so hard to tell
23:18:48 <AnMaster> and the probability decreases with the complexity of the program
23:19:10 <Sgeo> HQ9+ is probabalistic?
23:19:33 <songhead95> 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 <ais523> songhead95: yep, the existence of an infinitely fast computer is one way to get uncomputable behaviour
23:20:04 <ais523> or, well, anything that lets you do infinite computations in finite time
23:20:37 <ais523> 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 <songhead95> so the halting problem is near-computable when the code doesn't take input, and is run on a superfast processor
23:21:13 <ais523> well, you can think of it as being only a "factor of infinity" away from being computable
23:21:17 <ais523> but that's rather a large factor
23:21:42 <AnMaster> ais523, it would be a major shock to me if someone found something that was an UTM and could be implemented
23:22:01 <songhead95> wouldn't a factor of infinity be infinity
23:22:02 <ais523> AnMaster: because that requires infinite data storage
23:22:13 <ais523> the point is, you need a computer that's infinitely more powerful than existing ones
23:22:18 <ais523> any finite number isn't good enough
23:22:19 <AnMaster> ais523, well yes that is why a real life UTM would be a major shock indeed
23:22:35 <ais523> AnMaster: real life extendable-storage is entirely possible, though
23:22:44 <ais523> and the only reason it wouldn't work is the Earth running out of resources to extend it
23:22:47 <AnMaster> 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 <ais523> AnMaster: the observable universe is finite
23:23:29 <AnMaster> 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:47 <Gregor> Slereah: The UNIVERSE could be, the OBSERVABLE universe could not.
23:23:54 <Slereah> There were some theories about an infinite observable universe
23:24:08 <AnMaster> ais523, sure, you might have to pause the thing if it caught up with you and continue extending it
23:24:15 <Gregor> I suppose if time goes infinitely back, sure, but that's all weird :P
23:24:16 <ais523> Gregor: by definition, combined with the values of a few constants which we happen to know the approximate values of
23:24:20 <ais523> AnMaster: pausing's fine
23:24:24 <ais523> the issue is literally running out of storage
23:24:30 <Sgeo> Scala: Good language, or bad 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 <Slereah> The usual argument against it was the blackness of the sky
23:25:04 <Slereah> But there are actually some configuration where it doesn't happen
23:25:13 <Slereah> A universe with a fractal structure works
23:25:16 <ais523> pity alise isn't here, that's who you should ask for (relatively accurate) judgements on how good languages are
23:25:22 <AnMaster> 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 <AnMaster> as you can never catch up with the speed of light this is no problem
23:25:46 <Slereah> AnMaster : You cannot, actually
23:25:52 <ais523> AnMaster: it is a problem, because you can never get outside the observable area
23:25:54 <Slereah> There were some calculations done about this
23:25:58 <ais523> it doesn't get bigger, it gets smaller over time
23:26:12 <ais523> so you can't "wait for things to become observable"
23:26:23 <AnMaster> ais523, how can it get smaller over time+
23:26:40 <ais523> AnMaster: think of it staying the same size but everything else getting bigger to compensate
23:26:44 <ais523> so effectively, it gets smallre
23:27:00 <AnMaster> ais523, you mean that space expands? okay
23:27:02 <Sgeo> I did NOT want to be reminded about how there's a RoboZZle app for iPhone but not Android
23:27:14 <AnMaster> ais523, well does one end of the tape have to be able to observe the other end?
23:27:32 <ais523> AnMaster: yes, or you can /never/ get to the bit of the tape you can't observe
23:27:36 <ais523> as in, you have two different programs
23:27:40 <ais523> you seem to be missing the concept of "observable" here
23:27:55 <ais523> there is no way that anything that isn't observable, from your point of view, can ever affect you
23:27:59 <ais523> no matter what you do or what happens
23:28:03 <ais523> at least, with current physics
23:28:04 <AnMaster> 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 <ais523> AnMaster: no, it won't
23:28:19 <ais523> it's moving away from you at faster than the speed of light
23:28:20 <Sgeo> Would it be a bad thing to do most of my recreational programming in Scala?
23:28:28 <ais523> and the light gets further away from you over time
23:28:34 <AnMaster> ais523, well okay so the tape would break by that wouldn't it?
23:28:50 <AnMaster> ais523, how comes earth and everything isn't torn apart by this
23:28:50 <ais523> AnMaster: probably, yes
23:29:08 <ais523> AnMaster: because the effect over a small scale is too small to notice
23:29:22 <ais523> and gravity/elasticity is a much stronger effect on the small scale
23:29:30 <ais523> where by "small" I mean "smaller than a galaxy or so"
23:29:35 <AnMaster> ais523, okay what about a wormhole then when you start reaching the problematic area?
23:29:46 -!- augur has joined.
23:29:48 <ais523> AnMaster: wormholes may change the way this works
23:29:56 <ais523> but they haven't been proven to exist
23:30:12 <ais523> also, so would finding something with better information storage density than a black hole
23:30:22 <ais523> (note: that's a theoretical limit, nobody's entirely sure how to store information in a black hole)
23:30:35 <songhead95> I wonder what it's like outside of time-space, in a black hole
23:31:37 <ais523> 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 <ais523> looking at something that falls into a black hole from the outside, it's like it sort of stops and fades
23:33:02 <ais523> it falls in slowly over the course of forever, but quickly the light disappears
23:33:14 <ais523> because otherwise you could generate energy like that
23:33:23 <ais523> (exponential decay in theory)
23:33:32 <AnMaster> 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 <ais523> probably less accurate, the universe is just that weird
23:33:46 <AnMaster> I'm not saying it is so, just that it is worth considering
23:33:53 <ais523> theory: some amused deity is making the laws of physics up as they go along
23:34:11 <ais523> coming up with some new weirdness whenever they reach a level at which we can actually detect what happens
23:34:14 <AnMaster> ais523, sounds like discworld almost
23:34:18 <ais523> this seems to explain most of physics, IMO
23:34:26 <Gregor> `addquote <ais523> theory: some amused deity is making the laws of physics up as they go along
23:34:29 <HackEgo> 149|<ais523> theory: some amused deity is making the laws of physics up as they go along
23:34:32 <coppro> the world is a computer simulation
23:34:49 <AnMaster> ais523, sure. I recently heard that from the point of view of a photon, every distance is zero
23:34:49 <coppro> at high levels, things work in simple manner because they've been programmed that way
23:34:50 <Gregor> coppro: However, not that lame "statistically we're a computer simulation" theory BS.
23:35:09 <Gregor> The universe is a computer simulation, within a computer simulation, within a computer simulation ad infinitum.
23:35:12 <AnMaster> amongst many other things this doesn't explain the term "light year"
23:35:14 <coppro> at low levels, things break down because we get to the actual level near code
23:35:18 <Gregor> The universe contains itself (in a simulation) and is its own cause.
23:35:24 <ais523> Gregor: that theory fails, because statistically speaking, we're likely to have a different theory of statistics from other simulations
23:35:31 <pikhq> Gregor: The universe is clearly a highly accurate universe implementation.
23:35:36 <Gregor> ais523: That's why I called it lame :P
23:35:40 <ais523> and as a result, the universe that contains ours is likely to have a different theory of statistics from ours
23:35:44 <ais523> and so, all bets are off
23:36:01 <Gregor> pikhq: What a hilariously useless statement X-D
23:36:15 <AnMaster> oh and another thing: photons lack mass. Yet they can push things (see: solar sails)
23:36:33 <pikhq> AnMaster: Photons possess energy.
23:36:58 <coppro> when they hit something, they vibrate slower and push a little
23:37:00 <ais523> they have (mass-energy)
23:37:07 <pikhq> Another fun thing: you know the weird photon/wave duality of light?
23:37:18 <pikhq> Electrons do the same thing.
23:37:28 <ais523> we should create a partical/wave-dual esolang
23:37:32 <Gregor> Uhh, not sound waves ... or fullerenes.
23:37:32 <AnMaster> coppro, sound wave behave like particles??
23:37:49 <songhead95> do soundwaves have the same capabilities of photons, like pushing things?
23:37:59 <AnMaster> pikhq, how the fuck does a sound wave behave like a particle
23:38:04 <coppro> http://en.wikipedia.org/wiki/Phonon
23:38:05 <pikhq> songhead95: Sound waves are literally the pushing of things.
23:38:06 <ais523> songhead95: soundwaves can certainly push things, given that they're inherently mechanical anyway
23:38:58 <coppro> and yes, Gregor, fullerenes have been experimentally observed to have wavelengths too. De Broglie's equation applies to all waves and particles
23:39:22 <AnMaster> coppro, what is the wavelength of a coppro?
23:39:33 <pikhq> AnMaster: Fairly low.
23:39:34 <coppro> depends on how fast I'm moving
23:39:43 <ais523> I've seen a book where the wavelength of a human was calculated
23:39:55 <ais523> and it was really really incredibly small
23:39:56 <AnMaster> ais523, heh, what did it end up at
23:40:03 <ais523> can't remember the exact value
23:40:14 <AnMaster> ais523, well, to the order of magnitude?
23:40:26 <ais523> AnMaster: smaller than even most stuff that comes up in fundamental physics
23:40:31 <songhead95> hahaha I played wikipedia race, and in 14 links got from Phonon to house of wax(film)
23:40:40 <ais523> maybe around 10^-30, to an order of magnitude of order of magnitudes
23:41:26 <ais523> could be any unit you like at that degree of inaccuracy
23:41:27 <coppro> apparently, when walking, my wavelength is roughly 1.5*10^-35 metres
23:41:32 <AnMaster> ais523, well if it was in Hz it would be rather different
23:41:47 <coppro> Hz are not a measure of distance
23:42:05 <AnMaster> which is why it would end up so differently
23:42:17 <pikhq> AnMaster: http://en.wikipedia.org/wiki/Matter_wave Calculate it yourself.
23:42:49 <Slereah> You can actually do quantum mechanics without the whole wave thing
23:42:54 <AnMaster> hm how did you get from wavelength to hz then?
23:43:38 <coppro> Wavelength is related to frequency by velocity
23:44:21 <coppro> momentum has a mass dimension
23:44:28 <coppro> wavelength and frequency do not
23:44:49 <coppro> I wasn't talking about the de Broglie equation
23:45:10 -!- augur has quit (Ping timeout: 264 seconds).
23:45:17 <Slereah> Even though they're only pseudoparticles
23:45:35 <coppro> for light, this is extra simple because v = c in a vacuum
23:47:02 <oklopol> no wait i suppose fullerene already refers to the particle version
23:50:12 -!- Oranjer has quit (Read error: Connection reset by peer).
23:51:00 -!- Oranjer has joined.
23:55:00 <songhead95> do people usually get mad if you haphazardly post large chunks of code and ask what your doing wrong?
23:55:56 <Slereah> songhead95 : Post them on pastebin
23:57:42 <songhead95> I followed earlier instructions without adding the loops yet