←2008-07-22 2008-07-23 2008-07-24→ ↑2008 ↑all
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:19:35 <CakeProphet> :)
00:28:17 <psygnisfive> (ask CakeProphet 'sup?)
00:28:45 <CakeProphet> CakeProphet reply to: psygnisfive with: 'nm la'
00:29:21 <psygnisfive> does SmallTalk allow that?
00:29:26 <psygnisfive> reply to:?
00:29:28 <psygnisfive> with a space?
00:30:42 <CakeProphet> er
00:30:47 <CakeProphet> no it does not.
00:30:58 <psygnisfive> is this some other language?
00:30:58 <CakeProphet> CakeProphet replyto: psygnisfive with: 'nm la'
00:31:01 <CakeProphet> my bad.
00:31:02 <psygnisfive> :P
00:31:10 <psygnisfive> brb actually
00:31:23 <psygnisfive> (set-status 'brb)
00:31:29 -!- psygnisfive has changed nick to psygnisfive[brb].
00:35:42 -!- olsner has quit ("Leaving").
00:44:10 <psygnisfive[brb]> (set-status 'back)
00:44:16 -!- psygnisfive[brb] has changed nick to psygnisfive.
00:44:42 <psygnisfive> sup bitches
00:45:49 <psygnisfive> o.o
00:49:28 <psygnisfive> o.o
00:49:49 <psygnisfive> (poke everyone)
00:49:57 * psygnisfive pokes cakeprophet
00:50:00 * psygnisfive pokes anmaster
00:50:04 * psygnisfive pokes oklopol
00:50:06 * psygnisfive pokes tusho
00:50:11 * psygnisfive pokes deewiant
00:50:14 <CakeProphet> I like IOs message syntax more so than smalltalks.
00:50:22 <psygnisfive> iomessage syntax?
00:50:36 <CakeProphet> though it doesn't allow you to have things like replyto: and then replyto:with:
00:50:40 <CakeProphet> it's just
00:50:48 <CakeProphet> object message (args...)
00:50:54 <psygnisfive> ah
00:51:09 <psygnisfive> augur replytowith cakeprophet "hello"
00:51:10 <psygnisfive> ?
00:51:11 <CakeProphet> that is the syntax for like everything...
00:51:19 <CakeProphet> non-alphanumeric characters don't require a space
00:51:25 <CakeProphet> thus 2+2 and such
00:51:35 <psygnisfive> yeah
00:51:50 <CakeProphet> and all the arguments a lazily evaluated
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:52:59 <psygnisfive> it should instead have like
00:53:11 <psygnisfive> x == 2 implies "Hello, World!" println
00:53:29 <psygnisfive> where implies is a method of booleans
00:53:51 <psygnisfive> ok im off again
00:53:55 <psygnisfive> augur setstatus "away"
00:53:58 <psygnisfive> ..
00:54:00 <psygnisfive> psygnisfive*
00:54:00 <psygnisfive> :P
00:54:04 -!- psygnisfive has changed nick to psygnisfive[away.
00:56:52 <CakeProphet> that's pretty much how smalltalk does conditionals
01:00:11 <CakeProphet> io, to me, looks more uniform than lisp.
01:00:48 <CakeProphet> because lisp has macros that pretty much make their own rules.
01:07:11 <CakeProphet> ahahahaha
01:07:11 <psygnisfive[away> well im not gone yet
01:07:15 <CakeProphet> I have
01:07:20 -!- psygnisfive[away has changed nick to psygnisfive.
01:07:23 <CakeProphet> 100 workspaces
01:07:43 <psygnisfive> why do lisp macros look less uniform??
01:08:01 <CakeProphet> they don't look less uniform
01:08:05 <CakeProphet> they are less uniform
01:08:10 <CakeProphet> there's functions... and then there's macros.
01:08:20 <CakeProphet> but they look exactly the same
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:34 <CakeProphet> ...they are.
01:08:38 <psygnisfive> theyre not but they might as well be
01:08:55 <psygnisfive> i dont see why theyre not uniform tho
01:08:56 -!- Judofyr has joined.
01:09:25 <CakeProphet> psygnisfive: ...I am saying that lisp is not uniform.
01:09:30 <CakeProphet> not that it... matters.
01:09:34 <psygnisfive> i dont see why :O
01:09:35 <psygnisfive> but ok
01:09:35 <CakeProphet> but that's what it claims to be.
01:09:48 <CakeProphet> it has functions and macros... two seperate things.
01:09:53 <psygnisfive> so?
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:37 <CakeProphet> it's not really a... problem.
01:10:40 <CakeProphet> because lots of languages do this.
01:10:51 <psygnisfive> ive never heard anyone claim that everything is computed via the same parts of eval/apply
01:11:18 <CakeProphet> ...nevermind.
01:11:22 <psygnisfive> :P
01:11:30 <psygnisfive> ok.
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:12:38 <CakeProphet> *can't.
01:12:50 <psygnisfive> does it matter?
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:14:19 <CakeProphet> cond, if, loop, etc.
01:14:23 <psygnisfive> special forms, i know.
01:14:56 <CakeProphet> cond and if don't really surprise me much
01:14:58 <CakeProphet> but like
01:15:01 <CakeProphet> loop is just... weird.
01:15:04 <psygnisfive> why?
01:15:22 <psygnisfive> i dont know if i like the syntax for it in scheme but
01:17:08 <psygnisfive> ok now im off
01:17:21 <CakeProphet> kkk
01:17:21 <psygnisfive> [self setStatus: Away]
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:28:51 <psygnisfive-away> hello! :D
02:34:02 <psygnisfive-away> :o
02:34:06 -!- psygnisfive-away has changed nick to psygnisfive.
02:34:10 <psygnisfive> o.o
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:34:50 <psygnisfive> what is rootnomic
02:34:53 <psygnisfive> what is nomic in general
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:35 <psygnisfive> oh yes, that
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:08:54 <psygnisfive> no :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:09:24 <ihope> Hmm, cool.
03:09:27 <ihope> What is reduce?
03:09:36 <psygnisfive> reduce is..
03:09:45 <psygnisfive> turn a collection into a single item
03:09:48 <psygnisfive> so like
03:10:00 <psygnisfive> well, its sometimes known as fold
03:10:24 <psygnisfive> foldl (+) [1,2,3,4,5] = 15
03:10:32 <psygnisfive> 1+2+3+4+5
03:10:38 <psygnisfive> using haskell
03:10:41 <RodgerTheGreat> mapreduce, like the internal google tool?
03:10:52 <psygnisfive> it might be doable on MapReduce but no
03:11:01 <psygnisfive> i was thinking just map and reduce.
03:11:02 <RodgerTheGreat> but the same operations, I mean?
03:11:06 <psygnisfive> sort of
03:11:10 <RodgerTheGreat> hm
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:11:41 <psygnisfive> ok here, can i do some haskell code?
03:12:10 <psygnisfive> map f [] = []
03:12:10 <psygnisfive> map f x:xs = f x : map f xs
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:13:22 <psygnisfive> foldr f init [] = init
03:13:22 <psygnisfive> foldr f init x:xs = f x (foldr f init xs)
03:13:28 <psygnisfive> foldr being a right reduce
03:13:43 <psygnisfive> summation is a kind of reduce, sure
03:13:47 <psygnisfive> its a reduce with +
03:13:53 <psygnisfive> products being reduce with *
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:14:25 <psygnisfive> it doesnt have to be commutative
03:14:32 <psygnisfive> it just has to be closed
03:14:48 <RodgerTheGreat> closed under the datatype?
03:14:52 <psygnisfive> yes
03:14:57 <psygnisfive> it has to be of type
03:14:59 <RodgerTheGreat> alright, I'm with you
03:15:01 <psygnisfive> a->a->a
03:15:13 <psygnisfive> forall a
03:16:04 <psygnisfive> anyway
03:16:09 <ihope> map here refers to applying one function to every element of a list, yes?
03:16:16 <psygnisfive> yeah
03:16:23 -!- puzzlet_ has changed nick to puzzlet.
03:16:32 <psygnisfive> map f [a,b,c,...] = [f a, f b, f c, ...]
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:19 <psygnisfive> but MapSortReduce doesnt sound as cool
03:17:33 <psygnisfive> anyway
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:30:03 <psygnisfive> la
03:44:36 <ihope> Eeshoo.
03:44:42 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
03:44:56 -!- Judofyr has joined.
03:48:25 <psygnisfive> eeshoo?
03:52:24 <psygnisfive> whtats eeshoo?
03:58:48 <ihope> An interjection.
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:41 <Deewiant> hmm
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:01:44 <AnMaster> Deewiant, nice
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:16:32 <AnMaster> for some optimizing
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:11 <AnMaster> hi tusho
10:23:12 <tusho> um
10:23:16 <tusho> whose been using my nick
10:23:22 <tusho> hi
10:23:24 <tusho> what we talkin' bout
10:23:28 <AnMaster> tusho, using your nick?
10:23:29 <AnMaster> nah
10:23:32 <tusho> no
10:23:33 <AnMaster> <Deewiant> hmm
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 <tusho> to tell me
10:23:37 <AnMaster> <AnMaster> Deewiant, nice
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:56 <AnMaster> RC/Funge has the TRDS crap
10:23:57 <tusho> i release software telepathically
10:24:08 <tusho> up votes6
10:24:09 <tusho> down votes5
10:24:10 <tusho> darnit
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:48 * AnMaster runs
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:36:08 <tusho> c isn't english
11:37:18 <AnMaster> true
11:37:49 <AnMaster> tusho, English is more like some sort of RPC language
11:37:58 <tusho> not rly
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:18 <tusho> it's cool
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 <tusho> uh
11:49:06 <AnMaster> "Couldn't mmap() input file: Invalid argument"
11:49:08 <tusho> flex is a lexer
11:49:10 <tusho> lemon is a parser generator
11:49:20 <AnMaster> tusho, ah typo.
11:49:42 <tusho> anyway
11:49:43 <tusho> sqlite uses lemon
11:49:48 <AnMaster> yes I know that
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:44 <pikhq> So, for example:
14:27:47 <AnMaster> pikhq, not mentioned in spec
14:27:50 <pikhq> var: a "ABC"
14:27:53 <pikhq> Yes it is.
14:27:59 <AnMaster> pikhq, how do you later assign it?
14:28:07 <AnMaster> as in foo=2;
14:28:10 <pikhq> Ah.
14:28:29 <pikhq> foo?0x00000002
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:50 <AnMaster> pikhq, care to paste yours
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:30 <AnMaster> plus some other stuff
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:17 <AnMaster> it will help at least
14:32:27 <pikhq> It and I are on different systems.
14:32:35 <AnMaster> again...
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:37:48 <AnMaster> would be useful
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:42:03 <AnMaster> pikhq, thanks
14:42:04 <AnMaster> a sec
14:43:31 <AnMaster> pikhq, hm, thanks
14:43:48 <AnMaster> pikhq, what is yywrap for?
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:46:16 <tusho> back
15:47:28 <tusho> ihope: the implementation's hideous usage and constraints
15:48:51 -!- puzzlet_ has joined.
15:55:14 <RodgerTheGreat> pikhq: 'sup?
16:01:17 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
16:04:27 <pikhq> Yo.
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:05:50 <pikhq> Never mind.
16:06:16 <RodgerTheGreat> mm
16:06:24 <pikhq> New DC when DC recovers from a bicycle wreck.
16:06:26 <RodgerTheGreat> might be *a* friday
16:06:44 <RodgerTheGreat> I'm glad you're beginning to share my rage about DC
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:08 <pikhq> Fudge monkeys.
16:07:11 <RodgerTheGreat> riiiight
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:10:54 <RodgerTheGreat> I can only take so much abuse as an audience member
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:11:39 <RodgerTheGreat> tusho: not talking to you
16:11:53 <RodgerTheGreat> "abuse as an audience member"- audience for DC
16:11:56 <tusho> oh.
16:12:16 <RodgerTheGreat> yes.
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:13:00 <tusho> hi MikeRiley
16:13:04 <MikeRiley> hello
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:18:19 <RodgerTheGreat> that's where the "riiiight" came from
16:18:37 <RodgerTheGreat> and it's not awful, it's realistic
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:19:53 <RodgerTheGreat> once again THIS IS HIS SOLE SOURCE OF INCOME.
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:43 <sebbu> i paused
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:02 <pikhq> Jebus.
16:31:11 <pikhq> 0.491 BAC.
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:18 <RodgerTheGreat> make it happen
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:32:48 <pikhq>
16:33:06 <tusho> pikhq:
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:34:31 <tusho> hah
16:35:51 <pikhq> RodgerTheGreat: I think there's less alcohol in some hard liquors. . .
16:36:03 <RodgerTheGreat> pikhq: this is correct
16:36:13 <pikhq> What did the guy do, chug a gallon of everclear?
16:36:22 <RodgerTheGreat> blood with a BAC of .5 would presumably be 100-proof
16:36:28 <RodgerTheGreat> pikhq: maybe intravenously
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:39:44 <RodgerTheGreat> pikhq: physically, yes. cellularly, no.
16:39:54 <pikhq> Well, of course.
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:43:47 <AnMaster> tusho, nop I don't
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:44:18 <AnMaster> for Def-BF
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:52:16 <RodgerTheGreat> possibly RTN
16:54:34 <AnMaster> hm
16:54:40 <AnMaster> RodgerTheGreat, what about attributes?
16:54:49 <RodgerTheGreat> I'm giving that thought
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:32:57 <iano> testing
17:33:13 -!- iano has left (?).
17:33:25 <tusho> failed
17:33:55 <MikeRiley> guess so
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:25 <Deewiant> oh hey, you're here too
17:50:26 <MikeRiley> and cat's eye diagnostics work that way...
17:50:29 <MikeRiley> yes i am...
17:50:36 <Deewiant> excellent :-)
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:19 <Deewiant> probably was
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:41 <Deewiant> true
17:52:58 <MikeRiley> just in case you want some zeros for some stupid reason...
17:53:03 <Deewiant> :-)
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:53:39 <AnMaster> eh
17:53:40 <AnMaster> what
17:53:49 <AnMaster> that makes no sense
17:53:55 <MikeRiley> did not to me either...
17:53:58 <Deewiant> evidently Mike asked Chris
17:54:00 <MikeRiley> but that is what chris told me long ago...
17:54:01 <Deewiant> and that's what he said
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:55:55 <AnMaster> ah....
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:17 <Deewiant> but then...
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:47 <Deewiant> yeah, I can put it up, sec
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:23 <Deewiant> ah, okay
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:30 <tusho> cooooooooool
17:57:32 <MikeRiley> that stupid k instruction has always been a problem!! eheheheheeh
17:57:40 <Deewiant> yeah
17:57:41 <MikeRiley> yes he is the funge guy...
17:57:44 <AnMaster> Deewiant, anything else where it disagrees with mycology?
17:57:51 <Deewiant> AnMaster: haven't run it yet, actually
17:57:53 <Deewiant> AnMaster: want to?
17:57:59 <AnMaster> well will shortly
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:58:51 <AnMaster> come comes*
17:58:56 <Deewiant> I don't know
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
17:59:35 <Deewiant> I was hoping you might
17:59:37 <Deewiant> yep :-)
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> $ ../cfunge diagt.b98
18:00:37 <AnMaster> thread 2 startedthread 1 startedFAIL no stackFAIL
18:00:42 <AnMaster> I'm not sure what that means
18:00:45 <Deewiant> nice :-D
18:00:47 <Deewiant> let me try
18:00:54 <AnMaster> Deewiant, anyway it is much harder to parse the output of this tool
18:00:58 <AnMaster> than of mycology
18:01:15 <Deewiant> sure, mycology was partly designed for it to be easy to see what's going on
18:01:19 <Deewiant> from the output, that is
18:01:21 <Deewiant> not the code. ;-)
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:01:44 <AnMaster> Deewiant, rather = I guess
18:01:51 <Deewiant> ah, right, sh
18:02:13 <AnMaster> but what does it expect? that I have it chmod +x and have PATH include current dir?
18:02:18 <AnMaster> neither is true on my system
18:02:28 <Deewiant> okay, so diag1.b98 loops infinitely
18:02:35 <AnMaster> Deewiant, it doesn't here
18:02:39 <MikeRiley> it should not loop indefinitely
18:02:46 <AnMaster> it quits with:
18:02:47 <AnMaster> iterate:!!!!!!!!!FAIL
18:02:47 <Deewiant> or then it just takes a long time
18:02:50 <AnMaster> Deewiant, ^
18:02:56 <ihope> tusho: would you come back if rootnomic's proposal system were replaced with something better?
18:02:56 <Deewiant> hangs after compare:OK for me
18:02:59 <AnMaster> real 0m0.028s
18:02:59 <AnMaster> user 0m0.017s
18:02:59 <AnMaster> sys 0m0.008s
18:03:02 <AnMaster> remember, cfunge is fast
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:24 <AnMaster> tusho, you left in a huff?
18:03:25 <Deewiant> MikeRiley: ignore him, he's a performance freak
18:03:29 <tusho> AnMaster: no
18:03:34 <tusho> i never started it
18:03:40 <AnMaster> Deewiant, it outputs it once here
18:03:40 <MikeRiley> real 0m0.002s
18:03:40 <MikeRiley> user 0m0.000s
18:03:40 <MikeRiley> sys 0m0.000s
18:03:42 <Deewiant> ookay, diag3b.b98 also loops infinitely
18:03:44 <MikeRiley> that is running diag1
18:03:45 <tusho> OH BURN
18:03:47 <AnMaster> MikeRiley, hm, impressive
18:03:49 <Deewiant> :-D
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:06 <AnMaster> MikeRiley, from diag1.b98 ?
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:13 <MikeRiley> yes from diag1
18:04:18 <AnMaster> tusho, very fun
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:29 <MikeRiley> diagt gives me this:
18:04:30 <AnMaster> Deewiant, any idea what is wrong then?
18:04:36 <Deewiant> nope
18:04:42 <Deewiant> and not gonna look in any detail right now
18:04:43 <MikeRiley> thread 2 started
18:04:43 <MikeRiley> thread 1 started
18:04:43 <MikeRiley> OK
18:04:43 <MikeRiley> Instructions Executed: 793 in 758 cycles
18:04:43 <MikeRiley> Execution time : 0.00 seconds
18:04:44 <MikeRiley> Instructions per second: inf
18:04:46 <MikeRiley> Exiting with return code = 0
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:48 <MikeRiley> real 0m0.004s
18:04:50 <MikeRiley> user 0m0.000s
18:04:52 <MikeRiley> sys 0m0.004s
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:08 <Deewiant> a tree of some kind?
18:05:09 <AnMaster> MikeRiley, or using static memory model stuff?
18:05:14 <Deewiant> ah, right
18:05:15 <tusho> AnMaster: how about sane optimizations
18:05:16 <Deewiant> static memory, too
18:05:20 <tusho> as opposed to your rather random attempts
18:05:21 <Deewiant> by default
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:46 <MikeRiley> diagt on the dynamic model:
18:05:47 <Deewiant> wraparound didn't work IIRC
18:05:49 <MikeRiley> thread 2 started
18:05:49 <MikeRiley> thread 1 started
18:05:49 <MikeRiley> OK
18:05:49 <MikeRiley> Instructions Executed: 793 in 758 cycles
18:05:49 <MikeRiley> Execution time : 0.00 seconds
18:05:50 <MikeRiley> Instructions per second: inf
18:05:52 <MikeRiley> Exiting with return code = 0
18:05:54 <MikeRiley> real 0m0.003s
18:05:56 <MikeRiley> user 0m0.000s
18:05:57 <AnMaster> huh
18:05:58 <MikeRiley> sys 0m0.000s
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:30 <MikeRiley> it could be...
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:08:43 <AnMaster> well... the whole FNGR thing
18:09:00 <AnMaster> MikeRiley, cfunge can be found at http://rage.kuonet.org/~anmaster/cfunge/
18:09:05 <AnMaster> just fyi
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:23 <AnMaster> this is esoteric after all
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:10:42 <AnMaster> tusho, :D
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:23 <Deewiant> ah yeah, FNGR
18:11:27 <Deewiant> it contradicts the Funge spec
18:11:30 <AnMaster> MikeRiley, no it just breaks the Funge specs
18:11:43 <MikeRiley> how so??
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:18 <AnMaster> so he better tell you
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:42 <Deewiant> that doesn't work, though
18:13:45 <AnMaster> so you can unload and load totally random and end up with one half fingerprint
18:13:45 <Deewiant> run mycology and see ;-)
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:20 <AnMaster> cfunge certainly have
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> specification.
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:15:57 <AnMaster> to clarify the undefined
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:22 <Deewiant> yeah, essentially
18:16:25 <AnMaster> MikeRiley, this is true, but what happens when you unload out of order?
18:16:33 <Deewiant> i.e.
18:16:34 <AnMaster> it should pop the top item
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:03 <AnMaster> Deewiant, indeed
18:17:12 <Deewiant> and the result should be that M is now whatever was loaded before ROMA
18:17:18 <MikeRiley> i agree,,,
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:07 <Deewiant> MikeRiley: for instance, N
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:18:59 <AnMaster> or reference one
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:25 <Deewiant> apart from N
18:20:43 <MikeRiley> hmmm,,,will have to think about that...
18:20:44 <Deewiant> and what does T do?
18:20:50 <Deewiant> "Tag stack entry n with new fingerprint fp"?
18:20:56 <Deewiant> says nothing to me :-P
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:34 <Deewiant> ah, so that can't work either
18:21:39 <Deewiant> since again, you can't know what fingerprints are loaded.
18:21:53 <Deewiant> in general
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:16 <MikeRiley> hmmmmmmm
18:22:16 <Deewiant> no, it can't
18:22:23 <Deewiant> load FNGR, load ROMA, unload NULL
18:22:33 <Deewiant> all the ROMA instructions are gone now
18:22:38 <Deewiant> as are some of FNGR's
18:22:42 <Deewiant> so what is truly loaded?
18:22:46 <MikeRiley> that should not be the case
18:22:53 <Deewiant> yes, it should :-)
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:07 <Deewiant> no NULL loaded
18:23:09 <Deewiant> just unloaded
18:23:23 <MikeRiley> if NULL is unloaded without being loaded first, then nothing should happen...
18:23:26 <Deewiant> "RGNF"4("AMOR"4("LLUN"4)
18:23:28 <Deewiant> incorrect
18:23:48 <MikeRiley> hmmmmmmm
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:06 <Deewiant> *(even if that fingerprint
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:24 <AnMaster> yes it should
18:24:26 <Deewiant> hence, you can essentially forget about N and T
18:24:27 <AnMaster> according to the spec
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:10 <MikeRiley> that is certainly possible...
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:28:44 <AnMaster> look at the examples below
18:28:59 <AnMaster> wait no, it doesn't show that
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:40 <Deewiant> tusho: how's that
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:31:59 <Deewiant> yeah
18:32:04 <MikeRiley> just like k,,,,i wonder if the the intent and what was written were not the same...
18:32:05 <AnMaster> Deewiant, what does FBBI do?
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:43 <AnMaster> hm
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:14 <AnMaster> ;P
18:33:14 <MikeRiley> it is wild!!!! eheheheheheeheh
18:33:15 <Deewiant> TRDS is excellent
18:33:24 <Deewiant> best idea ever
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:33 <AnMaster> hah
18:33:39 <MikeRiley> i saw somebody mention about time travelling IPs, just had to try it!!! eheheheheeheheh
18:33:39 <AnMaster> opps
18:33:41 <AnMaster> oops*
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:00 <Deewiant> AnMaster: :-D
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:34:48 <AnMaster> unusual laugh that
18:34:57 <AnMaster> (no offence meant)
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:35:54 <MikeRiley> yep, it changes a lot!!!!!
18:35:55 <AnMaster> for funge-108
18:36:02 <Deewiant> MikeRiley: oh, that reminds me
18:36:07 <Deewiant> regarding I/O in TRDS
18:36:23 <Deewiant> you only specify, and implement, that , and . don't do anything twice
18:36:37 <AnMaster> what about fingerprint IO?
18:36:37 <Deewiant> what about others, like &~io=
18:36:43 <Deewiant> and other fingerprints, yeah
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:13 <AnMaster> tusho, oh, do grow up...
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:43 <Deewiant> see the "PrintTime" variable
18:39:48 <Deewiant> and again, only for , and .
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:02 <Deewiant> around line 550 in main.c
18:40:05 <MikeRiley> looking
18:40:06 <tusho> MikeRiley: how, exactly, do you vocalise ,,,,?
18:40:10 <Deewiant> it makes some degree of sense
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:25 <MikeRiley> eheheheeheheheheheeh
18:40:33 <Deewiant> tusho: a lot of short pauses really fast
18:40:42 <AnMaster> tusho, nah it is befunge code
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:39 <MikeRiley> not sure why i did that.....
18:41:51 <Deewiant> hmm
18:41:52 <AnMaster> using this at the end of the irc line is better though ;) >:#,_@
18:41:54 <Deewiant> that works too, I suppose
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:18 <AnMaster> tusho, it's funge code
18:42:21 <Deewiant> :-D
18:42:23 <tusho> AnMaster: shut up you
18:42:26 <AnMaster> tusho, prints until a 0
18:42:32 * tusho slaps AnMaster
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:01 <tusho> shut up you
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:30 <tusho> MikeRiley: huh
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:20 <AnMaster> tusho, not saying that
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:44:47 <tusho> :D
18:45:00 <AnMaster> tusho, to allow you to contribute to the vibrant Funge community ;P
18:45:04 <Deewiant> who wants to write TRDSFuck?
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:07 <AnMaster> poor MikeRiley
18:46:12 <Deewiant> ^__^
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:31 <AnMaster> say, your website, yet
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:46 <MikeRiley> www.elf-emulation.com/funge/
18:46:49 <tusho> Deewiant: ^___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^
18:46:50 <Deewiant> MikeRiley: but IO happens anyway, so you can't prevent it! ;-)
18:46:54 <tusho> HELP MY FACE
18:46:54 <tusho> OH GOD
18:46:58 <Deewiant> ...
18:47:00 <tusho> AND MY EYES. THEY ARE POINTING UPWARDS
18:47:04 <tusho> OH GOD THE PAIN
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:17 <tusho> AAAAH HOLY SHIT
18:47:19 <tusho> IT'S GROWING
18:47:22 <AnMaster> tusho, duh GROW UP
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:51 <AnMaster> ahah....
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:05 * AnMaster looks again
18:50:21 <Deewiant> AnMaster: bottom
18:50:23 <AnMaster> ah found it
18:50:29 <AnMaster> right
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:17 <MikeRiley> no....not for my funge stuff...
18:52:20 <AnMaster> MikeRiley, just want to know if there are any changes to mini funge or the fingerprints
18:52:25 <AnMaster> since that version
18:52:29 <MikeRiley> not that i can think of....
18:52:35 <AnMaster> thanks
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:10 <Deewiant> oh noes
18:53:15 <MikeRiley> eheheheheheheeh
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:22 <AnMaster> as year of publishing
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:42 <MikeRiley> eheheheheheheheeh
18:53:50 <MikeRiley> good question,,,,just use this year....
18:53:57 <AnMaster> MikeRiley, I have already I think, well almost
18:54:00 <AnMaster> MikeRiley, C FFI
18:54:02 <AnMaster> for befunge
18:54:05 <AnMaster> using libffi
18:54:09 <AnMaster> haven't yet finished specs
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:56:11 <MikeRiley> ok,,,
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:29 <MikeRiley> looking
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:00:54 <MikeRiley> looking
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:06 <MikeRiley> yes,,,i think so....
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:42 <MikeRiley> very well could be....
19:07:56 <AnMaster> MikeRiley, I mean it needs to tie into a INTERCAL interpreter really
19:08:03 <AnMaster> or compiler
19:08:05 <MikeRiley> yes....
19:08:06 <AnMaster> C-INTERCAL is a compiler
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:11:03 <AnMaster> parsing it is a pain
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:31 <AnMaster> agreed!
19:13:46 <AnMaster> MikeRiley, your dynamic memory model, what exactly is it?
19:13:55 <AnMaster> a hash map?
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:15 <MikeRiley> it is not a hash map tho...
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:04 <AnMaster> or you could have better cpu
19:16:11 <AnMaster> need to try it on my cpu to be sure
19:16:14 <AnMaster> will do that later
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:07 <MikeRiley> mem.c contains the code for it...
19:17:17 <MikeRiley> yes, it could....
19:17:48 <AnMaster> you will need 2^32 * 2^32 * 4 (assuming sizeof(fungeCell) == 4) for each sector
19:17:51 <AnMaster> wait no
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:19:02 <AnMaster> not the static one?
19:19:17 <psygnisfive> hello
19:19:43 <AnMaster> psygnisfive, hi
19:21:08 <MikeRiley> well,,,,not 100% positive,,,,need to study the code a bit more...
19:21:15 <MikeRiley> it is kinda convoluted...
19:21:51 <Deewiant> :-D
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:30 <AnMaster> MikeRiley, right
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:10 <AnMaster> Deewiant, ah
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:33 <AnMaster> where "type" means "cat"
19:23:37 <Deewiant> :-D
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:13 <AnMaster> I do see that
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:40 <AnMaster> it is for stuff like that
19:24:43 <AnMaster> assumes as POSIX OS
19:24:45 <Deewiant> and I presume it assumes POSIX?
19:24:46 <Deewiant> yeah...
19:24:49 <Deewiant> so, not portable. :-)
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:25:49 <AnMaster> got some sort of index?
19:25:58 <MikeRiley> there is a row index....
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:24 <MikeRiley> there is a search involved....
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:15 <MikeRiley> it expands it...
19:27:24 <AnMaster> moving all items upwards?
19:27:29 <MikeRiley> yep....
19:27:33 <AnMaster> well... intersting
19:27:33 <MikeRiley> so can be quite slow....
19:27:42 <MikeRiley> i really should rewrite that....
19:27:57 <AnMaster> I think cfunge's is "reasonable speed in all cases but not extremely fast in any"
19:28:10 <Deewiant> no, that's CCBI. ;-)
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:25 <Deewiant> mine is slower. :-P
19:28:28 <AnMaster> I profiled cfunge
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:28:50 <MikeRiley> i bet!!!!
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:15 <AnMaster> Deewiant, bash slower than D
19:29:16 <AnMaster> even
19:29:17 <AnMaster> ;P
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:28 <Deewiant> see ya
19:29:30 <AnMaster> wrote an irc bot in bash
19:29:33 <MikeRiley> me too actually!!
19:29:37 <AnMaster> (http://envbot.org)
19:29:44 <AnMaster> and I wrote a brainfuck interpreter in bash
19:29:46 <MikeRiley> see you later...
19:29:49 <AnMaster> MikeRiley, cya
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:09 <AnMaster> this will be yet another one
19:32:14 <AnMaster> for the 3k4 one
19:32:26 <Deewiant> heh
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:04 <AnMaster> wait not really useless
19:33:06 <Deewiant> so default to the spec, but allow useful behaviour as well :-P
19:33:11 <AnMaster> you can still do 0k3
19:33:13 <Deewiant> no, of course not completely
19:33:14 <AnMaster> and have that work
19:33:16 <Deewiant> and 2k4
19:33:23 <AnMaster> 1k4
19:33:32 <AnMaster> however you can never get just one iteration?
19:33:36 <Deewiant> no :-(
19:33:38 <AnMaster> that seems strange
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:34:25 <Deewiant> for instance, 1k]
19:34:43 <AnMaster> will turn 180 degrees...
19:34:56 <AnMaster> as in r
19:35:00 <AnMaster> Deewiant, right?
19:35:01 <Deewiant> no, I'm talking about the 108 way
19:35:03 <Deewiant> CCBI's way
19:35:05 <AnMaster> ah
19:35:06 <Deewiant> turn 90 degrees at k
19:35:06 <AnMaster> right
19:35:08 <AnMaster> well yes
19:35:11 <Deewiant> but
19:35:17 <AnMaster> ?
19:35:21 <Deewiant> I think it'd be simpler if you said that after k, the IP always moves
19:35:22 <Deewiant> so
19:35:27 <Deewiant> 1k]
19:35:30 <Deewiant> 1
19:35:31 <Deewiant> 2
19:35:34 <Deewiant> hits the 2
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:22 <AnMaster> hm...
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:09 <Deewiant> :-)
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:37:45 <AnMaster> ...
19:37:51 <Deewiant> :-D
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:22 <Deewiant> your lines are too long :-P
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:50 <AnMaster> hrrm
19:39:51 <Deewiant> looks like it's pretty much copied from CCBI :-P
19:39:59 <Deewiant> ip->position = posinstr;
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:16 <Deewiant> heh
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:40:49 <Deewiant> yep, I know
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:27 <Deewiant> it is?
19:42:46 <AnMaster> well all that mixin! stuff
19:42:48 <AnMaster> and such
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:25 <AnMaster> totally different
19:43:26 <Deewiant> can't be bothered, whatever
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:15 <Deewiant> ah
19:44:17 <AnMaster> which I later can do a binary search in
19:44:23 <AnMaster> using the fingerprint
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:44:38 <AnMaster> :P
19:44:47 <AnMaster> actually not a binary search
19:44:54 <AnMaster> I just do a simplified search
19:45:20 <AnMaster> returning false if I reach an index that is higher than the wanted one
19:45:26 <AnMaster> err not index
19:45:32 <AnMaster> but entry
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:36 <AnMaster> return false;
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:13 <AnMaster> Deewiant, any questions?
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:10 <Deewiant> looks more complex than mine
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
19:50:20 <AnMaster> from the same spec files
19:50:21 <AnMaster> brb
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:03:34 <AnMaster> for 108
20:03:49 <Deewiant> s/move/moves/
20:03:53 <AnMaster> right
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:42 <AnMaster> are the two lines before
20:04:43 <AnMaster> hm
20:04:47 <AnMaster> ah right
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:01 <Deewiant> as an example
20:05:05 <AnMaster> then you move away from k
20:05:16 <Deewiant> yeah, doesn't matter.
20:05:18 <Deewiant> no special cases.
20:05:22 <Deewiant> execute and move.
20:05:26 <AnMaster> right
20:05:39 <AnMaster> Deewiant, exception: spaces and ;;
20:05:44 <AnMaster> it should reach past the spaces
20:05:55 <AnMaster> and any ;...;
20:06:02 <AnMaster> 3k ; ; ;; ; f
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:06:32 <AnMaster> or pastebin it
20:06:39 <AnMaster> yeah I think I pastebinned it
20:06:39 <Deewiant> don't think so
20:06:43 <Deewiant> well whatever
20:06:48 <Deewiant> you did mention it though
20:06:50 <AnMaster> Deewiant, I can forward it
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:09 <Deewiant> AnMaster: at my homepage
20:07:13 <AnMaster> hah ok
20:07:33 <Deewiant> http://iki.fi/deewiant/files/misc/public.key
20:07:35 <AnMaster> Deewiant, the FRA law made me paranoid
20:07:38 <AnMaster> I guess you seen it
20:07:39 <Deewiant> good :-)
20:07:43 <AnMaster> Deewiant, at some key server?
20:07:47 <Deewiant> no
20:07:50 <AnMaster> hrrm ok
20:07:51 <Deewiant> I'm too paranoid ;-)
20:07:58 <AnMaster> harhar
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:08:37 <AnMaster> two?
20:08:47 <Deewiant> meh
20:08:49 <Deewiant> one should be expired
20:08:53 <Deewiant> guess I botched the export
20:08:55 <AnMaster> k
20:09:13 <Deewiant> the iki one should be recent
20:09:37 <AnMaster> Deewiant, what is the fingerprint?
20:09:41 <Deewiant> yeah, B7... is revoked
20:09:51 <AnMaster> is it "4517 8F90 84CF C529 7382 2B84 B9D3 F95E DEDF 0F79"?
20:10:04 <Deewiant> yeah
20:10:13 <AnMaster> good :)
20:11:27 <oerjan> programmers are scary people. all fixated on execution.
20:12:34 -!- MikeRiley has joined.
20:12:46 <MikeRiley> you here deewiant??
20:12:48 <Deewiant> AnMaster: uploaded a fixed file which should have only the latter key
20:12:50 <Deewiant> sure
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:20 <MikeRiley> nope....
20:13:27 <MikeRiley> or at least, not necessarily...
20:13:27 <Deewiant> :-P
20:13:35 <AnMaster> Deewiant, forwarded
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:27 <Deewiant> ah yeah, right
20:14:28 <Deewiant> that's why
20:14:36 <Deewiant> that's what CCBI does, too
20:14:38 <MikeRiley> i knew there had to be a reason!!! eheheheeheheh
20:14:42 <Deewiant> MikeRiley: and yeah, so
20:14:49 <Deewiant> you admit that it's a bug that it will rerun i and o, for instance? :-)
20:15:07 <AnMaster> or =
20:15:10 <Deewiant> or & and ~, which are worse :-P
20:15:16 <AnMaster> yes indeed they are
20:15:23 <AnMaster> but you need to buffer all input then
20:15:26 <AnMaster> even when you used it
20:15:30 <AnMaster> Deewiant, which is crazy....
20:15:31 <MikeRiley> no, not a bug for i and o,,,
20:15:38 <AnMaster> MikeRiley, no?
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:18 <AnMaster> yes it is
20:16:23 <MikeRiley> in the general case, that is true...
20:16:28 <AnMaster> you need to store the files
20:16:35 <AnMaster> as in store a copy of them
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:45 <MikeRiley> then they would not work...
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:02 <AnMaster> haha
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:18 <AnMaster> & and ~
20:17:20 <AnMaster> as Deewiant said
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:17:35 <AnMaster> say, BASE
20:17:37 <AnMaster> or whatever
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:09 <AnMaster> in the rerun
20:18:13 <MikeRiley> i can accept that...
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:18:32 <AnMaster> MikeRiley, say, HRTI
20:18:36 <AnMaster> yeah
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:18 <AnMaster> :P
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:17 <MikeRiley> what about output from BASE??
20:20:20 <Deewiant> and that it's allowed for an interpreter to reprint , and . and so forth
20:20:26 <Deewiant> AnMaster: undefined.
20:20:27 <AnMaster> it shouldn't be printed again at next run
20:20:39 <Deewiant> or no, what, wait
20:20:41 <Deewiant> they go to stdout
20:20:42 <Deewiant> so defined.
20:20:44 <Deewiant> :-P
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:20:58 <AnMaster> MikeRiley, indeed
20:21:01 <Deewiant> MikeRiley: I'd add something about IO in the spec if I were you
20:21:11 <AnMaster> psygnisfive, eh?
20:21:11 <MikeRiley> i agree and will do that...
20:21:25 <Deewiant> i.e. any file IO or input in general is undefined in an entire TRDS program
20:21:30 <Deewiant> or rather
20:21:36 <Deewiant> if you ever jump backwards in time
20:21:38 <MikeRiley> i woud say to time jumped ips....
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:07 <psygnisfive> If L is some language over S, then L ⊆ S*
20:22:09 <AnMaster> psygnisfive, ????????
20:22:19 <AnMaster> oh god
20:22:24 <AnMaster> psygnisfive, you lost me
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:27 <psygnisfive> :P
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:22:44 <AnMaster> psygnisfive, no I don't
20:22:45 <psygnisfive> ok let me make it more familiar to you
20:22:48 <psygnisfive> suppose you have C, right
20:22:51 <AnMaster> yes
20:22:53 <AnMaster> I got C
20:22:54 <AnMaster> :P
20:23:05 <psygnisfive> and C has a bunch of keywords (int, return, if, etc)
20:23:08 <psygnisfive> and it has a bunch of symbols
20:23:08 <AnMaster> aye
20:23:14 <psygnisfive> (, {, =, &, etc
20:23:20 <AnMaster> yes, are you writing a lexer?
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:20 <psygnisfive> call that set of symbols S
20:24:22 -!- ais523 has joined.
20:24:23 <AnMaster> MikeRiley, guess why I decided to not implement TRDS?
20:24:32 <Deewiant> because you're lazy. :-P
20:24:37 <psygnisfive> S* is just the kleene star over that
20:24:40 <AnMaster> psygnisfive, right
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:51 <psygnisfive> yes?
20:24:58 <AnMaster> psygnisfive, but wtf is a "kleene star"?
20:24:59 <psygnisfive> so IF * RETURN > > || (
20:25:03 <Deewiant> ais523: no, he's lazy. :-)
20:25:08 <AnMaster> ais523, hi!!!!!!!!!!!!!
20:25:11 <psygnisfive> kleene star is just like the regex *
20:25:14 <ais523> hi AnMaster
20:25:18 <AnMaster> ais523, and the other one!
20:25:19 <ais523> oh, and hi tusho too
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 <tusho> FUCKING HELL
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:33 <tusho> you got me ais523
20:25:37 <psygnisfive> ok anmaster?
20:25:38 <AnMaster> psygnisfive, hm ok
20:25:52 <AnMaster> ais523, why have you been away so long?
20:25:53 <psygnisfive> so IF * RETURN > > || ( is in S*
20:26:04 <AnMaster> psygnisfive, um a sec, too many convos at the same time
20:26:06 <AnMaster> let me read up
20:26:12 <psygnisfive> because its any number of symbols in S* put together into a string.
20:26:29 <psygnisfive> (wait)
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:26:54 <AnMaster> ais523, oops
20:27:05 <AnMaster> ais523, hope that is fixed now :)
20:27:11 <ais523> I'm not sure
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:26 <AnMaster> ais523, oh I see
20:27:33 <oerjan> olsner: >=> i think
20:27:33 <AnMaster> ais523, but with your own computer I hope?
20:27:41 <ais523> hopefully
20:27:42 <oerjan> (the new one)
20:27:49 <ais523> although it's a pain to use a laptop here
20:27:55 <AnMaster> ais523, why is that?
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:00 <AnMaster> ais523, no wlan?
20:28:02 <ais523> AnMaster: only a few desks to put it on
20:28:07 <AnMaster> ais523, ah...
20:28:08 <ais523> there is wlan, pretty good wlan at that
20:28:11 <AnMaster> ais523, nice
20:28:14 <ais523> just lack of space to place a laptop
20:28:21 <AnMaster> ais523, well is it crowded?
20:28:36 <psygnisfive> >|
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:51 <ais523> pretty much
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:16 <oerjan> olsner: yeah
20:29:18 <psygnisfive> how'd i lose you
20:29:25 <AnMaster> ais523, wlan isn't restricted by walls
20:29:32 <AnMaster> not much anyway
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:14 <AnMaster> ais523, oh right :/
20:30:17 <ais523> and I don't have access to the other floors
20:30:22 <AnMaster> ais523, why not?
20:30:26 <psygnisfive> who here knows anything about formal languages?
20:30:29 <psygnisfive> raise your hands
20:30:30 <ais523> it's used by a department I don't belong to
20:30:36 * ais523 raises their hand
20:30:37 <AnMaster> ah
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:16 * oerjan raises his hand
20:31:17 <AnMaster> ais523, 2) RC/Funge author found too
20:31:20 <psygnisfive> vote! >O
20:31:21 <ais523> wow
20:31:21 <AnMaster> ais523, MikeRiley in here
20:31:27 <AnMaster> ais523, he want to fix stuff
20:31:35 <AnMaster> in his RC/Funge
20:31:46 <ais523> that is news, it reminds me of when I found that CLC-INTERCAL and J-INTERCAL both existed
20:31:48 <AnMaster> ais523, 3k4 will push four 4
20:31:55 <psygnisfive> lame.
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:11 <ais523> oh
20:32:12 <Deewiant> ais523: 1) being a consequence of 2)
20:32:13 <ais523> wait
20:32:14 <AnMaster> which we all thought it did
20:32:16 <ais523> I misread
20:32:25 <AnMaster> and what Deewiant said
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:32:57 <ais523> Deewiant: #k4
20:33:04 <ais523> or is that cheating?
20:33:07 <Deewiant> yes
20:33:13 <Deewiant> because the idea is you'd have a variable
20:33:15 <AnMaster> it's cheating..
20:33:19 <Deewiant> and now you'd have to check whether it's 1
20:33:31 <Deewiant> or whatever
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:38 <ais523> what about 4k[?
20:34:47 <ais523> or 22kk4?
20:34:50 <MikeRiley> 1k^ should go up from the k....
20:34:51 <Deewiant> 1k^ is the same as 2k^ is the same as 99**k^
20:34:51 <AnMaster> ais523, 1k[ turns 180 degrees
20:34:56 <AnMaster> ARGH NOT THE DOUBLE k!
20:35:00 <MikeRiley> 4k[ will end up turning left...
20:35:00 <AnMaster> I HATE THAT ONE
20:35:03 <Deewiant> oh yeah, double k
20:35:06 <Deewiant> MikeRiley: considered that?
20:35:22 <Deewiant> MikeRiley: did you read the end of my mail yet, by the way?
20:35:26 <ais523> what about 4k#
20:35:27 <MikeRiley> which one??
20:35:27 <Deewiant> where I forwarded that little spiel on k
20:35:32 <Deewiant> at the end
20:35:37 <MikeRiley> 4k# is a bit harder to define...
20:35:43 <MikeRiley> yes...i did get that...
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:35:58 <MikeRiley> that is what i would expect....
20:36:00 <ais523> AnMaster: how can it?
20:36:03 <Deewiant> it won't
20:36:04 <Deewiant> 4 times
20:36:07 <AnMaster> ais523, oh wait it won't
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:20 <AnMaster> ais523, sorry typo
20:36:22 <Deewiant> right?
20:36:23 <MikeRiley> if you had 4k#12345 the next instruction should be the 4....
20:36:26 <AnMaster> Deewiant, right
20:36:30 <AnMaster> so it will be 5 anyway
20:36:32 <AnMaster> right?
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:36:56 <AnMaster> err
20:36:59 <AnMaster> 22kk4
20:37:01 <AnMaster> I meant that
20:37:07 <MikeRiley> 22k4 will give you 3 4s on the stack...
20:37:14 <MikeRiley> with a 2 below it...
20:37:16 <AnMaster> MikeRiley, see what I said
20:37:18 <AnMaster> typo
20:37:22 <AnMaster> I meant 22kk4
20:37:33 <MikeRiley> 22kk4 hurts my head!!! eheheheheheeh
20:37:41 <ais523> it hurts everyone's head, I think
20:37:41 <AnMaster> MikeRiley, it does indeed
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:09 <AnMaster> MikeRiley, ^
20:38:13 <ais523> and took huge pains trying to sort it out
20:38:19 <Deewiant> AnMaster: may reflect? O_O
20:38:23 <AnMaster> Deewiant, yes
20:38:23 <Deewiant> none of that crap
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:45 <Deewiant> ais523: what's that?
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:39:59 <AnMaster> 1) fetch next instruction k
20:40:05 <AnMaster> 2) execute it at the first k
20:40:18 <Deewiant> ais523: heh, nice
20:40:19 <AnMaster> 3) this execution will now fetch the next instruction, which will be k
20:40:22 <AnMaster> 4) ARGH!
20:40:27 <AnMaster> Deewiant, ^
20:40:30 <MikeRiley> now that seems reasonable....
20:40:31 <Deewiant> "ARGH"?
20:40:41 <Deewiant> pop two 2s
20:40:43 <Deewiant> stack is [2,2]
20:40:44 <Deewiant> hit k
20:40:49 <MikeRiley> since the k calls for finding the next instruction in the path of the ip
20:40:50 <Deewiant> execute the next k
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:18 <AnMaster> which is k
20:41:21 <AnMaster> Deewiant, see what I mean?
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:41:40 <AnMaster> which makes it insane
20:41:49 <AnMaster> it kind of is multichar
20:41:53 <AnMaster> when you think about it
20:42:01 <MikeRiley> it is and it is not...
20:42:14 <MikeRiley> it is in that it uses the next character to define what it will do...
20:42:16 <ais523> AnMaster: '
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:22 <ais523> and arguably #
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:42 <AnMaster> Deewiant, yes...
20:42:55 <AnMaster> Deewiant, so please suggest a sane way to solve nested k
20:42:57 <AnMaster> and what about:
20:42:58 <ais523> AnMaster: well, what does 3k'abc do?
20:43:03 <AnMaster> 333333kkk#
20:43:10 <AnMaster> tell me what the heck that should do
20:43:20 <AnMaster> ais523, good question
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:43:50 <AnMaster> Deewiant, hm true
20:44:07 <AnMaster> Deewiant, but it should execute all at the first k?
20:44:08 <AnMaster> or?
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:35 <AnMaster> oh god
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:45:48 <MikeRiley> no 1k] will not turn 180 degrees
20:45:51 <MikeRiley> it will turn 90
20:46:04 <AnMaster> hm?
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:18 <Deewiant> eh?
20:46:22 <MikeRiley> yes
20:46:22 <ais523> because the command it's "looking at" changes
20:46:29 <ais523> because the direction of processing changes
20:46:32 <Deewiant> oh, right
20:46:33 <AnMaster> ais523, ^><v doesn't move
20:46:36 <MikeRiley> the command k executes is in the path of the IP..
20:46:37 <ais523> AnMaster: I know
20:46:37 <AnMaster> they just changes direction
20:46:41 <Deewiant> or no, wait
20:46:41 <ais523> but they change what the k refers to
20:46:43 <AnMaster> oh wait I see what you mean
20:46:45 <Deewiant> ais523: you need two 2s there
20:46:49 <ais523> Deewiant: no I don't
20:46:55 <Deewiant> 2#^k<
20:46:58 <Deewiant> jump to the k
20:47:00 <Deewiant> it pops the 2
20:47:05 <Deewiant> hits the < twice
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 <Deewiant> no, that doesn't make sense
20:47:30 <AnMaster> Deewiant, he says k looks ahead at each iteration
20:47:36 <Deewiant> ah, hmm
20:47:43 <Deewiant> I don't think that's what the spec says
20:47:48 <MikeRiley> yes it does
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:19 <MikeRiley> that is from the spec
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:31 <ais523> sorry
20:48:34 <ais523> Deewiant: agreed
20:48:34 <Deewiant> :-)
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:06 <AnMaster> Deewiant, it does to me
20:49:11 <AnMaster> as the specs doesn't say it
20:49:17 <AnMaster> as you pointed out above
20:49:20 <AnMaster> consider order
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:26 <AnMaster> Deewiant, it will be slower
20:49:26 <Deewiant> 2k]
20:49:27 <Deewiant> v
20:49:32 <Deewiant> oh noes, teh slowness
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:56 <AnMaster> yes what Deewiant said
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:20 <AnMaster> not...
20:50:31 <AnMaster> whatever is after the 2
20:50:36 <AnMaster> see what I mean?
20:50:49 <ais523> AnMaster: yes
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:13 <AnMaster> Deewiant, um
20:52:15 <AnMaster> what?
20:52:24 <Deewiant> k#
20:52:26 <Deewiant> like j
20:52:26 <AnMaster> yes
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:52:41 <MikeRiley> seems to me it would be like j...
20:52:42 <AnMaster> err
20:52:43 <AnMaster> from the k
20:52:45 <AnMaster> not
20:52:49 <AnMaster> not from the #
20:53:01 <Deewiant> like said, unless you think about it too deeply
20:53:09 <AnMaster> Deewiant, and then you mean?
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:53:49 <AnMaster> yes it is
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:20 <AnMaster> and a few more
20:55:25 <Deewiant> did you write a proper TURT test, then?
20:55:32 <AnMaster> Deewiant, not "full" no
20:55:33 <ais523> Deewiant: planning to add IFFI to Mycology?
20:55:39 <Deewiant> ais523: probably not. :-)
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:15 <ais523> I have one already
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 <AnMaster> ais523, negative arguments?
20:56:50 <ais523> that doesn't mean they don't exist
20:56:52 <AnMaster> that's a good one
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:57:55 <ais523> yes, I suppose so
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:14 <AnMaster> or whatever
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:33 <AnMaster> yes that too
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:18 <ais523> so an error
20:59:25 <AnMaster> "jumping to negative funge-space" <-- why does that make me think of treknobabel?
20:59:28 <AnMaster> just why
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:11 <AnMaster> haha
21:00:16 <ais523> AnMaster: I do, I actually have code to simulate the 32-bit wraparound
21:00:23 <AnMaster> ais523, um what?
21:00:24 <oerjan> http://tvtropes.org/pmwiki/pmwiki.php/Main/ReversePolarity
21:00:33 <oerjan> (standard warning applies)
21:00:40 <AnMaster> oerjan, what warning?
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:44 <AnMaster> ais523, ah...
21:01:59 <AnMaster> MikeRiley, but is that really useful?
21:02:04 <MikeRiley> it can be....
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:36 <MikeRiley> yeah,,,,,
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:03:25 <AnMaster> oerjan, ah works now
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:31:26 <psygnisfive> what?
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.
21:52:01 <AnMaster> night
21:52:04 <AnMaster> ais523, ^
21:52:08 <ais523> night AnMaster
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:44:55 <ihope> Ello.
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:03 <tusho> but nahhh
22:51:04 <tusho> i doubt it
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:04 <RodgerTheGreat> can you tell us more about how you got it?
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:56:22 <RodgerTheGreat> context can lead us in the right direction
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:18 <RodgerTheGreat> plus there isn't the right symbol distribution
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:57:40 <RodgerTheGreat> mmm
22:59:18 <pikhq> Seems like it would require some cryptanalysis.
22:59:20 <psygnisfive> is there some sort of high-level BF?
22:59:34 <pikhq> psygnisfive: :D
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:33 <pikhq> Oh, that's all?
23:00:45 <psygnisfive> well its just a start :p
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:05 <psygnisfive> what kinds are there?
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:05 <tusho> it looks like it
23:04:22 <RodgerTheGreat> psygnisfive: PEBBLe is a very powerful macro system for BF that pikhq developed
23:04:28 <psygnisfive> ahh
23:04:33 <psygnisfive> BF macros
23:04:35 <psygnisfive> lol
23:04:35 <psygnisfive> :D
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:16 <RodgerTheGreat> ...
23:06:25 <tusho> and netsplits
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:18 <psygnisfive> pikhq: show me pebble
23:07:19 <psygnisfive> :O
23:07:26 <RodgerTheGreat> Pikhq's Esoteric Brainfuck Bastard Language?
23:07:27 <tusho> RodgerTheGreat: portable esoteric brainfuck based language, eh?
23:07:34 <tusho> it's sad that i know that :)
23:07:43 <RodgerTheGreat> I was fairly close
23:07:45 <tusho> psygnisfive: it has tcl's syntax
23:07:53 <psygnisfive> i wanna see how it works
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:31 <psygnisfive> interesting
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:09:55 <psygnisfive> so that instead of writing this:
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:07 <psygnisfive> you could write this:
23:10:10 <tusho> { words | bold }.character[1]
23:10:13 <tusho> er
23:10:16 <tusho> with an == in there somewhere
23:10:16 <psygnisfive> "{ words | style == bold }.character[1]"
23:10:18 <tusho> yeah
23:10:25 <psygnisfive> what i find most interesting about this
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:39 <psygnisfive> no
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:03 <tusho> well yeah
23:11:06 <tusho> kind of like an array programming language
23:11:09 <tusho> implicit maps
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:02 <psygnisfive> but still
23:12:04 <psygnisfive> its cool
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:12:32 <tusho> whatevr :)
23:13:00 <psygnisfive> APL is so painful to read
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:02 <psygnisfive> i mean, seriously:
23:14:03 <tusho> apl never really was THAT mainstream
23:14:03 <psygnisfive> X[⍋X+.≠' ';]
23:14:06 -!- juokaz has quit (Remote closed the connection).
23:14:18 <tusho> ⍋ christmas tree
23:14:43 <tusho> welp
23:14:45 <tusho> puzzle guy is gone
23:14:52 <psygnisfive> i mean, i can see standard stuff like set notation junk
23:14:53 <psygnisfive> etc
23:14:59 <psygnisfive> the rest of it tho?
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:46 <psygnisfive> i just wanna see a spec :(
23:18:56 <pikhq> It's in the tarball.
23:19:01 <psygnisfive> ok :D
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:19:54 <psygnisfive> (each Set).to_string
23:19:56 <psygnisfive> or something
23:20:12 <tusho> psygnisfive: { numbers | odd }.sum
23:20:16 <tusho> yummy
23:20:19 <tusho> and as for the mapping thing
23:20:24 <psygnisfive> no that doesnt make sense
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:43 <tusho> yes
23:20:45 <psygnisfive> ok.
23:20:48 <tusho> the : is what specifies 'over members'
23:20:50 <psygnisfive> ok.
23:21:03 <psygnisfive> well, in my quantifier language im going to handle it differently
23:21:09 <psygnisfive> using quantifiers.
23:21:17 <tusho> sure
23:21:18 <psygnisfive> :p
23:21:27 <psygnisfive> i like this, we need to think of more interesting things to do
23:21:38 <tusho> windows:show
23:21:48 * tusho is just going to spurt out random code samples until the language forms in his head
23:21:54 <psygnisfive> XD
23:22:35 <tusho> in fact psygnisfive
23:22:37 <tusho> i could just do
23:22:43 <tusho> sum { numbers | odd }
23:22:44 <tusho> vs
23:22:48 <tusho> { numers | odd }.succ
23:22:57 <tusho> cleaner-looking
23:23:01 * pikhq is just going to shove PEBBLE down psygnisfive's throat
23:23:04 <psygnisfive> i prefer .:
23:23:15 <tusho> psygnisfive: mm, i think mine could have merits though
23:23:16 <tusho> we'll see
23:23:22 <tusho> i wish that paper had more examples of it
23:23:23 <psygnisfive> because i like methods
23:24:05 <psygnisfive> methods are sort of like monads
23:24:09 <psygnisfive> well
23:24:11 <psygnisfive> the dot is.
23:24:25 <psygnisfive> the dot is like haskell's >>=
23:24:29 <tusho> object orientation is reverse CPS
23:24:38 <tusho> think about it
23:24:44 <psygnisfive> and i rather like . thinking
23:24:51 <psygnisfive> do this then do this to that then do this to that
23:24:53 <psygnisfive> and so on
23:24:56 <tusho> yeah
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:44 <psygnisfive> e.g. x f instead of f x
23:25:49 <tusho> psygnisfive: concatenative
23:25:49 <tusho> :P
23:25:53 <psygnisfive> yeah but
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:02 <psygnisfive> if you want
23:26:03 <tusho> turn sout it kinda sucks.
23:26:11 <tusho> psygnisfive:
23:26:14 <tusho> a . b = b a
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:26:26 <tusho> fear the evil
23:27:02 <psygnisfive> maybe : could be that syntax to counterpoint .
23:27:21 <psygnisfive> 5:succ:abs == abs (succ 5)
23:27:35 <tusho> hmm, i thought of a good alt. to :
23:27:35 <tusho> ->
23:27:38 <tusho> because it digs in
23:27:41 <psygnisfive> eh
23:27:44 <tusho> { words | style == bold }->character[1]
23:27:46 <psygnisfive> very perl/php
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:17 <psygnisfive> blahblahblah->to_string()
23:28:22 <tusho> yeah, well, whatever they wanna do :P
23:28:26 <psygnisfive> and ive always hated it
23:28:30 <tusho> but c has it, and i think it's a good visual metaphor -for this use-
23:28:38 <tusho> hmm
23:28:47 <tusho> { { words | bold } italic } <-- don't like this
23:28:49 <tusho> how about
23:28:53 <tusho> words.{ bold }
23:29:10 <tusho> words.{bold}.{italic}->character[1]
23:29:32 <psygnisfive> i dont see what the first would mean
23:29:36 <tusho> err
23:29:41 <psygnisfive> {{ words | bold } italic ]
23:29:42 <tusho> {{words|bold}|italic}
23:29:42 <psygnisfive> ??
23:29:47 <tusho> forgot a |
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:11 <psygnisfive> oh, yeah, i guess.
23:30:17 <tusho> { { words | bold } | italic } = bold italic words
23:30:24 <psygnisfive> you could just do
23:30:26 <tusho> ofc you can do bold && italic
23:30:27 <tusho> but what the heck
23:30:29 <psygnisfive> { words | bold and italic }
23:30:43 <psygnisfive> ok i have to make dinner
23:30:44 <psygnisfive> afk
23:30:45 <psygnisfive> bye
23:30:45 <tusho> words.filter{ bold && italic }->character[1]
23:30:46 <tusho> :PP
23:30:48 <tusho> bye
23:30:49 <tusho> *:P
23:30:50 -!- Corun has joined.
23:34:20 <tusho>
23:34:22 <tusho>
23:53:33 <ihope> Bye?
23:53:55 <ihope> Bye, psygnisfive.
←2008-07-22 2008-07-23 2008-07-24→ ↑2008 ↑all