00:28:14 [[True story, I swear: Major software company in Andalusia. A mate of mine is coding using vi. His supervisor walks up behind him and after spying over his shoulder for a couple of minutes, interrupts his work and demands to know what he's doing. "Coding." "But you must use Word." She says. "Why?" "Well, it has a lot of advantages. For example the 'undo' function..."]] -- reddit comment 00:41:35 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | http://your.site/funge/fingerprints/name. 00:47:05 -!- dogface has joined. 01:02:10 optbot! 01:02:10 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | whether the alphabet is or isn't a notation for sounds depends on the language. 01:02:49 -!- jix has quit ("CommandQ"). 01:09:49 -!- cmeme has quit ("Client terminated by server"). 01:10:00 -!- cmeme has joined. 01:32:18 -!- tusho has quit ("Leaving..."). 01:41:16 -!- Sgeo has joined. 01:42:59 -!- Corun has quit ("FAN FRIED EGGS"). 02:15:30 -!- dogface has quit (Connection timed out). 02:26:43 -!- psygnisfive has quit (Read error: 104 (Connection reset by peer)). 02:27:04 -!- psygnisfive has joined. 02:38:34 -!- dogface_ has joined. 05:59:31 i know lots about the alphabet. :D 06:01:19 -!- GreaseMonkey has joined. 06:11:52 -!- Sgeo has quit (Remote closed the connection). 06:25:24 great topic :D 06:41:35 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Whee.. 06:56:23 -!- cherez has joined. 06:57:28 -!- cherez has quit (Client Quit). 06:57:41 -!- cherez has joined. 06:57:54 -!- cherez has left (?). 06:58:22 optbot; You just had to change the topic to something uninspired like that when someone pointed out the previous was great? 06:58:22 fizzie: !raw quit 06:58:46 optbot; And stop trying to trick me to quit. I am not a silly bot! 06:58:46 fizzie: *Goldbach 06:59:12 optbot; Huh? "Silly Goldbach"? 06:59:12 fizzie: the app "shoes" must be started from /path/to/shoes 06:59:30 optbot; Now you're just making no sense again. 06:59:30 fizzie: ~exec self.print_callbacks() 06:59:45 optbot; Not a bot! How many times I have to tell you this? 06:59:46 fizzie: that's what that error always means 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 10:10:47 -!- clog has joined. 10:10:47 -!- clog has joined. 10:16:46 -!- RedDak has joined. 10:23:36 -!- Slereah_ has joined. 10:23:36 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 10:26:17 -!- GreaseMonkey has quit ("Jesus loves you"). 10:27:44 -!- asiekierka has quit (Read error: 110 (Connection timed out)). 10:33:28 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 10:33:43 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 10:33:53 -!- Slereah_ has joined. 10:39:10 -!- Slereah has joined. 10:39:11 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 11:06:45 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 11:06:54 -!- Slereah_ has joined. 11:09:55 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 11:23:46 -!- Slereah_ has joined. 11:36:22 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 11:36:43 -!- Slereah_ has joined. 11:40:00 -!- Sgeo has joined. 11:41:10 -!- jix has quit (Nick collision from services.). 11:41:20 -!- jix has joined. 12:01:26 -!- LinuS has joined. 12:02:23 -!- Slereah has joined. 12:02:56 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 12:28:13 -!- Tritonio_ has quit (Remote closed the connection). 12:34:02 -!- RedDak has joined. 12:38:13 -!- tusho has joined. 12:41:18 -!- Slereah_ has joined. 12:41:18 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 12:41:35 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | 2 ais523: daemon deadfish funge93. 13:00:21 oh my god 13:00:26 duke nukem forever... 13:00:27 is ... 13:00:32 DONE 13:00:39 oh wait 13:00:41 Damnit! 13:00:42 No it's not 13:01:49 what possessed you to think it was 13:05:08 Deewiant: slashdot's incompetent editors 13:05:11 http://slashdot.org/ 13:05:20 "OMG!! DNF RELEASED! Update: wait no it was another game" 13:06:00 lol 13:07:08 heh, nice tags 13:07:09 kdawsonsucks, badsummary, wrongsummary, !dukenukemforever 13:08:53 why didn't they just nuke the fecking story 13:40:07 -!- Slereah has joined. 13:40:07 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 13:43:21 -!- Tritonio_ has joined. 14:03:25 -!- Slereah_ has joined. 14:03:25 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 14:04:41 -!- Slereah has joined. 14:04:41 -!- Slereah_ has quit (Read error: 54 (Connection reset by peer)). 14:11:50 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 14:25:48 -!- Slereah_ has joined. 14:25:48 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 14:28:49 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 14:28:59 -!- Slereah_ has joined. 14:32:03 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 14:46:14 -!- Judofyr has joined. 14:51:34 -!- asiekierka has joined. 14:51:36 Hi 14:52:07 I am thinking about an esolang where you're a shopper. 14:52:09 Basically 14:52:29 product milk "Mustang Milk" 130 14:52:42 Means a milk the brand "Mustang Milk" costs 130 cents 14:52:54 or variable "Mustang Milk" from the "milk" array equals to 130 14:54:07 oh i was thinking more something like constraint satisfaction 14:54:33 take "Mustang Milk" OR take milk "Mustang Milk" will put "Mustang Milk" in the baset 14:54:35 basket* 14:54:40 or put 130 on the stack 14:55:02 hmm 14:55:11 actually i'm not sure what my exact idea is 14:55:16 kinda lost it 14:55:42 putback will remove the topmost item from the stack 14:55:47 the shopping cart is clearly a set, not a stack :) 14:55:58 But it'll be used like a stack 14:56:00 As in 14:56:10 you can only access the topmost item(s) 14:56:13 -!- Slereah_ has joined. 14:56:27 Slereah_: what's the up? 14:56:48 addprices will add the 2 topmost product prices together, remove the products, and put the total price on the stack. 14:57:29 subprices will subtract the first (topmost) with the second (second topmost). 14:57:36 Also, you can access a little paper piece 14:57:39 that can store one digit 14:57:52 addpaper will add 1 to the paper piece 14:57:56 subpaper will subtract 1 from it 14:58:27 I must write some sort of docs about it 15:00:03 Shop will be a lot like chef, but not so 15:06:10 oklopol : Wat 15:14:14 -!- tusho has changed nick to tusho|away. 15:28:45 -!- tusho|away has changed nick to tusho. 16:03:52 has anyone tought about esolang about 2d platform? 16:04:01 jump, killenemy, kick 16:04:02 nope 16:04:03 :P 16:04:14 2d platform game i mean, mario and such 16:04:17 But it isn't a that good idea. 16:04:23 i see 16:04:24 I once had an idea of an esolang based on Portal 16:04:29 EXPLAIN 16:04:35 Mostly based on Rube. 16:04:37 Please, for the love of my Portal obsession, explain! 16:04:41 lol 16:04:49 Well, do you know Rube? 16:05:25 I can check it 16:05:41 {{oh god, not lagged IE typing again!}} 16:05:46 Rube is already pretty 2D platform to begin with 16:05:52 My idea was some sort of Rube. 16:05:54 But now! 16:05:59 You're thinking with portals! 16:06:34 Is there a cake command? 16:06:49 Well, the Cake was supposed to be the end of the program 16:06:58 Once that L reached it 16:07:01 but it can't 16:07:05 You can't put cake 16:07:09 THE CAKE IS A LIE 16:07:10 (L being 16:07:28 Because she kinda looks like an L with her big feet contraptions 16:07:41 If you'll put cake, it isn't Portal-compilant anymore. It can only have cake AFTER the end of the program. Haha. 16:07:49 You can end it with a... incinerator. 16:07:50 Yes. 16:07:53 That fire pit 16:07:54 thing 16:08:01 Incinerator is to destroy boxes 16:08:10 Boxes that contains data. 16:08:16 Like in Rube, that is 16:08:22 Except they're not boxes. 16:09:00 They're the Aperture Science Weighted Storage Cubes 16:09:00 right 16:09:09 They're Aperture Science Weighted Storage Cubes 16:09:17 Yes. 16:09:17 Where are the Companion Cubes? 16:09:38 So far, I have no idea how to include it 16:09:57 What about them storing strings? 16:10:04 uuh! 16:10:06 What? 16:10:06 i had it know 16:10:13 or can the storage cubes do this too 16:10:17 as esolang that has the game level file 16:10:22 as instructions 16:10:24 :P 16:10:26 an* 16:10:37 Well, it's rube based 16:10:47 So the boxes contain hex values. 16:11:03 And you can output them as char and such 16:12:39 Where are the actual portals 16:12:59 Well, they're pre-existing. 16:13:10 ooh 16:13:15 My first idea was to do just Befunge, but with portals 16:13:19 so there's no (standalone) portal gun? 16:13:23 Also 16:13:30 So that the pointer could enter a portal and such 16:13:31 you could realize befungeportals as two text files 16:13:53 Then the pointer will start at the same Y position, but at the X where it finds a blue portal 16:13:55 as in 16:13:57 the other portal 16:14:29 My idea was just to place a whole bunch of portals and then to include a bit of text that explained how they were connected 16:16:08 But odds are, I'll never make an interpreter 16:16:12 :( 16:16:17 I have already 3 interpreter-less languages 16:16:25 And they have actual specs 16:16:33 I have one interpreter-less language 16:16:34 IRCot 16:16:37 for making an ircbot in 16:16:38 Well, except Arithmetica. It's sort of fuzzy. 16:16:40 Really bad 16:23:18 asiekierka, are you planning on being involved in rootnomic/normish? 16:23:28 What do you mean by "involved" 16:23:38 AnMaster: you about? 16:23:41 Voting, and stuff 16:23:46 Sometimes. 16:23:58 Deewiant, yes partly 16:24:06 The thing is, each player raises quorum.. 16:24:42 AnMaster: which ones were BAD for you in Mycology's concurrency test; the "a b" one, any others? 16:26:29 Deewiant, the k one too, again I checked that the actual tick count for k was correct 16:26:37 so I guess the error happen somewhere in between them 16:26:43 or just before I mean 16:27:10 AnMaster: great, because I realized a silly error in CCBI that might cause that and I was right and now CCBI has the same errors :-) 16:27:16 AnMaster: so you can chill, Mycology is bugged 16:27:20 aha 16:27:27 Deewiant, what was the issue? 16:27:38 if you have two IPs, A and B 16:27:45 where A is executed first 16:27:45 -!- asiekierka has quit. 16:27:57 yes? 16:28:42 then if A does 'p' to place a space/semicolon where B would next execute, the B would execute that in one tick instead of zero 16:28:50 assuming this happens in one tick 16:29:03 i.e. if B did the same to A it wouldn't happen 16:29:03 huh, that sound extremely odd 16:29:21 yes, it was a very stupid thing I did in version 1.0.3 or so 16:29:46 and I don't see how it could happen, are you pre-fetching the next instruction or something? 16:29:48 the issue was concurrent tracing, where I wanted all IPs to show the next instruction they would execute instead of space/semicolon 16:29:57 ooh I see 16:30:02 so what I did was ip.gotoNextInstruction before the execution loop, for all IPs 16:30:09 but this isn't yet stupid 16:30:32 oh? 16:30:39 I then noticed that an IP was occasionally reflecting because it was trying to execute space/semicolon 16:31:00 so I did the stupid fix: add the instructions back that were there before, for space and semicolon 16:31:11 err, it shouldn't reflect on those, ever. 16:31:13 which, with the new gotoNextInstruction scheme, would take one tick 16:31:28 AnMaster: they were removed from the main execute() thing because they should never have come there 16:31:36 ah... 16:31:37 because they should be bypassed in gotoNextInstruction 16:31:42 but then I added them back 16:31:44 which was stupid 16:31:52 because then they are of course like any other instruction 16:31:54 and take one tick 16:32:15 earlier I had some kind of "bool executeAgain;" which took care of them as a special case 16:32:29 (I think, anyway) 16:32:32 but yeah, stupid bug 16:32:41 just realized a few days ago that that might cause it 16:32:46 and seems I was right 16:34:50 well this means rc/funge will fail again iirc 16:35:00 because it passed while mycology had that bug 16:35:44 yes, probably 16:36:15 so for a while cfunge was more conforming than CCBI hehe 17:04:28 -!- sebbu2 has joined. 17:05:10 -!- AnMaster has quit (Read error: 104 (Connection reset by peer)). 17:09:35 -!- AnMaster has joined. 17:10:10 what did I miss? 17:10:18 my computer crashed 17:10:46 not even kernel panic, just rebooted and refused to start until I unplugged it and replugged it 17:10:51 Naked women. 17:11:09 5,000,000 of them. 17:11:29 refused to start as in: locked up before bios started 17:11:40 We're now so bored with them that we turned gay 17:11:50 speak for yourself 17:12:08 I'm still excited about them 17:13:11 Deewiant: still? now it's 10,000,000 17:13:20 yawn. naked women are so 5 minutes ago 17:14:17 -!- sebbu has quit (No route to host). 17:14:17 -!- sebbu2 has changed nick to sebbu. 17:18:08 http://www.google.com/codesearch?q=die_you_gravy_sucking_pig_dog 17:21:33 Heh. 17:33:42 -!- AnMaster has quit (Remote closed the connection). 17:40:25 -!- AnMaster has joined. 18:17:35 -!- Tritonio_ has quit (Remote closed the connection). 18:20:44 -!- Tritonio_ has joined. 18:30:55 AnMaster: new Mycology (and CCBI) 18:33:23 k 18:33:33 Deewiant, forgot the url 18:34:55 iki.fi/deewiant 18:35:18 sheesh, you just need to remember "iki" and then whois me for the rest ;-) 18:41:35 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | having an extra digit does increase the risk that some more easily useful combination may arise.. 18:42:43 * [Deewiant] (n=mniemenm@peridootti.hut.fi): Matti Niemenmaa <-- eh? 18:42:55 btw what does iki mean? 18:42:59 AnMaster: so you get .fi as well as deewiant 18:43:12 alternatively, iki.fi/matti.niemenmaa 18:43:32 AnMaster: http://en.wiktionary.org/wiki/iki 18:44:20 Deewiant, it works except... 18:44:24 Testing fingerprint SUBR... loaded. 18:44:28 18:44:33 as in it locks up there 18:44:35 very odd 18:44:41 it didn't lock up there on the old one 18:44:42 see the readme.txt 18:44:51 it's probably to do with the fact that { is now used in many places 18:45:07 which means, storage offsets better work 18:45:35 well they do as far as I know 18:45:36 s/the readme.txt/the changelog in the readme.txt/ 18:45:54 AnMaster: well, do you apply them when popping vectors in SUBR? 18:46:03 hm 18:46:14 the specs doesn't say so do they? 18:47:03 applying the offset is the default 18:47:11 http://www.elf-emulation.com/funge/rcfunge_manual.html#SUBR 18:47:17 it's only if it explicitly says that it shouldn't be applied that you shouldn't apply them 18:47:27 Mike agrees FWIW 18:47:42 Deewiant, I say it is undefined 18:47:47 as the specs currently read anyway 18:47:58 AnMaster: then complain to Mike if you see him 18:48:14 Deewiant, http://www.elf-emulation.com/funge/rcfunge_manual.html#SUBR 18:48:22 there is nothing about storage offset there 18:48:29 so how the heck could I know when to pop it 18:48:30 It says "Va" 18:48:32 or what value to use 18:48:34 i.e. Vector a 18:48:37 i.e. apply storage offset 18:48:40 because it's a vector 18:48:55 Vector a is where the code jumps in C? 18:48:57 Wiktionary does not really explain the meaning of "iki" in the iki.fi case; there it's an acronym for "Internet-käyttäjät ikuisesti", name of the organization providing those email addresses; "Internet Users Forever", in English. 18:49:06 same for J 18:49:13 Deewiant, no? 18:49:22 AnMaster: probably yes 18:49:28 Deewiant, it doesn't say that should be the storage offset as well *anywhere* 18:49:32 fizzie: and yeah, but it's obviously a pun on the real meaning as well 18:49:35 tell me where it says so, and I will change it 18:49:45 AnMaster: it is a vector, so why not apply it, it would be stupid not to 18:50:05 Deewiant, well i takes a vector too, why not make it the storage offset while you are at it? 18:50:09 Well, sure. And there's an english summary on www.iki.fi, so it's not like AnMaster has an excuse for not knowing it. 18:50:17 you are making no sense Deewiant! 18:50:31 AnMaster: er, i /should/ use the storage offset as well 18:50:45 AnMaster: just like p and g 18:50:50 Deewiant, oh you mean jump relative storage offset, it doesn't say that either 18:50:56 I thought you meant set storage offset 18:51:03 no, of course not :-) 18:51:08 but my point is 18:51:16 Deewiant, anyway tell me where it says you should use the vector relative the offset 18:51:19 it shouldn't need to be explicitly said 18:51:27 because otherwise { rapidly becomes useless 18:51:47 it is a vector which points to funge-space, hence apply storage offset to it unless explicitly said that you shouldn't, period. 18:51:48 Deewiant, why then does the standard say explicitly that g and p are relative that offset 18:52:16 AnMaster: because the standard is written better than the RC/Funge-98 fingerprint specs ;-) 18:52:18 Deewiant, and yes storage sure, but not IP jump offset 18:52:22 fizzie: Well sure he has an excuse (it's work) but it's not a very good one. 18:52:47 Deewiant, storage offset is fine, jump offset is something else really 18:53:04 AnMaster: so mail Chris and ask him to change the spec to say "storage/SUBR jump/TRDS jump/... offset" 18:53:46 Deewiant, no, those fingerprints should say explicitly that the jump should be relative the offset 18:53:49 AnMaster: the whole point of the storage offset is that you can specify vectors relative to the { point and thus you get code which is position-invariant (add a line before it and it still works, for instance) 18:54:15 AnMaster: I agree that it would be better if they did say that, but I think it's stupid to not apply it even if it's not documented 18:54:30 Deewiant, as the specs read now, I can only consider this a UNDEF 18:54:33 The standard also bothers to explicitly state that the i/o instruction origin vectors are relative to storage offset, so I guess one could make a case that it doesn't sound very "default"-y. 18:54:44 also the changelog you mentioned doesn't mention anything like that 18:55:02 Every time you talk about all that Befunge stuff, I get the feeling I should be improving fungot. 18:55:20 AnMaster: hmm, crap, I thought it did 18:55:33 I guess I forgot to write about that :-/ 18:56:16 Deewiant, anyway 1) you can't change published fingerprints really 2) the published fingerprint doesn't say anything about storage offset. 18:56:25 AnMaster: but anyway, Mike told me in an e-mail that it's a bug if any of those are not relative to the offset (REFC and one other weren't supposed to be, forget which) 18:56:27 That means it should be an UNDEF 18:56:33 1) is bullshit IMO 18:56:40 and 2) is Mike's crap writing 18:56:50 the guy can't document to save his life :-P 18:57:03 well maybe, but it is still a UNDEF as the documentation currently reads 18:57:16 so mail him and tell him to fix it 18:57:42 I often tell him to fix stuff but he only updates the docs 2+ releases after he makes the change in his interpreter ;-P 18:58:34 Deewiant, so should return be absolute or? 18:59:03 also about documenting, wtf is my SUBR call doing, I need to add more comments 18:59:11 :-D 18:59:45 why on earth am I creating a temporary stack 18:59:46 AnMaster: absolute in CCBI are: deltas, REFC, ORTH. 19:00:02 nothing else. 19:00:55 Deewiant, so if you use refc to store a reference to a cell then change storage offset and then dereferences the cell, it will be fixed so it works for g and p with current offset? 19:00:57 or what? 19:01:23 Deewiant, anyway, either mail Mike about this or make it a UNDEF. 19:01:25 I mean it 19:01:37 AnMaster: nah, it's just both pushed and popped without the storage offset. 19:01:39 because considering that well defined is insane 19:01:51 AnMaster: I'll tell him if I see him here, I expect you to do likewise 19:01:52 Deewiant, so REFC is basically useless with offsets then? 19:02:07 Deewiant, no as I consider absolute for jump better 19:02:13 so I won't mention it 19:02:31 AnMaster: why would it be better 19:02:33 Deewiant, anyway for now I shall have to note that mycology is buggy and can't handle this UNDEF then? 19:03:51 AnMaster: why don't you say it's buggy because it doesn't handle k as UNDEF 19:04:22 Deewiant, well now it is well defined with the catseye diagnosis tools 19:04:42 AnMaster: no, 2k ;;;5 for instance is still UNDEF according to the letter of the spec 19:04:48 Deewiant, also you have messed with STRN it seems? 19:04:58 BAD: G reflects 19:05:02 without any reason 19:05:08 AnMaster: I don't know what I have messed with, in order to add new fingerprints many old ones now use { 19:05:32 AnMaster: at least there you can't argue that it's not a "storage" offset :-P 19:05:47 Deewiant, I will consider all that doesn't explicitly say that they are relative the storage offset as absolute 19:05:56 and SUBR is more useful when absolute 19:06:11 AnMaster: so what about k 19:06:24 means you can call utility functions at absolute offset even when you are in a { 19:06:31 with relative it would be painful to do that 19:07:04 AnMaster: that way if you define functions within the { and then move the code in the file, you're screwed. 19:07:20 the relative way is more general 19:07:21 Deewiant, hm? 19:07:26 how do you mean 19:07:43 AnMaster: well, with absolute, if you add a line earlier, you have to change all your code because the y-coordinate is different. 19:07:44 you would have to recalculate where the functions are every time you change a { 19:07:51 which seems worse 19:07:58 you are screwed if you move the { block basically 19:08:00 with relative, you don't have to recalculate anything. 19:08:04 AnMaster: yes, with absolute. not with relative. 19:08:37 Deewiant, no, say you want to call a utility function at (4,5) from inside a {-block at 47,23 19:08:59 now if you move that { block to 48,29... you are screwed with relative addressing 19:09:06 with absolute it would work just fine 19:09:13 AnMaster: make a utility function within the { which subtracts the storage offset (using u) and calls the outer utility function 19:09:30 relative can handle all cases with more maintainability than absolute 19:09:33 u? isn't that some Trefunge function? 19:09:48 AnMaster: no, it's "stack under stack" 19:09:51 ah right 19:09:52 AnMaster: m and l are Trefunge 19:09:59 and h 19:10:01 iirc 19:10:14 yes 19:10:27 Deewiant, anyway utility function, you just love making the code more complex 19:10:50 AnMaster: I love making code maintainable 19:10:59 writing Mycology taught me that 19:11:33 Deewiant, well the specs doesn't say anything about it, so make it an UNDEF until they do 19:11:51 In SKI calculus, can you prove that `sk is equivalent to `ki without using the axiom (for all x, `ax = `bx) => a = b? 19:12:16 AnMaster: I can't possibly make it an undef without fucking up mycology and having to duplicate fingerprints for the absolute/relative cases, plus losing maintainability again because of the absolute stuff 19:12:43 AnMaster: what's wrong with you just fixing cfunge before the new spec is published?? 19:12:54 AnMaster: not like anybody's using those fingerprints who would care :-P 19:13:01 Deewiant, because I follow published standards 19:13:36 AnMaster: I see, so how does your t instruction work 19:13:40 Deewiant, so should the return address pushed by C be relative offset? or absolute with offset added? 19:14:00 Deewiant, what do you mean about t? 19:14:05 AnMaster: what's the difference? 19:14:14 AnMaster: well, t as specified in the spec is an infinite loop + forkbomb 19:14:30 Deewiant, well either it pushes the vector + offset, or it pushes the vector without the offset 19:14:32 AnMaster: because it doesn't say the child IP should move after being forked 19:14:41 actually 19:14:54 position - offset 19:14:55 or 19:14:57 position 19:14:58 AnMaster: with offset of course so that it all works within { 19:15:10 Deewiant, so if you leave { then it returns to wrong place? 19:15:11 nice 19:15:12 -!- sebbu has quit (Read error: 104 (Connection reset by peer)). 19:15:26 StackPushVector(ip->stack, &VectorCreateRef(ip->position.x - ip->storageOffset.x, ip->position.y - ip->storageOffset.y)); 19:15:29 so something like that? 19:16:11 AnMaster: erm, that's like saying that if you change EIP within a function "ret" won't work properly 19:16:25 AnMaster: something like that yes 19:16:35 Deewiant, it would be a lot easier if the docs said this 19:16:38 agree? 19:16:48 so get Mike to update the docs 19:17:04 AnMaster: yes, and yes 19:17:05 oh and get the JSTR author to update too 19:17:12 because that doesn't say anything about relative either 19:17:28 good luck with that, his befunge page was down last I checked 19:17:37 The standard also bothers to explicitly state that the i/o instruction origin vectors are relative to storage offset, so I guess one could make a case that it doesn't sound very "default"-y. 19:17:44 Deewiant, so I agree with fizzie there 19:17:50 like said, the standard is well written, unlike mike's docs 19:17:53 I'm not sure I agree with fizzie here. 19:18:00 fizzie, shut up :P 19:18:20 ;P 19:18:24 I just pointed out that one could make the case it's not very defaulty. My personal intuitive feeling is that all funge-space access should happen "as if" it was done with g/p, unless otherwise specified. 19:19:07 Deewiant, what in the REFC, and ORTH specs says it is *not* relative the offset then 19:19:52 AnMaster: doing REFC your way might make more sense (i.e. make it work regardless of in or outside {) 19:20:04 AnMaster: but the basic point there is that the REFC list is global 19:20:08 Deewiant, no I won't do it that way, as the specs doesn't say so 19:20:19 I just noted you were illogical 19:20:31 AnMaster: so how about your t 19:20:35 AnMaster: cfunge is incompliant 19:20:53 Deewiant, indeed it does move but that is because it wouldn't work at all otherwise 19:21:02 EXACTLY. 19:21:05 but 19:21:12 all these other ones work either way 19:21:18 thus I prefer to follow the standard 19:21:22 yes, one way being drastically more useless than the other 19:21:28 Deewiant, or you could consider the t move UNDEF 19:21:29 and the standard not being explicit about it 19:21:34 nowhere does it say it shouldn't move either 19:21:41 so you are free to do whichever you want 19:21:52 -!- sebbu has joined. 19:21:59 same for these with storage offset 19:22:32 Deewiant, where does it say ORTH is absolute? 19:22:39 I checked http://catseye.tc/projects/funge98/library/ORTH.html 19:22:44 it doesn't mention "offset" anywhere 19:22:51 so why isn't your relative then? 19:22:54 AnMaster: the Orthogonal language doesn't have offset 19:23:15 since those are meant to duplicate them directly, I think that makes sense 19:23:19 although this is arguable 19:24:17 another point is simply usefulness: if they're to use the offset then they're just \g and \p 19:24:23 -!- asiekierka has joined. 19:24:26 Deewiant, certainly it is, it means just adding a "HTRO"4(....{ won't work as prefix to make it run under befunge (plus of course change the instructions to those in fingerprints) 19:24:28 if they don't, they're actually worth something 19:24:29 Hello 19:24:44 fizzie: Are any new fungot langs there? 19:25:06 Nope; been busy. 19:25:45 I'll probably add back some sort of method to give it longer-than-500-characters programs before starting to work on any new interpreters. 19:25:46 -!- tusho has changed nick to tusho|away. 19:27:12 I think there are some ugly brainfuck dependencies in the code, too. Hopefully not too many. 19:29:23 Incidentally, I don't use { or SUBR at all; I call my two "functions" (prepare program, execute program) by sending the IP down on column 5 or column 6 with the language ID (and a where-to-return value under it) on the stack; there are :1-#v_ -style sequences to pick the interpreter, and those return in columns 79/80 with that where-to-return code on top of stack. 19:29:28 Very ugly. 19:29:44 sounds similar to what I do in Mycology to load fingerprints 19:29:45 "Maintainable Befunge" just feels a bit weird. 19:29:48 fizzie, do you use FING or FNGR? 19:29:53 FNGR IIRC 19:30:05 consider changing to FING if you use FNGR 19:30:08 It's still FNGR, but I can switch to FING easily. Meant to do that, but haven't yet. 19:30:16 good 19:30:43 FNGR is used on the first 3 lines only and )d afterwards; not much to change. 19:30:50 Deewiant, anyway I committed changes to make mycology happy, with a note that this is really an UNDEF but mycology treats it as well defined when it isn't 19:31:00 AnMaster: which ones did you have to change 19:31:01 Deewiant, JSTR, STRN and SUBR are affected 19:31:04 alright 19:31:10 please contact the authors to make them update the docs 19:31:15 if you wish to keep it this way 19:32:17 -!- tusho|away has changed nick to tusho. 19:32:18 Deewiant, and if you want me to change REFC to the way I suggested above: forget it 19:32:28 it was just pointing out how illogical you were being 19:32:51 I won't change REFC unless it's specs are updated 19:33:28 I don't see lack of logic anywhere, just caring about usefulness and intention more than about precisely what is written 19:35:15 -!- MeTh0Dz has joined. 19:37:09 exactly 19:37:11 Deewiant is right 19:37:13 who wrote REFC? 19:37:20 If it was MikeRiley, well, you know what he's always like 19:37:26 "yeah,,,you're right...i'll change it" 19:37:49 Best to just cut to the chase, and avoid bureauacracy 19:37:59 tusho: it's an old cat's-eye fingerprint, so probably chris pressey 19:38:09 Deewiant: Then it'll never be updated. 19:38:11 :) 19:38:13 exactly 19:38:20 so is defining it to be useful so wrong? 19:38:40 Deewiant: To satisfy AnMaster, maybe call it RFCT 19:38:41 or something 19:38:56 meh, it's not worth it 19:39:00 REFC is fairly useless anyway 19:39:20 Deewiant: perhaps you should have a mycology_opinionated.b98 19:39:25 :-D 19:39:26 that tests UNDEF things 19:39:29 etc 19:39:42 (for Reasonable Behaviour(TM)) 19:39:51 mycology_for_people_with_common_sense.b98 19:40:03 If you want to be snide about it. 19:40:23 mycology_anmaster_keep_out.b98 19:41:34 mycology_for_ircbots.b98 19:42:05 optbot; What do you think about the Great Relative/Absolute Funge-Space Addressing Controversy of 2008? 19:42:05 fizzie: It would be marginaly less irritating without furries. 19:42:07 asiekierka: no. 19:42:13 LMAO@optbot 19:42:13 tusho: when writing C++ I have this strangest urge to write well-structured, oo-like code. 19:42:13 mycology_for_mycology.b98 19:42:19 optbot; Well, that much is undoubtedly true. 19:42:19 fizzie: am I markov "Internetty" chain bots? 19:42:27 mycology_for_quines.b98 19:42:28 optbot; I don't know, are you? 19:42:29 if I can get Jesse van Herk to update JSTR's spec, I don't have to do anything 19:42:29 fizzie: 4 19:42:50 mycology_optbot.b98 19:42:50 asiekierka: with your powers combined, i am captain ge...ahem 19:42:59 xD 19:43:21 -!- Hiato has joined. 19:44:15 "captain ge"? 19:44:31 captain ge...ahem 19:44:35 captain geahem! 19:44:43 um 19:44:53 GEAHM, GEARM, GEARMD, GARMED, ARMED 19:44:56 what should FING do on empty opcode stack? 19:45:08 Deewiant, ^ 19:45:21 AnMaster: the spec doesn't say so I guess you can do whatever you want!!! 19:45:34 Deewiant: Looks like he needs mycology_opinionated.b98! 19:45:46 Deewiant, hm probably reflect for now, will ask Mike to clarify specs 19:45:54 From the contet, I think it might've been captain geek. The conversation immediately before is about geeks. 19:46:02 s/tet/text/ 19:46:22 Contet 19:46:23 :D 19:46:43 return stack->entries[--(stack->top)]; 19:46:46 is that well defined in C 19:46:48 or not 19:46:55 why not 19:47:04 no, magical pixies make it not work 19:47:05 well sometimes those things aren't 19:47:05 with extra brackets to boot 19:47:09 stack->entries and stack->top are very different objects, I don't see why it wouldn't be. 19:47:11 'those things'? 19:47:11 "those things"? 19:47:15 fizzie, hm ok 19:47:20 god sometimes I wish AnMaster actually knew how these things worked 19:47:21 :D 19:47:47 tusho, as in evaluation order 19:48:00 AnMaster: Where is the ambiguity? 19:48:02 There is none. 19:48:05 I don't remember the details for what is undefined from the top of my head 19:48:11 How on earth could it be? 19:48:15 p[p++]; 19:48:16 --x returns x, then decrements it. 19:48:17 for example 19:48:22 AnMaster: It's a structure. 19:48:22 tusho, 19:48:23 x[y++] 19:48:25 x->y and x->z aren't the same thing. 19:48:28 It's just x[y++]. 19:48:33 Yes, what Deewiant said 19:48:34 --x returns x, then decrements it. 19:48:37 other way around 19:48:48 AnMaster: Yes, yes, this mixing of prefix and postfix operators is confusing. 19:48:50 My point still stands. 19:48:54 god sometimes I wish tusho actually knew what he talked about 19:48:58 You're not using something and modifying it in the same expression. 19:49:05 And unlike yours, mine was just a thinko. 19:49:11 god sometimes I wish AnMaster would concentrate on the whole and not the irrelevant details 19:49:51 Deewiant++ 19:50:12 The bickering! It's almost too much to bear! 19:50:24 optbot: Help! 19:50:24 Deewiant: I am YOUR MOM 19:50:27 !! 19:50:34 optbot: I never suspected!! 19:50:34 Deewiant: ...yes 19:50:58 "Luke...I am...YOUR MOM" 19:51:03 :-D 19:51:08 "Hahahaha oh good one Vader you got me there!" 19:51:15 Let's go to the castle of YOUR FACE 19:55:26 -!- Hiato has quit ("Leaving."). 19:56:52 -!- Hiato has joined. 19:57:51 -!- Hiato has quit (Read error: 104 (Connection reset by peer)). 20:06:19 "BAD: Z did not push a reflect from empty source semantic stack" interesting 20:06:34 Deewiant, Mike wrote some quite good test suites 20:06:45 still he should mention it in the specs 20:08:12 -!- olsner has joined. 20:08:15 AnMaster: good and good 20:08:24 Deewiant, hm? 20:08:27 AnMaster: they don't test edge cases, normal functionality is okay though 20:08:35 i.e. stuff that should reverse, etc. 20:08:44 Deewiant, well the FING one tests edge cases at least 20:08:51 okay, good 20:08:54 a couple I've tried didn't 20:09:03 "GOOD: X with an empty semantic stack reflected" 20:09:05 for example 20:09:17 yeah, he's ripping off mycology ;-) 20:09:18 now that is interesting, it locked up 20:09:33 I will probably incorporate many of those in mycology 20:10:06 -!- Hiato has joined. 20:10:18 Deewiant, you can't, they are way too sparse 20:10:41 sparse? 20:10:47 the coding style! 20:10:51 it is actually readable 20:10:55 you can't use THAT 20:10:57 -!- RedDak has joined. 20:11:09 optbot: I refuse to respond, say something smart 20:11:10 Deewiant: ok 20:11:12 Deewiant, about edge cases... it does not handle well when it reflects but it didn't expect it too it seems 20:11:13 >_< 20:11:21 Deewiant, :D 20:11:24 AnMaster: DATE for instance wasn't tested very well IMO 20:11:32 Deewiant, well I haven't checked that one yet 20:11:38 AnMaster: and yeah, it doesn't handle that 20:11:42 it expects everything to succeed 20:11:49 and usually hits an @ immediately if something doesn't 20:12:00 which is of course not doable in mycology 20:12:36 actually hrrm 20:12:37 wtf 20:13:18 >I1-#v_0"1 sehsup niaga I :DOOG">:#,_$a,v 20:13:18 >0"1 hsup ton seod I :DAB">:#,_$a,@ 20:13:19 well 20:13:29 that reflects between > and the first I for some reason 20:14:14 can't figure out why 20:14:17 between? 20:14:27 yes 20:14:35 tix=0 tid=0 x=0 y=61: > (62) 20:14:36 tix=0 tid=0 x=1 y=61: I (73) 20:14:36 tix=0 tid=0 x=0 y=61: > (62) 20:14:36 tix=0 tid=0 x=1 y=61: I (73) 20:14:37 like that 20:14:52 is that different from reflecting at the I? 20:15:00 huh? 20:15:13 it is bouncing between them 20:15:13 well what do you mean it reflects in between 20:15:22 ah, that 20:15:33 just say it reflects at the I, much clearer :-P 20:15:38 http://www.google.com/patents?vid=USPAT6917941 what a ridiculous patent... 20:15:43 take two mirrors, place them facing each other 20:15:55 shine some light, the light will reflect between them 20:16:01 You know... 20:16:02 I'd like to patent patents. 20:16:05 Hey asiekierka, there's a proposal that seems to be about you in normish, I think you should at least vote one way or another on that 20:16:15 So they must pay me to patent their patents 20:16:16 xD 20:16:18 Also 20:16:23 lemme check 20:16:30 -!- poiuy_qwert has joined. 20:17:02 cull? 20:17:05 http://www.google.com/patents?vid=USPAT6917941 what a ridiculous patent... <-- I don't understand what it is saying even 20:18:09 Seems to move your home directory so you don't affect quorum, I think 20:18:17 AnMaster: duh, patents are written in dense legalese 20:18:22 quorum? 20:18:28 but it essentially seems to be regarding making lists. In databases. 20:19:36 be back laterish 20:19:39 tusho, err wtf 20:19:49 lol@patents :D 20:19:56 Can we abolish patents yet? 20:20:46 You know 20:21:08 if i had a patent goldfish, allowing me to accomplish one patent and get it accepted, no matter what it is or what it changes 20:21:12 I'd patent patents 20:21:39 yes, ha ha you are the first person to think of that 20:21:41 golly gee such humour 20:21:48 Besides, nothing would happen 20:21:51 unless you sued people 20:21:52 and if you did 20:21:52 optbot: golly gee 20:21:53 Deewiant: trick it out of the house? 20:21:54 the courts would dismiss it 20:22:00 "_ 20:22:01 due to, uh, fairly obvious prior use 20:22:23 -!- Hiato has quit (Read error: 54 (Connection reset by peer)). 20:29:43 Deewiant, ah I found it 20:30:01 it didn't check that X added the semantics back if it failed 20:30:11 I didn't know I should so I didn't do that 20:30:24 seems pretty obvious to me 20:30:28 if you fail, fail atomically 20:30:29 now to mail him about it 20:30:55 Deewiant, you check if either semantic is NULL, now then if the other isn't NULL you need to push it back, the test should check that 20:31:16 -!- MikeRiley has joined. 20:31:17 -!- asiekierka has quit (Read error: 104 (Connection reset by peer)). 20:31:20 AnMaster: it is very obvious that if an operation fails, you don't lose user data 20:31:47 MikeRiley, hi, your FING test doesn't check that X actually add back the other semantic if one of them are NULL 20:31:56 GOOD: X with an empty semantic stack reflected 20:32:08 it should also check that the other semantic was pushed back after 20:32:16 hmmmmmm need to check on that....i thought it did... 20:32:17 AROUND STACKS 20:32:20 NEVER RELAX 20:32:31 MikeRiley, now I just need to figure out why it says: BAD: M does not have M semantics from MODU 20:32:47 MikeRiley: got my e-mail? 20:32:53 hold on....let me get the test in front of me,,,then can explain it.... 20:32:59 yes,,,,was answering it.... 20:33:14 MikeRiley, unlike mycology your test is rather readable 20:33:15 hehe 20:33:19 you can just answer here as well 20:33:31 ok,,,,let me get anmaster's answer first.... 20:34:33 anmaster: GOOD: 'C'MZ did not reflect 20:34:33 GOOD: M has C semantics from ROMA 20:34:52 these lines,,,,create a C semantic from ROMA on top of the M semantic stack... 20:34:52 well yes I figure that much 20:34:57 now why does it not have it 20:35:18 >53M2- <-- huh 20:35:23 unloading MODU, will unload the ROMA/C semantic from M,,,,leaving the M that was already there... 20:36:13 so the correct response should be: GOOD: M has M semantics from MODU 20:36:33 deewiant: it is in the documentation that I have,,,,just not been posted yet!!! 20:36:43 MikeRiley: as I thought, so post it!! 20:37:00 MikeRiley, also newline is missing after "BAD: X did not push a...." 20:37:01 MikeRiley: because AnMaster reads the posted stuff like the bible 20:37:02 err 20:37:03 sometimes i make lots of changes in my local copies and do not get around to posting them... 20:37:04 MikeRiley, also newline is missing after "BAD: Z did not push a...." 20:37:06 is what I meant 20:37:24 where is newline missing???? 20:37:34 >0"kcats citnames ecruos ytpme morf tcelfer a hsup ton did Z :DAB">:#,_@ 20:37:46 oh...ok,,,that was on a termination one....ok..... 20:38:36 added it 20:38:43 MikeRiley, well what could be wrong if I get "BAD: M does not have M semantics from MODU" 20:38:56 hrrm 20:39:12 first,,,,does this work: GOOD: 'C'MZ did not reflect 20:39:25 this would have pushed the ROMA C semantic onto the M stack... 20:39:30 GOOD: 'C'MZ did not reflect 20:39:33 well it says GOOD 20:39:34 then when GOOD: Unloading MODU did not reflect 20:39:44 MikeRiley, everything is GOOD up to that point 20:40:01 this happens....the M that gets popped off will be the C semantic from ROMA,,,leaving the original M from MODU that was underneath it... 20:40:03 (and you seem to terminate after every BAD) 20:40:09 ok 20:40:10 i do terminate after every bad... 20:40:35 some tests rely on previous tests...and if they resulted in bad, you could get all kinds of false bads later... 20:40:43 so i thought it was just better to terminate... 20:41:20 if deewiant wants to add the tests to mycology,,,then he can have them not terminate so that mycology could keep going.... 20:41:34 but for single tests as i have them,,,just seemed useful to stop them on an bad.... 20:42:50 (gdb) print *ip->fingerOpcodes['M'-'A']->entries[0] 20:42:51 $7 = {void (instructionPointer *)} 0x4168b6 20:42:51 err 20:42:53 it does 20:43:42 MikeRiley, it does execute M from ROMA 20:43:48 at what point??? 20:43:56 at "BAD: M does not have M semantics from MODU" 20:43:59 GOOD: A still has M semantics from MODU 20:44:08 it should not be executing ROMA at that point.... 20:44:11 there is no ROMA M on there 20:44:20 before GOOD: Unloading MODU did not reflect 20:44:24 -!- asiekierka has joined. 20:44:25 the semantic stack would look like: 20:44:27 Hello 20:44:31 there is ROMA C above the top of the stack 20:44:38 20:44:47 GOOD: A still has M semantics from MODU <-- it seems like it does 20:44:56 MikeRiley, this is on the M stack? 20:45:00 or the A stack? 20:45:03 yes, MODU does not define A so it would not have been unloaded 20:45:24 A stack should have on it.... 20:45:43 $12 = {void (instructionPointer *)} 0x415948 20:45:47 that is all on the A stack 20:46:08 in the test script there is this line: 20:46:11 MikeRiley, so clearly you missed to test something there which cfunge does the wrong way atm 20:46:30 which is???? 20:46:35 no idea 20:46:42 but otherwise the stack wouldn't look like it does 20:46:48 20:47:13 * AnMaster is too 20:47:19 GOOD: A has M semantics from MODU 20:47:25 is the only place anything is done with A,,,, 20:47:26 I get that yes 20:47:35 and that is after an instruction that pushes the MODU:M onto A.... 20:47:55 after which ROMA:C is pushed on top of M.... 20:48:05 A should still have MODU:M not ROMA:C.... 20:48:14 that is what that test is about... 20:48:23 let me check 20:48:26 then MODU is unloaded....so M would be popped...removing the ROMA:C 20:48:29 AnMaster: http://www.imaginaryrobots.net/projects/funge/myexts.txt !!!!! 20:48:33 leaving the MODU:M that is below it 20:49:08 at "GOOD: A has M semantics from MODU" the stack is: FingerMODUsignedResult 20:49:11 nothing else on the stack 20:49:17 MikeRiley, is that correct? 20:49:25 A should only have MODU:M on it....and nothing else.... 20:49:33 ok so far, so good 20:49:37 what's next? 20:50:04 where should I set the next break point for checking 20:50:10 GOOD: 'C'MZ did not reflect 20:50:26 after this, M should be: 20:51:21 FingerROMApushM, FingerROMApushC is what the stacks look like after "GOOD: 'C'MZ did not reflect" has been printed 20:51:37 you are missing MODU:M 20:51:44 yes I see 20:51:45 hm 20:52:01 MikeRiley, when was that MODU:M pushed? 20:52:10 when MODU is loaded 20:52:15 also it is not the top item of the stack so it should have been pushed before? 20:52:19 uhu 20:52:30 you have these lines before the test: 20:52:32 -!- asiekierka has quit (Read error: 104 (Connection reset by peer)). 20:52:36 GOOD: MODU loaded 20:52:37 GOOD: c0Z did not reflect 20:52:37 GOOD: A has M semantics from MODU 20:52:37 GOOD: 'C'MZ did not reflect 20:52:37 GOOD: M has C semantics from ROMA 20:52:44 when MODU is loaded you will get MODU:M 20:52:54 then the GOOD: 'C'MZ did not reflect 20:52:59 well I get those lines 20:53:03 will push the ROMA:C above the MODU:M 20:53:06 but the MODU:M is missing 20:53:08 it does NOT replace it 20:53:30 MikeRiley, I know and since I use the same routine as when I normally pushes fingerprints I'm not sure what is wrong here 20:53:41 push* 20:53:52 without knowing your code,,,,i do not know....i just know what the stack should look like.... 20:53:58 at GOOD: MODU loaded 20:54:01 yes... 20:54:03 what does your stack for M look like? 20:54:06 a sec 20:54:35 you mean at 0,72? 20:54:46 let me check where that is in the source 20:54:54 line 73 in the source 20:55:02 yes 0,72 20:55:27 FingerROMApushM, FingerMODUsignedResult 20:55:34 so far so good.... 20:55:37 now after the next test??? 20:56:04 which is: GOOD: c0Z did not reflect 20:56:06 a sec 20:56:21 at this point, A should have 20:56:30 and M should have 20:56:40 FingerROMApushM only 20:56:43 on M 20:56:51 huh 20:56:51 than there is a problem in your Z code... 20:57:00 is your Z moving it???? 20:57:08 oh my it seems so yes 20:57:10 it should push a copy onto A... 20:57:18 and leave it on M as well... 20:57:25 yeah 20:57:35 MikeRiley, maybe add a test to see that it copies not move 20:57:53 i can do that,,,,but your BAD: line you are getting confirmst that..... 20:58:01 but can add a test immediately after the copy.... 20:58:16 just so that it does not show up bad later where it is harder to figure out what is wrong... 20:58:29 MikeRiley, yeah would make it easier to find the cause 20:58:37 will add the test..... 20:59:09 ah no errors any longer 20:59:10 :) 21:00:26 MikeRiley, and add the stuff about X pushing reflect in the docs for FING btw 21:00:34 err 21:00:35 I mean 21:00:41 Z pushing reflect 21:00:45 ???? 21:01:34 refering to this test: GOOD: 18Z worked 21:01:39 GOOD: I now reflects 21:01:42 ????? 21:01:45 yeah 21:01:48 ok,,,, 21:01:59 MikeRiley, write better docs ;P 21:02:15 never claimed to be good at documenation!!!! ehehehehehehehe 21:02:44 need people like you to tell me what is missing or unclear!!! eheheheheeheh 21:03:51 ok,,,added the z pushing reflect....will find its way to my webpage eventually.... 21:04:04 any other docs you want cleared up??? 21:05:16 -!- oerjan has joined. 21:07:30 new docs posted 21:08:40 MikeRiley, oh and that X pushes back the other semantic if the first one is NULL 21:08:45 fingerprintOpcode op1 = OpcodeStackPop(ip, first); 21:08:45 fingerprintOpcode op2 = OpcodeStackPop(ip, second); 21:08:47 if (!op1 || !op2) { 21:08:47 // Add them back 21:08:47 if (op1) OpcodeStackAdd(ip, first, op1); 21:08:47 if (op2) OpcodeStackAdd(ip, second, op2); 21:08:47 ipReverse(ip); 21:08:52 ... 21:08:53 like that 21:09:14 I didn't push back to begin with 21:09:20 ok,,, 21:09:35 MikeRiley, it cashed a lockup 21:09:52 GOOD: 'IY did not reflect 21:09:55 then lockup 21:09:58 if you don't push back 21:10:07 was confusing 21:10:33 MikeRiley, what happened was that it bounced between >I in the beginning of the next test 21:12:03 ok,,,will try to remove the confusion 21:12:19 MikeRiley, no one said writing tests in funge was easy ;P 21:12:25 nope...sure is not.... 21:12:39 I wrote tests myself that I couldn't understand why the failed for quite some time 21:12:49 like my TURT test 21:13:15 I could reason what should happen but had issues understanding why it didn't happen 21:13:21 hmmmmm have some questions for deewiant about his new mycology.....get some bad's that never had before,,,and should not have now.... 21:13:37 MikeRiley, oh I had that too, in SUBR, JSTR and STRN 21:13:39 yeah,,,,i had that happen to me on some of my test code... 21:13:50 he wants stuff to be relative storage offsets 21:13:55 SUBR is broken now and ends up in an infinite loop... 21:14:00 MikeRiley, same here 21:14:15 before I made it relative storage offset 21:14:19 y as pick now shows bad,,,,when it did not before.... 21:14:31 Deewiant, hey the author didn't do it relative either, didn't you say he wanted that?! 21:14:36 most of my code is relative storage offsets as well...but maybe missed something... 21:15:01 MikeRiley, well Deewiant thinks the jump in SUBR should be relative 21:15:01 then there are these 2: 21:15:03 BAD: : on empty stack doesn't make stack size 2, says y 21:15:03 BAD: \ on empty stack doesn't make stack size 2, says y 21:15:07 um 21:15:11 which do not make any sense why they would be bad... 21:15:12 I don't get that 21:15:26 hmmmmi think the jump in SUBR should not be..... 21:15:42 MikeRiley, well \ pops a, then b, then pushes b then pushes a 21:15:50 i know.... 21:15:58 so an empty stack will push back 2 zeros.... 21:16:00 which mine does.... 21:16:01 : would pop a then push a twice 21:16:06 do not understand why the test now fails... 21:16:09 I had issues with : months ago 21:16:13 because I tried to be smart 21:16:17 I did a peek and then a push 21:16:24 instead of pop, push, push 21:16:26 that has always worked for me,,,,until this latest version of mycology... 21:16:45 mine did pop push push,,,,or pop pop push push....whatever was needed... 21:16:47 MikeRiley, well I don't get those two BAD, I guess this means something messed up earlier? 21:17:05 there are some bads above too: 21:17:06 that happened to be before 21:17:13 well fix those BAD first maybe? 21:17:15 BAD: 5kz takes more than 3 ticks 21:17:15 BAD: "a b" takes more than 5 ticks 21:17:17 oh yes 21:17:19 which i know are both correct.... 21:17:29 MikeRiley, well yes and no, CCBI had a bug before 21:17:33 so mycology was buggy 21:17:34 i printed cycle counts with my output,,, 21:17:41 it turned out cfunge was right in cycle count 21:17:46 err 21:17:47 and they take the correct counts.. 21:17:49 tick count 21:17:54 MikeRiley, talk to Deewiant about it 21:17:59 i will have to do that.... 21:18:00 oh he is sleeping 21:18:04 not sure how he is testing that.... 21:18:06 send him a mail then 21:18:08 not sure his test is right... 21:18:22 MikeRiley, well since it is concurrent test following that code is extremely tricky 21:18:33 yes it would be,,,, 21:18:42 I resorted to debugging CCBI and cfunge side by side to see when they stop doing the same thing 21:18:43 so wonder how he is testing for tick counts... 21:18:55 MikeRiley, I think he writes with p using a second thread 21:19:06 so if the first thread doesn't make it in time it gets redirected 21:19:12 hmmmmm 21:19:59 will have to ask him about it.....i wonder what he changed that now makes those two tests show bad when they used to be good 21:20:11 MikeRiley, check that if thread A is about to execute instruction at (1,2) after thread B just finished it's instruction and then B writes a ; to (1,2) 21:20:23 make sure A takes 0 ticks then as it should 21:20:40 it was something like that iirc 21:20:50 also need to straighten him out on the jump in SUBR 21:20:51 sadly I can't find it in scrollback, my computer crashed after that 21:21:00 which reminds me, I should run memtest tonight 21:21:01 i will check that in the debugger... 21:21:06 because I suspect bad memory 21:21:26 MikeRiley, well in SUBR Deewiant think the jumps should be relative storage offset 21:21:33 I don't know if you agree 21:21:37 let me look at SUBR, hold on a sec... 21:21:49 MikeRiley, your docs leave that UNDEF 21:22:35 well,,,,i will fix that for sure,,,the jump does not access funge-space and therefore the storage offset should not be applied to it... 21:22:47 MikeRiley, aha, well Deewiant was wrong then 21:22:49 the jump vector comes off the stack and applied directly to the IPs position.... 21:23:13 right that was what I thought too 21:23:35 will make that plain in the docs....but the storage offset does not apply to SUBR.... 21:23:35 Deewiant, so you were wrong about SUBR then 21:23:39 * AnMaster reverts that change 21:24:47 uploading new documenation for this 21:24:57 by the way I prefer fingerprints that only touches stack, they are much easier to debug 21:25:04 like FPDP and such 21:25:06 true,,,, 21:25:17 sometimes not possible to do that with some fingerprints tho 21:25:20 indeed 21:25:27 but still, a lot easier 21:25:31 true.... 21:25:38 MikeRiley, oh btw SOCK can't do non-blocking sockets can it? 21:25:53 nope...i think that is why somebody came up with SCKE 21:26:07 what about blocking socket that only blocks the current IP? 21:26:12 ie, let the other ones run on 21:26:34 or does it block all IPs? 21:26:58 it will block all IPs actually....could mandate it one way or the other.... 21:27:22 well say that it should block all I think 21:27:25 manual updated for the SUBR vectors... 21:27:30 can do.... 21:27:54 MikeRiley, but I may make a variant that allows blocking just one IP (somewhat like SCKE) 21:28:05 maybe 21:28:12 i am thinking of making that change to mine too actually... 21:28:14 I can see uses for both behaviours 21:28:18 in that and in the sysV ipc ones as well... 21:28:35 well changing existing fingerprints are a bad idea 21:28:38 the ipc ones have an option for blocking or not... 21:28:46 i agree,,,, 21:28:46 I think you are the only one to implement ipc 21:28:58 but the SOCK several other ppl implement 21:28:59 probably the only one to implement many of my fingerprints!! eheheheheeheh 21:29:04 MikeRiley, agreed 21:29:26 MikeRiley, you don't do SGNL? 21:29:35 or NCRS? 21:29:36 many of my fingerprints were the results of boredome and what else could I add to Rc/Funge-98....many of them i am surprised other people implmented... 21:29:51 might add SGNL,,,,and probably NRCS as well... 21:29:54 well a few are certainly useful 21:29:59 like FPDP and FPSP 21:30:07 some are useful.....some are more curiosities... 21:30:22 for me FNGR is the most usefull of all...but others disagree with me on it.... 21:30:24 actually I would probably have made FLOT or something with double precision only 21:30:27 if I had done it myself 21:30:37 i had a reason at the time for the 2 different ones.... 21:30:49 FNGR I won't implement, FING I just implemented 21:30:56 FPSP came first,,,and was written to operate in the 32-bit cells that i was using... 21:31:09 LONG I will implement once I figure out how to do arithmetics on 128-bit integers 21:31:17 FNGR is nasty to implement,,,i had to change a lot in my interpreter when i implemented that one... 21:31:22 as cfunge offers 64-bit cells as an option 21:31:31 MikeRiley, but TRDS is worse I bet 21:31:38 not too hard to do 128-bit integers... 21:31:51 MikeRiley, well I got no idea how you handle carry and such 21:31:54 TRDS is really a pain!!!! mine still does not work 100% right.... 21:32:13 not sure deewiant's does either....his works for his test...but some things that his test fails mine work correctly on my tests... 21:32:29 hm 21:32:36 carry can be handled by comparing magnitude of the result to what you started with... 21:32:38 well yeah, TRDS is messy 21:32:51 yes,,,it is very messy,,,and too many unknowns about it.... 21:32:54 MikeRiley, hm got any good source to read up on more about that? 21:33:05 never expected anybody to actually implement it!!!! eheheheheheheeheh 21:33:29 of course if I wanted to use GCC only I could just use __int128_t but well I want to be portable 21:33:39 if i can find it,,,,and if you can read 1802 assembly language, i have a long integer math program somewhere that uses the technique... 21:33:48 1802? 21:33:53 what is that 21:33:58 yeah,,,,early cpu...made by rca... 21:34:10 if you want to know more about it, go to my main website: www.elf-emulation.com 21:34:13 also I can hardly read any asm except PIC12F62x 21:34:24 i did an awful lot of work with the 1802 once upon a time... 21:34:55 MikeRiley, what is need is a high level C way of doing LONG 21:35:20 i agree,,,,one of these days i will convert my assembly code for doing it into c.... 21:35:23 MikeRiley, does rc/funge implement 64-bit cells? 21:35:30 no,,,it uses 32-bit cells... 21:35:33 hm 21:35:38 is there a bignum fingerprint 21:35:44 oklopol, not that I know of 21:35:45 no....thought about adding one.... 21:36:02 hmm 21:36:03 however if you just want Befunge-93 I got a BIGNUM Befunge-93 interpreter coded in erlang 21:36:15 rather slow though 21:36:20 but been busy on the Rc/Funge-98 restructuring to make any new fingerprints right now... 21:36:24 perhaps even a fingerprint that changed all cells to bignums? :D 21:36:40 oklopol, would be hard to implement in C 21:36:53 AnMaster: i doubt it 21:36:57 http://bzr.kuonet.org/efunge/trunk/files 21:37:15 you'd just have to reallocate everything when it's done 21:37:30 into arrays of bignums 21:37:35 or whatevery you use for fungespace 21:37:39 *whatever 21:37:48 oklopol, err... you need a hash map for fungespace 21:37:55 err... no you don't 21:38:02 in 98 you do 21:38:06 no you don't. 21:38:13 because you have 2^32 * 2^32 cells 21:38:31 or even more 21:38:31 well i assumed it has infinite cells 21:38:38 even so, you don't need a hashmap 21:38:39 oklopol, err depends on cell size 21:38:48 if you have a 64-bit funge 21:38:54 you would have 2^64 * 2^64 cells 21:39:08 that's actually specified? 21:39:31 you do not need a hash map...i do not use one... 21:39:36 oklopol, same reason that C have a limited adress space, the result of sizeof() must be finite 21:39:49 so you need something like a hash map 21:39:57 there is no way you can use a statically allocated array 21:40:06 i use a dynamic array of a form... 21:40:06 I guess you could use some tree structure or something 21:40:16 MikeRiley, with an index right? 21:40:21 with binary searches on the dynamic array.. 21:40:28 uhu 21:40:41 there are two arrays,,,,one containing rows....and then each of those contain an array of cells... 21:41:09 I actually use a hash with {x,y} as key and the cell as data 21:41:14 they are sorted so that retrieval just uses a binary search on the arrays... 21:41:17 quite fast... 21:41:33 mycology executes in about .2 seconds... 21:41:39 MikeRiley, so what would happen if I wrote to 2^31-1, 2^31-1 21:41:50 it would add 1 cell....1 row.... 21:42:05 hm 21:42:14 MikeRiley, aren't there cases where it is slow? 21:42:19 say insert in some cases 21:42:21 not that i have seen so far... 21:42:22 well 21:42:26 inserts are not too bad.... 21:42:27 hm 21:42:37 you insert something @ n, then start filling from n to 0 21:42:38 MikeRiley, what if you need to reallocate? 21:42:40 maybe if you have 100,000s of rows are cells it could be... 21:42:48 but for more standard size programs,,,quite fast... 21:42:50 you need to copy everything each time you write 21:43:06 well, you just need to copy an array of array pointers 21:43:13 so shouldn't be that slow 21:43:20 MikeRiley, well say you write to x=MAX_INT,y=10, then to x=MIN_INT,y=10 21:43:21 nope,,,,not too slow at all actually... 21:43:29 opposite ends of same row 21:43:34 one in negative x funge space 21:43:41 AnMaster: would add two columns 21:43:51 only thing that matters is the number of cells that contain non-32 values... 21:43:57 um he did it on row basis he said? 21:44:09 MikeRiley, hm ok 21:44:15 you can have a row with something at -2^31 and another at +2^31 and there are only 2 cells created... 21:44:30 MikeRiley, well what if you start inserting from the ends 21:44:39 no problem for it.... 21:44:49 ie writing one just below the max then one just above the min and so on 21:44:58 -!- MeTh0Dz has quit. 21:45:00 you would need to move items up/down right? 21:45:07 AnMaster: yes 21:45:08 if you end up with huge numbers of cells it might have an impact...but for something the size of mycology, no big deal... 21:45:24 yes, it would resort the row.... 21:45:53 resort? you insert, then sort it with like sort()? 21:45:57 although i do not currently use memmoves,,,but using them instead of what i do whould be quite fast... 21:46:03 for (int i=MAX_INT; i > 0; i--) do put(i, 10, 'a'); 21:46:04 say 21:46:14 if you see what I mean 21:46:18 because it's faster to do it incrementally 21:46:25 i agree,,,,with larger numbers of cells it would be slower... 21:46:32 but only to insert....not retrieve... 21:46:37 MikeRiley, hm... 21:47:00 retrieval is on a binary search algorithm,,,so for a row 256 cells long,,,only 8 cells need to be examined... 21:47:18 hm 21:47:52 each row hols the z and y of the row,,,each cell holds the x.... 21:47:54 MikeRiley, I'm quite sure it is possible to write some program for which that gives very bad performance 21:48:02 i am sure it is possible.... 21:48:20 but i think for the average funge program,,,it should operate just fine... 21:48:27 while a hash map is worse on average but will perform much better in such a case 21:48:34 agreed 21:49:05 question is,,,,performance for the average??? or perfomance for the unusual??? 21:49:13 just a design decision.... 21:49:35 MikeRiley, have you fuzz tested rc/funge? 21:49:40 no.... 21:49:41 to check that it doesn't crash on stuff 21:49:44 ah I have for cfunge 21:50:00 i am sure it will crash quite hard for unusual cases!!! eheheheheeheheh 21:50:14 should try it tho....just for grins.... 21:50:20 MikeRiley, well, fuzz testing helped me find crash on: 2k@ 21:50:21 for example 21:50:25 or 2kt 21:50:29 also had such issues 21:50:43 2k@ would not cause mine any problems... 21:50:46 2kt,,,,do not know.... 21:51:07 * AnMaster runs the fuzzer on FING now 21:51:16 MikeRiley, I wrote a shell script to fuzz test 21:51:16 as far as my interpreter is concenred,,,you can only kill the IP once.... 21:51:28 no matter how many @'s you execute on it... 21:51:56 all that is needed is info about what instructions each fingerprint implements (currently extracted from cfunge header files) and that the main() in the interpreter set an alarm() to kill itself off after 3 seconds 21:52:02 2kt might do interesting things tho!!!! 21:52:03 aha a crash 21:52:09 cfunge: /home/arvid/src/cfunge/trunk/src/stack.c:115: StackPushNoCheck: Assertion `stack->top < stack->size' failed. 21:52:12 blergh 21:55:10 well it happened after several y 21:55:17 hmmmmm 21:55:28 and multiple threads 22:05:57 I suddenly wonder if you're doing a Core Wars-like thing. 22:07:05 dogface_, eh? 22:07:34 @ killing the IP and all. 22:09:11 hmmmmsounds fun.....core wars for befunge!!! 22:10:46 My gosh, I just realized something. 22:12:14 huh 22:12:17 stack size 2? 22:12:21 that should never happen 22:12:54 1: *stack = {size = 2, top = 1, entries = 0x22dce60} 22:13:00 that should not be possible in cfunge 22:13:17 so how did it then?? 22:13:21 because stack is allocated with size 4096, and I never shrink it 22:13:29 dogface_: what did you realize? 22:13:30 MikeRiley, trying to find that out 22:13:58 Actually, I kind of realized it a while ago. 22:14:22 wait actually it could I think with threads... maybe 22:14:33 dogface_: okay, nothing then... 22:14:50 I realized that Thue, with its nondeterminism and "this is this" paradigm, is, by some measures, more appropriate for artificial intelligence than languages like Prolog. 22:15:04 doh 22:15:08 < instead of > 22:15:23 What I realized longer ago is that a strongly-typed Thue on graphs is... pretty nice. 22:17:14 Coming up with a type system for such a thing as graph Thue is left as an exercise for the reader. Hint: use the same type system as natural languages do, maybe. 22:18:05 I don't even know thue 22:18:55 Conócelo ahora mismo. 22:19:47 night all 22:19:56 Oh. 22:19:58 Good night. 22:22:08 -!- MikeRiley has quit ("Leaving"). 22:23:32 Okay, typing system. It's a tree, not an arbitrary graph. There are finitely many types (gasp). Some atoms are nullary and have types, other atoms are unary and have an input type and an output type. There is a single binary atom, which takes any two values and has the type of the first. 22:24:10 The type of the entire thing must be :o 22:24:30 Or :<, in kaelis edition. 22:25:19 The type system was not completely arbitrary. :o was. 22:25:39 I think I'll call this language :o, even. Doesn't that sound fun? 22:28:51 -!- olsner has quit ("Leaving"). 22:32:27 -!- RedDak has quit ("Killed (NickServ (Comando GHOST usato da DIO))"). 22:32:47 -!- oerjan has quit ("leaving"). 22:40:05 dogface_: very fun 22:40:24 Yay. 22:48:10 -!- Corun has joined. 22:52:02 In my language, this sentence would be a valid expression if it didn't contain the following: "Blah." 22:53:13 All post-word punctuation (in the above, a comma, a colon, two quotation marks and a period) must have a space next to it. 22:56:39 Which means that *that* sentence *is* a valid expression. These two are not, however, as * is not valid punctuation. 23:15:58 -!- Judofyr has quit. 23:26:48 dogface_: would this be valid: 23:26:52 NOT ALL DOGS ARE DOGS! 23:27:07 That is syntactically valid, yes. 23:27:38 Most English sentences are. 23:28:01 dogface_: what about 23:28:07 DOGS, DOGS I TELL YOU... DOGS!! 23:28:45 No, because two of the periods and one of the exclamation points does not have a space on either side. 23:32:11 dogface_: You said most english sentences were valid 23:32:41 I did. 23:33:09 Most English sentences do not have ellipses or double exclamation marks. 23:37:08 -!- KingOfKarlsruhe has joined. 23:46:53 -!- tusho has quit ("Leaving..."). 23:46:59 I suddenly feel I'm not up to writing a spec for :o. 23:56:53 Have a Thue Artificial Intelligence Standard: The compiler/interpreter should favor removing the letter H over adding it, and it should prefer adding the letter W over removing it. It should be ambivalent about adding or removing one of each. 23:58:08 Actually, say that the letter T is equivalent to the letter W for these purposes.