00:28:14 <tusho> [[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 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.
06:01:19 -!- GreaseMonkey has joined.
06:11:52 -!- Sgeo has quit (Remote closed the connection).
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 <fizzie> optbot; You just had to change the topic to something uninspired like that when someone pointed out the previous was great?
06:58:46 <fizzie> optbot; And stop trying to trick me to quit. I am not a silly bot!
06:59:12 <fizzie> optbot; Huh? "Silly Goldbach"?
06:59:12 <optbot> fizzie: the app "shoes" must be started from /path/to/shoes
06:59:30 <fizzie> optbot; Now you're just making no sense again.
06:59:30 <optbot> fizzie: ~exec self.print_callbacks()
06:59:45 <fizzie> optbot; Not a bot! How many times I have to tell you this?
06:59:46 <optbot> 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:26 <tusho> duke nukem forever...
13:01:49 <Deewiant> what possessed you to think it was
13:05:08 <tusho> Deewiant: slashdot's incompetent editors
13:05:11 <tusho> http://slashdot.org/
13:05:20 <tusho> "OMG!! DNF RELEASED! Update: wait no it was another game"
13:07:09 <Deewiant> kdawsonsucks, badsummary, wrongsummary, !dukenukemforever
13:08:53 <tusho> 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:52:07 <asiekierka> I am thinking about an esolang where you're a shopper.
14:52:42 <asiekierka> Means a milk the brand "Mustang Milk" costs 130 cents
14:52:54 <asiekierka> or variable "Mustang Milk" from the "milk" array equals to 130
14:54:07 <oklopol> oh i was thinking more something like constraint satisfaction
14:54:33 <asiekierka> take "Mustang Milk" OR take milk "Mustang Milk" will put "Mustang Milk" in the baset
14:55:11 <oklopol> actually i'm not sure what my exact idea is
14:55:42 <asiekierka> putback will remove the topmost item from the stack
14:55:47 <oklopol> the shopping cart is clearly a set, not a stack :)
14:56:10 <asiekierka> you can only access the topmost item(s)
14:56:13 -!- Slereah_ has joined.
14:56:48 <asiekierka> addprices will add the 2 topmost product prices together, remove the products, and put the total price on the stack.
14:57:29 <asiekierka> subprices will subtract the first (topmost) with the second (second topmost).
14:57:36 <asiekierka> Also, you can access a little paper piece
14:57:52 <asiekierka> addpaper will add 1 to the paper piece
14:58:27 <asiekierka> I must write some sort of docs about it
15:00:03 <asiekierka> Shop will be a lot like chef, but not so
15:14:14 -!- tusho has changed nick to tusho|away.
15:28:45 -!- tusho|away has changed nick to tusho.
16:03:52 <LinuS> has anyone tought about esolang about 2d platform?
16:04:01 <LinuS> jump, killenemy, kick
16:04:14 <LinuS> 2d platform game i mean, mario and such
16:04:24 <Slereah_> I once had an idea of an esolang based on Portal
16:04:37 <asiekierka> Please, for the love of my Portal obsession, explain!
16:05:41 <asiekierka> {{oh god, not lagged IE typing again!}}
16:05:46 <Slereah_> Rube is already pretty 2D platform to begin with
16:05:52 <Slereah_> My idea was some sort of Rube.
16:06:49 <Slereah_> Well, the Cake was supposed to be the end of the program
16:07:10 <Slereah_> (L being <insert applicant name here>
16:07:28 <Slereah_> Because she kinda looks like an L with her big feet contraptions
16:07:41 <asiekierka> If you'll put cake, it isn't Portal-compilant anymore. It can only have cake AFTER the end of the program. Haha.
16:08:01 <Slereah_> Incinerator is to destroy boxes
16:09:00 <asiekierka> They're the Aperture Science Weighted Storage Cubes
16:09:09 <Slereah_> They're Aperture Science Weighted Storage Cubes
16:09:38 <Slereah_> So far, I have no idea how to include it
16:10:17 <LinuS> as esolang that has the game level file
16:10:47 <Slereah_> So the boxes contain hex values.
16:11:03 <Slereah_> And you can output them as char and such
16:13:15 <Slereah_> My first idea was to do just Befunge, but with portals
16:13:19 <asiekierka> so there's no (standalone) portal gun?
16:13:30 <Slereah_> So that the pointer could enter a portal and such
16:13:31 <asiekierka> you could realize befungeportals as two text files
16:13:53 <asiekierka> Then the pointer will start at the same Y position, but at the X where it finds a blue portal
16:14:29 <Slereah_> 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 <Slereah_> But odds are, I'll never make an interpreter
16:16:17 <Slereah_> I have already 3 interpreter-less languages
16:16:38 <Slereah_> Well, except Arithmetica. It's sort of fuzzy.
16:23:18 <Sgeo> asiekierka, are you planning on being involved in rootnomic/normish?
16:23:41 <Sgeo> Voting, and stuff
16:24:06 <Sgeo> The thing is, each player raises quorum..
16:24:42 <Deewiant> AnMaster: which ones were BAD for you in Mycology's concurrency test; the "a b" one, any others?
16:26:29 <AnMaster> Deewiant, the k one too, again I checked that the actual tick count for k was correct
16:26:37 <AnMaster> so I guess the error happen somewhere in between them
16:27:10 <Deewiant> 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 <Deewiant> AnMaster: so you can chill, Mycology is bugged
16:27:45 -!- asiekierka has quit.
16:28:42 <Deewiant> 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 <Deewiant> assuming this happens in one tick
16:29:03 <Deewiant> i.e. if B did the same to A it wouldn't happen
16:29:21 <Deewiant> yes, it was a very stupid thing I did in version 1.0.3 or so
16:29:46 <AnMaster> and I don't see how it could happen, are you pre-fetching the next instruction or something?
16:29:48 <Deewiant> the issue was concurrent tracing, where I wanted all IPs to show the next instruction they would execute instead of space/semicolon
16:30:02 <Deewiant> so what I did was ip.gotoNextInstruction before the execution loop, for all IPs
16:30:39 <Deewiant> I then noticed that an IP was occasionally reflecting because it was trying to execute space/semicolon
16:31:00 <Deewiant> so I did the stupid fix: add the instructions back that were there before, for space and semicolon
16:31:11 <AnMaster> err, it shouldn't reflect on those, ever.
16:31:13 <Deewiant> which, with the new gotoNextInstruction scheme, would take one tick
16:31:28 <Deewiant> AnMaster: they were removed from the main execute() thing because they should never have come there
16:31:37 <Deewiant> because they should be bypassed in gotoNextInstruction
16:31:52 <Deewiant> because then they are of course like any other instruction
16:32:15 <Deewiant> earlier I had some kind of "bool executeAgain;" which took care of them as a special case
16:32:41 <Deewiant> just realized a few days ago that that might cause it
16:34:50 <AnMaster> well this means rc/funge will fail again iirc
16:35:00 <AnMaster> because it passed while mycology had that bug
16:36:15 <AnMaster> 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:46 <AnMaster> not even kernel panic, just rebooted and refused to start until I unplugged it and replugged it
17:11:09 <tusho> 5,000,000 of them.
17:11:29 <AnMaster> refused to start as in: locked up before bios started
17:11:40 <Slereah_> We're now so bored with them that we turned gay
17:13:11 <tusho> Deewiant: still? now it's 10,000,000
17:13:20 <tusho> 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 <tusho> http://www.google.com/codesearch?q=die_you_gravy_sucking_pig_dog
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 <Deewiant> AnMaster: new Mycology (and CCBI)
18:35:18 <Deewiant> 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 <AnMaster> * [Deewiant] (n=mniemenm@peridootti.hut.fi): Matti Niemenmaa <-- eh?
18:42:59 <Deewiant> AnMaster: so you get .fi as well as deewiant
18:43:12 <Deewiant> alternatively, iki.fi/matti.niemenmaa
18:43:32 <Deewiant> AnMaster: http://en.wiktionary.org/wiki/iki
18:44:24 <AnMaster> Testing fingerprint SUBR... loaded.
18:44:41 <AnMaster> it didn't lock up there on the old one
18:44:51 <Deewiant> it's probably to do with the fact that { is now used in many places
18:45:07 <Deewiant> which means, storage offsets better work
18:45:36 <Deewiant> s/the readme.txt/the changelog in the readme.txt/
18:45:54 <Deewiant> AnMaster: well, do you apply them when popping vectors in SUBR?
18:46:14 <AnMaster> the specs doesn't say so do they?
18:47:03 <Deewiant> applying the offset is the default
18:47:11 <AnMaster> http://www.elf-emulation.com/funge/rcfunge_manual.html#SUBR
18:47:17 <Deewiant> it's only if it explicitly says that it shouldn't be applied that you shouldn't apply them
18:47:42 <AnMaster> Deewiant, I say it is undefined
18:47:47 <AnMaster> as the specs currently read anyway
18:47:58 <Deewiant> AnMaster: then complain to Mike if you see him
18:48:14 <AnMaster> Deewiant, http://www.elf-emulation.com/funge/rcfunge_manual.html#SUBR
18:48:22 <AnMaster> there is nothing about storage offset there
18:48:29 <AnMaster> so how the heck could I know when to pop it
18:48:55 <AnMaster> Vector a is where the code jumps in C?
18:48:57 <fizzie> 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:28 <AnMaster> Deewiant, it doesn't say that should be the storage offset as well *anywhere*
18:49:32 <Deewiant> fizzie: and yeah, but it's obviously a pun on the real meaning as well
18:49:35 <AnMaster> tell me where it says so, and I will change it
18:49:45 <Deewiant> AnMaster: it is a vector, so why not apply it, it would be stupid not to
18:50:05 <AnMaster> Deewiant, well i takes a vector too, why not make it the storage offset while you are at it?
18:50:09 <fizzie> 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 <AnMaster> you are making no sense Deewiant!
18:50:31 <Deewiant> AnMaster: er, i /should/ use the storage offset as well
18:50:50 <AnMaster> Deewiant, oh you mean jump relative storage offset, it doesn't say that either
18:50:56 <AnMaster> I thought you meant set storage offset
18:51:16 <AnMaster> Deewiant, anyway tell me where it says you should use the vector relative the offset
18:51:19 <Deewiant> it shouldn't need to be explicitly said
18:51:27 <Deewiant> because otherwise { rapidly becomes useless
18:51:47 <Deewiant> 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 <AnMaster> Deewiant, why then does the standard say explicitly that g and p are relative that offset
18:52:16 <Deewiant> AnMaster: because the standard is written better than the RC/Funge-98 fingerprint specs ;-)
18:52:18 <AnMaster> Deewiant, and yes storage sure, but not IP jump offset
18:52:22 <tusho> fizzie: Well sure he has an excuse (it's work) but it's not a very good one.
18:52:47 <AnMaster> Deewiant, storage offset is fine, jump offset is something else really
18:53:04 <Deewiant> AnMaster: so mail Chris and ask him to change the spec to say "storage/SUBR jump/TRDS jump/... offset"
18:53:46 <AnMaster> Deewiant, no, those fingerprints should say explicitly that the jump should be relative the offset
18:53:49 <Deewiant> 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 <Deewiant> 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 <AnMaster> Deewiant, as the specs read now, I can only consider this a UNDEF
18:54:33 <fizzie> 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 <AnMaster> also the changelog you mentioned doesn't mention anything like that
18:55:02 <fizzie> Every time you talk about all that Befunge stuff, I get the feeling I should be improving fungot.
18:55:20 <Deewiant> AnMaster: hmm, crap, I thought it did
18:55:33 <Deewiant> I guess I forgot to write about that :-/
18:56:16 <AnMaster> Deewiant, anyway 1) you can't change published fingerprints really 2) the published fingerprint doesn't say anything about storage offset.
18:56:25 <Deewiant> 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 <AnMaster> That means it should be an UNDEF
18:56:50 <Deewiant> the guy can't document to save his life :-P
18:57:03 <AnMaster> well maybe, but it is still a UNDEF as the documentation currently reads
18:57:16 <AnMaster> so mail him and tell him to fix it
18:57:42 <Deewiant> 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 <AnMaster> Deewiant, so should return be absolute or?
18:59:03 <AnMaster> also about documenting, wtf is my SUBR call doing, I need to add more comments
18:59:45 <AnMaster> why on earth am I creating a temporary stack
18:59:46 <Deewiant> AnMaster: absolute in CCBI are: deltas, REFC, ORTH.
19:00:55 <AnMaster> 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:01:23 <AnMaster> Deewiant, anyway, either mail Mike about this or make it a UNDEF.
19:01:37 <Deewiant> AnMaster: nah, it's just both pushed and popped without the storage offset.
19:01:39 <AnMaster> because considering that well defined is insane
19:01:51 <Deewiant> AnMaster: I'll tell him if I see him here, I expect you to do likewise
19:01:52 <AnMaster> Deewiant, so REFC is basically useless with offsets then?
19:02:07 <AnMaster> Deewiant, no as I consider absolute for jump better
19:02:31 <Deewiant> AnMaster: why would it be better
19:02:33 <AnMaster> Deewiant, anyway for now I shall have to note that mycology is buggy and can't handle this UNDEF then?
19:03:51 <Deewiant> AnMaster: why don't you say it's buggy because it doesn't handle k as UNDEF
19:04:22 <AnMaster> Deewiant, well now it is well defined with the catseye diagnosis tools
19:04:42 <Deewiant> AnMaster: no, 2k ;;;5 for instance is still UNDEF according to the letter of the spec
19:04:48 <AnMaster> Deewiant, also you have messed with STRN it seems?
19:05:08 <Deewiant> AnMaster: I don't know what I have messed with, in order to add new fingerprints many old ones now use {
19:05:32 <Deewiant> AnMaster: at least there you can't argue that it's not a "storage" offset :-P
19:05:47 <AnMaster> Deewiant, I will consider all that doesn't explicitly say that they are relative the storage offset as absolute
19:05:56 <AnMaster> and SUBR is more useful when absolute
19:06:24 <AnMaster> means you can call utility functions at absolute offset even when you are in a {
19:06:31 <AnMaster> with relative it would be painful to do that
19:07:04 <Deewiant> AnMaster: that way if you define functions within the { and then move the code in the file, you're screwed.
19:07:20 <Deewiant> the relative way is more general
19:07:43 <Deewiant> 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 <AnMaster> you would have to recalculate where the functions are every time you change a {
19:07:58 <AnMaster> you are screwed if you move the { block basically
19:08:00 <Deewiant> with relative, you don't have to recalculate anything.
19:08:04 <Deewiant> AnMaster: yes, with absolute. not with relative.
19:08:37 <AnMaster> Deewiant, no, say you want to call a utility function at (4,5) from inside a {-block at 47,23
19:08:59 <AnMaster> now if you move that { block to 48,29... you are screwed with relative addressing
19:09:06 <AnMaster> with absolute it would work just fine
19:09:13 <Deewiant> AnMaster: make a utility function within the { which subtracts the storage offset (using u) and calls the outer utility function
19:09:30 <Deewiant> relative can handle all cases with more maintainability than absolute
19:09:33 <AnMaster> u? isn't that some Trefunge function?
19:09:48 <Deewiant> AnMaster: no, it's "stack under stack"
19:09:52 <Deewiant> AnMaster: m and l are Trefunge
19:10:27 <AnMaster> Deewiant, anyway utility function, you just love making the code more complex
19:10:50 <Deewiant> AnMaster: I love making code maintainable
19:10:59 <Deewiant> writing Mycology taught me that
19:11:33 <AnMaster> Deewiant, well the specs doesn't say anything about it, so make it an UNDEF until they do
19:11:51 <dogface_> 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 <Deewiant> 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 <Deewiant> AnMaster: what's wrong with you just fixing cfunge before the new spec is published??
19:12:54 <Deewiant> AnMaster: not like anybody's using those fingerprints who would care :-P
19:13:01 <AnMaster> Deewiant, because I follow published standards
19:13:36 <Deewiant> AnMaster: I see, so how does your t instruction work
19:13:40 <AnMaster> Deewiant, so should the return address pushed by C be relative offset? or absolute with offset added?
19:14:00 <AnMaster> Deewiant, what do you mean about t?
19:14:05 <Deewiant> AnMaster: what's the difference?
19:14:14 <Deewiant> AnMaster: well, t as specified in the spec is an infinite loop + forkbomb
19:14:30 <AnMaster> Deewiant, well either it pushes the vector + offset, or it pushes the vector without the offset
19:14:32 <Deewiant> AnMaster: because it doesn't say the child IP should move after being forked
19:14:58 <Deewiant> AnMaster: with offset of course so that it all works within {
19:15:10 <AnMaster> Deewiant, so if you leave { then it returns to wrong place?
19:15:12 -!- sebbu has quit (Read error: 104 (Connection reset by peer)).
19:15:26 <AnMaster> StackPushVector(ip->stack, &VectorCreateRef(ip->position.x - ip->storageOffset.x, ip->position.y - ip->storageOffset.y));
19:16:11 <Deewiant> AnMaster: erm, that's like saying that if you change EIP within a function "ret" won't work properly
19:16:25 <Deewiant> AnMaster: something like that yes
19:16:35 <AnMaster> Deewiant, it would be a lot easier if the docs said this
19:16:48 <AnMaster> so get Mike to update the docs
19:17:05 <AnMaster> oh and get the JSTR author to update too
19:17:12 <AnMaster> because that doesn't say anything about relative either
19:17:28 <Deewiant> good luck with that, his befunge page was down last I checked
19:17:37 <AnMaster> <fizzie> 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 <AnMaster> Deewiant, so I agree with fizzie there
19:17:50 <Deewiant> like said, the standard is well written, unlike mike's docs
19:17:53 <fizzie> I'm not sure I agree with fizzie here.
19:18:24 <fizzie> 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 <AnMaster> Deewiant, what in the REFC, and ORTH specs says it is *not* relative the offset then
19:19:52 <Deewiant> AnMaster: doing REFC your way might make more sense (i.e. make it work regardless of in or outside {)
19:20:04 <Deewiant> AnMaster: but the basic point there is that the REFC list is global
19:20:08 <AnMaster> Deewiant, no I won't do it that way, as the specs doesn't say so
19:20:19 <AnMaster> I just noted you were illogical
19:20:35 <Deewiant> AnMaster: cfunge is incompliant
19:20:53 <AnMaster> Deewiant, indeed it does move but that is because it wouldn't work at all otherwise
19:21:12 <AnMaster> all these other ones work either way
19:21:18 <AnMaster> thus I prefer to follow the standard
19:21:22 <Deewiant> yes, one way being drastically more useless than the other
19:21:28 <AnMaster> Deewiant, or you could consider the t move UNDEF
19:21:29 <Deewiant> and the standard not being explicit about it
19:21:34 <AnMaster> nowhere does it say it shouldn't move either
19:21:41 <AnMaster> so you are free to do whichever you want
19:21:52 -!- sebbu has joined.
19:21:59 <AnMaster> same for these with storage offset
19:22:32 <AnMaster> Deewiant, where does it say ORTH is absolute?
19:22:39 <AnMaster> I checked http://catseye.tc/projects/funge98/library/ORTH.html
19:22:44 <AnMaster> it doesn't mention "offset" anywhere
19:22:51 <AnMaster> so why isn't your relative then?
19:22:54 <Deewiant> AnMaster: the Orthogonal language doesn't have offset
19:23:15 <Deewiant> since those are meant to duplicate them directly, I think that makes sense
19:24:17 <Deewiant> 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 <AnMaster> 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 <Deewiant> if they don't, they're actually worth something
19:24:44 <asiekierka> fizzie: Are any new fungot langs there?
19:25:45 <fizzie> 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 <fizzie> I think there are some ugly brainfuck dependencies in the code, too. Hopefully not too many.
19:29:23 <fizzie> 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:44 <Deewiant> sounds similar to what I do in Mycology to load fingerprints
19:29:45 <fizzie> "Maintainable Befunge" just feels a bit weird.
19:29:48 <AnMaster> fizzie, do you use FING or FNGR?
19:30:05 <AnMaster> consider changing to FING if you use FNGR
19:30:08 <fizzie> It's still FNGR, but I can switch to FING easily. Meant to do that, but haven't yet.
19:30:43 <fizzie> FNGR is used on the first 3 lines only and )d afterwards; not much to change.
19:30:50 <AnMaster> 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 <Deewiant> AnMaster: which ones did you have to change
19:31:01 <AnMaster> Deewiant, JSTR, STRN and SUBR are affected
19:31:10 <AnMaster> please contact the authors to make them update the docs
19:31:15 <AnMaster> if you wish to keep it this way
19:32:17 -!- tusho|away has changed nick to tusho.
19:32:18 <AnMaster> Deewiant, and if you want me to change REFC to the way I suggested above: forget it
19:32:28 <AnMaster> it was just pointing out how illogical you were being
19:32:51 <AnMaster> I won't change REFC unless it's specs are updated
19:33:28 <Deewiant> 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:20 <tusho> If it was MikeRiley, well, you know what he's always like
19:37:26 <tusho> "yeah,,,you're right...i'll change it"
19:37:49 <tusho> Best to just cut to the chase, and avoid bureauacracy
19:37:59 <Deewiant> tusho: it's an old cat's-eye fingerprint, so probably chris pressey
19:38:09 <tusho> Deewiant: Then it'll never be updated.
19:38:20 <Deewiant> so is defining it to be useful so wrong?
19:38:40 <tusho> Deewiant: To satisfy AnMaster, maybe call it RFCT
19:39:20 <tusho> Deewiant: perhaps you should have a mycology_opinionated.b98
19:39:26 <tusho> that tests UNDEF things
19:39:42 <tusho> (for Reasonable Behaviour(TM))
19:39:51 <fizzie> mycology_for_people_with_common_sense.b98
19:40:03 <fizzie> If you want to be snide about it.
19:40:23 <tusho> mycology_anmaster_keep_out.b98
19:42:05 <fizzie> optbot; What do you think about the Great Relative/Absolute Funge-Space Addressing Controversy of 2008?
19:42:05 <optbot> fizzie: It would be marginaly less irritating without furries.
19:42:13 <optbot> tusho: when writing C++ I have this strangest urge to write well-structured, oo-like code.
19:42:19 <fizzie> optbot; Well, that much is undoubtedly true.
19:42:19 <optbot> fizzie: am I markov "Internetty" chain bots?
19:42:28 <fizzie> optbot; I don't know, are you?
19:42:29 <Deewiant> if I can get Jesse van Herk to update JSTR's spec, I don't have to do anything
19:42:50 <optbot> asiekierka: with your powers combined, i am captain ge...ahem
19:43:21 -!- Hiato has joined.
19:44:56 <AnMaster> what should FING do on empty opcode stack?
19:45:21 <Deewiant> AnMaster: the spec doesn't say so I guess you can do whatever you want!!!
19:45:34 <tusho> Deewiant: Looks like he needs mycology_opinionated.b98!
19:45:46 <AnMaster> Deewiant, hm probably reflect for now, will ask Mike to clarify specs
19:45:54 <fizzie> From the contet, I think it might've been captain geek. The conversation immediately before is about geeks.
19:46:43 <AnMaster> return stack->entries[--(stack->top)];
19:47:04 <tusho> no, magical pixies make it not work
19:47:05 <AnMaster> well sometimes those things aren't
19:47:09 <fizzie> stack->entries and stack->top are very different objects, I don't see why it wouldn't be.
19:47:20 <tusho> god sometimes I wish AnMaster actually knew how these things worked
19:48:00 <tusho> AnMaster: Where is the ambiguity?
19:48:05 <AnMaster> I don't remember the details for what is undefined from the top of my head
19:48:11 <tusho> How on earth could it be?
19:48:16 <tusho> --x returns x, then decrements it.
19:48:22 <tusho> AnMaster: It's a structure.
19:48:25 <tusho> x->y and x->z aren't the same thing.
19:48:33 <tusho> Yes, what Deewiant said
19:48:34 <AnMaster> <tusho> --x returns x, then decrements it.
19:48:48 <tusho> AnMaster: Yes, yes, this mixing of prefix and postfix operators is confusing.
19:48:50 <tusho> My point still stands.
19:48:54 <AnMaster> god sometimes I wish tusho actually knew what he talked about
19:48:58 <tusho> You're not using something and modifying it in the same expression.
19:49:05 <tusho> And unlike yours, mine was just a thinko.
19:49:11 <Deewiant> god sometimes I wish AnMaster would concentrate on the whole and not the irrelevant details
19:50:12 <fizzie> The bickering! It's almost too much to bear!
19:50:24 <optbot> Deewiant: I am YOUR MOM
19:50:58 <tusho> "Luke...I am...YOUR MOM"
19:51:08 <tusho> "Hahahaha oh good one Vader you got me there!"
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 <AnMaster> "BAD: Z did not push a reflect from empty source semantic stack" interesting
20:06:34 <AnMaster> Deewiant, Mike wrote some quite good test suites
20:06:45 <AnMaster> still he should mention it in the specs
20:08:12 -!- olsner has joined.
20:08:27 <Deewiant> AnMaster: they don't test edge cases, normal functionality is okay though
20:08:35 <Deewiant> i.e. stuff that should reverse, etc.
20:08:44 <AnMaster> Deewiant, well the FING one tests edge cases at least
20:09:03 <AnMaster> "GOOD: X with an empty semantic stack reflected"
20:09:17 <Deewiant> yeah, he's ripping off mycology ;-)
20:09:18 <AnMaster> now that is interesting, it locked up
20:09:33 <Deewiant> I will probably incorporate many of those in mycology
20:10:06 -!- Hiato has joined.
20:10:18 <AnMaster> Deewiant, you can't, they are way too sparse
20:10:57 -!- RedDak has joined.
20:11:09 <Deewiant> optbot: I refuse to respond, say something smart
20:11:12 <AnMaster> Deewiant, about edge cases... it does not handle well when it reflects but it didn't expect it too it seems
20:11:24 <Deewiant> AnMaster: DATE for instance wasn't tested very well IMO
20:11:32 <AnMaster> Deewiant, well I haven't checked that one yet
20:11:38 <Deewiant> AnMaster: and yeah, it doesn't handle that
20:11:42 <Deewiant> it expects everything to succeed
20:11:49 <Deewiant> and usually hits an @ immediately if something doesn't
20:12:00 <Deewiant> which is of course not doable in mycology
20:13:18 <AnMaster> >I1-#v_0"1 sehsup niaga I :DOOG">:#,_$a,v
20:13:18 <AnMaster> >0"1 hsup ton seod I :DAB">:#,_$a,@
20:13:29 <AnMaster> that reflects between > and the first I for some reason
20:14:52 <Deewiant> is that different from reflecting at the I?
20:15:13 <Deewiant> well what do you mean it reflects in between
20:15:33 <Deewiant> just say it reflects at the I, much clearer :-P
20:15:38 <tusho> http://www.google.com/patents?vid=USPAT6917941 what a ridiculous patent...
20:15:43 <AnMaster> take two mirrors, place them facing each other
20:15:55 <AnMaster> shine some light, the light will reflect between them
20:16:05 <Sgeo> 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 <asiekierka> So they must pay me to patent their patents
20:16:30 -!- poiuy_qwert has joined.
20:17:05 <AnMaster> <tusho> http://www.google.com/patents?vid=USPAT6917941 what a ridiculous patent... <-- I don't understand what it is saying even
20:18:09 <Sgeo> Seems to move your home directory so you don't affect quorum, I think
20:18:17 <tusho> AnMaster: duh, patents are written in dense legalese
20:18:28 <tusho> but it essentially seems to be regarding making lists. In databases.
20:19:36 <Sgeo> be back laterish
20:19:56 <tusho> Can we abolish patents yet?
20:21:08 <asiekierka> 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:39 <tusho> yes, ha ha you are the first person to think of that
20:21:41 <tusho> golly gee such humour
20:21:48 <tusho> Besides, nothing would happen
20:21:51 <tusho> unless you sued people
20:21:53 <optbot> Deewiant: trick it out of the house?
20:21:54 <tusho> the courts would dismiss it
20:22:01 <tusho> due to, uh, fairly obvious prior use
20:22:23 -!- Hiato has quit (Read error: 54 (Connection reset by peer)).
20:30:01 <AnMaster> it didn't check that X added the semantics back if it failed
20:30:11 <AnMaster> I didn't know I should so I didn't do that
20:30:55 <AnMaster> 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 <Deewiant> AnMaster: it is very obvious that if an operation fails, you don't lose user data
20:31:47 <AnMaster> 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 <AnMaster> GOOD: X with an empty semantic stack reflected
20:32:08 <AnMaster> it should also check that the other semantic was pushed back after
20:32:16 <MikeRiley> hmmmmmm need to check on that....i thought it did...
20:32:31 <AnMaster> MikeRiley, now I just need to figure out why it says: BAD: M does not have M semantics from MODU
20:32:53 <MikeRiley> hold on....let me get the test in front of me,,,then can explain it....
20:33:14 <AnMaster> MikeRiley, unlike mycology your test is rather readable
20:33:19 <Deewiant> you can just answer here as well
20:33:31 <MikeRiley> ok,,,,let me get anmaster's answer first....
20:34:33 <MikeRiley> anmaster: GOOD: 'C'MZ did not reflect
20:34:52 <MikeRiley> these lines,,,,create a C semantic from ROMA on top of the M semantic stack...
20:35:23 <MikeRiley> unloading MODU, will unload the ROMA/C semantic from M,,,,leaving the M that was already there...
20:36:13 <MikeRiley> so the correct response should be: GOOD: M has M semantics from MODU
20:36:33 <MikeRiley> deewiant: it is in the documentation that I have,,,,just not been posted yet!!!
20:36:43 <Deewiant> MikeRiley: as I thought, so post it!!
20:37:00 <AnMaster> MikeRiley, also newline is missing after "BAD: X did not push a...."
20:37:01 <Deewiant> MikeRiley: because AnMaster reads the posted stuff like the bible
20:37:03 <MikeRiley> sometimes i make lots of changes in my local copies and do not get around to posting them...
20:37:04 <AnMaster> MikeRiley, also newline is missing after "BAD: Z did not push a...."
20:37:34 <AnMaster> >0"kcats citnames ecruos ytpme morf tcelfer a hsup ton did Z :DAB">:#,_@
20:37:46 <MikeRiley> oh...ok,,,that was on a termination one....ok.....
20:38:43 <AnMaster> MikeRiley, well what could be wrong if I get "BAD: M does not have M semantics from MODU"
20:39:12 <MikeRiley> first,,,,does this work: GOOD: 'C'MZ did not reflect
20:39:25 <MikeRiley> this would have pushed the ROMA C semantic onto the M stack...
20:39:34 <MikeRiley> then when GOOD: Unloading MODU did not reflect
20:39:44 <AnMaster> MikeRiley, everything is GOOD up to that point
20:40:01 <MikeRiley> 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 <AnMaster> (and you seem to terminate after every BAD)
20:40:35 <MikeRiley> some tests rely on previous tests...and if they resulted in bad, you could get all kinds of false bads later...
20:40:43 <MikeRiley> so i thought it was just better to terminate...
20:41:20 <MikeRiley> 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 <MikeRiley> but for single tests as i have them,,,just seemed useful to stop them on an bad....
20:42:50 <AnMaster> (gdb) print *ip->fingerOpcodes['M'-'A']->entries[0]
20:42:51 <AnMaster> $7 = {void (instructionPointer *)} 0x4168b6 <FingerROMApushM>
20:43:42 <AnMaster> MikeRiley, it does execute M from ROMA
20:43:56 <AnMaster> at "BAD: M does not have M semantics from MODU"
20:43:59 <MikeRiley> GOOD: A still has M semantics from MODU
20:44:08 <MikeRiley> it should not be executing ROMA at that point....
20:44:20 <MikeRiley> before GOOD: Unloading MODU did not reflect
20:44:24 -!- asiekierka has joined.
20:44:25 <MikeRiley> the semantic stack would look like:
20:44:31 <AnMaster> there is ROMA C above the top of the stack
20:44:47 <AnMaster> <MikeRiley> GOOD: A still has M semantics from MODU <-- it seems like it does
20:44:56 <AnMaster> MikeRiley, this is on the M stack?
20:45:03 <MikeRiley> yes, MODU does not define A so it would not have been unloaded
20:45:24 <MikeRiley> A stack should have <MODU:M> on it....
20:45:43 <AnMaster> $12 = {void (instructionPointer *)} 0x415948 <FingerMODUsignedResult>
20:46:08 <MikeRiley> in the test script there is this line:
20:46:11 <AnMaster> MikeRiley, so clearly you missed to test something there which cfunge does the wrong way atm
20:46:42 <AnMaster> but otherwise the stack wouldn't look like it does
20:47:25 <MikeRiley> is the only place anything is done with A,,,,
20:47:35 <MikeRiley> and that is after an instruction that pushes the MODU:M onto A....
20:47:55 <MikeRiley> after which ROMA:C is pushed on top of M....
20:48:05 <MikeRiley> A should still have MODU:M not ROMA:C....
20:48:14 <MikeRiley> that is what that test is about...
20:48:26 <MikeRiley> then MODU is unloaded....so M would be popped...removing the ROMA:C
20:48:29 <Deewiant> AnMaster: http://www.imaginaryrobots.net/projects/funge/myexts.txt !!!!!
20:48:33 <MikeRiley> leaving the MODU:M that is below it
20:49:08 <AnMaster> at "GOOD: A has M semantics from MODU" the stack is: FingerMODUsignedResult
20:49:25 <MikeRiley> A should only have MODU:M on it....and nothing else....
20:50:04 <AnMaster> where should I set the next break point for checking
20:50:26 <MikeRiley> after this, M should be: <ROMA:M><MODU:M><ROMA:C>
20:51:21 <AnMaster> FingerROMApushM, FingerROMApushC is what the stacks look like after "GOOD: 'C'MZ did not reflect" has been printed
20:52:01 <AnMaster> MikeRiley, when was that MODU:M pushed?
20:52:15 <AnMaster> also it is not the top item of the stack so it should have been pushed before?
20:52:30 <MikeRiley> you have these lines before the test:
20:52:32 -!- asiekierka has quit (Read error: 104 (Connection reset by peer)).
20:52:44 <MikeRiley> when MODU is loaded you will get MODU:M
20:52:54 <MikeRiley> then the GOOD: 'C'MZ did not reflect
20:53:03 <MikeRiley> will push the ROMA:C above the MODU:M
20:53:30 <AnMaster> 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:52 <MikeRiley> without knowing your code,,,,i do not know....i just know what the stack should look like....
20:54:03 <MikeRiley> what does your stack for M look like?
20:54:46 <MikeRiley> let me check where that is in the source
20:55:27 <AnMaster> FingerROMApushM, FingerMODUsignedResult
20:56:04 <MikeRiley> which is: GOOD: c0Z did not reflect
20:56:21 <MikeRiley> at this point, A should have <MODU:M>
20:56:30 <MikeRiley> and M should have <ROMA:M><MODU:M>
20:56:51 <MikeRiley> than there is a problem in your Z code...
20:57:35 <AnMaster> MikeRiley, maybe add a test to see that it copies not move
20:57:53 <MikeRiley> i can do that,,,,but your BAD: line you are getting confirmst that.....
20:58:01 <MikeRiley> but can add a test immediately after the copy....
20:58:16 <MikeRiley> just so that it does not show up bad later where it is harder to figure out what is wrong...
20:58:29 <AnMaster> MikeRiley, yeah would make it easier to find the cause
21:00:26 <AnMaster> MikeRiley, and add the stuff about X pushing reflect in the docs for FING btw
21:01:34 <MikeRiley> refering to this test: GOOD: 18Z worked
21:01:59 <AnMaster> MikeRiley, write better docs ;P
21:02:15 <MikeRiley> never claimed to be good at documenation!!!! ehehehehehehehe
21:02:44 <MikeRiley> need people like you to tell me what is missing or unclear!!! eheheheheeheh
21:03:51 <MikeRiley> ok,,,added the z pushing reflect....will find its way to my webpage eventually....
21:04:04 <MikeRiley> any other docs you want cleared up???
21:05:16 -!- oerjan has joined.
21:08:40 <AnMaster> MikeRiley, oh and that X pushes back the other semantic if the first one is NULL
21:08:45 <AnMaster> fingerprintOpcode op1 = OpcodeStackPop(ip, first);
21:08:45 <AnMaster> fingerprintOpcode op2 = OpcodeStackPop(ip, second);
21:08:47 <AnMaster> if (op1) OpcodeStackAdd(ip, first, op1);
21:08:47 <AnMaster> if (op2) OpcodeStackAdd(ip, second, op2);
21:09:14 <AnMaster> I didn't push back to begin with
21:10:33 <AnMaster> MikeRiley, what happened was that it bounced between >I in the beginning of the next test
21:12:03 <MikeRiley> ok,,,will try to remove the confusion
21:12:19 <AnMaster> MikeRiley, no one said writing tests in funge was easy ;P
21:12:39 <AnMaster> I wrote tests myself that I couldn't understand why the failed for quite some time
21:13:15 <AnMaster> I could reason what should happen but had issues understanding why it didn't happen
21:13:21 <MikeRiley> 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 <AnMaster> MikeRiley, oh I had that too, in SUBR, JSTR and STRN
21:13:39 <MikeRiley> yeah,,,,i had that happen to me on some of my test code...
21:13:50 <AnMaster> he wants stuff to be relative storage offsets
21:13:55 <MikeRiley> SUBR is broken now and ends up in an infinite loop...
21:14:15 <AnMaster> before I made it relative storage offset
21:14:19 <MikeRiley> y as pick now shows bad,,,,when it did not before....
21:14:31 <AnMaster> Deewiant, hey the author didn't do it relative either, didn't you say he wanted that?!
21:14:36 <MikeRiley> most of my code is relative storage offsets as well...but maybe missed something...
21:15:01 <AnMaster> MikeRiley, well Deewiant thinks the jump in SUBR should be relative
21:15:03 <MikeRiley> BAD: : on empty stack doesn't make stack size 2, says y
21:15:03 <MikeRiley> BAD: \ on empty stack doesn't make stack size 2, says y
21:15:11 <MikeRiley> which do not make any sense why they would be bad...
21:15:26 <MikeRiley> hmmmmi think the jump in SUBR should not be.....
21:15:42 <AnMaster> MikeRiley, well \ pops a, then b, then pushes b then pushes a
21:15:58 <MikeRiley> so an empty stack will push back 2 zeros....
21:16:01 <AnMaster> : would pop a then push a twice
21:16:06 <MikeRiley> do not understand why the test now fails...
21:16:09 <AnMaster> I had issues with : months ago
21:16:26 <MikeRiley> that has always worked for me,,,,until this latest version of mycology...
21:16:45 <MikeRiley> mine did pop push push,,,,or pop pop push push....whatever was needed...
21:16:47 <AnMaster> MikeRiley, well I don't get those two BAD, I guess this means something messed up earlier?
21:17:13 <AnMaster> well fix those BAD first maybe?
21:17:15 <MikeRiley> BAD: "a b" takes more than 5 ticks
21:17:29 <AnMaster> MikeRiley, well yes and no, CCBI had a bug before
21:17:34 <MikeRiley> i printed cycle counts with my output,,,
21:17:41 <AnMaster> it turned out cfunge was right in cycle count
21:17:47 <MikeRiley> and they take the correct counts..
21:17:54 <AnMaster> MikeRiley, talk to Deewiant about it
21:18:04 <MikeRiley> not sure how he is testing that....
21:18:22 <AnMaster> MikeRiley, well since it is concurrent test following that code is extremely tricky
21:18:42 <AnMaster> I resorted to debugging CCBI and cfunge side by side to see when they stop doing the same thing
21:18:43 <MikeRiley> so wonder how he is testing for tick counts...
21:18:55 <AnMaster> MikeRiley, I think he writes with p using a second thread
21:19:06 <AnMaster> so if the first thread doesn't make it in time it gets redirected
21:19:59 <MikeRiley> 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 <AnMaster> 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 <AnMaster> make sure A takes 0 ticks then as it should
21:20:40 <AnMaster> it was something like that iirc
21:20:50 <MikeRiley> also need to straighten him out on the jump in SUBR
21:20:51 <AnMaster> sadly I can't find it in scrollback, my computer crashed after that
21:21:00 <AnMaster> which reminds me, I should run memtest tonight
21:21:01 <MikeRiley> i will check that in the debugger...
21:21:26 <AnMaster> MikeRiley, well in SUBR Deewiant think the jumps should be relative storage offset
21:21:37 <MikeRiley> let me look at SUBR, hold on a sec...
21:21:49 <AnMaster> MikeRiley, your docs leave that UNDEF
21:22:35 <MikeRiley> 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 <AnMaster> MikeRiley, aha, well Deewiant was wrong then
21:22:49 <MikeRiley> the jump vector comes off the stack and applied directly to the IPs position....
21:23:13 <AnMaster> right that was what I thought too
21:23:35 <MikeRiley> will make that plain in the docs....but the storage offset does not apply to SUBR....
21:23:35 <AnMaster> Deewiant, so you were wrong about SUBR then
21:24:47 <MikeRiley> uploading new documenation for this
21:24:57 <AnMaster> by the way I prefer fingerprints that only touches stack, they are much easier to debug
21:25:17 <MikeRiley> sometimes not possible to do that with some fingerprints tho
21:25:38 <AnMaster> MikeRiley, oh btw SOCK can't do non-blocking sockets can it?
21:25:53 <MikeRiley> nope...i think that is why somebody came up with SCKE
21:26:07 <AnMaster> what about blocking socket that only blocks the current IP?
21:26:58 <MikeRiley> it will block all IPs actually....could mandate it one way or the other....
21:27:22 <AnMaster> well say that it should block all I think
21:27:25 <MikeRiley> manual updated for the SUBR vectors...
21:27:54 <AnMaster> MikeRiley, but I may make a variant that allows blocking just one IP (somewhat like SCKE)
21:28:12 <MikeRiley> i am thinking of making that change to mine too actually...
21:28:14 <AnMaster> I can see uses for both behaviours
21:28:18 <MikeRiley> in that and in the sysV ipc ones as well...
21:28:35 <AnMaster> well changing existing fingerprints are a bad idea
21:28:38 <MikeRiley> the ipc ones have an option for blocking or not...
21:28:46 <AnMaster> I think you are the only one to implement ipc
21:28:58 <AnMaster> but the SOCK several other ppl implement
21:28:59 <MikeRiley> probably the only one to implement many of my fingerprints!! eheheheheeheh
21:29:36 <MikeRiley> 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 <MikeRiley> might add SGNL,,,,and probably NRCS as well...
21:29:54 <AnMaster> well a few are certainly useful
21:30:07 <MikeRiley> some are useful.....some are more curiosities...
21:30:22 <MikeRiley> for me FNGR is the most usefull of all...but others disagree with me on it....
21:30:24 <AnMaster> actually I would probably have made FLOT or something with double precision only
21:30:37 <MikeRiley> i had a reason at the time for the 2 different ones....
21:30:49 <AnMaster> FNGR I won't implement, FING I just implemented
21:30:56 <MikeRiley> FPSP came first,,,and was written to operate in the 32-bit cells that i was using...
21:31:09 <AnMaster> LONG I will implement once I figure out how to do arithmetics on 128-bit integers
21:31:17 <MikeRiley> FNGR is nasty to implement,,,i had to change a lot in my interpreter when i implemented that one...
21:31:22 <AnMaster> as cfunge offers 64-bit cells as an option
21:31:31 <AnMaster> MikeRiley, but TRDS is worse I bet
21:31:38 <MikeRiley> not too hard to do 128-bit integers...
21:31:51 <AnMaster> MikeRiley, well I got no idea how you handle carry and such
21:31:54 <MikeRiley> TRDS is really a pain!!!! mine still does not work 100% right....
21:32:13 <MikeRiley> 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:36 <MikeRiley> carry can be handled by comparing magnitude of the result to what you started with...
21:32:51 <MikeRiley> yes,,,it is very messy,,,and too many unknowns about it....
21:32:54 <AnMaster> MikeRiley, hm got any good source to read up on more about that?
21:33:05 <MikeRiley> never expected anybody to actually implement it!!!! eheheheheheheeheh
21:33:29 <AnMaster> 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 <MikeRiley> 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:58 <MikeRiley> yeah,,,,early cpu...made by rca...
21:34:10 <MikeRiley> if you want to know more about it, go to my main website: www.elf-emulation.com
21:34:13 <AnMaster> also I can hardly read any asm except PIC12F62x
21:34:24 <MikeRiley> i did an awful lot of work with the 1802 once upon a time...
21:34:55 <AnMaster> MikeRiley, what is need is a high level C way of doing LONG
21:35:20 <MikeRiley> i agree,,,,one of these days i will convert my assembly code for doing it into c....
21:35:23 <AnMaster> MikeRiley, does rc/funge implement 64-bit cells?
21:35:38 <oklopol> is there a bignum fingerprint
21:35:45 <MikeRiley> no....thought about adding one....
21:36:03 <AnMaster> however if you just want Befunge-93 I got a BIGNUM Befunge-93 interpreter coded in erlang
21:36:20 <MikeRiley> but been busy on the Rc/Funge-98 restructuring to make any new fingerprints right now...
21:36:24 <oklopol> perhaps even a fingerprint that changed all cells to bignums? :D
21:36:40 <AnMaster> oklopol, would be hard to implement in C
21:36:57 <AnMaster> http://bzr.kuonet.org/efunge/trunk/files
21:37:15 <oklopol> you'd just have to reallocate everything when it's done
21:37:35 <oklopol> or whatevery you use for fungespace
21:37:48 <AnMaster> oklopol, err... you need a hash map for fungespace
21:38:13 <AnMaster> because you have 2^32 * 2^32 cells
21:38:31 <oklopol> well i assumed it has infinite cells
21:38:38 <oklopol> even so, you don't need a hashmap
21:38:39 <AnMaster> oklopol, err depends on cell size
21:38:54 <AnMaster> you would have 2^64 * 2^64 cells
21:39:08 <oklopol> that's actually specified?
21:39:31 <MikeRiley> you do not need a hash map...i do not use one...
21:39:36 <AnMaster> oklopol, same reason that C have a limited adress space, the result of sizeof() must be finite
21:39:49 <AnMaster> so you need something like a hash map
21:39:57 <AnMaster> there is no way you can use a statically allocated array
21:40:06 <MikeRiley> i use a dynamic array of a form...
21:40:06 <AnMaster> I guess you could use some tree structure or something
21:40:16 <AnMaster> MikeRiley, with an index right?
21:40:21 <MikeRiley> with binary searches on the dynamic array..
21:40:41 <MikeRiley> there are two arrays,,,,one containing rows....and then each of those contain an array of cells...
21:41:09 <AnMaster> I actually use a hash with {x,y} as key and the cell as data
21:41:14 <MikeRiley> they are sorted so that retrieval just uses a binary search on the arrays...
21:41:33 <MikeRiley> mycology executes in about .2 seconds...
21:41:39 <AnMaster> MikeRiley, so what would happen if I wrote to 2^31-1, 2^31-1
21:42:14 <AnMaster> MikeRiley, aren't there cases where it is slow?
21:42:37 <oklopol> you insert something @ n, then start filling from n to 0
21:42:38 <AnMaster> MikeRiley, what if you need to reallocate?
21:42:40 <MikeRiley> maybe if you have 100,000s of rows are cells it could be...
21:42:48 <MikeRiley> but for more standard size programs,,,quite fast...
21:42:50 <oklopol> you need to copy everything each time you write
21:43:06 <oklopol> well, you just need to copy an array of array pointers
21:43:20 <AnMaster> MikeRiley, well say you write to x=MAX_INT,y=10, then to x=MIN_INT,y=10
21:43:21 <MikeRiley> nope,,,,not too slow at all actually...
21:43:41 <oklopol> AnMaster: would add two columns
21:43:51 <MikeRiley> only thing that matters is the number of cells that contain non-32 values...
21:43:57 <AnMaster> um he did it on row basis he said?
21:44:15 <MikeRiley> 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 <AnMaster> MikeRiley, well what if you start inserting from the ends
21:44:49 <AnMaster> 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 <AnMaster> you would need to move items up/down right?
21:45:08 <MikeRiley> 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:53 <oklopol> resort? you insert, then sort it with like sort()?
21:45:57 <MikeRiley> although i do not currently use memmoves,,,but using them instead of what i do whould be quite fast...
21:46:03 <AnMaster> for (int i=MAX_INT; i > 0; i--) do put(i, 10, 'a');
21:46:18 <oklopol> because it's faster to do it incrementally
21:46:25 <MikeRiley> i agree,,,,with larger numbers of cells it would be slower...
21:46:32 <MikeRiley> but only to insert....not retrieve...
21:47:00 <MikeRiley> retrieval is on a binary search algorithm,,,so for a row 256 cells long,,,only 8 cells need to be examined...
21:47:52 <MikeRiley> each row hols the z and y of the row,,,each cell holds the x....
21:47:54 <AnMaster> MikeRiley, I'm quite sure it is possible to write some program for which that gives very bad performance
21:48:20 <MikeRiley> but i think for the average funge program,,,it should operate just fine...
21:48:27 <AnMaster> while a hash map is worse on average but will perform much better in such a case
21:49:05 <MikeRiley> question is,,,,performance for the average??? or perfomance for the unusual???
21:49:35 <AnMaster> MikeRiley, have you fuzz tested rc/funge?
21:49:41 <AnMaster> to check that it doesn't crash on stuff
21:50:00 <MikeRiley> i am sure it will crash quite hard for unusual cases!!! eheheheheeheheh
21:50:14 <MikeRiley> should try it tho....just for grins....
21:50:20 <AnMaster> MikeRiley, well, fuzz testing helped me find crash on: 2k@
21:50:43 <MikeRiley> 2k@ would not cause mine any problems...
21:51:16 <AnMaster> MikeRiley, I wrote a shell script to fuzz test
21:51:16 <MikeRiley> as far as my interpreter is concenred,,,you can only kill the IP once....
21:51:28 <MikeRiley> no matter how many @'s you execute on it...
21:51:56 <AnMaster> 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 <MikeRiley> 2kt might do interesting things tho!!!!
21:52:09 <AnMaster> cfunge: /home/arvid/src/cfunge/trunk/src/stack.c:115: StackPushNoCheck: Assertion `stack->top < stack->size' failed.
21:55:10 <AnMaster> well it happened after several y
22:05:57 <dogface_> I suddenly wonder if you're doing a Core Wars-like thing.
22:09:11 <MikeRiley> hmmmmsounds fun.....core wars for befunge!!!
22:10:46 <dogface_> My gosh, I just realized something.
22:12:54 <AnMaster> 1: *stack = {size = 2, top = 1, entries = 0x22dce60}
22:13:00 <AnMaster> that should not be possible in cfunge
22:13:21 <AnMaster> because stack is allocated with size 4096, and I never shrink it
22:13:29 <oklopol> dogface_: what did you realize?
22:13:30 <AnMaster> MikeRiley, trying to find that out
22:13:58 <dogface_> Actually, I kind of realized it a while ago.
22:14:22 <AnMaster> wait actually it could I think with threads... maybe
22:14:33 <oklopol> dogface_: okay, nothing then...
22:14:50 <dogface_> 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:23 <dogface_> What I realized longer ago is that a strongly-typed Thue on graphs is... pretty nice.
22:17:14 <dogface_> 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:22:08 -!- MikeRiley has quit ("Leaving").
22:23:32 <dogface_> 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 <dogface_> The type of the entire thing must be :o
22:25:19 <dogface_> The type system was not completely arbitrary. :o was.
22:25:39 <dogface_> 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:48:10 -!- Corun has joined.
22:52:02 <dogface_> In my language, this sentence would be a valid expression if it didn't contain the following: "Blah."
22:53:13 <dogface_> 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 <dogface_> 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 <tusho> dogface_: would this be valid:
23:26:52 <tusho> NOT ALL DOGS ARE DOGS!
23:27:07 <dogface_> That is syntactically valid, yes.
23:28:01 <tusho> dogface_: what about
23:28:07 <tusho> DOGS, DOGS I TELL YOU... DOGS!!
23:28:45 <dogface_> No, because two of the periods and one of the exclamation points does not have a space on either side.
23:32:11 <tusho> dogface_: You said most english sentences were valid
23:33:09 <dogface_> 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 <dogface_> I suddenly feel I'm not up to writing a spec for :o.
23:56:53 <dogface_> 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 <dogface_> Actually, say that the letter T is equivalent to the letter W for these purposes.