00:00:01 -!- sebbu has quit (No route to host).
00:00:58 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
00:01:44 -!- CakeProphet_ has joined.
00:01:50 -!- CakeProphet_ has changed nick to CakeProphet.
00:09:14 -!- tusho_ has quit.
00:12:50 -!- sebbu has joined.
00:17:03 -!- sebbu has quit (clarke.freenode.net irc.freenode.net).
00:17:05 -!- ihope has quit (clarke.freenode.net irc.freenode.net).
00:17:05 -!- cherez has quit (clarke.freenode.net irc.freenode.net).
00:17:05 -!- puzzlet has quit (clarke.freenode.net irc.freenode.net).
00:17:05 -!- GregorR has quit (clarke.freenode.net irc.freenode.net).
00:17:22 -!- sebbu has joined.
00:17:22 -!- ihope has joined.
00:17:22 -!- cherez has joined.
00:17:22 -!- puzzlet has joined.
00:17:22 -!- GregorR has joined.
00:28:45 <CakeProphet> CakeProphet reply to: psygnisfive with: 'nm la'
00:30:58 <CakeProphet> CakeProphet replyto: psygnisfive with: 'nm la'
00:31:29 -!- psygnisfive has changed nick to psygnisfive[brb].
00:35:42 -!- olsner has quit ("Leaving").
00:44:16 -!- psygnisfive[brb] has changed nick to psygnisfive.
00:50:14 <CakeProphet> I like IOs message syntax more so than smalltalks.
00:50:36 <CakeProphet> though it doesn't allow you to have things like replyto: and then replyto:with:
00:51:19 <CakeProphet> non-alphanumeric characters don't require a space
00:52:18 <psygnisfive> i really wanna fuck around with a language that has nat-lang like prepositions
00:52:19 <CakeProphet> so this makes sense: if(x==2, "Hello, World!" println)
00:54:04 -!- psygnisfive has changed nick to psygnisfive[away.
00:56:52 <CakeProphet> that's pretty much how smalltalk does conditionals
01:00:48 <CakeProphet> because lisp has macros that pretty much make their own rules.
01:07:20 -!- psygnisfive[away has changed nick to psygnisfive.
01:08:10 <CakeProphet> there's functions... and then there's macros.
01:08:20 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
01:08:28 <psygnisfive> macros might as well just be lazy evaluation.
01:08:56 -!- Judofyr has joined.
01:09:25 <CakeProphet> psygnisfive: ...I am saying that lisp is not uniform.
01:09:48 <CakeProphet> it has functions and macros... two seperate things.
01:10:25 <CakeProphet> ...it lumps both of them together with the same syntax and claims that everything is computed via the same inner workings.
01:10:51 <psygnisfive> ive never heard anyone claim that everything is computed via the same parts of eval/apply
01:12:30 <CakeProphet> it does annoy me though... that they look the same. You don't tell if you're dealing with a function or a macro unless you've read some sort of documentation or seen the source code for it
01:13:04 <psygnisfive> ive never used macros so i cant really know one way or another
01:13:24 <CakeProphet> ...it doesn't matter usually, because if you're using a function/macro you pretty much already know what to expect.
01:14:13 <CakeProphet> psygnisfive: pretty much all of the control flow in lisp is done with macros.
01:15:22 <psygnisfive> i dont know if i like the syntax for it in scheme but
01:17:33 -!- psygnisfive has changed nick to psygnisfive-away.
01:24:41 -!- puzzlet_ has joined.
01:26:14 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
02:06:17 -!- pikhq has joined.
02:34:06 -!- psygnisfive-away has changed nick to psygnisfive.
02:34:38 <ihope> I wonder how many of you are people who would be interested in Normish (a.k.a. rootnomic) but aren't aware of its existence. >:-)
02:35:28 <ihope> Nomic in general is a game of changing rules: usually, a player proposes some change to the rules (or other part of the state of the game), and if it passes a vote, it's implemented.
02:35:48 <ihope> Normish is the same, but proposals are executables, and if they pass a vote, they're run as root.
02:36:15 <ihope> I'm sure eventually it will have politics and a stock market and a justice system and such. :-P
02:36:50 <ihope> Though I haven't done anything impressive with it yet.
02:44:13 <ihope> Like a proposal system that does anything more than count the number of people that have a copy of a file in their ~/proposals directory...
02:47:27 <ihope> So far, nobody has any points. I guess that doesn't do a good job of encouraging competitive people.
02:47:45 <ihope> I plan on getting a point as soon as possible.
03:08:13 <psygnisfive> ihope, what should we make our aithingy do
03:08:47 <ihope> We should make it write proposals for Normish. :-P
03:09:00 <ihope> (More likely, it would buy and sell things on Normish.)
03:09:05 <ihope> Make it build more of itself.
03:09:14 <psygnisfive> oh, btw, i figured out a way to do like.. a neural network using map and reduce
03:11:10 <psygnisfive> MapReduce has more than just map and reduce
03:11:15 <psygnisfive> surely you guys know what maps and reduces are
03:12:15 <RodgerTheGreat> I'm no haskell coder, but I'm sure I know what you're talking about by some other name
03:12:38 <RodgerTheGreat> a map would naturally be something like what the data structure does
03:13:20 <RodgerTheGreat> and a reduce seems like a general term for operations like summing and concatenation
03:14:04 <psygnisfive> concatenation being reduce with ++ or whatever
03:14:12 <RodgerTheGreat> so a reduce is the application of any commutative operator to a list of elements?
03:16:09 <ihope> map here refers to applying one function to every element of a list, yes?
03:16:23 -!- puzzlet_ has changed nick to puzzlet.
03:16:46 <psygnisfive> googles MapReduce is not just a map then a reduce
03:17:04 <psygnisfive> really what it is is a map, then a sort-into-buckets-by-some-criteria, then a reduce
03:17:45 <psygnisfive> the way i figure its a map+reduce problem is
03:18:03 <psygnisfive> in a neural network that uses discrete time units, each state is a function of the last state
03:18:07 -!- bsmntbombdood has quit.
03:18:45 -!- bsmntbombdood has joined.
03:18:48 <psygnisfive> for each node (map), its a result of averaging the sum (reduce) of the weighted inputs (map)
03:19:11 <psygnisfive> so you have to map some "update" function over each neuron to produce the networks next state
03:19:45 <psygnisfive> the update function being something that reduces with + the result of mapping a get-and-weight-input function over the inputs list for that node
03:21:43 <psygnisfive> ofcourse, for learning you need yet another map of some sort
03:22:10 <psygnisfive> and it might ultimately be better to have the whole thing be object oriented and let it run itself, but you get the idea anyway :p
03:22:19 <psygnisfive> and itd be fun to see if such a thing could be done
03:44:42 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
03:44:56 -!- Judofyr has joined.
03:59:00 <ihope> It has no denotative meaning.
04:22:45 -!- Corun has quit ("This computer has gone to sleep").
04:41:50 <psygnisfive> i know what an interjection is, thank you :p
05:09:18 <ihope> I meant that this particular interjection has no denotative meaning; many interjections do have denotative meanings to some extent.
05:09:39 <ihope> Then again, it's difficult to lie with an interjection.
05:27:02 -!- Judofyr_ has joined.
05:27:02 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
06:12:21 -!- pikhq has quit ("leaving").
06:52:18 -!- CakeProphet has quit (Remote closed the connection).
06:54:46 <Deewiant> AnMaster: got a mail from Mike Riley
06:55:01 <Deewiant> says he's feeling like bringing RC/Funge-98 to Mycology standards
07:10:48 -!- augur has joined.
07:10:48 -!- psygnisfive has quit (Read error: 104 (Connection reset by peer)).
07:11:17 -!- augur has changed nick to Guest40729.
07:24:12 -!- Guest40729 has changed nick to psygnisfive.
07:33:33 -!- olsner has joined.
07:38:23 -!- Judofyr has joined.
07:38:23 -!- Judofyr_ has quit (Read error: 104 (Connection reset by peer)).
07:56:08 -!- puzzlet_ has joined.
07:56:45 -!- puzzlet has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:51 <AnMaster> Deewiant, what about getting a website up somewhere?
08:30:40 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
08:31:45 -!- puzzlet has joined.
09:05:48 -!- olsner has quit ("Leaving").
09:07:20 -!- CakeProphet has joined.
09:26:26 <oklopol> reduce is just a specialization of a catamorphism
10:07:55 -!- oklopol has quit (Read error: 113 (No route to host)).
10:11:25 <Deewiant> AnMaster: beats me, but I'm sure that if he's going to want to release software he's going to put it on the 'Net somewhere. :-P
10:16:13 <AnMaster> hrrm Def-BF really needs a nop instruction
10:18:48 <AnMaster> anyway in blocks marked as "may optimise" it can now also optimize constant jumps/data pointer pushes
10:20:27 <AnMaster> RodgerTheGreat, about stdlib, got any details of functions that will be in it?
10:20:52 <AnMaster> I will release my stdlib code under some BSD style license btw
10:21:23 <AnMaster> however I will most likely implement parts in optimized C for use in the compiler
10:22:37 -!- tusho has joined.
10:22:56 <AnMaster> Deewiant, but tell tusho about it, he will like it, and think of the TRDS bit too
10:23:16 <tusho> whose been using my nick
10:23:24 <tusho> what we talkin' bout
10:23:34 <AnMaster> <Deewiant> AnMaster: got a mail from Mike Riley
10:23:34 <AnMaster> <Deewiant> says he's feeling like bringing RC/Funge-98 to Mycology standards
10:23:34 <tusho> the thing you told Deewiant
10:23:37 <AnMaster> <AnMaster> Deewiant, what about getting a website up somewhere?
10:23:40 <AnMaster> <Deewiant> AnMaster: beats me, but I'm sure that if he's going to want to release software he's going to put it on the 'Net somewhere. :-P
10:23:57 <tusho> i release software telepathically
10:24:57 <AnMaster> anyway I don't think using duff's device will be such a problem when you compile from high level code
10:25:19 <AnMaster> as you will have an attribute to mark code as "not a jump target"
10:36:05 -!- Judofyr_ has joined.
10:36:05 -!- Judofyr has quit (Read error: 54 (Connection reset by peer)).
11:13:03 -!- Judofyr_ has quit.
11:26:42 <Deewiant> AnMaster: ah, hey, good point, maybe I'll finally get something to compare my implementation of TRDS against :-)
11:32:24 <AnMaster> tusho, you said you wanted case insensitivity before?
11:32:31 <tusho> groan not this again
11:32:41 <AnMaster> tusho, does that include nomics? :P
11:32:57 <tusho> AnMaster: i'd point out that your proposal did not introduce case insensitivity
11:33:02 <tusho> as it required actions to be in uppercase
11:33:22 <tusho> (anyway, nomics are prime candidates for "Fucking With Your Mind")
11:33:30 <tusho> (and case sensitivity certainly does that)
11:33:48 <AnMaster> C is case sensitive, yet this doesn't "fuck with my mind" as you said
11:37:49 <AnMaster> tusho, English is more like some sort of RPC language
11:38:07 <AnMaster> it is used to send data and requests, not to program the "units"
11:43:11 <AnMaster> tusho, what do you think of lemon (as in the parser generator)
11:43:45 <AnMaster> is it easier or harder than flex?
11:48:45 <AnMaster> tusho, ever tried to mmap() an empty file?
11:48:55 <AnMaster> you get some interesting results
11:49:06 <AnMaster> "Couldn't mmap() input file: Invalid argument"
11:49:10 <tusho> lemon is a parser generator
12:40:56 -!- Sgeo has joined.
13:15:59 <AnMaster> RodgerTheGreat, for function names, can you reserve some namespace for compiler provided functions? As in non-standard ones.
13:16:06 <AnMaster> maybe the prefix __ would be good?
13:17:06 <AnMaster> this will be needed to implement some stuff
13:26:52 -!- Sgeo has quit ("Ex-Chat").
13:32:42 <AnMaster> we need some sort of "external" too
13:32:49 <AnMaster> well I'm writing a suggested extension spec
14:19:39 -!- pikhq has joined.
14:27:20 <AnMaster> pikhq, how is a variable declared in Def-BF?
14:27:38 <pikhq> var: var_name value
14:27:59 <AnMaster> pikhq, how do you later assign it?
14:28:30 <AnMaster> pikhq, and the string "var:" is not in the standard
14:28:43 <pikhq> You and I must be reading different standards.
14:28:57 <pikhq> Hrm. Lemme find it.
14:29:21 <pikhq> Argh. Can't find it.
14:29:41 <pikhq> Believe me, variables are defined via var:.
14:31:21 <AnMaster> pikhq, http://nonlogic.org/dump/text/1216819756.html
14:31:26 <AnMaster> that is my suggestion at extension
14:31:39 <AnMaster> pikhq, also how did the flex/yacc stuff work out?
14:31:46 <AnMaster> pikhq, can you pastebin what you currently got
14:31:57 <pikhq> RodgerTheGreat: *prod of doom*
14:32:04 <pikhq> AnMaster: Real life got in the way.
14:32:12 <AnMaster> pikhq, well just pastebin what you got then
14:32:27 <pikhq> It and I are on different systems.
14:32:49 <AnMaster> well I will leave at the same time as I did yesterday (23:00 UTC+2)
14:33:04 <AnMaster> so if you get home at same time I will get it tomorrow. sigh
14:35:45 <AnMaster> pikhq, any comments on suggestions at http://nonlogic.org/dump/text/1216819756.html
14:35:58 -!- Corun has joined.
14:36:21 <pikhq> Seem like good suggestions.
14:37:03 <AnMaster> pikhq, anyway I'm waiting for you before I can make any progress (flex/yacc stuff is what is needed now)
14:37:27 <pikhq> I recommend trying the Yacc stuff on your own.
14:37:41 <pikhq> Hrm. Actually, I might be able to provide the Flex code now.
14:39:01 <pikhq> svn://nonlogic.org/pikhq/defbf/trunk
14:40:43 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
14:41:49 -!- puzzlet has joined.
14:44:47 <pikhq> I remember there was a good reason for it. . . I just don't recall ATM.
14:45:32 <pikhq> Ah. It indicates to lex whether or not there is another file to process.
14:45:44 <pikhq> If yywrap returns 1, then lex doesn't process another file.
14:49:03 <AnMaster> pikhq, wouldn't that be needed for import:?
14:49:24 <pikhq> Yes. That's just not been implemented yet. . .
15:25:02 <ihope> tusho: why did you leave rootnomic?
15:30:12 -!- Corun has quit ("This computer has gone to sleep").
15:33:48 -!- Corun has joined.
15:47:28 <tusho> ihope: the implementation's hideous usage and constraints
15:48:51 -!- puzzlet_ has joined.
16:01:17 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
16:05:08 <pikhq> Once again, I would like to say that Andy McKee is fucking awesome.
16:05:22 <pikhq> Also, new DC on 'Friday'.
16:06:24 <pikhq> New DC when DC recovers from a bicycle wreck.
16:06:46 <pikhq> He just got out of the ER yesterday, so, well, there goes Dresden Codak.
16:07:03 <pikhq> And he can't draw ATM.
16:07:26 <tusho> RodgerTheGreat: what do you mean 'riiiight'?
16:07:41 <tusho> isn't it okay to not draw comics immediately after coming out of ER?
16:08:28 <RodgerTheGreat> if you consider aaron's history with this strip you'd start to see my point here
16:09:29 <RodgerTheGreat> for the last 6 months or so, diaz has been doing DC for a living. In this time we've had what- 4 pages?!?
16:09:37 <pikhq> More than that. . .
16:09:50 <pikhq> But definitely not the 'once a week' schedule he claimed.
16:10:04 <tusho> i don't read that comic
16:10:09 <tusho> so, i'll just assume you're right :p
16:10:26 <pikhq> The most annoying part?
16:10:30 <RodgerTheGreat> tusho: then limit your brilliant commentary to your areas of knowledge
16:10:34 <pikhq> The comic is so damned good that we stick around.
16:10:44 <tusho> RodgerTheGreat: sheesh; don't be so snappy
16:10:54 <pikhq> So we can't even just ignore it.
16:11:19 <tusho> abuse? wtf? what the fuck have I ever done to you? the only thing I know about you is that you randomly started calling me a little pest a while back and I have no fucking idea why.
16:11:25 <tusho> so to hell with that shit.
16:12:23 <tusho> it just looked as a reply due to its proximity with the previous reply
16:12:29 <tusho> and in relation to my response
16:12:43 -!- MikeRiley has joined.
16:17:58 <pikhq> RodgerTheGreat: This may sound awful, but. . . I think that DC's update schedule will be indistinguishable from normal because of this.
16:19:16 <RodgerTheGreat> this dude's entire job is creating this comic, and he can barely keep a MONTHLY update schedule
16:19:30 <RodgerTheGreat> the pages are well done, but they honestly couldn't take more than 2 or 3 days
16:19:48 <pikhq> One which he kept when he also had a full time job on the side.
16:20:19 <pikhq> I love the comic, but *damn*.
16:20:51 <RodgerTheGreat> so I have difficulty interpreting him as anything other than either an *incredibly* unlucky victim of circumstance or a tremendous lazy jackass
16:21:31 <RodgerTheGreat> he's exceeded the previously existing fred gallagher benchmark by a wide margin
16:25:42 <pikhq> Kinda sad to compare to other webcomics with an insanely good update schedule. . .
16:26:44 <tusho> he has the right to be lazy you know :P
16:26:47 <pikhq> General Protection Fault, for example, was updated daily for 7.75 years (dropped down to weekly, then 3 times a week, due to him having a son)
16:26:48 <tusho> you're living proof if you still read it...
16:26:49 <RodgerTheGreat> are you kidding? Gallagher's update schedule is terrible. He's only updated about half of the days he was supposed to over the run of the comic- even less if you don't count "art days" and "T-shirt guy dom" as comics
16:27:20 <tusho> anyway, who is going to buy http://c-jump.com/ and report back to us on how fun it is
16:27:24 <pikhq> This in addition to the artist having a full time programming job.
16:28:22 <RodgerTheGreat> that looks like a really boring board game, but a valiant effort
16:29:45 <tusho> i think it'd be rather amusing
16:29:51 <tusho> needs more duffs device, though
16:29:53 * sebbu is playing metal slug 7 EU version
16:30:31 <tusho> sebbu: while typing?
16:30:57 -!- Sgeo has joined.
16:30:59 <pikhq> http://en.wikinews.org/wiki/Rhode_Island_man_arrested_with_highest_DUI_blood-alcohol_reading_ever
16:31:15 -!- cherez has quit (Read error: 104 (Connection reset by peer)).
16:31:24 <RodgerTheGreat> c-jump facts: Skiing and snowboarding is a perfect programming analogy.
16:31:31 <pikhq> I refuse to believe the man is alive.
16:31:41 <RodgerTheGreat> oh, of course. How did I never see this perfect analogy before
16:31:52 <pikhq> Though his organs may be well-preserved.
16:31:53 * Sgeo knows little about alcohol
16:32:05 <tusho> RodgerTheGreat: how about a language that co-ordinates some skiiers and snowboarders
16:32:16 <tusho> to create the most impractical, slow and error-prone TC language ever
16:32:30 <pikhq> Sgeo: A BAC of 0.400 makes most people comatose.
16:32:48 <pikhq> And 0.500 is basically fatal.
16:33:08 <RodgerTheGreat> include references to ski-culture and oodles of nasty multithreading bits
16:33:23 <tusho> RodgerTheGreat: the whole thing is nasty multithreading, really, isn't it
16:33:24 <RodgerTheGreat> pikhq: at that point, his blood would be a quite potent alcoholic beverage
16:33:38 <tusho> oh, and the optimum method of using it is when the skiiers and snowboarders are all around the world
16:33:46 <tusho> and stop every now to use a laptop with irc to co-ordinate
16:33:54 <tusho> if by 'optimum' you mean 'even less accurate'
16:34:16 <RodgerTheGreat> "Sima... semaph... oh, to hell with it- just hang loose brah!"
16:35:51 <pikhq> RodgerTheGreat: I think there's less alcohol in some hard liquors. . .
16:36:13 <pikhq> What did the guy do, chug a gallon of everclear?
16:37:24 <RodgerTheGreat> I can't imagine how that wouldn't just denature his red blood cells, halt oxygen transport and kill him instantly
16:38:02 <RodgerTheGreat> let alone the fact that that's enough alcohol to shut down his fucking brain stem
16:38:31 <tusho> Say AnMaster, do you know where ais is?
16:38:55 <pikhq> That's enough alcohol to *preserve* his body.
16:40:23 <RodgerTheGreat> ever rubbed a lemon on some meat and then looked at it under a microscope?
16:40:31 <tusho> "ever rubbed a lemon on some meat and then looked at it under a microscope?"
16:40:34 <tusho> Why yes, I do it all the time!
16:44:09 <AnMaster> RodgerTheGreat, what did you think about the extension suggestion I had?
16:44:14 <AnMaster> http://nonlogic.org/dump/text/1216819756.html that is
16:49:53 <RodgerTheGreat> ok, some of this has been addressed in this example, which provides a more concrete view of syntax and usage: http://nonlogic.org/dump/text/1216828051.html
16:51:32 <RodgerTheGreat> exiting in the current spec is possible in two ways- calling a % with nothing on the jump stack or reaching the end of code, so I don't think an explicit addition to the language is necessary
16:51:37 -!- cherez has joined.
16:52:05 <RodgerTheGreat> the stack-based version of that can be translated into assembly quite easily by initializing the jump stack with the address of a "Halt" or similar instruction
16:54:40 <AnMaster> RodgerTheGreat, what about attributes?
16:54:58 <AnMaster> RodgerTheGreat, also prefixes I guess make sense
16:58:01 -!- MikeRiley has quit ("Leaving").
17:03:05 -!- MikeRiley has joined.
17:17:30 -!- Corun has quit ("This computer has gone to sleep").
17:32:35 -!- iano has joined.
17:33:13 -!- iano has left (?).
17:46:35 -!- Corun has joined.
17:49:51 <Deewiant> AnMaster: woo, got a copy of Cat's-Eye's Befunge diagnostics from Mike
17:49:57 <Deewiant> turns out that 3k4 should push 4 fours on stack :-(
17:50:15 <MikeRiley> according to chris that is what it is supposed to do...
17:50:26 <MikeRiley> and cat's eye diagnostics work that way...
17:51:02 <MikeRiley> thanks for pointing out my { mistake,,,,i wonder if that was a typo in the specs,,,seems kinda worthless to work that way...
17:51:53 <Deewiant> but then, even if it pushed on the TOSS I think it'd be quite useless :-P
17:52:29 <MikeRiley> yeah, i cannot really see much use for it there either,,,
17:52:30 <Deewiant> what are you going to do with a bunch of zeroes anyway, aside from the fact that you can push them by just using 0
17:52:36 <MikeRiley> but that would at least make more sense...
17:52:58 <MikeRiley> just in case you want some zeros for some stupid reason...
17:53:30 -!- Dewi has quit (Read error: 110 (Connection timed out)).
17:53:39 <MikeRiley> i will modify my interpreter to work like the specs,,,
17:53:39 <AnMaster> <Deewiant> AnMaster: woo, got a copy of Cat's-Eye's Befunge diagnostics from Mike
17:53:39 <AnMaster> <Deewiant> turns out that 3k4 should push 4 fours on stack :-(
17:54:00 <MikeRiley> but that is what chris told me long ago...
17:54:07 <Deewiant> and that's what the Cats-Eye diagnostics say
17:54:16 <AnMaster> well give me a reason it is so
17:54:25 <AnMaster> I'd say it is a bug in that "Befunge diagnostics"
17:54:25 <MikeRiley> the only exception to k was 0k was supposed to skip an instruction...
17:54:28 <Deewiant> you don't get into all these special cases like we do currently
17:54:40 <Deewiant> you can just do while (n--) foo();
17:54:42 <MikeRiley> i agree,, i would prefer k to work such that you can iterate once.
17:54:45 <Deewiant> with the exception that if (n == 0) move();
17:55:02 <AnMaster> no way, either entering from left or right 3k4 will push 4 fours on the stack
17:55:04 <MikeRiley> that was chris' original intent, no special cases
17:55:09 <AnMaster> either it will push 3 fours, or 4 threes
17:55:19 <Deewiant> yeah, that's what you'd think isn't it :-P
17:55:26 <Deewiant> of course, the spec says nothing on the matter
17:55:28 <MikeRiley> that is what i originally thought.
17:55:37 <AnMaster> give me a reason it doesn't act like I say it should
17:55:42 <MikeRiley> Rc/Funge-98 originally worked that way, until chris pointed out to me that it was wrong
17:55:45 <AnMaster> apart from "bug in diagnosis tool"
17:55:49 <Deewiant> AnMaster: the spec doesn't say that k skips over its instruction
17:56:06 <AnMaster> Deewiant, the 108 specs do say that. this will be interesting
17:56:11 <MikeRiley> exactly, it just says it executes the next instruction,,,but does not speciy that it moves the IP
17:56:12 <Deewiant> it only says that it executes it 0 times if given 0
17:56:16 -!- Corun has quit ("This computer has gone to sleep").
17:56:31 <Deewiant> it doesn't say that it moves past it if given 0, either. :-P
17:56:40 <AnMaster> Deewiant, got this diagnosis thing anywhere?
17:56:50 <MikeRiley> technically no, other than it says the 0k will not execute the next instruction
17:57:04 <MikeRiley> the cat's eye diagnostics are on my site now
17:57:10 <MikeRiley> http://www.elf-emulation.com/funge/
17:57:28 <Deewiant> AnMaster: use that then, can't be bothered :-P
17:57:29 <tusho> oh MikeRiley is the funge guy
17:57:32 <MikeRiley> that stupid k instruction has always been a problem!! eheheheheeh
17:57:44 <AnMaster> Deewiant, anything else where it disagrees with mycology?
17:57:51 <Deewiant> AnMaster: haven't run it yet, actually
17:58:07 <AnMaster> got some other stuff to finish
17:58:46 <AnMaster> how does this disagnosis thing isn't on catseye.tc?
17:58:50 <Deewiant> MikeRiley: hey, 1.0.8! What's new WRT 1.0.7
17:59:04 <Deewiant> there's a link to it somewhere there but it's broken
17:59:09 <Deewiant> and I couldn't find it anywhere
17:59:10 <MikeRiley> bug fixes mainly bewteen 1.0.7 and 1.0.8...
17:59:16 <Deewiant> but evidently Mike had a copy squirreled away :-)
17:59:25 <MikeRiley> yep, from back when i was dealing with chris on this...
17:59:32 <MikeRiley> good thing i kept a copy!!! eheheheheeh
18:00:09 <MikeRiley> personally, i think k should be more properly defined,,,,i like the ability to iterate once and then skip....
18:00:26 <MikeRiley> being able to execute an instrucion 0 or 2+ seems weird to me...
18:00:37 <AnMaster> thread 2 startedthread 1 startedFAIL no stackFAIL
18:00:54 <AnMaster> Deewiant, anyway it is much harder to parse the output of this tool
18:01:15 <Deewiant> sure, mycology was partly designed for it to be easy to see what's going on
18:01:21 <AnMaster> sh: line 0: type: diag3c.b98: not found <-- not sure what the heck it is trying to do there
18:01:36 <Deewiant> AnMaster: trying to use 'i' mayhaps
18:01:36 <MikeRiley> diag3.b98 loads diag3c as an overlay
18:02:13 <AnMaster> but what does it expect? that I have it chmod +x and have PATH include current dir?
18:02:28 <Deewiant> okay, so diag1.b98 loops infinitely
18:02:47 <Deewiant> or then it just takes a long time
18:02:56 <ihope> tusho: would you come back if rootnomic's proposal system were replaced with something better?
18:03:03 <MikeRiley> there is an html file in the archive, which shows the output from the diagnosics,,,what it should look like..
18:03:08 <AnMaster> MikeRiley, can you beat that time ;P
18:03:15 <tusho> ihope: already discussed this
18:03:18 <Deewiant> diag3.b98 outputs the @v-figure twice
18:03:25 <Deewiant> MikeRiley: ignore him, he's a performance freak
18:03:34 <tusho> i never started it
18:03:40 <AnMaster> Deewiant, it outputs it once here
18:03:42 <Deewiant> ookay, diag3b.b98 also loops infinitely
18:03:54 <tusho> MikeRiley: By performance freak, we mean posix_fadvise.
18:04:02 <tusho> See, he doesn't actually optimize algorithms or do where it's needed.
18:04:04 <Deewiant> diag3c outputs nothing at all.
18:04:07 * ihope tries to remember what tusho said when we discussed this before
18:04:08 <tusho> He just sticks posix_ in front of every function.
18:04:19 <Deewiant> diagt gives what it gave for AnMaster.
18:04:28 <Deewiant> excellent, looks like I have something to do this weekend. :-)
18:04:30 <AnMaster> Deewiant, any idea what is wrong then?
18:04:42 <Deewiant> and not gonna look in any detail right now
18:04:43 <MikeRiley> Instructions Executed: 793 in 758 cycles
18:04:47 <AnMaster> Deewiant, well please tell me what the issues were when you find them, as I got a busy weekend
18:04:57 <AnMaster> MikeRiley, a good hash library?
18:05:04 -!- Dewi has joined.
18:05:05 <Deewiant> AnMaster: rolled his own I believe
18:05:09 <AnMaster> MikeRiley, or using static memory model stuff?
18:05:15 <tusho> AnMaster: how about sane optimizations
18:05:20 <tusho> as opposed to your rather random attempts
18:05:24 <MikeRiley> yes, that was on the static model. let me try it on the dynamic
18:05:36 <AnMaster> MikeRiley, that should be more interesting :)
18:05:40 <Deewiant> MikeRiley: there's a bug in your dynamic, unless you applied one of my patches
18:05:49 <MikeRiley> Instructions Executed: 793 in 758 cycles
18:06:00 <MikeRiley> i already applied that patch, thanks!!!
18:06:21 <Deewiant> MikeRiley: so it was correct? I just hacked something that worked, but it could be a symptom of something else
18:06:31 <Deewiant> adding a "+1" somewhere didn't seem too smart :-P
18:06:36 <AnMaster> MikeRiley, hrrm. I need to take a look at your memory model, except your code wasn't very clean, nor well documented ;P
18:06:50 <Deewiant> especially where it's surrounded by two lines where there are no "+1" but which do essentially the same thing
18:06:52 <MikeRiley> nope,,,it is horrible!!! ehehehehehe i am working on cleaning it up...
18:07:14 <MikeRiley> yeah, i thought that strange too,,,,need to look at that section more,,,been so long since i have looked at that code...
18:07:15 <ihope> I guess tusho isn't interested in rootnomic for the time being no matter what happens.
18:07:30 <Deewiant> AnMaster: got any RC/Funge-98 fingerprint documentation you want to complain about? I can't think of any offhand
18:09:00 <AnMaster> MikeRiley, cfunge can be found at http://rage.kuonet.org/~anmaster/cfunge/
18:09:48 <tusho> cfunge aims to be fast and standard conforming. cfunge also aims to never crash. This may seem an odd statement, surely every software aims for that? But cfunge aims to never crash on any input except possibly due to out of memory error (and even then the "crash" should be "graceful", as in a message telling what happened). Sadly it is common for other Funge interpreters to crash on obscure input (division by zero in some fingerprint, not checking array bou
18:09:50 <tusho> i love how you say 'we'
18:10:08 <AnMaster> tusho, yes it makes it "sound" professional ;P
18:10:20 <AnMaster> and I don't care what you think
18:10:23 <tusho> Today the cfunge Developer Committee passed, with a 7-53 vote, to enable a new switch which, when enabled, would increase the speed by 500% at the cost of not running any programs.
18:10:25 <MikeRiley> i have found the cfunge site, want to try it...
18:10:33 <tusho> cfunge 73.1 is being profiled and will be released in 5 years.
18:11:17 <MikeRiley> what do you not understand about FNGR?? that way i know how to write the documentation better for it...
18:11:30 <AnMaster> MikeRiley, no it just breaks the Funge specs
18:12:01 <MikeRiley> if it breaks something important,,,then i need to fix it,,,
18:12:15 <AnMaster> I haven't looked as closely at your code as Deewiant has
18:12:47 <MikeRiley> as i intended it, it should not break the specs at all...
18:12:48 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
18:13:12 <Deewiant> IIRC it assumes one fingerprint stack
18:13:16 <MikeRiley> other than the fact it changes how ( and ) work depending on what mode it is nn
18:13:19 <Deewiant> whereas the spec has one stack for each of A-Z
18:13:34 <MikeRiley> the fingerprint stack covers all the A-Z ...
18:13:45 <AnMaster> so you can unload and load totally random and end up with one half fingerprint
18:14:03 <MikeRiley> there might be a bug in my implementation...
18:14:16 <AnMaster> of course, any complex enough software will have bugs
18:14:18 <MikeRiley> but FNGR should conform if it is implemented correctly...
18:14:20 <Deewiant> I think RC/Funge-98 does fingerprints basically wrong, yes
18:14:30 <Deewiant> and I do think that FNGR can't possibly conform
18:14:36 <Deewiant> although I can't remember the details right now.
18:14:55 <Deewiant> this is what ccbi -p outputs on the subject:
18:14:55 <Deewiant> The "FNGR" fingerprint is unimplemented because it is incompatible with the
18:14:55 <Deewiant> way fingerprint loading and unloading is described in the Funge-98
18:14:55 <Deewiant> In particular, the Funge-98 spec speaks of having a stack of semantics for
18:14:58 <Deewiant> each instruction in the range ['A', 'Z'], while the "FNGR" fingerprint
18:15:00 <Deewiant> describes having just one fingerprint stack.
18:15:03 <Deewiant> (Incidentally, this is one reason why RC/Funge-98 fails some of the Mycology
18:15:05 <Deewiant> tests related to the fingerprint mechanism.)
18:15:22 <MikeRiley> my implemenation could be faulty....
18:15:29 <MikeRiley> but from my understanding of the specs...
18:15:43 <MikeRiley> loading a fingerprint overloads the A-Z instructions...
18:15:44 <AnMaster> the specs are unclear in a lot of areas
18:15:51 <AnMaster> which is why I'm working on Funge108 specs
18:15:54 <MikeRiley> if another fingerprint is loaded it overloads the overloaded ones...
18:15:56 <Deewiant> the spec is rather clear on this one, though
18:16:04 <Deewiant> http://catseye.tc/projects/funge98/doc/funge98.html#Fingerprints
18:16:08 <MikeRiley> for any instruction not defined, it will fall through to the previous fingerprint...
18:16:25 <AnMaster> MikeRiley, this is true, but what happens when you unload out of order?
18:16:39 <AnMaster> even if it isn't in the same fingerprint
18:16:41 <Deewiant> you can load ROMA which provides M
18:16:48 <Deewiant> and then unload MODU, which also provides M
18:16:49 <MikeRiley> depends on the mode you are using FNGR in,,,
18:16:57 <Deewiant> even though you didn't load MODU
18:17:12 <Deewiant> and the result should be that M is now whatever was loaded before ROMA
18:17:29 -!- Hiato has joined.
18:17:30 <AnMaster> or, load ROMA, load MODU, unload ROMA, now M will map to ROMA again
18:17:34 <MikeRiley> except that FNGR and change the order of the overloads...
18:18:09 <tusho> AnMaster: i think you should drop funge108
18:18:14 <tusho> about 3-7 people use funge98
18:18:18 <Deewiant> "Get number of fingerprints loaded" - impossible to know
18:18:19 <tusho> about, uhh, 1 will use funge108
18:18:28 <tusho> funge98 is ambiguous, but mycology specifies it well enough
18:18:55 <AnMaster> but it says nowhere mycology is the only interpretation :P
18:20:15 <Deewiant> MikeRiley: reading it through now, if you drop the idea of a covers-all fingerprint stack (i.e. don't use it to specify what the instructions do) I think FNGR might be possible
18:20:43 <MikeRiley> hmmm,,,will have to think about that...
18:20:50 <Deewiant> "Tag stack entry n with new fingerprint fp"?
18:20:56 <tusho> AnMaster: so what, all 7 people who use it know about mycology
18:21:18 <MikeRiley> the fp is the same as the hex equivalent of the name,,,,
18:21:25 <tusho> you can yell "de facto", but there's nothing wrong with that, and besides, if all 7 users agree on it it's not really de facto any more.
18:21:29 <MikeRiley> in essence t allows you to rename a loaded fingerprint
18:21:39 <Deewiant> since again, you can't know what fingerprints are loaded.
18:22:03 <MikeRiley> the FNGR extension does however know what is loaded...
18:22:05 <Deewiant> all those instructions should modify only one of the instructions A-Z
18:22:23 <Deewiant> load FNGR, load ROMA, unload NULL
18:22:33 <Deewiant> all the ROMA instructions are gone now
18:22:57 <MikeRiley> if you have FNGR, ROMA, and NULL loaded....
18:23:07 <MikeRiley> then unloading NULL, you will still have the semantics for FNGR and ROMA
18:23:23 <MikeRiley> if NULL is unloaded without being loaded first, then nothing should happen...
18:23:58 <Deewiant> MikeRiley: the spec says this explicitly
18:24:00 <Deewiant> The corresponding ) "Unload Semantics" instruction unloads the semantics for a given fingerprint from any or all of the instructions A to Z (even if that fingerprint had never been loaded before).
18:24:05 <MikeRiley> as far as using FNGR, nothing should happen, would have to look at how the specs deal with ,,,, hold on...
18:24:07 <Deewiant> had never been loaded before)*
18:24:21 <AnMaster> <MikeRiley> if NULL is unloaded without being loaded first, then nothing should happen...
18:24:26 <Deewiant> hence, you can essentially forget about N and T
18:24:34 <Deewiant> I don't see how those can possibly work
18:24:35 <MikeRiley> unloads the semantics for a given fingerprint,,,not necesarily semantics for another just because it was not loaded...
18:24:58 <AnMaster> MikeRiley, the spec agree with Deewiant above
18:25:27 <MikeRiley> well,,,,FNGR is a feral extension afterall....
18:25:37 <MikeRiley> to does change the nature of the interprter if you have it loaded...
18:26:16 <AnMaster> MikeRiley, but this shouldn't affect the behaviour if it isn't loaded
18:26:39 <MikeRiley> i agree, if it is not loaded, then the spec behaviour is what should happen
18:26:48 <AnMaster> MikeRiley, which, iirc, doesn't
18:27:23 <MikeRiley> afterall, my interpreter was written to my interpretation of the specs...
18:27:30 <MikeRiley> and in some cases, the specs are not terribly clear...
18:27:39 <MikeRiley> so and arbitrary decisions were made...
18:27:46 <MikeRiley> i could certainly have picked wrong with this one...
18:28:08 <Deewiant> I think other interpreters agree with the model we're explaining but I can't remember exactly
18:28:15 <AnMaster> no offence meant, but the text "(even if that fingerprint had never been loaded before)" seems pretty clear to me.
18:28:30 <MikeRiley> i see that,,,,but wonder if that was the intent...
18:28:37 <Deewiant> why would it be there, if not?
18:28:39 <MikeRiley> since it is in the section talking about layering fingerprints...
18:29:01 <Deewiant> and in general, I prefer to adhere to the letter of the spec and not the intent
18:29:07 <AnMaster> but I'm pretty sure Deewiant is correct here
18:29:24 -!- Corun has joined.
18:30:56 <tusho> Deewiant: and in general, I prefer to adhere to the letter of the spec and not the intent
18:30:58 <tusho> you must hate malbolge
18:31:01 <MikeRiley> but it also says "unloads the semantics for a given fingerprint" not necesarily unloads a specificly bound definition
18:31:23 <Deewiant> MikeRiley: my interpretation of that is, again, why would it say that so explicitly if it would just do nothing
18:31:37 <MikeRiley> i agree,,,,it is a confusing point...
18:31:49 <tusho> Deewiant: the implementation swaps an instruction from the spec
18:31:52 <Deewiant> I heard the spec there was buggy in some regard
18:31:56 <tusho> and _all_ programs and implementations use the implementation's version
18:31:57 <AnMaster> MikeRiley, I think Deewiant is correct, and iirc the other interpreters does it that way
18:31:58 <tusho> rather than the spec
18:32:04 <MikeRiley> just like k,,,,i wonder if the the intent and what was written were not the same...
18:32:10 <Deewiant> tusho: so, firstly, "in general", and secondly, yes. ;-)
18:32:32 <Deewiant> AnMaster: can't remember. it doesn't support many fingerprints (NULL and ROMA only IIRC) so I may not even have tested it.
18:32:58 <MikeRiley> not to mention FBBI itself does not conform well to the spec...
18:33:05 <AnMaster> MikeRiley, also. I hate TRDS ;P, it isn't just feral, it is wild
18:33:28 <AnMaster> and I don't plan to implement it
18:33:30 <Deewiant> though the reference implementation doesn't work at all :-P
18:33:39 <MikeRiley> i saw somebody mention about time travelling IPs, just had to try it!!! eheheheheeheheh
18:33:56 <AnMaster> MikeRiley, does that include testing it? hm
18:33:56 <Deewiant> amazingly enough your spec is actually consistent and can work :-)
18:34:10 <MikeRiley> in mine some of it works and some does not,,,never really finished that module...
18:34:28 <AnMaster> MikeRiley, I understand why you didn't finish it
18:34:37 <MikeRiley> yeah, it is really a beast!!! eheheheheheeheh
18:35:12 <MikeRiley> my implementation supports stop and start time, space jumps and single ip time jumps....multiple time travelling ips do not work properly in mine...
18:35:24 <MikeRiley> well,,,i am an unusual person!!! eheheheheeheheh
18:35:43 <Deewiant> MikeRiley: implementing TRDS meant changing all of: main function, IP structure, Befunge-space structure, unrelated instructions (, and .)
18:35:50 <AnMaster> MikeRiley, anyway I had issues with colliding handprints, so my idea is to replace it with URIs
18:35:53 <Deewiant> oh, and instruction execution function of course
18:36:02 <Deewiant> MikeRiley: oh, that reminds me
18:36:23 <Deewiant> you only specify, and implement, that , and . don't do anything twice
18:37:03 <MikeRiley> hmmmm,,,,cannot remember about , and . in that module...
18:37:15 <Deewiant> well, you'll get there eventually, maybe. :-P
18:37:49 <MikeRiley> where did i say that , and . dont do anything twice???
18:37:59 <AnMaster> Deewiant, anyway I got no idea if I passed part 3 of that catseye diagnosis tool
18:38:05 <AnMaster> it is hard to interpret the output
18:38:18 <MikeRiley> anmaster: there is an html file that shows what should be output
18:38:27 <Deewiant> MikeRiley: I hope I didn't invent it :-D let me see
18:38:55 <tusho> I think 'funge-108' should replace 'PSOX' as a meme
18:38:59 <MikeRiley> you probably did not invent it,,,,but i do not see in the spec where i mentioned it...
18:39:00 <AnMaster> well the environment of course differs
18:39:02 <tusho> Not catchy enough harumph
18:39:14 <MikeRiley> yes, the environment and command line would be different...
18:39:27 <tusho> AnMaster: you're writing a befunge spec, I think I can be as silly as I like
18:39:34 <Deewiant> MikeRiley: okay, great, you don't specify it, you only implement it :-)
18:39:49 <MikeRiley> ok,,,,,i do???? i will have to look at that again...
18:40:01 <MikeRiley> i wonder why i did that......hmmmmmmm
18:40:06 <tusho> MikeRiley: how, exactly, do you vocalise ,,,,?
18:40:16 <tusho> I get that , is a pause, . a longer pause and ... a longer one
18:40:17 <AnMaster> MikeRiley, with all those ,,,, I first thought it was befunge code ;P
18:40:20 <tusho> but what does ,,,,,,,, sound like?
18:40:21 <Deewiant> so that IO would happen only once
18:40:33 <Deewiant> tusho: a lot of short pauses really fast
18:40:46 <tusho> Deewiant: 'Ok * * * * * I do?'
18:40:53 <tusho> heavy breathing, I guess
18:41:03 <tusho> Or maybe ,,,,,, = ...
18:41:10 <Deewiant> MikeRiley: but, that doesn't really work. I can't remember why, but IO will happen more than once, at least with that simple a scheme. :-)
18:41:12 <MikeRiley> i see it now,,,,it does not print before a given time....not sure why i did that....
18:41:32 <Deewiant> like said, it makes sense that IO should happen only once, and not when traveling back in time
18:41:33 <AnMaster> tusho, no he is just outputting the string he just wrote >:#,_@
18:41:34 <MikeRiley> as far as i am concerned,,,io should happen anytime that it is encountered...
18:41:52 <AnMaster> using this at the end of the irc line is better though ;) >:#,_@
18:42:07 <tusho> >:#,_@ is one fucked up smiley
18:42:16 <MikeRiley> trouble is,,,that code was written 10 years ago!!!! and poorly documented!!!! eheheheheeheheheheheheheh
18:42:23 <tusho> AnMaster: shut up you
18:42:34 <AnMaster> tusho, useful to print a 0"gnirts"
18:42:41 * tusho rips off AnMaster's head
18:42:53 <AnMaster> a 12 year old isn't strong enough for that ;P
18:43:19 <AnMaster> well it was you who went to crazy measures to prove it
18:43:23 <MikeRiley> i guess i need to dig out my old TRDS test program and see if i can come up with a reason for the IO.....more than likely i will just remove it....
18:43:31 <tusho> i thought that was
18:43:33 <tusho> the point of trds :)
18:43:59 <MikeRiley> specs do not mention that io does not repeat...as such....io should occur anytime it is encountered...
18:44:02 <AnMaster> tusho, if you can't even code befunge (I got sound proofs you say you can't), why do you care?
18:44:14 <tusho> AnMaster: am I not allowed to talk about befunge?
18:44:15 <Deewiant> MikeRiley: if you end up telling me that it's forgotten debug code I might be somewhat annoyed :-D
18:44:15 <tusho> sorry for intruding
18:44:19 <MikeRiley> maybe i had those in there for testing reasons....
18:44:24 <tusho> i'll make sure to stay out of the befunge clique conversations in future
18:44:32 <AnMaster> tusho, but you may want to learn it
18:44:47 <tusho> not really interested in learning it, but trds is fun
18:45:00 <AnMaster> tusho, to allow you to contribute to the vibrant Funge community ;P
18:45:21 <tusho> Deewiant: oh god yes
18:45:24 <tusho> that would be like
18:45:25 <AnMaster> Deewiant, that would be a 64-bit only fingerprint?
18:45:27 <tusho> one of the 3 good brainfuck clones
18:45:33 <MikeRiley> i guess i really created a mess when i defined that module!!! eheheheheheheeheheheheheh
18:45:36 <tusho> AnMaster: it'd be brainfuck+trds
18:45:47 <AnMaster> MikeRiley, you certainly created a headache for some
18:45:49 <Deewiant> MikeRiley: yep, and now you can't just remove it since I implemented it! :-D
18:46:01 <MikeRiley> yep....going to have to keep it now!!!! eheheheheeh
18:46:27 <AnMaster> anyway got the fingerprint spec page up somewhere?
18:46:30 <MikeRiley> unless i use the TRDS module to go back in time before the TRDS module was actually defined!!! ehehehehehe
18:46:39 <AnMaster> I got my copy from waybackmachine
18:46:42 <MikeRiley> all of my funge related materials are now on my site...
18:46:49 <tusho> Deewiant: ^___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^
18:46:50 <Deewiant> MikeRiley: but IO happens anyway, so you can't prevent it! ;-)
18:47:00 <tusho> AND MY EYES. THEY ARE POINTING UPWARDS
18:47:09 <AnMaster> MikeRiley, thank to bibtex I can easily update the reference to it in funge-108 ;P
18:47:15 <tusho> Deewiant: ^_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^
18:47:24 <tusho> ... uh, just ignore me
18:48:39 <AnMaster> MikeRiley, um http://web.archive.org/web/20020816190021/http://homer.span.ch/~spaw1088/funge.html is what I used before
18:49:03 <AnMaster> MikeRiley, it doesn't seem to match any of the pages
18:49:36 <AnMaster> MikeRiley, where are your minifunge specs?
18:49:50 <Deewiant> AnMaster: did you look at all?
18:49:52 <Deewiant> AnMaster: http://www.elf-emulation.com/funge/rcfunge_manual.html
18:50:01 -!- Corun has quit ("This computer has gone to sleep").
18:50:03 <AnMaster> Deewiant, I couldn't find mini funge there
18:50:31 <MikeRiley> the one on spaw1088 has been gone for 8 years or so...
18:50:43 <MikeRiley> that was when i was living in switzlerland,,,,and i am no longer there...
18:50:46 <Deewiant> given that the archive page is from 2002-08-16, not even 6 yet ;-)
18:50:56 <AnMaster> MikeRiley, well not 8... the version was from August 2002
18:51:01 <AnMaster> which was the last version I found
18:51:19 <MikeRiley> well,,,do not know where that came from,,,i left switzlerland in 2000,,, and left that website behind when i did...
18:51:33 <AnMaster> MikeRiley, it stayed around for some time then
18:51:34 <Deewiant> guess it was up for two years :-)
18:51:44 <MikeRiley> amazing!!! since i was not even paying for it!!!
18:52:04 <MikeRiley> at any rate,,,,all current materials are now on my current site...
18:52:04 <AnMaster> well anyway, did you have some site in-between?
18:52:20 <AnMaster> MikeRiley, just want to know if there are any changes to mini funge or the fingerprints
18:52:41 <MikeRiley> only things that changed between the versions are bug fixes...
18:52:52 <MikeRiley> but have been thinking about some additional fingerprints....
18:53:17 <AnMaster> MikeRiley, I use bibtex, what year do I put in for http://www.elf-emulation.com/funge/rcfunge_manual.html ?
18:53:28 <MikeRiley> see if i can come up with something more complicated than TRDS!!! eheheheheeheheheheheheh
18:53:36 <Deewiant> see if anybody implements it ;-)
18:53:50 <MikeRiley> good question,,,,just use this year....
18:53:57 <AnMaster> MikeRiley, I have already I think, well almost
18:54:11 <MikeRiley> i guess i should change the version number in the manual tho...
18:54:17 <AnMaster> or even started implementation
18:54:36 <AnMaster> MikeRiley, what do you think about that idea?
18:55:54 <AnMaster> CFFI I call the fingerprint, I can pastebin the (outdated) draft if you want, it won't be implemented that way at all, but it was a first draft, that's all
18:56:06 <AnMaster> the current version is only in my head atm
18:57:11 <AnMaster> MikeRiley, http://rafb.net/p/LuSAw897.html
18:57:27 <AnMaster> MikeRiley, also ais523 (intercal maintainer) may have beat you to making something worse
18:57:46 <AnMaster> he made a fingerprint (based on cfunge) totally replacing main loop that makes it integrate into C-INTERCAL
18:57:56 <AnMaster> using computed COME FROM and such inside the funge
18:58:14 <AnMaster> but I think TRDS is more complicated still ;P
18:58:40 <MikeRiley> yeah, that module is something else....
18:59:09 * AnMaster looks for the docs of IFFI (the C-INTERCAL <-> Befunge linking stuff)
19:00:11 -!- Sgeo has joined.
19:00:40 <AnMaster> MikeRiley, http://code.eso-std.org/c-intercal/doc/ick.txt
19:00:49 <AnMaster> MikeRiley, see "14.2.2 The IFFI Fingerprint"
19:01:13 <AnMaster> I don't understand parts of it
19:02:19 <AnMaster> RodgerTheGreat: decided anything about function attributes in Def-BF yet?
19:05:52 <AnMaster> MikeRiley, but I think TRDS is worse than IFFI, don't you?
19:06:54 <AnMaster> MikeRiley, still what do you think of IFFI :)
19:07:25 <AnMaster> I guess cfunge, or rather C-INTERCAL with patches cfunge, will be the only implementation to ever implement it
19:07:56 <AnMaster> MikeRiley, I mean it needs to tie into a INTERCAL interpreter really
19:09:17 <MikeRiley> last time i messed with intercal, i just made an iterpreter, but never really messed with the language much,,,,Befunge came along and that took my interest...
19:10:51 <AnMaster> well INTERCAL is pretty hard to interpret too
19:12:18 <MikeRiley> yep agree, had a really fun time building my interprter for it...
19:12:52 <AnMaster> well befunge is easy to parse, like brainfuck in that aspect
19:13:23 <MikeRiley> yes, easy to parse, sometimes not so easily to implement....
19:13:46 <AnMaster> MikeRiley, your dynamic memory model, what exactly is it?
19:14:10 <AnMaster> mind you I haven't really looked at the code yet
19:14:22 <AnMaster> mainly because I had issues reading it
19:15:08 <MikeRiley> not sure,,,,need to look at it again...
19:15:16 -!- Corun has joined.
19:15:52 <AnMaster> MikeRiley, I use a hash array with struct { x, y } as the key, it is quite speedy but not as good as your code
19:16:11 <AnMaster> need to try it on my cpu to be sure
19:16:43 <MikeRiley> my code is just a dynamic array,,,looking at it right now...
19:16:53 <AnMaster> hm. that could cause issues if you put something using p in some huge cell
19:17:48 <AnMaster> you will need 2^32 * 2^32 * 4 (assuming sizeof(fungeCell) == 4) for each sector
19:18:02 <AnMaster> not sure, but something huge like that anyway
19:18:24 <AnMaster> and I use 64-bit cells (optionally, selectable at compile time)
19:18:58 <AnMaster> MikeRiley, sure that is the dynamic memory model then?
19:21:08 <MikeRiley> well,,,,not 100% positive,,,,need to study the code a bit more...
19:22:15 <MikeRiley> that part of the code was a quick and dirty memory manager,,,i normally used it in the static mode...
19:22:25 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
19:22:26 <MikeRiley> so i need to refamilirize myself with it....
19:22:46 <AnMaster> Deewiant, figured what's wrong with threads yet?
19:23:03 <Deewiant> AnMaster: not going to do anything until the weekend probably
19:23:10 <Deewiant> just ran them through and left it at that
19:23:13 <MikeRiley> it is a dynamic array,,,with a twist...
19:23:22 <AnMaster> Deewiant, anyway I figured what was wrong with the "sh" line
19:23:29 <AnMaster> it is assuming some f*cking dos crap
19:23:46 <AnMaster> instead of "find path to binary"
19:23:53 <AnMaster> which I don't think dos even have
19:24:05 <Deewiant> now you see why Mycology doesn't test = ;-)
19:24:20 <MikeRiley> yep,,,, = is problamatic to be able to test...
19:24:36 <AnMaster> well I do have a test in my small cfunge test collection
19:24:45 <Deewiant> and I presume it assumes POSIX?
19:24:58 <MikeRiley> my dynamic model uses a dynamic cell array, each cell has an address associated with it...
19:25:08 <MikeRiley> so putting values into large cells will not cause memory issues...
19:25:19 <AnMaster> http://rafb.net/p/JM3RtR74.html
19:25:31 <MikeRiley> the cell array is then organized into rows...
19:25:46 <AnMaster> MikeRiley, how do you look up a specific cell?
19:26:10 <MikeRiley> looks like each row is stored togetehr in the array...
19:26:12 <AnMaster> but that is a O(n) operation to search through?
19:26:29 <AnMaster> what if you need to insert stuff then?
19:26:52 <MikeRiley> if you insert, it just adds a cell into the appropriate row....
19:27:03 <AnMaster> you said it was stored together
19:27:06 <MikeRiley> inserting can be slow!!! depending on what the size of the array is and where it is placed...
19:27:09 <AnMaster> but what if it won't fit into that
19:27:57 <AnMaster> I think cfunge's is "reasonable speed in all cases but not extremely fast in any"
19:28:11 <AnMaster> it just uses the first hash library I found out there
19:28:12 <MikeRiley> there is an array that contains row addresses...
19:28:20 <AnMaster> Deewiant, my hash library is slow
19:28:29 <MikeRiley> and then after that appropriate row is found,,,it will move along the row to ge tthe cell...
19:28:43 <AnMaster> Deewiant, yes but I wrote a Befunge93 in bash it was *even* slower
19:29:04 <AnMaster> heck it took several minutes to go through the Befunge-93 part of mycology
19:29:05 <Deewiant> bash slower than C? say it ain't so
19:29:18 <MikeRiley> i got to run for awhile, be back later
19:29:26 <AnMaster> MikeRiley, oh I'm a bash fan btw
19:29:44 <AnMaster> and I wrote a brainfuck interpreter in bash
19:29:50 -!- MikeRiley has quit ("Leaving").
19:32:02 <AnMaster> Deewiant, iterate.c is the file with most "finally made this work" commits to it
19:32:31 <Deewiant> I'm going to add an option, probably
19:32:39 <Deewiant> because I think k is somewhat useless like that
19:32:55 <AnMaster> Deewiant, sounds like a good idea
19:33:06 <Deewiant> so default to the spec, but allow useful behaviour as well :-P
19:33:32 <AnMaster> however you can never get just one iteration?
19:34:03 <AnMaster> well Funge-108 will follow the way you did it Deewiant
19:34:18 <Deewiant> it might be nicer to simplify it from that
19:35:01 <Deewiant> no, I'm talking about the 108 way
19:35:21 <Deewiant> I think it'd be simpler if you said that after k, the IP always moves
19:35:44 <Deewiant> then you don't need special casing for anything
19:36:07 <Deewiant> it's just, do instruction given number of times, and move
19:36:49 -!- oerjan has joined.
19:36:56 <AnMaster> Deewiant, heck I will need to write at Rationale for that change now :P
19:37:44 <AnMaster> Deewiant, anyway what bothers me now is that I can't figure out where in the Iterate code I take the extra step forward
19:38:01 <AnMaster> Deewiant, you seen my iterate code?
19:38:18 <Deewiant> nah, haven't looked at cfunge's source pretty much at all
19:38:22 <AnMaster> if not it is at http://rafb.net/p/Rs018T84.html
19:39:05 <AnMaster> there is a small indention error at the end though
19:39:12 <AnMaster> ignore it as I fixed that locally now
19:39:37 <AnMaster> Deewiant, well apart from that?
19:39:42 <Deewiant> and you can't find it? it's at the end, no?
19:39:51 <Deewiant> looks like it's pretty much copied from CCBI :-P
19:40:06 <AnMaster> Deewiant, I did copy some stuff from ccbi on this
19:40:13 <AnMaster> as it was bloody hard to get right
19:40:38 <AnMaster> Deewiant, I done similar in some fingerprints, TURT for example
19:40:47 <AnMaster> while I don't think FPDP is based on your at all
19:41:26 <AnMaster> Deewiant, nor is my fingerprint manager code based on your code at all
19:42:12 <AnMaster> (because your is so D specific)
19:42:57 <Deewiant> you can do the same with #define
19:43:04 <Deewiant> nothing too fancy there, I don't think
19:43:19 <Deewiant> i.e. nothing you couldn't do with #define :-)
19:43:20 <AnMaster> Deewiant, well you can check the way I do it
19:43:59 <AnMaster> Deewiant, I got a script that looks as some "fingerprint spec files" that contains details of what instructions they implement, if they are safe or not and so on
19:44:09 <AnMaster> then it generates an array from it
19:44:17 <AnMaster> which I later can do a binary search in
19:44:27 <Deewiant> I could do something similar, but with templates and string mixins ;-)
19:44:33 <Deewiant> so there's no need to run a script
19:44:37 <AnMaster> Deewiant, I do it with a bash script
19:45:20 <AnMaster> returning false if I reach an index that is higher than the wanted one
19:46:05 <AnMaster> // ORTH - Orthogonal Easement Library
19:46:05 <AnMaster> { .fprint = 0x4f525448, .uri = NULL, .loader = &FingerORTHload, .opcodes = "AEGOPSVWXYZ",
19:46:05 <AnMaster> .url = "http://catseye.tc/projects/funge98/library/ORTH.html", .safe = true },
19:46:05 <AnMaster> // PERL - Generic Interface to the Perl Language
19:46:05 <AnMaster> { .fprint = 0x5045524c, .uri = NULL, .loader = &FingerPERLload, .opcodes = "EIS",
19:46:06 <AnMaster> .url = "http://catseye.tc/projects/funge98/library/PERL.html", .safe = false },
19:46:09 <AnMaster> Deewiant, it looks like that ^
19:47:13 <AnMaster> Deewiant, then it calls the .loader function pointer
19:47:22 <AnMaster> Deewiant, which registers the functions
19:47:35 <AnMaster> #define ManagerAddOpcode(fprint, opcode, name) \
19:47:36 <AnMaster> if (!OpcodeStackAdd(ip, (opcode), &Finger ## fprint ## name)) \
19:47:52 <AnMaster> then for example:ManagerAddOpcode(FIXP, 'U', atan)
19:48:10 <AnMaster> and finally we got: static void FingerFIXPatan(instructionPointer * ip)
19:49:38 <Deewiant> I'm really not that interested TBH :-) whatever works for you
19:49:56 <AnMaster> Deewiant, well my solution is rather simple really :)
19:50:12 -!- CakeProphet has quit (Remote closed the connection).
19:50:16 <AnMaster> Deewiant, also I can generate templates for the fingerprint *.c files
20:02:32 -!- lilja has joined.
20:03:29 <AnMaster> "k executes the instruction at k itself, then it move ip forward one step (with respect to current delta)."
20:03:32 <AnMaster> Deewiant, does that sound good ^
20:04:10 <Deewiant> and I'd clarify what "the instruction at k itself" means
20:04:37 <AnMaster> The k ``Iterate'' instruction pops a value n off the stack.
20:04:37 <AnMaster> Then it finds the next instruction in Funge-space in the path of the IP (note that this cannot be a marker such as space or ;), treats it as an instruction (with the exceptions below), executing it n times.
20:04:39 <Deewiant> I'd say "executes the instruction without moving away from the k" or something
20:04:57 <Deewiant> and then have a 1k[ or something
20:04:59 <AnMaster> Deewiant, what if the instruction is some "jump" instruction, say, from SUBR?
20:05:39 <AnMaster> Deewiant, exception: spaces and ;;
20:05:44 <AnMaster> it should reach past the spaces
20:06:04 -!- olsner has joined.
20:06:05 <Deewiant> yeah, not a special case if you implement it right
20:06:08 <AnMaster> "That code would execute f three times, after wrapping once."
20:06:23 <AnMaster> Deewiant, this is what C. Pressy wanted
20:06:30 <AnMaster> I did forward the mail didn't I?
20:07:01 <AnMaster> Deewiant, what is your gpg key? <evil grin>
20:07:05 <Deewiant> in any case, like said, that's fine and not a special case
20:07:33 <Deewiant> http://iki.fi/deewiant/files/misc/public.key
20:07:35 <AnMaster> Deewiant, the FRA law made me paranoid
20:08:04 <Deewiant> it's just an invitation for the NSA to crack it
20:08:35 <AnMaster> gpg: key B7E8FA08: public key "Matti Niemenmaa <matti.niemenmaa@kolumbus.fi>" imported
20:08:35 <AnMaster> gpg: key DEDF0F79: public key "Matti Niemenmaa <matti.niemenmaa@iki.fi>" imported
20:09:37 <AnMaster> Deewiant, what is the fingerprint?
20:09:51 <AnMaster> is it "4517 8F90 84CF C529 7382 2B84 B9D3 F95E DEDF 0F79"?
20:11:27 <oerjan> programmers are scary people. all fixated on execution.
20:12:34 -!- MikeRiley has joined.
20:12:48 <Deewiant> AnMaster: uploaded a fixed file which should have only the latter key
20:12:59 <MikeRiley> i remember what TRDS is doing with the , and . commands...
20:13:16 <Deewiant> and should it be in the spec? :-)
20:13:42 <MikeRiley> in reality, and running ip will and should output everytime it encounteres , or .
20:14:12 <MikeRiley> what is happeining in mine,,,,,when jumping to the past, my interpreter resets the destiantion time state by running from time 0 up to the jump point...
20:14:27 <MikeRiley> during this,, no output should be happening,,,since this is not where the ip jumped....
20:14:38 <MikeRiley> i knew there had to be a reason!!! eheheheeheheh
20:14:49 <Deewiant> you admit that it's a bug that it will rerun i and o, for instance? :-)
20:15:10 <Deewiant> or & and ~, which are worse :-P
20:15:23 <AnMaster> but you need to buffer all input then
20:16:00 <MikeRiley> no,,,,since depending on 3what you were doing with i and o, you need to replicate what the files were at the time of the destination jump
20:16:13 <Deewiant> and, that's impossible in the general case.
20:16:23 <MikeRiley> in the general case, that is true...
20:16:37 <Deewiant> and if the files are just streams, frontends to sockets for instance?
20:16:38 <MikeRiley> but if the files were created by the program, then it would be right...
20:16:54 <Deewiant> e.g. output to /dev/tty0 or whatever
20:16:55 <MikeRiley> that would be classified as an implementation problem...
20:17:13 <Deewiant> I think it could also be classified as a spec problem
20:17:16 <AnMaster> MikeRiley, what about input then?
20:17:16 <MikeRiley> i suppose if it really mattered, the interpreter needs to be able to replicate what the state of those were...
20:17:21 <Deewiant> since it explicitly says that you can rerun from the start :-)
20:17:33 <AnMaster> MikeRiley, and what about output and input in fingerprints?
20:18:02 <MikeRiley> if running from point 0 to catch up,,,then in theory the necessary fingerprints would be there at the time of arrival...
20:18:04 <Deewiant> MikeRiley: what I'd do if I were you is say that doing input/output in a TRDS program is undefined behaviour ;-)
20:18:04 <AnMaster> Deewiant, how does HRTI interact with TRDS btw?
20:18:29 <AnMaster> MikeRiley, what if the fingerprints give different results next time?
20:18:31 <MikeRiley> HTRI will be completely UNDEF within TRDS
20:18:31 <Deewiant> AnMaster: not by going back in time to see what the timer would have been earlier. ;-P
20:19:15 <MikeRiley> i know that the TRDS module raises lots of questions about some things,,,,,but i guess time travel is quirky that way....
20:19:17 <AnMaster> Deewiant, you need that "future past didn't happen" tense that Douglas Adams suggested
20:19:53 <Deewiant> MikeRiley: but yeah, I'd say that any input is undefined, and outputting to anything except stdout/stderr also is
20:19:59 <MikeRiley> i agree, will consider i, o, and = and the input funcitons to be UNDEF...
20:20:13 <AnMaster> MikeRiley, what about output from BASE and such?
20:20:20 <Deewiant> and that it's allowed for an interpreter to reprint , and . and so forth
20:20:27 <AnMaster> it shouldn't be printed again at next run
20:20:45 <MikeRiley> reprint of , and . is fine,,,,but if you are using the method of starting from 0 and going to the jump point, no output should be generated...
20:20:57 <psygnisfive> has anyone ever tried doing derivations of a formal language by piling on restrictions to, and deriving new constrained rules from, S*?
20:21:01 <Deewiant> MikeRiley: I'd add something about IO in the spec if I were you
20:21:25 <Deewiant> i.e. any file IO or input in general is undefined in an entire TRDS program
20:21:36 <Deewiant> if you ever jump backwards in time
20:21:39 <psygnisfive> AnMaster, all languages are subsets of the kleene star of the alphabet
20:21:43 <Deewiant> if you jump forwards or use the freezer, it's fine, no?
20:21:45 <AnMaster> MikeRiley, well of course BASE, FPSP/FPDP, and other ones doing output should be fixed
20:21:52 <AnMaster> to not output up to that point either
20:22:03 <MikeRiley> yes,,,,since jumping forward does not require any state to be maintained...
20:22:25 <MikeRiley> i would output up to a future jump, IF and only if there is another ip running that is still running in normal time
20:22:34 <AnMaster> psygnisfive, I'm much more down to earth programmer
20:22:37 <psygnisfive> AnMaster, I take it you dont know anything about formal languages?
20:23:05 <psygnisfive> and C has a bunch of keywords (int, return, if, etc)
20:23:37 <psygnisfive> and also a bunch of things like regexp-defined things like "names" that are used for variables, etc.
20:23:49 <olsner> that's almost the same as saying that any language is a subset of all matches for the regexp .* ... or, really, that a language is a set of strings of an alphabet
20:23:54 <RodgerTheGreat> someone said my name earlier, and I lost what they said in the backbuffer
20:23:55 <MikeRiley> anmaster: i agree, other output functions need to be fixed to not output when running null time (time between 0 and jump point)
20:23:59 <psygnisfive> that's the "alphabet" of the formal language of C
20:24:14 <olsner> (re subsets of kleene stars)
20:24:22 -!- ais523 has joined.
20:24:23 <AnMaster> MikeRiley, guess why I decided to not implement TRDS?
20:24:44 <ais523> Deewiant: becuase he's sane?
20:24:44 <MikeRiley> do not blame you,,,,that module is terribly convoluted to implement
20:24:46 <AnMaster> psygnisfive, sounds like you are writing a lexer
20:24:48 <psygnisfive> that is, a string contraining any number of those symbols
20:24:58 <AnMaster> psygnisfive, but wtf is a "kleene star"?
20:25:23 <oerjan> oh kleene star. i was reading it as kleisli star and thought you were doing something _really_ weird.
20:25:26 <ais523> I'm on Mibbit so had to scroll down to see who was online
20:25:27 <psygnisfive> any number of the items in the set strung together
20:25:52 <AnMaster> ais523, why have you been away so long?
20:26:04 <AnMaster> psygnisfive, um a sec, too many convos at the same time
20:26:12 <psygnisfive> because its any number of symbols in S* put together into a string.
20:26:36 <ais523> AnMaster: sleep pattern out of sync, meaning I've been awake overnight and asleep in the daytime, combined with needing to commute to use the Internet, combined with the door to my department breaking so I couldn't get into it except during working hours
20:27:05 <AnMaster> ais523, hope that is fixed now :)
20:27:17 <ais523> this is not my usual computer lab, nor my usual computer
20:27:17 <olsner> oerjan: is that (.*.) = (=<<)?
20:27:21 <ais523> it's open until midnight my time though
20:27:26 <ais523> so if all else fails I can just use this one
20:27:33 <AnMaster> ais523, but with your own computer I hope?
20:27:49 <ais523> although it's a pain to use a laptop here
20:27:56 <ais523> compared to my usual place
20:27:58 <olsner> http://haskell.org/pipermail/haskell/2003-August/012438.html says something about kleisli stars and >>=
20:28:02 <ais523> AnMaster: only a few desks to put it on
20:28:08 <ais523> there is wlan, pretty good wlan at that
20:28:14 <ais523> just lack of space to place a laptop
20:28:40 <olsner> oerjan: >=> seems to be same as the @@ operator in that post
20:28:49 <ais523> AnMaster: there's a desktop computer on every desk
20:28:49 <AnMaster> psygnisfive, you lost me anyway, don't try to bother
20:28:59 <ais523> and it's hard balancing a laptop on top of a desktop and still using it
20:29:06 <ais523> and it is sometimes crowded, although not right now
20:29:15 <AnMaster> ais523, is there any space just outside it?
20:29:25 <AnMaster> ais523, wlan isn't restricted by walls
20:29:43 <oerjan> anyway, it's the composition operator of the kleisli category
20:30:00 <ais523> AnMaster: yes, I know, there is a bit of space near which I use a laptop with on occasion but that's a bit crowded, and there's only a small amount of nearby space which won't get rained on
20:30:11 <ais523> this lab is so big it takes up two entire floors of a building
20:30:12 <psygnisfive> Do I need to do a little tutorial on Formal Languages for you kids? :P
20:30:17 <ais523> and I don't have access to the other floors
20:30:26 <psygnisfive> who here knows anything about formal languages?
20:30:30 <ais523> it's used by a department I don't belong to
20:30:56 -!- psygnisfive has set topic: http://vjn.cc/x | Should PsygnisFive do a tutorial on Formal Languages? Yes: 0, No: 0.
20:31:06 <AnMaster> ais523, some major stuff with funge, 1) catseye test suite found, turns out we all got k wrong
20:31:17 <AnMaster> ais523, 2) RC/Funge author found too
20:31:46 <ais523> that is news, it reminds me of when I found that CLC-INTERCAL and J-INTERCAL both existed
20:31:57 <ais523> I'd heard of them, of course, but they were both hard to track down at the time
20:32:03 <ais523> AnMaster: 3k4 == 4444 is obvious
20:32:06 <AnMaster> ais523, because it *doesn't* jump over
20:32:12 <Deewiant> ais523: 1) being a consequence of 2)
20:32:30 <ais523> and not jumping is one of the semantics I suggested for 'fixing' it a while ago
20:32:40 <AnMaster> ais523, that breaks stuff though
20:32:44 <Deewiant> the problem is that then there's no way to iterate only once
20:32:45 <ais523> seems it was fixed in the first place...
20:32:47 <AnMaster> ais523, as 0k will do 0 iterations
20:32:47 <Deewiant> if there were, I'd be fine with it
20:33:13 <Deewiant> because the idea is you'd have a variable
20:33:19 <Deewiant> and now you'd have to check whether it's 1
20:33:42 <ais523> maybe you should use a non-k-based loop, then
20:33:44 <MikeRiley> i agree that the inability to iterate only once is a problem,,,,
20:33:51 <AnMaster> Deewiant, you already need to check what the variable is
20:33:54 <Deewiant> ais523: I suggested to AnMaster that the way to go is to have it always move
20:33:57 <AnMaster> to reflect on negative values and so on
20:33:57 <ais523> are you sure that 0k == z#?
20:34:15 <AnMaster> Deewiant, and that is what I selected for Funge108
20:34:19 <Deewiant> ais523: the spec is quite explicit about that. unless it was meant that 0k == z in which case it's just pointless.
20:34:35 <ais523> anyway, what does 1k^ do with the newly-discovered spec?
20:34:51 <Deewiant> 1k^ is the same as 2k^ is the same as 99**k^
20:35:22 <Deewiant> MikeRiley: did you read the end of my mail yet, by the way?
20:35:27 <Deewiant> where I forwarded that little spiel on k
20:35:49 <AnMaster> ais523, that will jump forward 5 times from k I think
20:35:55 <Deewiant> so what do you think about the double k thing
20:36:10 <ais523> it jumps forward 4, and then doesn't move forwards so hits the original #?
20:36:12 <ais523> that doesn't make sense
20:36:19 <Deewiant> it jumps forward 4, and then moves
20:36:23 <MikeRiley> if you had 4k#12345 the next instruction should be the 4....
20:36:48 <AnMaster> MikeRiley, what if you got 22k4
20:36:50 <ais523> MikeRiley: I agree, I think
20:36:55 <Deewiant> AnMaster: it's equivalent to 5k# under what CCBI currently does, yes
20:37:07 <MikeRiley> 22k4 will give you 3 4s on the stack...
20:37:33 <MikeRiley> 22kk4 hurts my head!!! eheheheheheeh
20:37:41 <ais523> it hurts everyone's head, I think
20:37:54 <AnMaster> rest assured that Funge-108 defines it:
20:38:01 <MikeRiley> but i would think that 2k4 would be executed twice...
20:38:06 <ais523> it reminds me of the time they found a paradox in the Magic: The Gathering rules
20:38:06 <AnMaster> • k on a nested k (as in 22kk4) is implementation defined. The implementation may do either of these:
20:38:07 <AnMaster> – The interpreter MAY reflect.
20:38:07 <AnMaster> – Or it MAY implement it as k executing k two times. The second k would then pop a new iteration count every time. This means that the second time the nested k executes, it will execute 4 times (as the previous time the nested k executed it pushed 4).
20:38:13 <ais523> and took huge pains trying to sort it out
20:38:26 <ais523> one famous player even suggested that the game should be a draw if the situation came up
20:38:29 <AnMaster> Deewiant, ccbi does that already
20:38:56 <AnMaster> Deewiant, so how do you explain that you don't want reflection
20:39:03 <AnMaster> if you want a sane behaviour then....
20:39:09 <Deewiant> AnMaster: CCBI doesn't reflect on nested k...
20:39:17 <ais523> Deewiant: Opalescence makes all enchantments into creatures, Humility prevents creatures having any effect
20:39:21 <AnMaster> Deewiant, what does CCBI do then?
20:39:25 <MikeRiley> i would not think that reflection on nested k would be right...
20:39:28 <ais523> therefore if they're both out at once, you get a paradox
20:39:42 <Deewiant> AnMaster: something like the latter, not sure exactly
20:39:53 <AnMaster> anyway the naive implementation of k would do this:
20:40:19 <AnMaster> 3) this execution will now fetch the next instruction, which will be k
20:40:49 <MikeRiley> since the k calls for finding the next instruction in the path of the ip
20:41:10 <Deewiant> the next k pops the 2, so it pushes two 4s
20:41:13 <MikeRiley> the next k, still with the ip on the first k,,,would end up find the k again...
20:41:15 <AnMaster> Deewiant, as the second k executes *at* the first k... it will fetch the next instruction from current position
20:41:35 <MikeRiley> with that idea,,,,nested k cannot really do much...
20:41:36 <AnMaster> k is really the only *multichar* instruction in befunge
20:42:14 <MikeRiley> it is in that it uses the next character to define what it will do...
20:42:18 <Deewiant> AnMaster: it'll terminate anyway though, since it'll pop zero at some point
20:42:20 <AnMaster> really the *sane* way would be to take the instruction to execute on the stack
20:42:23 <MikeRiley> but it still is a single command...
20:42:31 <AnMaster> ais523, hm true but that doesn't cause those issues
20:42:55 <AnMaster> Deewiant, so please suggest a sane way to solve nested k
20:42:58 <ais523> AnMaster: well, what does 3k'abc do?
20:43:10 <AnMaster> tell me what the heck that should do
20:43:27 <Deewiant> AnMaster: k doesn't say it finds the instruction from where it's executed
20:43:33 <Deewiant> k says it finds the next instruction from where the k is
20:43:48 <Deewiant> so an inner k should find the following instruction, not itself
20:43:49 <MikeRiley> correct,,,,and it does not specify that the ip moves when the found instruction is executed
20:44:07 <AnMaster> Deewiant, but it should execute all at the first k?
20:44:18 <MikeRiley> i believe it should execute at the first k...
20:44:22 <Deewiant> again, it doesn't say that it executes instructions where it is executed
20:44:29 <Deewiant> it executes instructions at where it is. :-)
20:44:42 <Deewiant> and have fun implementing that ^_^
20:44:42 <AnMaster> this will make iterate.c a lot more complex
20:45:12 <ais523> so does 1k^ go upwards from the k?
20:45:22 <MikeRiley> i would say that it goes upwards from the k
20:45:31 <AnMaster> ais523, yes but 1k] will turn 180 degrees
20:45:38 <AnMaster> ais523, anyway 2k^ will also go up
20:45:39 <Deewiant> by what the spec says, the interpreters do, or what 108 says? :-)
20:45:45 <Deewiant> 3 possibilities here, at least. :-P
20:45:47 <ais523> AnMaster: I'm not so sure
20:46:05 <MikeRiley> and go down from the k at the conculsion
20:46:07 <ais523> I think there's an argument to be made that 2#^k< goes upwards from the k
20:46:17 <ais523> because the k executes the < then the ^
20:46:22 <ais523> because the command it's "looking at" changes
20:46:29 <ais523> because the direction of processing changes
20:46:36 <MikeRiley> the command k executes is in the path of the IP..
20:46:41 <ais523> but they change what the k refers to
20:47:08 <ais523> does k look at which instruction to execute just before it executes it or just before the k?
20:47:12 <ais523> I'm arguing it only hits the < once
20:47:20 <AnMaster> Deewiant, it doesn't hit the < twice according to ais523
20:47:20 <ais523> because after the first < the k is pointing at the ^ not the <
20:47:29 <MikeRiley> k is supposed to look at the next valid instruction in the current path of the ip
20:47:30 <AnMaster> Deewiant, he says k looks ahead at each iteration
20:47:43 <Deewiant> I don't think that's what the spec says
20:47:52 <Deewiant> although it doesn't say much of anything. ;-)
20:48:00 <Deewiant> " Then it finds the next instruction in Funge-space in the path of the IP (note that this cannot be a marker such as space or ;), treats it as an instruction, executing it n times."
20:48:11 <ais523> AnMaster: I'm not convinced it works like that, but that's certainly worth consideration
20:48:15 <MikeRiley> Then it finds the next instruction in Funge-space in the path of the IP (n
20:48:23 <ais523> but I think < twice seems most similar to the Funge-98 spec
20:48:26 <Deewiant> ais523: not "it n times does the following: finds the next, executes it"
20:48:26 <AnMaster> ais523, you had to make us even more confused?!
20:48:44 <Deewiant> AnMaster: that is maybe worthwhile though
20:48:57 <Deewiant> doesn't sound like too bad an idea, at least. :-)
20:49:21 <Deewiant> that'd be really cool actually
20:49:24 <ais523> maybe I should make a fingerprint with one command K
20:49:32 <ais523> which is a fixed and properly specified version of k
20:49:33 <AnMaster> you need to check it at each iteration
20:49:48 <Deewiant> ais523: just make sure it's reasonably implementable as well :-)
20:49:57 <Deewiant> AnMaster: not that expensive...
20:50:08 <AnMaster> ais523, however your idea got some issues
20:50:11 <Deewiant> AnMaster: and anyway, you only need to check if the delta/pos changed
20:50:19 <AnMaster> ais523, then 2k#12 will executes #2
20:50:56 <ais523> but k# is arguably a silly think to write anyway
20:51:10 <ais523> I certainly wouldn't rely on a particular meaning of that if trying to write a portable Funge program
20:51:22 <Deewiant> if you don't actually read the spec I'd say it's quite logical to think of that
20:51:52 <Deewiant> "jump N times", so it's like j, no
20:52:31 <Deewiant> unless you think about it too deeply :-P
20:52:41 <AnMaster> Deewiant, more or less, with the quirk that it jumps from the j
20:53:01 <Deewiant> like said, unless you think about it too deeply
20:53:25 <Deewiant> mostly in response to 2008-07-23 22:50:56 ( ais523) but k# is arguably a silly think to write anyway
20:54:26 <AnMaster> MikeRiley, anyway cfunge contains some test programs that could be useful
20:54:43 <MikeRiley> i would like to take a look at those as well..
20:54:50 <AnMaster> MikeRiley, the mycology test for TURT is quite imcomplete
20:54:57 <AnMaster> I wrote a slightly more extensive one
20:55:08 <AnMaster> then there is the negative j + wrap test
20:55:25 <Deewiant> did you write a proper TURT test, then?
20:55:33 <ais523> Deewiant: planning to add IFFI to Mycology?
20:55:50 <AnMaster> ais523, he can't really, it would not work well
20:55:57 <AnMaster> as you need to initialize a lot
20:56:04 <AnMaster> ais523, write your own test suite for it
20:56:17 <AnMaster> not that anyone will implement it I think
20:56:21 <ais523> although it just outputs numbers
20:56:28 <ais523> and in theory it works to langs other than INTERCAL
20:56:29 <AnMaster> ais523, extensive? what about corner cases?
20:56:40 <ais523> AnMaster: there's one corner case I've tested
20:56:46 <ais523> I can't think of any other corner cases at the moment
20:56:50 <ais523> that doesn't mean they don't exist
20:57:07 <AnMaster> ais523, after all you can go into negative funge space in Funge-98
20:57:14 <ais523> AnMaster: they're actually large positive arguments because all INTERCAL numbers are unsigned
20:57:29 <ais523> although I don't test things that should cause reflections, nor things that should cause INTERCAL fatal errors
20:57:31 <AnMaster> ais523, well... Befunge isn't, could be worth testing thus
20:58:09 <ais523> but something like 1-R is an instant fatal error anywhere R is legal
20:58:11 <AnMaster> ais523, say, negative a mark or whatever at -24842,-1231
20:58:15 <ais523> because that's guaranteed to cause an error in the INTERCAL code
20:58:28 <ais523> AnMaster: ah, you mean jumping to negative funge-space?
20:58:44 <AnMaster> ais523, and for negative arguments, shouldn't it just reflect?
20:58:48 <ais523> I don't see why that would be different to jumping to positive funge-space as the coordinates aren't given as arguments to the command
20:59:17 <ais523> AnMaster: no, RESUME with -1 as an argument is equivalent to RESUME with 4294967295 as an argument, which is larger than the size of the stack
20:59:25 <AnMaster> "jumping to negative funge-space" <-- why does that make me think of treknobabel?
20:59:58 <AnMaster> shouldn't you check range first? and properly convert it
20:59:59 <ais523> AnMaster: maybe Star Trek computers are all programmed in Befunge-1008 or something
21:00:16 <ais523> AnMaster: I do, I actually have code to simulate the 32-bit wraparound
21:00:24 <oerjan> http://tvtropes.org/pmwiki/pmwiki.php/Main/ReversePolarity
21:00:33 <oerjan> (standard warning applies)
21:00:44 <olsner> oerjan: my thought exactly :) "reverse polarity!"
21:00:50 <AnMaster> oerjan, apart from "the page will timeout"
21:00:54 <ais523> AnMaster: basically it checks for a negative argument and errors as if it had wrapped around to a large positive integer
21:01:01 <oerjan> http://tvtropes.org/pmwiki/pmwiki.php/Main/TVTropesWillRuinYourLife
21:01:04 <MikeRiley> another thought on k,,,,is 0k really an exception??? think about ti this way,,,,,,0k^ will not execute the up at the k,,,,,move the ip forward to the ^ when complete and then execute the ^ in the next instruction cycle....
21:01:31 <MikeRiley> so really it just changes where the up command is executed...
21:01:59 <AnMaster> MikeRiley, but is that really useful?
21:02:17 <MikeRiley> after all it becomes a decision branch at that point...
21:02:23 <ais523> so 1k^ goes up at the k and 0k^ goes up at the ^
21:02:28 <MikeRiley> depending on whether or not it is zero...
21:02:51 <MikeRiley> then there are no exceptions at all on how k is executed...
21:03:17 <oerjan> AnMaster: no timeout here
21:05:46 -!- pikhq has left (?).
21:11:22 -!- Hiato has quit ("Leaving.").
21:11:45 -!- psygnisfive has set topic: http://vjn.cc/x.
21:19:28 -!- Corun has quit ("This computer has gone to sleep").
21:26:31 -!- RedDak has joined.
21:29:15 <ihope> "A pages you tried to acess does no exist on this servers." Cool.
21:29:40 <ihope> So no http://vjn.cc/x/at/logs/public.
21:36:57 <ais523> ihope: vjn.cc/x is a redirect to the #esoteric logs
21:37:04 <ais523> they were golfing the subject
21:41:20 -!- Corun has joined.
22:03:53 -!- puzzlet_ has quit (Remote closed the connection).
22:03:58 -!- puzzlet has joined.
22:10:51 -!- ais523 has quit ("mibbit.com: I would put some INTERCAL here, but it's difficult to improvise INTERCAL that complicated if you don't have it sa).
22:22:55 -!- pikhq has joined.
22:32:00 -!- Corun has quit ("This computer has gone to sleep").
22:42:43 -!- oerjan has quit ("Good night").
22:43:12 -!- Corun has joined.
22:43:14 -!- juokaz has joined.
22:43:37 <ihope> BF 1,000,000: ++++++++++[>++++++++++<-]>[>++++++++++<-]>[>++++++++++<-]>[>++++++++++<-]>[>++++++++++<-]>[.-]
22:43:44 <ihope> It's very golfable, I'm sure.
22:44:10 <juokaz> Hello, have anybody seen something like this '5vR@5|(1+3@+5@|(Ym@'?
22:45:03 <ihope> Where did you find that?
22:46:01 <juokaz> It is like a game, I am given this phrase and i need to find out answer. I think that it can be some of esoteric languages script.
22:46:58 <ihope> This sounds more like recreational codebreaking than esoteric programming. Perhaps ##crypto would have something to offer, though I think they're really more about actual cryptology.
22:48:58 <RodgerTheGreat> yeah, that string doesn't resemble any language I'm aware of
22:51:02 <tusho> it'd be neat if that was a language
22:51:44 <juokaz> I've checked all wiki languages, where was some like it, but noting equal.
22:52:21 <RodgerTheGreat> my first instincts were 1337 and toadskin, but it doesn't look valid for either
22:53:50 <tusho> juokaz: what is the situation?
22:53:54 <tusho> maybe context will help
22:54:26 -!- MikeRiley has quit ("Leaving").
22:54:50 <juokaz> There is no context :( I have this string, and no clues. It's like a game, like I said
22:56:07 <tusho> juokaz: what, did you just find the string on your HD
22:56:11 <tusho> there's obviously some context to getting it
22:57:02 <RodgerTheGreat> and let's hope it's a program, because a non-trivially encrypted string of that length is probably unbreakable
22:57:20 <juokaz> Context is web based game (not in eglish). There is a question named "Just", with that string as text. There is nothing else.
22:59:18 <pikhq> Seems like it would require some cryptanalysis.
22:59:48 <pikhq> Which of several would you like?
22:59:50 <RodgerTheGreat> pikhq: my thoughts exactly, but as I said there isn't much to work with
23:00:12 <psygnisfive> like.. with something that converts ints to that number of +'s, negative ints to that number of -'s, etc?
23:00:13 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
23:00:46 <pikhq> Well, PEBBLe is overkill for that.
23:00:48 <tusho> juokaz: link to the page?
23:00:50 <tusho> how did you find the page?
23:01:17 <RodgerTheGreat> juokaz: try some shift, vigenere and substitution cypher breaking tools
23:01:42 <RodgerTheGreat> work from the assumption that instead of wrapping in the alphabet you're wrapping in ASCII
23:01:53 <tusho> and also context ;)
23:02:08 <RodgerTheGreat> I'd just try a 1-25 letter shift and see if anything comes out looking sane
23:02:38 <RodgerTheGreat> I made a few tools along these lines, but they're in C so I hate modifying them
23:03:25 <RodgerTheGreat> information theory tells me that if it's a program it generates very little output. Thus, for any reasonably sized clue it's probably encryption
23:03:59 <tusho> RodgerTheGreat: i bet it's compressed
23:04:22 <RodgerTheGreat> psygnisfive: PEBBLe is a very powerful macro system for BF that pikhq developed
23:05:37 <RodgerTheGreat> tusho: as I said, information theory suggests that a program like that can only produce output containing a small amount of information. This is true regardless of wether it's compressed.
23:05:52 <tusho> RodgerTheGreat: mm, but if it's just encrypted, it's damn short
23:06:01 -!- fizzie has quit (clarke.freenode.net irc.freenode.net).
23:06:01 -!- puzzlet has quit (clarke.freenode.net irc.freenode.net).
23:06:01 -!- lilja has quit (clarke.freenode.net irc.freenode.net).
23:06:01 -!- lifthras1ir has quit (clarke.freenode.net irc.freenode.net).
23:06:01 -!- shachaf has quit (clarke.freenode.net irc.freenode.net).
23:06:11 <tusho> so i bet it's some kind of combination of encryption and compression
23:06:11 -!- fizzie has joined.
23:06:11 -!- lifthras1ir has joined.
23:06:11 -!- shachaf has joined.
23:06:11 -!- lilja has joined.
23:06:11 -!- puzzlet has joined.
23:06:27 -!- olsner has quit ("Leaving").
23:06:45 <pikhq> s/PEBBLe/PEBBLE/...
23:07:09 <RodgerTheGreat> I just spelled it like you did because I never knew what the aconym meant.
23:07:27 <tusho> RodgerTheGreat: portable esoteric brainfuck based language, eh?
23:07:34 <tusho> it's sad that i know that :)
23:07:45 <tusho> psygnisfive: it has tcl's syntax
23:07:56 <tusho> and basically consists of macros + a stdlib of them
23:08:02 <tusho> and, like, a few primitives for outputting brainfuck code
23:09:32 <RodgerTheGreat> ah, I remember the first assignment in my cryptography class. My teacher had explained a few basic cyphers, but no cryptanalysis stuff. He hands us all a sheet with alphanumeric gibberish and told us "decrypt that. It's due tomorrow"
23:09:44 <psygnisfive> apple was developing a professional version of apple script
23:10:03 <psygnisfive> "the first character of every word whose style is bold"
23:10:05 <tusho> psygnisfive: saw that on daring fireball
23:10:05 <RodgerTheGreat> it was the most fun I think I've ever had in a math course, hacking into the wee hours of the night until I started unravelling it
23:10:10 <tusho> { words | bold }.character[1]
23:10:16 <tusho> with an == in there somewhere
23:10:29 -!- Corun has quit ("This computer has gone to sleep").
23:10:34 <tusho> psygnisfive: is the lack of explicit binding?
23:10:39 <tusho> 'cause I think that's pretty neat too
23:10:46 <tusho> in fact, i'm considering implementing a lang with that syntax
23:10:55 <psygnisfive> is that you're doing a dot-property access on a group of things, where the dot is really applicable to members of the group
23:11:06 <tusho> kind of like an array programming language
23:11:33 <psygnisfive> i think it only makes sense for simple collections, that are not objects
23:11:50 <tusho> psygnisfive: array programming languages apply it to everything
23:11:55 <psygnisfive> i mean, obviously if sets were objects and had properties of their own, you'd be kind of messed up
23:12:01 <psygnisfive> does .character apply to the set, or the members?
23:12:09 <tusho> not really, I think apl has a sort of syntax for working that out
23:12:22 <RodgerTheGreat> ah yes... the first one started off "GENTLEMENDONOTREADEACHOTHERSMAIL..."
23:12:23 <tusho> like, either set..length for the set's length or set..character[1]
23:13:22 <tusho> yeah apl&k&j take it a little too far.
23:13:40 <psygnisfive> apl might as well be considered an esolang that went mainstream
23:14:03 <tusho> apl never really was THAT mainstream
23:14:06 -!- juokaz has quit (Remote closed the connection).
23:14:45 <tusho> puzzle guy is gone
23:14:52 <psygnisfive> i mean, i can see standard stuff like set notation junk
23:17:42 <pikhq> psygnisfive: http://pikhq.nonlogic.org/pebble.php
23:18:22 <pikhq> If you want some examples aside from the stdlib, I've got a few. . .
23:18:56 <pikhq> It's in the tarball.
23:19:14 <psygnisfive> tusho: i think thats something that obviously should be in my quantifier language
23:19:23 <pikhq> It also has documentation on the stdlib.
23:20:12 <tusho> psygnisfive: { numbers | odd }.sum
23:20:19 <tusho> and as for the mapping thing
23:20:24 <tusho> { words | style == bold }:characters[1]
23:20:28 <tusho> the ':' is magical
23:20:36 <psygnisfive> since that clearly means sum over the set not the members
23:20:48 <tusho> the : is what specifies 'over members'
23:21:03 <psygnisfive> well, in my quantifier language im going to handle it differently
23:21:27 <psygnisfive> i like this, we need to think of more interesting things to do
23:21:48 * tusho is just going to spurt out random code samples until the language forms in his head
23:22:35 <tusho> in fact psygnisfive
23:22:43 <tusho> sum { numbers | odd }
23:22:48 <tusho> { numers | odd }.succ
23:23:01 * pikhq is just going to shove PEBBLE down psygnisfive's throat
23:23:15 <tusho> psygnisfive: mm, i think mine could have merits though
23:23:22 <tusho> i wish that paper had more examples of it
23:24:29 <tusho> object orientation is reverse CPS
23:24:51 <psygnisfive> do this then do this to that then do this to that
23:25:00 <tusho> reading nested stuff is a bitch
23:25:10 <tusho> a mostly-stream workflow is far easier to grasp
23:25:38 <psygnisfive> someone should make a language thats like haskell in its function application syntax, only in reverse
23:25:49 <tusho> psygnisfive: concatenative
23:25:56 <tusho> i know what you mean
23:26:01 <psygnisfive> then any function call can look like a method call
23:26:01 <tusho> I spurted some examples of it in #haskell
23:26:03 <tusho> turn sout it kinda sucks.
23:26:14 <psygnisfive> or you could go back and forth at will with some notation
23:26:21 <tusho> stuff.map(succ).first
23:27:02 <psygnisfive> maybe : could be that syntax to counterpoint .
23:27:35 <tusho> hmm, i thought of a good alt. to :
23:27:38 <tusho> because it digs in
23:27:44 <tusho> { words | style == bold }->character[1]
23:27:46 <tusho> see the metaphor>?
23:27:51 <tusho> psygnisfive: very C, actually
23:28:02 <tusho> and the point is that it's quite clear what it does once you've had it explained
23:28:06 <tusho> since the visual meatphor is strong
23:28:07 <psygnisfive> true, but perl and php use it exclusively for method access
23:28:22 <tusho> yeah, well, whatever they wanna do :P
23:28:30 <tusho> but c has it, and i think it's a good visual metaphor -for this use-
23:28:47 <tusho> { { words | bold } italic } <-- don't like this
23:29:10 <tusho> words.{bold}.{italic}->character[1]
23:29:42 <tusho> {{words|bold}|italic}
23:29:53 <psygnisfive> that still doesnt make much sense i dont think
23:29:58 <tusho> psygnisfive: { set | condition }
23:30:03 <tusho> filter set by condition
23:30:06 <tusho> { words | bold } = bold words
23:30:10 <tusho> { foo | italic } = italic foos
23:30:17 <tusho> { { words | bold } | italic } = bold italic words
23:30:26 <tusho> ofc you can do bold && italic
23:30:45 <tusho> words.filter{ bold && italic }->character[1]
23:30:50 -!- Corun has joined.