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 :) 00:28:17 (ask CakeProphet 'sup?) 00:28:45 CakeProphet reply to: psygnisfive with: 'nm la' 00:29:21 does SmallTalk allow that? 00:29:26 reply to:? 00:29:28 with a space? 00:30:42 er 00:30:47 no it does not. 00:30:58 is this some other language? 00:30:58 CakeProphet replyto: psygnisfive with: 'nm la' 00:31:01 my bad. 00:31:02 :P 00:31:10 brb actually 00:31:23 (set-status 'brb) 00:31:29 -!- psygnisfive has changed nick to psygnisfive[brb]. 00:35:42 -!- olsner has quit ("Leaving"). 00:44:10 (set-status 'back) 00:44:16 -!- psygnisfive[brb] has changed nick to psygnisfive. 00:44:42 sup bitches 00:45:49 o.o 00:49:28 o.o 00:49:49 (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 I like IOs message syntax more so than smalltalks. 00:50:22 iomessage syntax? 00:50:36 though it doesn't allow you to have things like replyto: and then replyto:with: 00:50:40 it's just 00:50:48 object message (args...) 00:50:54 ah 00:51:09 augur replytowith cakeprophet "hello" 00:51:10 ? 00:51:11 that is the syntax for like everything... 00:51:19 non-alphanumeric characters don't require a space 00:51:25 thus 2+2 and such 00:51:35 yeah 00:51:50 and all the arguments a lazily evaluated 00:52:18 i really wanna fuck around with a language that has nat-lang like prepositions 00:52:19 so this makes sense: if(x==2, "Hello, World!" println) 00:52:59 it should instead have like 00:53:11 x == 2 implies "Hello, World!" println 00:53:29 where implies is a method of booleans 00:53:51 ok im off again 00:53:55 augur setstatus "away" 00:53:58 .. 00:54:00 psygnisfive* 00:54:00 :P 00:54:04 -!- psygnisfive has changed nick to psygnisfive[away. 00:56:52 that's pretty much how smalltalk does conditionals 01:00:11 io, to me, looks more uniform than lisp. 01:00:48 because lisp has macros that pretty much make their own rules. 01:07:11 ahahahaha 01:07:11 well im not gone yet 01:07:15 I have 01:07:20 -!- psygnisfive[away has changed nick to psygnisfive. 01:07:23 100 workspaces 01:07:43 why do lisp macros look less uniform?? 01:08:01 they don't look less uniform 01:08:05 they are less uniform 01:08:10 there's functions... and then there's macros. 01:08:20 but they look exactly the same 01:08:20 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 01:08:28 macros might as well just be lazy evaluation. 01:08:34 ...they are. 01:08:38 theyre not but they might as well be 01:08:55 i dont see why theyre not uniform tho 01:08:56 -!- Judofyr has joined. 01:09:25 psygnisfive: ...I am saying that lisp is not uniform. 01:09:30 not that it... matters. 01:09:34 i dont see why :O 01:09:35 but ok 01:09:35 but that's what it claims to be. 01:09:48 it has functions and macros... two seperate things. 01:09:53 so? 01:10:25 ...it lumps both of them together with the same syntax and claims that everything is computed via the same inner workings. 01:10:37 it's not really a... problem. 01:10:40 because lots of languages do this. 01:10:51 ive never heard anyone claim that everything is computed via the same parts of eval/apply 01:11:18 ...nevermind. 01:11:22 :P 01:11:30 ok. 01:12:30 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 *can't. 01:12:50 does it matter? 01:13:04 ive never used macros so i cant really know one way or another 01:13:24 ...it doesn't matter usually, because if you're using a function/macro you pretty much already know what to expect. 01:14:13 psygnisfive: pretty much all of the control flow in lisp is done with macros. 01:14:19 cond, if, loop, etc. 01:14:23 special forms, i know. 01:14:56 cond and if don't really surprise me much 01:14:58 but like 01:15:01 loop is just... weird. 01:15:04 why? 01:15:22 i dont know if i like the syntax for it in scheme but 01:17:08 ok now im off 01:17:21 kkk 01:17:21 [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 hello! :D 02:34:02 :o 02:34:06 -!- psygnisfive-away has changed nick to psygnisfive. 02:34:10 o.o 02:34:38 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 what is rootnomic 02:34:53 what is nomic in general 02:35:28 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 oh yes, that 02:35:48 Normish is the same, but proposals are executables, and if they pass a vote, they're run as root. 02:36:15 I'm sure eventually it will have politics and a stock market and a justice system and such. :-P 02:36:50 Though I haven't done anything impressive with it yet. 02:44:13 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 So far, nobody has any points. I guess that doesn't do a good job of encouraging competitive people. 02:47:45 I plan on getting a point as soon as possible. 03:08:13 ihope, what should we make our aithingy do 03:08:47 We should make it write proposals for Normish. :-P 03:08:54 no :P 03:09:00 (More likely, it would buy and sell things on Normish.) 03:09:05 Make it build more of itself. 03:09:14 oh, btw, i figured out a way to do like.. a neural network using map and reduce 03:09:24 Hmm, cool. 03:09:27 What is reduce? 03:09:36 reduce is.. 03:09:45 turn a collection into a single item 03:09:48 so like 03:10:00 well, its sometimes known as fold 03:10:24 foldl (+) [1,2,3,4,5] = 15 03:10:32 1+2+3+4+5 03:10:38 using haskell 03:10:41 mapreduce, like the internal google tool? 03:10:52 it might be doable on MapReduce but no 03:11:01 i was thinking just map and reduce. 03:11:02 but the same operations, I mean? 03:11:06 sort of 03:11:10 hm 03:11:10 MapReduce has more than just map and reduce 03:11:15 surely you guys know what maps and reduces are 03:11:41 ok here, can i do some haskell code? 03:12:10 map f [] = [] 03:12:10 map f x:xs = f x : map f xs 03:12:15 I'm no haskell coder, but I'm sure I know what you're talking about by some other name 03:12:38 a map would naturally be something like what the data structure does 03:13:20 and a reduce seems like a general term for operations like summing and concatenation 03:13:22 foldr f init [] = init 03:13:22 foldr f init x:xs = f x (foldr f init xs) 03:13:28 foldr being a right reduce 03:13:43 summation is a kind of reduce, sure 03:13:47 its a reduce with + 03:13:53 products being reduce with * 03:14:04 concatenation being reduce with ++ or whatever 03:14:12 so a reduce is the application of any commutative operator to a list of elements? 03:14:25 it doesnt have to be commutative 03:14:32 it just has to be closed 03:14:48 closed under the datatype? 03:14:52 yes 03:14:57 it has to be of type 03:14:59 alright, I'm with you 03:15:01 a->a->a 03:15:13 forall a 03:16:04 anyway 03:16:09 map here refers to applying one function to every element of a list, yes? 03:16:16 yeah 03:16:23 -!- puzzlet_ has changed nick to puzzlet. 03:16:32 map f [a,b,c,...] = [f a, f b, f c, ...] 03:16:46 googles MapReduce is not just a map then a reduce 03:17:04 really what it is is a map, then a sort-into-buckets-by-some-criteria, then a reduce 03:17:19 but MapSortReduce doesnt sound as cool 03:17:33 anyway 03:17:45 the way i figure its a map+reduce problem is 03:18:03 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 for each node (map), its a result of averaging the sum (reduce) of the weighted inputs (map) 03:19:11 so you have to map some "update" function over each neuron to produce the networks next state 03:19:45 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 ofcourse, for learning you need yet another map of some sort 03:22:10 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 and itd be fun to see if such a thing could be done 03:30:03 la 03:44:36 Eeshoo. 03:44:42 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 03:44:56 -!- Judofyr has joined. 03:48:25 eeshoo? 03:52:24 whtats eeshoo? 03:58:48 An interjection. 03:59:00 It has no denotative meaning. 04:22:45 -!- Corun has quit ("This computer has gone to sleep"). 04:41:50 i know what an interjection is, thank you :p 05:09:18 I meant that this particular interjection has no denotative meaning; many interjections do have denotative meanings to some extent. 05:09:39 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 hmm 06:54:46 AnMaster: got a mail from Mike Riley 06:55:01 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 Deewiant, nice 08:02:51 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 reduce is just a specialization of a catamorphism 10:07:55 -!- oklopol has quit (Read error: 113 (No route to host)). 10:11:25 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 hrrm Def-BF really needs a nop instruction 10:16:32 for some optimizing 10:18:48 anyway in blocks marked as "may optimise" it can now also optimize constant jumps/data pointer pushes 10:20:27 RodgerTheGreat, about stdlib, got any details of functions that will be in it? 10:20:52 I will release my stdlib code under some BSD style license btw 10:21:23 however I will most likely implement parts in optimized C for use in the compiler 10:22:37 -!- tusho has joined. 10:22:56 Deewiant, but tell tusho about it, he will like it, and think of the TRDS bit too 10:23:11 hi tusho 10:23:12 um 10:23:16 whose been using my nick 10:23:22 hi 10:23:24 what we talkin' bout 10:23:28 tusho, using your nick? 10:23:29 nah 10:23:32 no 10:23:33 hmm 10:23:34 AnMaster: got a mail from Mike Riley 10:23:34 says he's feeling like bringing RC/Funge-98 to Mycology standards 10:23:34 the thing you told Deewiant 10:23:37 to tell me 10:23:37 Deewiant, nice 10:23:37 Deewiant, what about getting a website up somewhere? 10:23:40 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 RC/Funge has the TRDS crap 10:23:57 i release software telepathically 10:24:08 up votes6 10:24:09 down votes5 10:24:10 darnit 10:24:57 anyway I don't think using duff's device will be such a problem when you compile from high level code 10:25:19 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 AnMaster: ah, hey, good point, maybe I'll finally get something to compare my implementation of TRDS against :-) 11:32:24 tusho, you said you wanted case insensitivity before? 11:32:31 groan not this again 11:32:41 tusho, does that include nomics? :P 11:32:48 * AnMaster runs 11:32:57 AnMaster: i'd point out that your proposal did not introduce case insensitivity 11:33:02 as it required actions to be in uppercase 11:33:22 (anyway, nomics are prime candidates for "Fucking With Your Mind") 11:33:30 (and case sensitivity certainly does that) 11:33:48 C is case sensitive, yet this doesn't "fuck with my mind" as you said 11:36:08 c isn't english 11:37:18 true 11:37:49 tusho, English is more like some sort of RPC language 11:37:58 not rly 11:38:07 it is used to send data and requests, not to program the "units" 11:43:11 tusho, what do you think of lemon (as in the parser generator) 11:43:18 it's cool 11:43:45 is it easier or harder than flex? 11:48:45 tusho, ever tried to mmap() an empty file? 11:48:55 you get some interesting results 11:49:06 uh 11:49:06 "Couldn't mmap() input file: Invalid argument" 11:49:08 flex is a lexer 11:49:10 lemon is a parser generator 11:49:20 tusho, ah typo. 11:49:42 anyway 11:49:43 sqlite uses lemon 11:49:48 yes I know that 12:40:56 -!- Sgeo has joined. 13:15:59 RodgerTheGreat, for function names, can you reserve some namespace for compiler provided functions? As in non-standard ones. 13:16:06 maybe the prefix __ would be good? 13:17:06 this will be needed to implement some stuff 13:26:52 -!- Sgeo has quit ("Ex-Chat"). 13:32:42 we need some sort of "external" too 13:32:49 well I'm writing a suggested extension spec 14:19:39 -!- pikhq has joined. 14:27:20 pikhq, how is a variable declared in Def-BF? 14:27:38 var: var_name value 14:27:44 So, for example: 14:27:47 pikhq, not mentioned in spec 14:27:50 var: a "ABC" 14:27:53 Yes it is. 14:27:59 pikhq, how do you later assign it? 14:28:07 as in foo=2; 14:28:10 Ah. 14:28:29 foo?0x00000002 14:28:30 pikhq, and the string "var:" is not in the standard 14:28:43 You and I must be reading different standards. 14:28:50 pikhq, care to paste yours 14:28:57 Hrm. Lemme find it. 14:29:21 Argh. Can't find it. 14:29:41 Believe me, variables are defined via var:. 14:31:21 pikhq, http://nonlogic.org/dump/text/1216819756.html 14:31:26 that is my suggestion at extension 14:31:30 plus some other stuff 14:31:39 pikhq, also how did the flex/yacc stuff work out? 14:31:46 pikhq, can you pastebin what you currently got 14:31:57 RodgerTheGreat: *prod of doom* 14:32:04 AnMaster: Real life got in the way. 14:32:12 pikhq, well just pastebin what you got then 14:32:17 it will help at least 14:32:27 It and I are on different systems. 14:32:35 again... 14:32:49 well I will leave at the same time as I did yesterday (23:00 UTC+2) 14:33:04 so if you get home at same time I will get it tomorrow. sigh 14:35:45 pikhq, any comments on suggestions at http://nonlogic.org/dump/text/1216819756.html 14:35:58 -!- Corun has joined. 14:36:21 Seem like good suggestions. 14:37:03 pikhq, anyway I'm waiting for you before I can make any progress (flex/yacc stuff is what is needed now) 14:37:27 I recommend trying the Yacc stuff on your own. 14:37:41 Hrm. Actually, I might be able to provide the Flex code now. 14:37:48 would be useful 14:39:01 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 pikhq, thanks 14:42:04 a sec 14:43:31 pikhq, hm, thanks 14:43:48 pikhq, what is yywrap for? 14:44:47 I remember there was a good reason for it. . . I just don't recall ATM. 14:45:32 Ah. It indicates to lex whether or not there is another file to process. 14:45:44 If yywrap returns 1, then lex doesn't process another file. 14:49:03 pikhq, wouldn't that be needed for import:? 14:49:24 Yes. That's just not been implemented yet. . . 15:25:02 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 back 15:47:28 ihope: the implementation's hideous usage and constraints 15:48:51 -!- puzzlet_ has joined. 15:55:14 pikhq: 'sup? 16:01:17 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 16:04:27 Yo. 16:05:08 Once again, I would like to say that Andy McKee is fucking awesome. 16:05:22 Also, new DC on 'Friday'. 16:05:50 Never mind. 16:06:16 mm 16:06:24 New DC when DC recovers from a bicycle wreck. 16:06:26 might be *a* friday 16:06:44 I'm glad you're beginning to share my rage about DC 16:06:46 He just got out of the ER yesterday, so, well, there goes Dresden Codak. 16:07:03 And he can't draw ATM. 16:07:08 Fudge monkeys. 16:07:11 riiiight 16:07:26 RodgerTheGreat: what do you mean 'riiiight'? 16:07:41 isn't it okay to not draw comics immediately after coming out of ER? 16:08:28 if you consider aaron's history with this strip you'd start to see my point here 16:09:29 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 More than that. . . 16:09:50 But definitely not the 'once a week' schedule he claimed. 16:10:04 i don't read that comic 16:10:09 so, i'll just assume you're right :p 16:10:26 The most annoying part? 16:10:30 tusho: then limit your brilliant commentary to your areas of knowledge 16:10:34 The comic is so damned good that we stick around. 16:10:44 RodgerTheGreat: sheesh; don't be so snappy 16:10:54 So we can't even just ignore it. 16:10:54 I can only take so much abuse as an audience member 16:11:19 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 so to hell with that shit. 16:11:39 tusho: not talking to you 16:11:53 "abuse as an audience member"- audience for DC 16:11:56 oh. 16:12:16 yes. 16:12:23 it just looked as a reply due to its proximity with the previous reply 16:12:29 and in relation to my response 16:12:43 -!- MikeRiley has joined. 16:13:00 hi MikeRiley 16:13:04 hello 16:17:58 RodgerTheGreat: This may sound awful, but. . . I think that DC's update schedule will be indistinguishable from normal because of this. 16:18:19 that's where the "riiiight" came from 16:18:37 and it's not awful, it's realistic 16:19:16 this dude's entire job is creating this comic, and he can barely keep a MONTHLY update schedule 16:19:30 the pages are well done, but they honestly couldn't take more than 2 or 3 days 16:19:48 One which he kept when he also had a full time job on the side. 16:19:53 once again THIS IS HIS SOLE SOURCE OF INCOME. 16:20:19 I love the comic, but *damn*. 16:20:51 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 he's exceeded the previously existing fred gallagher benchmark by a wide margin 16:25:42 Kinda sad to compare to other webcomics with an insanely good update schedule. . . 16:26:44 he has the right to be lazy you know :P 16:26:47 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 you're living proof if you still read it... 16:26:49 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 anyway, who is going to buy http://c-jump.com/ and report back to us on how fun it is 16:27:24 This in addition to the artist having a full time programming job. 16:28:22 that looks like a really boring board game, but a valiant effort 16:29:45 i think it'd be rather amusing 16:29:51 needs more duffs device, though 16:29:53 * sebbu is playing metal slug 7 EU version 16:30:31 sebbu: while typing? 16:30:43 i paused 16:30:57 -!- Sgeo has joined. 16:30:59 http://en.wikinews.org/wiki/Rhode_Island_man_arrested_with_highest_DUI_blood-alcohol_reading_ever 16:31:02 Jebus. 16:31:11 0.491 BAC. 16:31:15 -!- cherez has quit (Read error: 104 (Connection reset by peer)). 16:31:24 c-jump facts: Skiing and snowboarding is a perfect programming analogy. 16:31:31 I refuse to believe the man is alive. 16:31:41 oh, of course. How did I never see this perfect analogy before 16:31:52 Though his organs may be well-preserved. 16:31:53 * Sgeo knows little about alcohol 16:32:05 RodgerTheGreat: how about a language that co-ordinates some skiiers and snowboarders 16:32:16 to create the most impractical, slow and error-prone TC language ever 16:32:18 make it happen 16:32:30 Sgeo: A BAC of 0.400 makes most people comatose. 16:32:48 And 0.500 is basically fatal. 16:32:48 16:33:06 pikhq: 16:33:08 include references to ski-culture and oodles of nasty multithreading bits 16:33:23 RodgerTheGreat: the whole thing is nasty multithreading, really, isn't it 16:33:24 pikhq: at that point, his blood would be a quite potent alcoholic beverage 16:33:38 oh, and the optimum method of using it is when the skiiers and snowboarders are all around the world 16:33:46 and stop every now to use a laptop with irc to co-ordinate 16:33:54 if by 'optimum' you mean 'even less accurate' 16:34:16 "Sima... semaph... oh, to hell with it- just hang loose brah!" 16:34:31 hah 16:35:51 RodgerTheGreat: I think there's less alcohol in some hard liquors. . . 16:36:03 pikhq: this is correct 16:36:13 What did the guy do, chug a gallon of everclear? 16:36:22 blood with a BAC of .5 would presumably be 100-proof 16:36:28 pikhq: maybe intravenously 16:37:24 I can't imagine how that wouldn't just denature his red blood cells, halt oxygen transport and kill him instantly 16:38:02 let alone the fact that that's enough alcohol to shut down his fucking brain stem 16:38:31 Say AnMaster, do you know where ais is? 16:38:55 That's enough alcohol to *preserve* his body. 16:39:44 pikhq: physically, yes. cellularly, no. 16:39:54 Well, of course. 16:40:23 ever rubbed a lemon on some meat and then looked at it under a microscope? 16:40:31 "ever rubbed a lemon on some meat and then looked at it under a microscope?" 16:40:34 Why yes, I do it all the time! 16:43:47 tusho, nop I don't 16:44:09 RodgerTheGreat, what did you think about the extension suggestion I had? 16:44:14 http://nonlogic.org/dump/text/1216819756.html that is 16:44:18 for Def-BF 16:49:53 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 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 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 possibly RTN 16:54:34 hm 16:54:40 RodgerTheGreat, what about attributes? 16:54:49 I'm giving that thought 16:54:58 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 testing 17:33:13 -!- iano has left (?). 17:33:25 failed 17:33:55 guess so 17:46:35 -!- Corun has joined. 17:49:51 AnMaster: woo, got a copy of Cat's-Eye's Befunge diagnostics from Mike 17:49:57 turns out that 3k4 should push 4 fours on stack :-( 17:50:15 according to chris that is what it is supposed to do... 17:50:25 oh hey, you're here too 17:50:26 and cat's eye diagnostics work that way... 17:50:29 yes i am... 17:50:36 excellent :-) 17:51:02 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 probably was 17:51:53 but then, even if it pushed on the TOSS I think it'd be quite useless :-P 17:52:29 yeah, i cannot really see much use for it there either,,, 17:52:30 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 but that would at least make more sense... 17:52:41 true 17:52:58 just in case you want some zeros for some stupid reason... 17:53:03 :-) 17:53:30 -!- Dewi has quit (Read error: 110 (Connection timed out)). 17:53:39 i will modify my interpreter to work like the specs,,, 17:53:39 AnMaster: woo, got a copy of Cat's-Eye's Befunge diagnostics from Mike 17:53:39 turns out that 3k4 should push 4 fours on stack :-( 17:53:39 eh 17:53:40 what 17:53:49 that makes no sense 17:53:55 did not to me either... 17:53:58 evidently Mike asked Chris 17:54:00 but that is what chris told me long ago... 17:54:01 and that's what he said 17:54:07 and that's what the Cats-Eye diagnostics say 17:54:16 well give me a reason it is so 17:54:25 I'd say it is a bug in that "Befunge diagnostics" 17:54:25 the only exception to k was 0k was supposed to skip an instruction... 17:54:28 you don't get into all these special cases like we do currently 17:54:40 you can just do while (n--) foo(); 17:54:42 i agree,, i would prefer k to work such that you can iterate once. 17:54:45 with the exception that if (n == 0) move(); 17:55:02 no way, either entering from left or right 3k4 will push 4 fours on the stack 17:55:04 that was chris' original intent, no special cases 17:55:09 either it will push 3 fours, or 4 threes 17:55:19 yeah, that's what you'd think isn't it :-P 17:55:26 of course, the spec says nothing on the matter 17:55:28 that is what i originally thought. 17:55:37 give me a reason it doesn't act like I say it should 17:55:42 Rc/Funge-98 originally worked that way, until chris pointed out to me that it was wrong 17:55:45 apart from "bug in diagnosis tool" 17:55:49 AnMaster: the spec doesn't say that k skips over its instruction 17:55:55 ah.... 17:56:06 Deewiant, the 108 specs do say that. this will be interesting 17:56:11 exactly, it just says it executes the next instruction,,,but does not speciy that it moves the IP 17:56:12 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 but then... 17:56:31 it doesn't say that it moves past it if given 0, either. :-P 17:56:40 Deewiant, got this diagnosis thing anywhere? 17:56:47 yeah, I can put it up, sec 17:56:50 technically no, other than it says the 0k will not execute the next instruction 17:57:04 the cat's eye diagnostics are on my site now 17:57:10 http://www.elf-emulation.com/funge/ 17:57:23 ah, okay 17:57:28 AnMaster: use that then, can't be bothered :-P 17:57:29 oh MikeRiley is the funge guy 17:57:30 cooooooooool 17:57:32 that stupid k instruction has always been a problem!! eheheheheeh 17:57:40 yeah 17:57:41 yes he is the funge guy... 17:57:44 Deewiant, anything else where it disagrees with mycology? 17:57:51 AnMaster: haven't run it yet, actually 17:57:53 AnMaster: want to? 17:57:59 well will shortly 17:58:07 got some other stuff to finish 17:58:46 how does this disagnosis thing isn't on catseye.tc? 17:58:50 MikeRiley: hey, 1.0.8! What's new WRT 1.0.7 17:58:51 come comes* 17:58:56 I don't know 17:59:04 there's a link to it somewhere there but it's broken 17:59:09 and I couldn't find it anywhere 17:59:10 bug fixes mainly bewteen 1.0.7 and 1.0.8... 17:59:16 but evidently Mike had a copy squirreled away :-) 17:59:25 yep, from back when i was dealing with chris on this... 17:59:32 good thing i kept a copy!!! eheheheheeh 17:59:35 I was hoping you might 17:59:37 yep :-) 18:00:09 personally, i think k should be more properly defined,,,,i like the ability to iterate once and then skip.... 18:00:26 being able to execute an instrucion 0 or 2+ seems weird to me... 18:00:37 $ ../cfunge diagt.b98 18:00:37 thread 2 startedthread 1 startedFAIL no stackFAIL 18:00:42 I'm not sure what that means 18:00:45 nice :-D 18:00:47 let me try 18:00:54 Deewiant, anyway it is much harder to parse the output of this tool 18:00:58 than of mycology 18:01:15 sure, mycology was partly designed for it to be easy to see what's going on 18:01:19 from the output, that is 18:01:21 not the code. ;-) 18:01:21 sh: line 0: type: diag3c.b98: not found <-- not sure what the heck it is trying to do there 18:01:36 AnMaster: trying to use 'i' mayhaps 18:01:36 diag3.b98 loads diag3c as an overlay 18:01:44 Deewiant, rather = I guess 18:01:51 ah, right, sh 18:02:13 but what does it expect? that I have it chmod +x and have PATH include current dir? 18:02:18 neither is true on my system 18:02:28 okay, so diag1.b98 loops infinitely 18:02:35 Deewiant, it doesn't here 18:02:39 it should not loop indefinitely 18:02:46 it quits with: 18:02:47 iterate:!!!!!!!!!FAIL 18:02:47 or then it just takes a long time 18:02:50 Deewiant, ^ 18:02:56 tusho: would you come back if rootnomic's proposal system were replaced with something better? 18:02:56 hangs after compare:OK for me 18:02:59 real 0m0.028s 18:02:59 user 0m0.017s 18:02:59 sys 0m0.008s 18:03:02 remember, cfunge is fast 18:03:03 there is an html file in the archive, which shows the output from the diagnosics,,,what it should look like.. 18:03:08 MikeRiley, can you beat that time ;P 18:03:15 ihope: already discussed this 18:03:18 diag3.b98 outputs the @v-figure twice 18:03:24 tusho, you left in a huff? 18:03:25 MikeRiley: ignore him, he's a performance freak 18:03:29 AnMaster: no 18:03:34 i never started it 18:03:40 Deewiant, it outputs it once here 18:03:40 real 0m0.002s 18:03:40 user 0m0.000s 18:03:40 sys 0m0.000s 18:03:42 ookay, diag3b.b98 also loops infinitely 18:03:44 that is running diag1 18:03:45 OH BURN 18:03:47 MikeRiley, hm, impressive 18:03:49 :-D 18:03:54 MikeRiley: By performance freak, we mean posix_fadvise. 18:04:02 See, he doesn't actually optimize algorithms or do where it's needed. 18:04:04 diag3c outputs nothing at all. 18:04:06 MikeRiley, from diag1.b98 ? 18:04:07 * ihope tries to remember what tusho said when we discussed this before 18:04:08 He just sticks posix_ in front of every function. 18:04:13 yes from diag1 18:04:18 tusho, very fun 18:04:19 diagt gives what it gave for AnMaster. 18:04:28 excellent, looks like I have something to do this weekend. :-) 18:04:29 diagt gives me this: 18:04:30 Deewiant, any idea what is wrong then? 18:04:36 nope 18:04:42 and not gonna look in any detail right now 18:04:43 thread 2 started 18:04:43 thread 1 started 18:04:43 OK 18:04:43 Instructions Executed: 793 in 758 cycles 18:04:43 Execution time : 0.00 seconds 18:04:44 Instructions per second: inf 18:04:46 Exiting with return code = 0 18:04:47 Deewiant, well please tell me what the issues were when you find them, as I got a busy weekend 18:04:48 real 0m0.004s 18:04:50 user 0m0.000s 18:04:52 sys 0m0.004s 18:04:57 MikeRiley, a good hash library? 18:05:04 -!- Dewi has joined. 18:05:05 AnMaster: rolled his own I believe 18:05:08 a tree of some kind? 18:05:09 MikeRiley, or using static memory model stuff? 18:05:14 ah, right 18:05:15 AnMaster: how about sane optimizations 18:05:16 static memory, too 18:05:20 as opposed to your rather random attempts 18:05:21 by default 18:05:24 yes, that was on the static model. let me try it on the dynamic 18:05:36 MikeRiley, that should be more interesting :) 18:05:40 MikeRiley: there's a bug in your dynamic, unless you applied one of my patches 18:05:46 diagt on the dynamic model: 18:05:47 wraparound didn't work IIRC 18:05:49 thread 2 started 18:05:49 thread 1 started 18:05:49 OK 18:05:49 Instructions Executed: 793 in 758 cycles 18:05:49 Execution time : 0.00 seconds 18:05:50 Instructions per second: inf 18:05:52 Exiting with return code = 0 18:05:54 real 0m0.003s 18:05:56 user 0m0.000s 18:05:57 huh 18:05:58 sys 0m0.000s 18:06:00 i already applied that patch, thanks!!! 18:06:21 MikeRiley: so it was correct? I just hacked something that worked, but it could be a symptom of something else 18:06:30 it could be... 18:06:31 adding a "+1" somewhere didn't seem too smart :-P 18:06:36 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 especially where it's surrounded by two lines where there are no "+1" but which do essentially the same thing 18:06:52 nope,,,it is horrible!!! ehehehehehe i am working on cleaning it up... 18:07:14 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 I guess tusho isn't interested in rootnomic for the time being no matter what happens. 18:07:30 AnMaster: got any RC/Funge-98 fingerprint documentation you want to complain about? I can't think of any offhand 18:08:43 well... the whole FNGR thing 18:09:00 MikeRiley, cfunge can be found at http://rage.kuonet.org/~anmaster/cfunge/ 18:09:05 just fyi 18:09:48 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 i love how you say 'we' 18:10:08 tusho, yes it makes it "sound" professional ;P 18:10:20 and I don't care what you think 18:10:23 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 this is esoteric after all 18:10:25 i have found the cfunge site, want to try it... 18:10:33 cfunge 73.1 is being profiled and will be released in 5 years. 18:10:42 tusho, :D 18:11:17 what do you not understand about FNGR?? that way i know how to write the documentation better for it... 18:11:23 ah yeah, FNGR 18:11:27 it contradicts the Funge spec 18:11:30 MikeRiley, no it just breaks the Funge specs 18:11:43 how so?? 18:12:01 if it breaks something important,,,then i need to fix it,,, 18:12:15 I haven't looked as closely at your code as Deewiant has 18:12:18 so he better tell you 18:12:47 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 IIRC it assumes one fingerprint stack 18:13:16 other than the fact it changes how ( and ) work depending on what mode it is nn 18:13:19 whereas the spec has one stack for each of A-Z 18:13:34 the fingerprint stack covers all the A-Z ... 18:13:42 that doesn't work, though 18:13:45 so you can unload and load totally random and end up with one half fingerprint 18:13:45 run mycology and see ;-) 18:14:03 there might be a bug in my implementation... 18:14:16 of course, any complex enough software will have bugs 18:14:18 but FNGR should conform if it is implemented correctly... 18:14:20 I think RC/Funge-98 does fingerprints basically wrong, yes 18:14:20 cfunge certainly have 18:14:30 and I do think that FNGR can't possibly conform 18:14:36 although I can't remember the details right now. 18:14:55 this is what ccbi -p outputs on the subject: 18:14:55 The "FNGR" fingerprint is unimplemented because it is incompatible with the 18:14:55 way fingerprint loading and unloading is described in the Funge-98 18:14:55 specification. 18:14:55 In particular, the Funge-98 spec speaks of having a stack of semantics for 18:14:58 each instruction in the range ['A', 'Z'], while the "FNGR" fingerprint 18:15:00 describes having just one fingerprint stack. 18:15:03 (Incidentally, this is one reason why RC/Funge-98 fails some of the Mycology 18:15:05 tests related to the fingerprint mechanism.) 18:15:22 my implemenation could be faulty.... 18:15:29 but from my understanding of the specs... 18:15:43 loading a fingerprint overloads the A-Z instructions... 18:15:44 the specs are unclear in a lot of areas 18:15:51 which is why I'm working on Funge108 specs 18:15:54 if another fingerprint is loaded it overloads the overloaded ones... 18:15:56 the spec is rather clear on this one, though 18:15:57 to clarify the undefined 18:16:04 http://catseye.tc/projects/funge98/doc/funge98.html#Fingerprints 18:16:08 for any instruction not defined, it will fall through to the previous fingerprint... 18:16:22 yeah, essentially 18:16:25 MikeRiley, this is true, but what happens when you unload out of order? 18:16:33 i.e. 18:16:34 it should pop the top item 18:16:39 even if it isn't in the same fingerprint 18:16:41 you can load ROMA which provides M 18:16:48 and then unload MODU, which also provides M 18:16:49 depends on the mode you are using FNGR in,,, 18:16:57 even though you didn't load MODU 18:17:03 Deewiant, indeed 18:17:12 and the result should be that M is now whatever was loaded before ROMA 18:17:18 i agree,,, 18:17:29 -!- Hiato has joined. 18:17:30 or, load ROMA, load MODU, unload ROMA, now M will map to ROMA again 18:17:34 except that FNGR and change the order of the overloads... 18:18:07 MikeRiley: for instance, N 18:18:09 AnMaster: i think you should drop funge108 18:18:14 about 3-7 people use funge98 18:18:18 "Get number of fingerprints loaded" - impossible to know 18:18:19 about, uhh, 1 will use funge108 18:18:28 funge98 is ambiguous, but mycology specifies it well enough 18:18:55 but it says nowhere mycology is the only interpretation :P 18:18:59 or reference one 18:20:15 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 apart from N 18:20:43 hmmm,,,will have to think about that... 18:20:44 and what does T do? 18:20:50 "Tag stack entry n with new fingerprint fp"? 18:20:56 says nothing to me :-P 18:20:56 AnMaster: so what, all 7 people who use it know about mycology 18:21:18 the fp is the same as the hex equivalent of the name,,,, 18:21:25 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 in essence t allows you to rename a loaded fingerprint 18:21:34 ah, so that can't work either 18:21:39 since again, you can't know what fingerprints are loaded. 18:21:53 in general 18:22:03 the FNGR extension does however know what is loaded... 18:22:05 all those instructions should modify only one of the instructions A-Z 18:22:16 hmmmmmmm 18:22:16 no, it can't 18:22:23 load FNGR, load ROMA, unload NULL 18:22:33 all the ROMA instructions are gone now 18:22:38 as are some of FNGR's 18:22:42 so what is truly loaded? 18:22:46 that should not be the case 18:22:53 yes, it should :-) 18:22:57 if you have FNGR, ROMA, and NULL loaded.... 18:23:07 then unloading NULL, you will still have the semantics for FNGR and ROMA 18:23:07 no NULL loaded 18:23:09 just unloaded 18:23:23 if NULL is unloaded without being loaded first, then nothing should happen... 18:23:26 "RGNF"4("AMOR"4("LLUN"4) 18:23:28 incorrect 18:23:48 hmmmmmmm 18:23:58 MikeRiley: the spec says this explicitly 18:24:00 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 as far as using FNGR, nothing should happen, would have to look at how the specs deal with ,,,, hold on... 18:24:06 *(even if that fingerprint 18:24:07 had never been loaded before)* 18:24:21 if NULL is unloaded without being loaded first, then nothing should happen... 18:24:24 yes it should 18:24:26 hence, you can essentially forget about N and T 18:24:27 according to the spec 18:24:34 I don't see how those can possibly work 18:24:35 unloads the semantics for a given fingerprint,,,not necesarily semantics for another just because it was not loaded... 18:24:58 MikeRiley, the spec agree with Deewiant above 18:25:27 well,,,,FNGR is a feral extension afterall.... 18:25:37 to does change the nature of the interprter if you have it loaded... 18:26:16 MikeRiley, but this shouldn't affect the behaviour if it isn't loaded 18:26:39 i agree, if it is not loaded, then the spec behaviour is what should happen 18:26:48 MikeRiley, which, iirc, doesn't 18:27:10 that is certainly possible... 18:27:23 afterall, my interpreter was written to my interpretation of the specs... 18:27:30 and in some cases, the specs are not terribly clear... 18:27:39 so and arbitrary decisions were made... 18:27:46 i could certainly have picked wrong with this one... 18:28:08 I think other interpreters agree with the model we're explaining but I can't remember exactly 18:28:15 no offence meant, but the text "(even if that fingerprint had never been loaded before)" seems pretty clear to me. 18:28:30 i see that,,,,but wonder if that was the intent... 18:28:37 why would it be there, if not? 18:28:39 since it is in the section talking about layering fingerprints... 18:28:44 look at the examples below 18:28:59 wait no, it doesn't show that 18:29:01 and in general, I prefer to adhere to the letter of the spec and not the intent 18:29:07 but I'm pretty sure Deewiant is correct here 18:29:24 -!- Corun has joined. 18:30:56 Deewiant: and in general, I prefer to adhere to the letter of the spec and not the intent 18:30:58 you must hate malbolge 18:31:01 but it also says "unloads the semantics for a given fingerprint" not necesarily unloads a specificly bound definition 18:31:23 MikeRiley: my interpretation of that is, again, why would it say that so explicitly if it would just do nothing 18:31:37 i agree,,,,it is a confusing point... 18:31:40 tusho: how's that 18:31:49 Deewiant: the implementation swaps an instruction from the spec 18:31:52 I heard the spec there was buggy in some regard 18:31:56 and _all_ programs and implementations use the implementation's version 18:31:57 MikeRiley, I think Deewiant is correct, and iirc the other interpreters does it that way 18:31:58 rather than the spec 18:31:59 yeah 18:32:04 just like k,,,,i wonder if the the intent and what was written were not the same... 18:32:05 Deewiant, what does FBBI do? 18:32:10 tusho: so, firstly, "in general", and secondly, yes. ;-) 18:32:32 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 hm 18:32:58 not to mention FBBI itself does not conform well to the spec... 18:33:05 MikeRiley, also. I hate TRDS ;P, it isn't just feral, it is wild 18:33:14 ;P 18:33:14 it is wild!!!! eheheheheheeheh 18:33:15 TRDS is excellent 18:33:24 best idea ever 18:33:28 and I don't plan to implement it 18:33:30 though the reference implementation doesn't work at all :-P 18:33:33 hah 18:33:39 i saw somebody mention about time travelling IPs, just had to try it!!! eheheheheeheheh 18:33:39 opps 18:33:41 oops* 18:33:56 MikeRiley, does that include testing it? hm 18:33:56 amazingly enough your spec is actually consistent and can work :-) 18:34:00 AnMaster: :-D 18:34:10 in mine some of it works and some does not,,,never really finished that module... 18:34:28 MikeRiley, I understand why you didn't finish it 18:34:37 yeah, it is really a beast!!! eheheheheheeheh 18:34:48 unusual laugh that 18:34:57 (no offence meant) 18:35:12 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 well,,,i am an unusual person!!! eheheheheeheheh 18:35:43 MikeRiley: implementing TRDS meant changing all of: main function, IP structure, Befunge-space structure, unrelated instructions (, and .) 18:35:50 MikeRiley, anyway I had issues with colliding handprints, so my idea is to replace it with URIs 18:35:53 oh, and instruction execution function of course 18:35:54 yep, it changes a lot!!!!! 18:35:55 for funge-108 18:36:02 MikeRiley: oh, that reminds me 18:36:07 regarding I/O in TRDS 18:36:23 you only specify, and implement, that , and . don't do anything twice 18:36:37 what about fingerprint IO? 18:36:37 what about others, like &~io= 18:36:43 and other fingerprints, yeah 18:37:03 hmmmm,,,,cannot remember about , and . in that module... 18:37:15 well, you'll get there eventually, maybe. :-P 18:37:49 where did i say that , and . dont do anything twice??? 18:37:59 Deewiant, anyway I got no idea if I passed part 3 of that catseye diagnosis tool 18:38:05 it is hard to interpret the output 18:38:18 anmaster: there is an html file that shows what should be output 18:38:27 MikeRiley: I hope I didn't invent it :-D let me see 18:38:55 I think 'funge-108' should replace 'PSOX' as a meme 18:38:59 you probably did not invent it,,,,but i do not see in the spec where i mentioned it... 18:39:00 well the environment of course differs 18:39:02 Not catchy enough harumph 18:39:13 tusho, oh, do grow up... 18:39:14 yes, the environment and command line would be different... 18:39:27 AnMaster: you're writing a befunge spec, I think I can be as silly as I like 18:39:34 MikeRiley: okay, great, you don't specify it, you only implement it :-) 18:39:43 see the "PrintTime" variable 18:39:48 and again, only for , and . 18:39:49 ok,,,,,i do???? i will have to look at that again... 18:40:01 i wonder why i did that......hmmmmmmm 18:40:02 around line 550 in main.c 18:40:05 looking 18:40:06 MikeRiley: how, exactly, do you vocalise ,,,,? 18:40:10 it makes some degree of sense 18:40:16 I get that , is a pause, . a longer pause and ... a longer one 18:40:17 MikeRiley, with all those ,,,, I first thought it was befunge code ;P 18:40:20 but what does ,,,,,,,, sound like? 18:40:21 so that IO would happen only once 18:40:25 eheheheeheheheheheeh 18:40:33 tusho: a lot of short pauses really fast 18:40:42 tusho, nah it is befunge code 18:40:46 Deewiant: 'Ok * * * * * I do?' 18:40:53 heavy breathing, I guess 18:41:03 Or maybe ,,,,,, = ... 18:41:10 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 i see it now,,,,it does not print before a given time....not sure why i did that.... 18:41:32 like said, it makes sense that IO should happen only once, and not when traveling back in time 18:41:33 tusho, no he is just outputting the string he just wrote >:#,_@ 18:41:34 as far as i am concerned,,,io should happen anytime that it is encountered... 18:41:39 not sure why i did that..... 18:41:51 hmm 18:41:52 using this at the end of the irc line is better though ;) >:#,_@ 18:41:54 that works too, I suppose 18:42:07 >:#,_@ is one fucked up smiley 18:42:16 trouble is,,,that code was written 10 years ago!!!! and poorly documented!!!! eheheheheeheheheheheheheh 18:42:18 tusho, it's funge code 18:42:21 :-D 18:42:23 AnMaster: shut up you 18:42:26 tusho, prints until a 0 18:42:32 * tusho slaps AnMaster 18:42:34 tusho, useful to print a 0"gnirts" 18:42:41 * tusho rips off AnMaster's head 18:42:53 a 12 year old isn't strong enough for that ;P 18:43:01 shut up you 18:43:19 well it was you who went to crazy measures to prove it 18:43:23 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 MikeRiley: huh 18:43:31 i thought that was 18:43:33 the point of trds :) 18:43:59 specs do not mention that io does not repeat...as such....io should occur anytime it is encountered... 18:44:02 tusho, if you can't even code befunge (I got sound proofs you say you can't), why do you care? 18:44:14 AnMaster: am I not allowed to talk about befunge? 18:44:15 MikeRiley: if you end up telling me that it's forgotten debug code I might be somewhat annoyed :-D 18:44:15 sorry for intruding 18:44:19 maybe i had those in there for testing reasons.... 18:44:20 tusho, not saying that 18:44:24 i'll make sure to stay out of the befunge clique conversations in future 18:44:32 tusho, but you may want to learn it 18:44:47 not really interested in learning it, but trds is fun 18:44:47 :D 18:45:00 tusho, to allow you to contribute to the vibrant Funge community ;P 18:45:04 who wants to write TRDSFuck? 18:45:21 Deewiant: oh god yes 18:45:24 that would be like 18:45:25 Deewiant, that would be a 64-bit only fingerprint? 18:45:27 one of the 3 good brainfuck clones 18:45:33 i guess i really created a mess when i defined that module!!! eheheheheheheeheheheheheh 18:45:36 AnMaster: it'd be brainfuck+trds 18:45:47 MikeRiley, you certainly created a headache for some 18:45:49 MikeRiley: yep, and now you can't just remove it since I implemented it! :-D 18:46:01 yep....going to have to keep it now!!!! eheheheheeh 18:46:07 poor MikeRiley 18:46:12 ^__^ 18:46:27 anyway got the fingerprint spec page up somewhere? 18:46:30 unless i use the TRDS module to go back in time before the TRDS module was actually defined!!! ehehehehehe 18:46:31 say, your website, yet 18:46:39 I got my copy from waybackmachine 18:46:42 all of my funge related materials are now on my site... 18:46:46 www.elf-emulation.com/funge/ 18:46:49 Deewiant: ^___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ 18:46:50 MikeRiley: but IO happens anyway, so you can't prevent it! ;-) 18:46:54 HELP MY FACE 18:46:54 OH GOD 18:46:58 ... 18:47:00 AND MY EYES. THEY ARE POINTING UPWARDS 18:47:04 OH GOD THE PAIN 18:47:09 MikeRiley, thank to bibtex I can easily update the reference to it in funge-108 ;P 18:47:15 Deewiant: ^_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ 18:47:17 AAAAH HOLY SHIT 18:47:19 IT'S GROWING 18:47:22 tusho, duh GROW UP 18:47:24 ... uh, just ignore me 18:48:39 MikeRiley, um http://web.archive.org/web/20020816190021/http://homer.span.ch/~spaw1088/funge.html is what I used before 18:49:03 MikeRiley, it doesn't seem to match any of the pages 18:49:36 MikeRiley, where are your minifunge specs? 18:49:50 AnMaster: did you look at all? 18:49:51 ahah.... 18:49:52 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 Deewiant, I couldn't find mini funge there 18:50:05 * AnMaster looks again 18:50:21 AnMaster: bottom 18:50:23 ah found it 18:50:29 right 18:50:31 the one on spaw1088 has been gone for 8 years or so... 18:50:43 that was when i was living in switzlerland,,,,and i am no longer there... 18:50:46 given that the archive page is from 2002-08-16, not even 6 yet ;-) 18:50:56 MikeRiley, well not 8... the version was from August 2002 18:51:01 which was the last version I found 18:51:19 well,,,do not know where that came from,,,i left switzlerland in 2000,,, and left that website behind when i did... 18:51:33 MikeRiley, it stayed around for some time then 18:51:34 guess it was up for two years :-) 18:51:44 amazing!!! since i was not even paying for it!!! 18:52:04 at any rate,,,,all current materials are now on my current site... 18:52:04 well anyway, did you have some site in-between? 18:52:17 no....not for my funge stuff... 18:52:20 MikeRiley, just want to know if there are any changes to mini funge or the fingerprints 18:52:25 since that version 18:52:29 not that i can think of.... 18:52:35 thanks 18:52:41 only things that changed between the versions are bug fixes... 18:52:52 but have been thinking about some additional fingerprints.... 18:53:10 oh noes 18:53:15 eheheheheheheeh 18:53:17 MikeRiley, I use bibtex, what year do I put in for http://www.elf-emulation.com/funge/rcfunge_manual.html ? 18:53:22 as year of publishing 18:53:28 see if i can come up with something more complicated than TRDS!!! eheheheheeheheheheheheh 18:53:36 see if anybody implements it ;-) 18:53:42 eheheheheheheheeh 18:53:50 good question,,,,just use this year.... 18:53:57 MikeRiley, I have already I think, well almost 18:54:00 MikeRiley, C FFI 18:54:02 for befunge 18:54:05 using libffi 18:54:09 haven't yet finished specs 18:54:11 i guess i should change the version number in the manual tho... 18:54:17 or even started implementation 18:54:36 MikeRiley, what do you think about that idea? 18:55:54 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 the current version is only in my head atm 18:56:11 ok,,, 18:57:11 MikeRiley, http://rafb.net/p/LuSAw897.html 18:57:27 MikeRiley, also ais523 (intercal maintainer) may have beat you to making something worse 18:57:29 looking 18:57:46 he made a fingerprint (based on cfunge) totally replacing main loop that makes it integrate into C-INTERCAL 18:57:56 using computed COME FROM and such inside the funge 18:58:14 but I think TRDS is more complicated still ;P 18:58:40 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 MikeRiley, http://code.eso-std.org/c-intercal/doc/ick.txt 19:00:49 MikeRiley, see "14.2.2 The IFFI Fingerprint" 19:00:54 looking 19:01:13 I don't understand parts of it 19:02:19 RodgerTheGreat: decided anything about function attributes in Def-BF yet? 19:05:52 MikeRiley, but I think TRDS is worse than IFFI, don't you? 19:06:06 yes,,,i think so.... 19:06:54 MikeRiley, still what do you think of IFFI :) 19:07:25 I guess cfunge, or rather C-INTERCAL with patches cfunge, will be the only implementation to ever implement it 19:07:42 very well could be.... 19:07:56 MikeRiley, I mean it needs to tie into a INTERCAL interpreter really 19:08:03 or compiler 19:08:05 yes.... 19:08:06 C-INTERCAL is a compiler 19:09:17 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 well INTERCAL is pretty hard to interpret too 19:11:03 parsing it is a pain 19:12:18 yep agree, had a really fun time building my interprter for it... 19:12:52 well befunge is easy to parse, like brainfuck in that aspect 19:13:23 yes, easy to parse, sometimes not so easily to implement.... 19:13:31 agreed! 19:13:46 MikeRiley, your dynamic memory model, what exactly is it? 19:13:55 a hash map? 19:14:10 mind you I haven't really looked at the code yet 19:14:22 mainly because I had issues reading it 19:15:08 not sure,,,,need to look at it again... 19:15:15 it is not a hash map tho... 19:15:16 -!- Corun has joined. 19:15:52 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 or you could have better cpu 19:16:11 need to try it on my cpu to be sure 19:16:14 will do that later 19:16:43 my code is just a dynamic array,,,looking at it right now... 19:16:53 hm. that could cause issues if you put something using p in some huge cell 19:17:07 mem.c contains the code for it... 19:17:17 yes, it could.... 19:17:48 you will need 2^32 * 2^32 * 4 (assuming sizeof(fungeCell) == 4) for each sector 19:17:51 wait no 19:18:02 not sure, but something huge like that anyway 19:18:24 and I use 64-bit cells (optionally, selectable at compile time) 19:18:58 MikeRiley, sure that is the dynamic memory model then? 19:19:02 not the static one? 19:19:17 hello 19:19:43 psygnisfive, hi 19:21:08 well,,,,not 100% positive,,,,need to study the code a bit more... 19:21:15 it is kinda convoluted... 19:21:51 :-D 19:22:15 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 so i need to refamilirize myself with it.... 19:22:30 MikeRiley, right 19:22:46 Deewiant, figured what's wrong with threads yet? 19:23:03 AnMaster: not going to do anything until the weekend probably 19:23:10 just ran them through and left it at that 19:23:10 Deewiant, ah 19:23:13 it is a dynamic array,,,with a twist... 19:23:22 Deewiant, anyway I figured what was wrong with the "sh" line 19:23:29 it is assuming some f*cking dos crap 19:23:33 where "type" means "cat" 19:23:37 :-D 19:23:46 instead of "find path to binary" 19:23:53 which I don't think dos even have 19:24:05 now you see why Mycology doesn't test = ;-) 19:24:13 I do see that 19:24:20 yep,,,, = is problamatic to be able to test... 19:24:36 well I do have a test in my small cfunge test collection 19:24:40 it is for stuff like that 19:24:43 assumes as POSIX OS 19:24:45 and I presume it assumes POSIX? 19:24:46 yeah... 19:24:49 so, not portable. :-) 19:24:58 my dynamic model uses a dynamic cell array, each cell has an address associated with it... 19:25:08 so putting values into large cells will not cause memory issues... 19:25:19 http://rafb.net/p/JM3RtR74.html 19:25:31 the cell array is then organized into rows... 19:25:46 MikeRiley, how do you look up a specific cell? 19:25:49 got some sort of index? 19:25:58 there is a row index.... 19:26:10 looks like each row is stored togetehr in the array... 19:26:12 but that is a O(n) operation to search through? 19:26:24 there is a search involved.... 19:26:29 what if you need to insert stuff then? 19:26:52 if you insert, it just adds a cell into the appropriate row.... 19:27:03 you said it was stored together 19:27:06 inserting can be slow!!! depending on what the size of the array is and where it is placed... 19:27:09 but what if it won't fit into that 19:27:15 it expands it... 19:27:24 moving all items upwards? 19:27:29 yep.... 19:27:33 well... intersting 19:27:33 so can be quite slow.... 19:27:42 i really should rewrite that.... 19:27:57 I think cfunge's is "reasonable speed in all cases but not extremely fast in any" 19:28:10 no, that's CCBI. ;-) 19:28:11 it just uses the first hash library I found out there 19:28:12 there is an array that contains row addresses... 19:28:20 Deewiant, my hash library is slow 19:28:25 mine is slower. :-P 19:28:28 I profiled cfunge 19:28:29 and then after that appropriate row is found,,,it will move along the row to ge tthe cell... 19:28:43 Deewiant, yes but I wrote a Befunge93 in bash it was *even* slower 19:28:50 i bet!!!! 19:29:04 heck it took several minutes to go through the Befunge-93 part of mycology 19:29:05 bash slower than C? say it ain't so 19:29:15 Deewiant, bash slower than D 19:29:16 even 19:29:17 ;P 19:29:18 i got to run for awhile, be back later 19:29:26 MikeRiley, oh I'm a bash fan btw 19:29:28 see ya 19:29:30 wrote an irc bot in bash 19:29:33 me too actually!! 19:29:37 (http://envbot.org) 19:29:44 and I wrote a brainfuck interpreter in bash 19:29:46 see you later... 19:29:49 MikeRiley, cya 19:29:50 -!- MikeRiley has quit ("Leaving"). 19:32:02 Deewiant, iterate.c is the file with most "finally made this work" commits to it 19:32:09 this will be yet another one 19:32:14 for the 3k4 one 19:32:26 heh 19:32:31 I'm going to add an option, probably 19:32:39 because I think k is somewhat useless like that 19:32:55 Deewiant, sounds like a good idea 19:33:04 wait not really useless 19:33:06 so default to the spec, but allow useful behaviour as well :-P 19:33:11 you can still do 0k3 19:33:13 no, of course not completely 19:33:14 and have that work 19:33:16 and 2k4 19:33:23 1k4 19:33:32 however you can never get just one iteration? 19:33:36 no :-( 19:33:38 that seems strange 19:34:03 well Funge-108 will follow the way you did it Deewiant 19:34:18 it might be nicer to simplify it from that 19:34:25 for instance, 1k] 19:34:43 will turn 180 degrees... 19:34:56 as in r 19:35:00 Deewiant, right? 19:35:01 no, I'm talking about the 108 way 19:35:03 CCBI's way 19:35:05 ah 19:35:06 turn 90 degrees at k 19:35:06 right 19:35:08 well yes 19:35:11 but 19:35:17 ? 19:35:21 I think it'd be simpler if you said that after k, the IP always moves 19:35:22 so 19:35:27 1k] 19:35:30 1 19:35:31 2 19:35:34 hits the 2 19:35:44 then you don't need special casing for anything 19:36:07 it's just, do instruction given number of times, and move 19:36:22 hm... 19:36:49 -!- oerjan has joined. 19:36:56 Deewiant, heck I will need to write at Rationale for that change now :P 19:37:09 :-) 19:37:44 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 ... 19:37:51 :-D 19:38:01 Deewiant, you seen my iterate code? 19:38:18 nah, haven't looked at cfunge's source pretty much at all 19:38:22 if not it is at http://rafb.net/p/Rs018T84.html 19:39:05 there is a small indention error at the end though 19:39:12 ignore it as I fixed that locally now 19:39:22 your lines are too long :-P 19:39:37 Deewiant, well apart from that? 19:39:42 and you can't find it? it's at the end, no? 19:39:50 hrrm 19:39:51 looks like it's pretty much copied from CCBI :-P 19:39:59 ip->position = posinstr; 19:40:06 Deewiant, I did copy some stuff from ccbi on this 19:40:13 as it was bloody hard to get right 19:40:16 heh 19:40:38 Deewiant, I done similar in some fingerprints, TURT for example 19:40:47 while I don't think FPDP is based on your at all 19:40:49 yep, I know 19:41:26 Deewiant, nor is my fingerprint manager code based on your code at all 19:42:12 (because your is so D specific) 19:42:27 it is? 19:42:46 well all that mixin! stuff 19:42:48 and such 19:42:57 you can do the same with #define 19:43:04 nothing too fancy there, I don't think 19:43:19 i.e. nothing you couldn't do with #define :-) 19:43:20 Deewiant, well you can check the way I do it 19:43:25 totally different 19:43:26 can't be bothered, whatever 19:43:59 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 then it generates an array from it 19:44:15 ah 19:44:17 which I later can do a binary search in 19:44:23 using the fingerprint 19:44:27 I could do something similar, but with templates and string mixins ;-) 19:44:33 so there's no need to run a script 19:44:37 Deewiant, I do it with a bash script 19:44:38 :P 19:44:47 actually not a binary search 19:44:54 I just do a simplified search 19:45:20 returning false if I reach an index that is higher than the wanted one 19:45:26 err not index 19:45:32 but entry 19:46:05 // ORTH - Orthogonal Easement Library 19:46:05 { .fprint = 0x4f525448, .uri = NULL, .loader = &FingerORTHload, .opcodes = "AEGOPSVWXYZ", 19:46:05 .url = "http://catseye.tc/projects/funge98/library/ORTH.html", .safe = true }, 19:46:05 // PERL - Generic Interface to the Perl Language 19:46:05 { .fprint = 0x5045524c, .uri = NULL, .loader = &FingerPERLload, .opcodes = "EIS", 19:46:06 .url = "http://catseye.tc/projects/funge98/library/PERL.html", .safe = false }, 19:46:09 Deewiant, it looks like that ^ 19:47:13 Deewiant, then it calls the .loader function pointer 19:47:22 Deewiant, which registers the functions 19:47:35 #define ManagerAddOpcode(fprint, opcode, name) \ 19:47:36 if (!OpcodeStackAdd(ip, (opcode), &Finger ## fprint ## name)) \ 19:47:36 return false; 19:47:52 then for example:ManagerAddOpcode(FIXP, 'U', atan) 19:48:10 and finally we got: static void FingerFIXPatan(instructionPointer * ip) 19:49:13 Deewiant, any questions? 19:49:38 I'm really not that interested TBH :-) whatever works for you 19:49:56 Deewiant, well my solution is rather simple really :) 19:50:10 looks more complex than mine 19:50:12 -!- CakeProphet has quit (Remote closed the connection). 19:50:16 Deewiant, also I can generate templates for the fingerprint *.c files 19:50:20 from the same spec files 19:50:21 brb 20:02:32 -!- lilja has joined. 20:03:29 "k executes the instruction at k itself, then it move ip forward one step (with respect to current delta)." 20:03:32 Deewiant, does that sound good ^ 20:03:34 for 108 20:03:49 s/move/moves/ 20:03:53 right 20:04:10 and I'd clarify what "the instruction at k itself" means 20:04:37 The k ``Iterate'' instruction pops a value n off the stack. 20:04:37 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 I'd say "executes the instruction without moving away from the k" or something 20:04:42 are the two lines before 20:04:43 hm 20:04:47 ah right 20:04:57 and then have a 1k[ or something 20:04:59 Deewiant, what if the instruction is some "jump" instruction, say, from SUBR? 20:05:01 as an example 20:05:05 then you move away from k 20:05:16 yeah, doesn't matter. 20:05:18 no special cases. 20:05:22 execute and move. 20:05:26 right 20:05:39 Deewiant, exception: spaces and ;; 20:05:44 it should reach past the spaces 20:05:55 and any ;...; 20:06:02 3k ; ; ;; ; f 20:06:04 -!- olsner has joined. 20:06:05 yeah, not a special case if you implement it right 20:06:08 "That code would execute f three times, after wrapping once." 20:06:23 Deewiant, this is what C. Pressy wanted 20:06:30 I did forward the mail didn't I? 20:06:32 or pastebin it 20:06:39 yeah I think I pastebinned it 20:06:39 don't think so 20:06:43 well whatever 20:06:48 you did mention it though 20:06:50 Deewiant, I can forward it 20:07:01 Deewiant, what is your gpg key? 20:07:05 in any case, like said, that's fine and not a special case 20:07:09 AnMaster: at my homepage 20:07:13 hah ok 20:07:33 http://iki.fi/deewiant/files/misc/public.key 20:07:35 Deewiant, the FRA law made me paranoid 20:07:38 I guess you seen it 20:07:39 good :-) 20:07:43 Deewiant, at some key server? 20:07:47 no 20:07:50 hrrm ok 20:07:51 I'm too paranoid ;-) 20:07:58 harhar 20:08:04 it's just an invitation for the NSA to crack it 20:08:35 gpg: key B7E8FA08: public key "Matti Niemenmaa " imported 20:08:35 gpg: key DEDF0F79: public key "Matti Niemenmaa " imported 20:08:37 two? 20:08:47 meh 20:08:49 one should be expired 20:08:53 guess I botched the export 20:08:55 k 20:09:13 the iki one should be recent 20:09:37 Deewiant, what is the fingerprint? 20:09:41 yeah, B7... is revoked 20:09:51 is it "4517 8F90 84CF C529 7382 2B84 B9D3 F95E DEDF 0F79"? 20:10:04 yeah 20:10:13 good :) 20:11:27 programmers are scary people. all fixated on execution. 20:12:34 -!- MikeRiley has joined. 20:12:46 you here deewiant?? 20:12:48 AnMaster: uploaded a fixed file which should have only the latter key 20:12:50 sure 20:12:59 i remember what TRDS is doing with the , and . commands... 20:13:16 and should it be in the spec? :-) 20:13:20 nope.... 20:13:27 or at least, not necessarily... 20:13:27 :-P 20:13:35 Deewiant, forwarded 20:13:42 in reality, and running ip will and should output everytime it encounteres , or . 20:14:12 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 during this,, no output should be happening,,,since this is not where the ip jumped.... 20:14:27 ah yeah, right 20:14:28 that's why 20:14:36 that's what CCBI does, too 20:14:38 i knew there had to be a reason!!! eheheheeheheh 20:14:42 MikeRiley: and yeah, so 20:14:49 you admit that it's a bug that it will rerun i and o, for instance? :-) 20:15:07 or = 20:15:10 or & and ~, which are worse :-P 20:15:16 yes indeed they are 20:15:23 but you need to buffer all input then 20:15:26 even when you used it 20:15:30 Deewiant, which is crazy.... 20:15:31 no, not a bug for i and o,,, 20:15:38 MikeRiley, no? 20:16:00 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 and, that's impossible in the general case. 20:16:18 yes it is 20:16:23 in the general case, that is true... 20:16:28 you need to store the files 20:16:35 as in store a copy of them 20:16:37 and if the files are just streams, frontends to sockets for instance? 20:16:38 but if the files were created by the program, then it would be right... 20:16:45 then they would not work... 20:16:54 e.g. output to /dev/tty0 or whatever 20:16:55 that would be classified as an implementation problem... 20:17:02 haha 20:17:13 I think it could also be classified as a spec problem 20:17:16 MikeRiley, what about input then? 20:17:16 i suppose if it really mattered, the interpreter needs to be able to replicate what the state of those were... 20:17:18 & and ~ 20:17:20 as Deewiant said 20:17:21 since it explicitly says that you can rerun from the start :-) 20:17:33 MikeRiley, and what about output and input in fingerprints? 20:17:35 say, BASE 20:17:37 or whatever 20:18:02 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 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 Deewiant, how does HRTI interact with TRDS btw? 20:18:09 in the rerun 20:18:13 i can accept that... 20:18:29 MikeRiley, what if the fingerprints give different results next time? 20:18:31 HTRI will be completely UNDEF within TRDS 20:18:31 AnMaster: not by going back in time to see what the timer would have been earlier. ;-P 20:18:32 MikeRiley, say, HRTI 20:18:36 yeah 20:19:15 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 Deewiant, you need that "future past didn't happen" tense that Douglas Adams suggested 20:19:18 :P 20:19:53 MikeRiley: but yeah, I'd say that any input is undefined, and outputting to anything except stdout/stderr also is 20:19:59 i agree, will consider i, o, and = and the input funcitons to be UNDEF... 20:20:13 MikeRiley, what about output from BASE and such? 20:20:17 what about output from BASE?? 20:20:20 and that it's allowed for an interpreter to reprint , and . and so forth 20:20:26 AnMaster: undefined. 20:20:27 it shouldn't be printed again at next run 20:20:39 or no, what, wait 20:20:41 they go to stdout 20:20:42 so defined. 20:20:44 :-P 20:20:45 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 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 MikeRiley, indeed 20:21:01 MikeRiley: I'd add something about IO in the spec if I were you 20:21:11 psygnisfive, eh? 20:21:11 i agree and will do that... 20:21:25 i.e. any file IO or input in general is undefined in an entire TRDS program 20:21:30 or rather 20:21:36 if you ever jump backwards in time 20:21:38 i woud say to time jumped ips.... 20:21:39 AnMaster, all languages are subsets of the kleene star of the alphabet 20:21:43 if you jump forwards or use the freezer, it's fine, no? 20:21:45 MikeRiley, well of course BASE, FPSP/FPDP, and other ones doing output should be fixed 20:21:52 to not output up to that point either 20:22:03 yes,,,,since jumping forward does not require any state to be maintained... 20:22:07 If L is some language over S, then L ⊆ S* 20:22:09 psygnisfive, ???????? 20:22:19 oh god 20:22:24 psygnisfive, you lost me 20:22:25 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 :P 20:22:34 psygnisfive, I'm much more down to earth programmer 20:22:37 AnMaster, I take it you dont know anything about formal languages? 20:22:44 psygnisfive, no I don't 20:22:45 ok let me make it more familiar to you 20:22:48 suppose you have C, right 20:22:51 yes 20:22:53 I got C 20:22:54 :P 20:23:05 and C has a bunch of keywords (int, return, if, etc) 20:23:08 and it has a bunch of symbols 20:23:08 aye 20:23:14 (, {, =, &, etc 20:23:20 yes, are you writing a lexer? 20:23:37 and also a bunch of things like regexp-defined things like "names" that are used for variables, etc. 20:23:49 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 someone said my name earlier, and I lost what they said in the backbuffer 20:23:55 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 that's the "alphabet" of the formal language of C 20:24:14 (re subsets of kleene stars) 20:24:20 call that set of symbols S 20:24:22 -!- ais523 has joined. 20:24:23 MikeRiley, guess why I decided to not implement TRDS? 20:24:32 because you're lazy. :-P 20:24:37 S* is just the kleene star over that 20:24:40 psygnisfive, right 20:24:44 Deewiant: becuase he's sane? 20:24:44 do not blame you,,,,that module is terribly convoluted to implement 20:24:46 psygnisfive, sounds like you are writing a lexer 20:24:48 that is, a string contraining any number of those symbols 20:24:51 yes? 20:24:58 psygnisfive, but wtf is a "kleene star"? 20:24:59 so IF * RETURN > > || ( 20:25:03 ais523: no, he's lazy. :-) 20:25:08 ais523, hi!!!!!!!!!!!!! 20:25:11 kleene star is just like the regex * 20:25:14 hi AnMaster 20:25:18 ais523, and the other one! 20:25:19 oh, and hi tusho too 20:25:23 oh kleene star. i was reading it as kleisli star and thought you were doing something _really_ weird. 20:25:26 FUCKING HELL 20:25:26 I'm on Mibbit so had to scroll down to see who was online 20:25:27 any number of the items in the set strung together 20:25:33 you got me ais523 20:25:37 ok anmaster? 20:25:38 psygnisfive, hm ok 20:25:52 ais523, why have you been away so long? 20:25:53 so IF * RETURN > > || ( is in S* 20:26:04 psygnisfive, um a sec, too many convos at the same time 20:26:06 let me read up 20:26:12 because its any number of symbols in S* put together into a string. 20:26:29 (wait) 20:26:36 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 ais523, oops 20:27:05 ais523, hope that is fixed now :) 20:27:11 I'm not sure 20:27:17 this is not my usual computer lab, nor my usual computer 20:27:17 oerjan: is that (.*.) = (=<<)? 20:27:21 it's open until midnight my time though 20:27:26 so if all else fails I can just use this one 20:27:26 ais523, oh I see 20:27:33 olsner: >=> i think 20:27:33 ais523, but with your own computer I hope? 20:27:41 hopefully 20:27:42 (the new one) 20:27:49 although it's a pain to use a laptop here 20:27:55 ais523, why is that? 20:27:56 compared to my usual place 20:27:58 http://haskell.org/pipermail/haskell/2003-August/012438.html says something about kleisli stars and >>= 20:28:00 ais523, no wlan? 20:28:02 AnMaster: only a few desks to put it on 20:28:07 ais523, ah... 20:28:08 there is wlan, pretty good wlan at that 20:28:11 ais523, nice 20:28:14 just lack of space to place a laptop 20:28:21 ais523, well is it crowded? 20:28:36 >| 20:28:40 oerjan: >=> seems to be same as the @@ operator in that post 20:28:49 AnMaster: there's a desktop computer on every desk 20:28:49 psygnisfive, you lost me anyway, don't try to bother 20:28:51 pretty much 20:28:59 and it's hard balancing a laptop on top of a desktop and still using it 20:29:06 and it is sometimes crowded, although not right now 20:29:15 ais523, is there any space just outside it? 20:29:16 olsner: yeah 20:29:18 how'd i lose you 20:29:25 ais523, wlan isn't restricted by walls 20:29:32 not much anyway 20:29:43 anyway, it's the composition operator of the kleisli category 20:30:00 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 this lab is so big it takes up two entire floors of a building 20:30:12 Do I need to do a little tutorial on Formal Languages for you kids? :P 20:30:14 ais523, oh right :/ 20:30:17 and I don't have access to the other floors 20:30:22 ais523, why not? 20:30:26 who here knows anything about formal languages? 20:30:29 raise your hands 20:30:30 it's used by a department I don't belong to 20:30:36 * ais523 raises their hand 20:30:37 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 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 ais523, 2) RC/Funge author found too 20:31:20 vote! >O 20:31:21 wow 20:31:21 ais523, MikeRiley in here 20:31:27 ais523, he want to fix stuff 20:31:35 in his RC/Funge 20:31:46 that is news, it reminds me of when I found that CLC-INTERCAL and J-INTERCAL both existed 20:31:48 ais523, 3k4 will push four 4 20:31:55 lame. 20:31:57 I'd heard of them, of course, but they were both hard to track down at the time 20:32:03 AnMaster: 3k4 == 4444 is obvious 20:32:06 ais523, because it *doesn't* jump over 20:32:11 oh 20:32:12 ais523: 1) being a consequence of 2) 20:32:13 wait 20:32:14 which we all thought it did 20:32:16 I misread 20:32:25 and what Deewiant said 20:32:30 and not jumping is one of the semantics I suggested for 'fixing' it a while ago 20:32:40 ais523, that breaks stuff though 20:32:44 the problem is that then there's no way to iterate only once 20:32:45 seems it was fixed in the first place... 20:32:47 ais523, as 0k will do 0 iterations 20:32:47 if there were, I'd be fine with it 20:32:57 Deewiant: #k4 20:33:04 or is that cheating? 20:33:07 yes 20:33:13 because the idea is you'd have a variable 20:33:15 it's cheating.. 20:33:19 and now you'd have to check whether it's 1 20:33:31 or whatever 20:33:42 maybe you should use a non-k-based loop, then 20:33:44 i agree that the inability to iterate only once is a problem,,,, 20:33:51 Deewiant, you already need to check what the variable is 20:33:54 ais523: I suggested to AnMaster that the way to go is to have it always move 20:33:57 to reflect on negative values and so on 20:33:57 are you sure that 0k == z#? 20:34:15 Deewiant, and that is what I selected for Funge108 20:34:19 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 anyway, what does 1k^ do with the newly-discovered spec? 20:34:38 what about 4k[? 20:34:47 or 22kk4? 20:34:50 1k^ should go up from the k.... 20:34:51 1k^ is the same as 2k^ is the same as 99**k^ 20:34:51 ais523, 1k[ turns 180 degrees 20:34:56 ARGH NOT THE DOUBLE k! 20:35:00 4k[ will end up turning left... 20:35:00 I HATE THAT ONE 20:35:03 oh yeah, double k 20:35:06 MikeRiley: considered that? 20:35:22 MikeRiley: did you read the end of my mail yet, by the way? 20:35:26 what about 4k# 20:35:27 which one?? 20:35:27 where I forwarded that little spiel on k 20:35:32 at the end 20:35:37 4k# is a bit harder to define... 20:35:43 yes...i did get that... 20:35:49 ais523, that will jump forward 5 times from k I think 20:35:55 so what do you think about the double k thing 20:35:58 that is what i would expect.... 20:36:00 AnMaster: how can it? 20:36:03 it won't 20:36:04 4 times 20:36:07 ais523, oh wait it won't 20:36:10 it jumps forward 4, and then doesn't move forwards so hits the original #? 20:36:12 that doesn't make sense 20:36:19 it jumps forward 4, and then moves 20:36:20 ais523, sorry typo 20:36:22 right? 20:36:23 if you had 4k#12345 the next instruction should be the 4.... 20:36:26 Deewiant, right 20:36:30 so it will be 5 anyway 20:36:32 right? 20:36:48 MikeRiley, what if you got 22k4 20:36:50 MikeRiley: I agree, I think 20:36:55 AnMaster: it's equivalent to 5k# under what CCBI currently does, yes 20:36:56 err 20:36:59 22kk4 20:37:01 I meant that 20:37:07 22k4 will give you 3 4s on the stack... 20:37:14 with a 2 below it... 20:37:16 MikeRiley, see what I said 20:37:18 typo 20:37:22 I meant 22kk4 20:37:33 22kk4 hurts my head!!! eheheheheheeh 20:37:41 it hurts everyone's head, I think 20:37:41 MikeRiley, it does indeed 20:37:54 rest assured that Funge-108 defines it: 20:38:01 but i would think that 2k4 would be executed twice... 20:38:06 it reminds me of the time they found a paradox in the Magic: The Gathering rules 20:38:06 • k on a nested k (as in 22kk4) is implementation defined. The implementation may do either of these: 20:38:07 – The interpreter MAY reflect. 20:38:07 – 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 MikeRiley, ^ 20:38:13 and took huge pains trying to sort it out 20:38:19 AnMaster: may reflect? O_O 20:38:23 Deewiant, yes 20:38:23 none of that crap 20:38:26 one famous player even suggested that the game should be a draw if the situation came up 20:38:29 Deewiant, ccbi does that already 20:38:45 ais523: what's that? 20:38:56 Deewiant, so how do you explain that you don't want reflection 20:39:03 if you want a sane behaviour then.... 20:39:09 AnMaster: CCBI doesn't reflect on nested k... 20:39:17 Deewiant: Opalescence makes all enchantments into creatures, Humility prevents creatures having any effect 20:39:21 Deewiant, what does CCBI do then? 20:39:25 i would not think that reflection on nested k would be right... 20:39:28 therefore if they're both out at once, you get a paradox 20:39:42 AnMaster: something like the latter, not sure exactly 20:39:53 anyway the naive implementation of k would do this: 20:39:59 1) fetch next instruction k 20:40:05 2) execute it at the first k 20:40:18 ais523: heh, nice 20:40:19 3) this execution will now fetch the next instruction, which will be k 20:40:22 4) ARGH! 20:40:27 Deewiant, ^ 20:40:30 now that seems reasonable.... 20:40:31 "ARGH"? 20:40:41 pop two 2s 20:40:43 stack is [2,2] 20:40:44 hit k 20:40:49 since the k calls for finding the next instruction in the path of the ip 20:40:50 execute the next k 20:41:10 the next k pops the 2, so it pushes two 4s 20:41:13 the next k, still with the ip on the first k,,,would end up find the k again... 20:41:15 Deewiant, as the second k executes *at* the first k... it will fetch the next instruction from current position 20:41:18 which is k 20:41:21 Deewiant, see what I mean? 20:41:35 with that idea,,,,nested k cannot really do much... 20:41:36 k is really the only *multichar* instruction in befunge 20:41:40 which makes it insane 20:41:49 it kind of is multichar 20:41:53 when you think about it 20:42:01 it is and it is not... 20:42:14 it is in that it uses the next character to define what it will do... 20:42:16 AnMaster: ' 20:42:18 AnMaster: it'll terminate anyway though, since it'll pop zero at some point 20:42:20 really the *sane* way would be to take the instruction to execute on the stack 20:42:22 and arguably # 20:42:23 but it still is a single command... 20:42:31 ais523, hm true but that doesn't cause those issues 20:42:42 Deewiant, yes... 20:42:55 Deewiant, so please suggest a sane way to solve nested k 20:42:57 and what about: 20:42:58 AnMaster: well, what does 3k'abc do? 20:43:03 333333kkk# 20:43:10 tell me what the heck that should do 20:43:20 ais523, good question 20:43:27 AnMaster: k doesn't say it finds the instruction from where it's executed 20:43:33 k says it finds the next instruction from where the k is 20:43:48 so an inner k should find the following instruction, not itself 20:43:49 correct,,,,and it does not specify that the ip moves when the found instruction is executed 20:43:50 Deewiant, hm true 20:44:07 Deewiant, but it should execute all at the first k? 20:44:08 or? 20:44:18 i believe it should execute at the first k... 20:44:22 again, it doesn't say that it executes instructions where it is executed 20:44:29 it executes instructions at where it is. :-) 20:44:35 oh god 20:44:42 and have fun implementing that ^_^ 20:44:42 this will make iterate.c a lot more complex 20:45:12 so does 1k^ go upwards from the k? 20:45:22 i would say that it goes upwards from the k 20:45:31 ais523, yes but 1k] will turn 180 degrees 20:45:38 ais523, anyway 2k^ will also go up 20:45:39 by what the spec says, the interpreters do, or what 108 says? :-) 20:45:45 3 possibilities here, at least. :-P 20:45:47 AnMaster: I'm not so sure 20:45:48 no 1k] will not turn 180 degrees 20:45:51 it will turn 90 20:46:04 hm? 20:46:05 and go down from the k at the conculsion 20:46:07 I think there's an argument to be made that 2#^k< goes upwards from the k 20:46:17 because the k executes the < then the ^ 20:46:18 eh? 20:46:22 yes 20:46:22 because the command it's "looking at" changes 20:46:29 because the direction of processing changes 20:46:32 oh, right 20:46:33 ais523, ^> the command k executes is in the path of the IP.. 20:46:37 AnMaster: I know 20:46:37 they just changes direction 20:46:41 or no, wait 20:46:41 but they change what the k refers to 20:46:43 oh wait I see what you mean 20:46:45 ais523: you need two 2s there 20:46:49 Deewiant: no I don't 20:46:55 2#^k< 20:46:58 jump to the k 20:47:00 it pops the 2 20:47:05 hits the < twice 20:47:08 does k look at which instruction to execute just before it executes it or just before the k? 20:47:12 I'm arguing it only hits the < once 20:47:20 Deewiant, it doesn't hit the < twice according to ais523 20:47:20 because after the first < the k is pointing at the ^ not the < 20:47:29 k is supposed to look at the next valid instruction in the current path of the ip 20:47:30 no, that doesn't make sense 20:47:30 Deewiant, he says k looks ahead at each iteration 20:47:36 ah, hmm 20:47:43 I don't think that's what the spec says 20:47:48 yes it does 20:47:52 although it doesn't say much of anything. ;-) 20:48:00 " 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 AnMaster: I'm not convinced it works like that, but that's certainly worth consideration 20:48:15 Then it finds the next instruction in Funge-space in the path of the IP (n 20:48:19 that is from the spec 20:48:23 but I think < twice seems most similar to the Funge-98 spec 20:48:26 ais523: not "it n times does the following: finds the next, executes it" 20:48:26 ais523, you had to make us even more confused?! 20:48:31 sorry 20:48:34 Deewiant: agreed 20:48:34 :-) 20:48:44 AnMaster: that is maybe worthwhile though 20:48:57 doesn't sound like too bad an idea, at least. :-) 20:49:06 Deewiant, it does to me 20:49:11 as the specs doesn't say it 20:49:17 as you pointed out above 20:49:20 consider order 20:49:21 that'd be really cool actually 20:49:24 maybe I should make a fingerprint with one command K 20:49:26 Deewiant, it will be slower 20:49:26 2k] 20:49:27 v 20:49:32 oh noes, teh slowness 20:49:32 which is a fixed and properly specified version of k 20:49:33 you need to check it at each iteration 20:49:48 ais523: just make sure it's reasonably implementable as well :-) 20:49:56 yes what Deewiant said 20:49:57 AnMaster: not that expensive... 20:50:08 ais523, however your idea got some issues 20:50:11 AnMaster: and anyway, you only need to check if the delta/pos changed 20:50:19 ais523, then 2k#12 will executes #2 20:50:20 not... 20:50:31 whatever is after the 2 20:50:36 see what I mean? 20:50:49 AnMaster: yes 20:50:56 but k# is arguably a silly think to write anyway 20:51:10 I certainly wouldn't rely on a particular meaning of that if trying to write a portable Funge program 20:51:22 if you don't actually read the spec I'd say it's quite logical to think of that 20:51:52 "jump N times", so it's like j, no 20:52:13 Deewiant, um 20:52:15 what? 20:52:24 k# 20:52:26 like j 20:52:26 yes 20:52:31 unless you think about it too deeply :-P 20:52:41 Deewiant, more or less, with the quirk that it jumps from the j 20:52:41 seems to me it would be like j... 20:52:42 err 20:52:43 from the k 20:52:45 not 20:52:49 not from the # 20:53:01 like said, unless you think about it too deeply 20:53:09 Deewiant, and then you mean? 20:53:25 mostly in response to 2008-07-23 22:50:56 ( ais523) but k# is arguably a silly think to write anyway 20:53:49 yes it is 20:54:26 MikeRiley, anyway cfunge contains some test programs that could be useful 20:54:43 i would like to take a look at those as well.. 20:54:50 MikeRiley, the mycology test for TURT is quite imcomplete 20:54:57 I wrote a slightly more extensive one 20:55:08 then there is the negative j + wrap test 20:55:20 and a few more 20:55:25 did you write a proper TURT test, then? 20:55:32 Deewiant, not "full" no 20:55:33 Deewiant: planning to add IFFI to Mycology? 20:55:39 ais523: probably not. :-) 20:55:50 ais523, he can't really, it would not work well 20:55:57 as you need to initialize a lot 20:56:04 ais523, write your own test suite for it 20:56:15 I have one already 20:56:17 not that anyone will implement it I think 20:56:21 although it just outputs numbers 20:56:28 and in theory it works to langs other than INTERCAL 20:56:29 ais523, extensive? what about corner cases? 20:56:40 AnMaster: there's one corner case I've tested 20:56:46 I can't think of any other corner cases at the moment 20:56:50 ais523, negative arguments? 20:56:50 that doesn't mean they don't exist 20:56:52 that's a good one 20:57:07 ais523, after all you can go into negative funge space in Funge-98 20:57:14 AnMaster: they're actually large positive arguments because all INTERCAL numbers are unsigned 20:57:29 although I don't test things that should cause reflections, nor things that should cause INTERCAL fatal errors 20:57:31 ais523, well... Befunge isn't, could be worth testing thus 20:57:55 yes, I suppose so 20:58:09 but something like 1-R is an instant fatal error anywhere R is legal 20:58:11 ais523, say, negative a mark or whatever at -24842,-1231 20:58:14 or whatever 20:58:15 because that's guaranteed to cause an error in the INTERCAL code 20:58:28 AnMaster: ah, you mean jumping to negative funge-space? 20:58:33 yes that too 20:58:44 ais523, and for negative arguments, shouldn't it just reflect? 20:58:48 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 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 so an error 20:59:25 "jumping to negative funge-space" <-- why does that make me think of treknobabel? 20:59:28 just why 20:59:58 shouldn't you check range first? and properly convert it 20:59:59 AnMaster: maybe Star Trek computers are all programmed in Befunge-1008 or something 21:00:11 haha 21:00:16 AnMaster: I do, I actually have code to simulate the 32-bit wraparound 21:00:23 ais523, um what? 21:00:24 http://tvtropes.org/pmwiki/pmwiki.php/Main/ReversePolarity 21:00:33 (standard warning applies) 21:00:40 oerjan, what warning? 21:00:44 oerjan: my thought exactly :) "reverse polarity!" 21:00:50 oerjan, apart from "the page will timeout" 21:00:54 AnMaster: basically it checks for a negative argument and errors as if it had wrapped around to a large positive integer 21:01:01 http://tvtropes.org/pmwiki/pmwiki.php/Main/TVTropesWillRuinYourLife 21:01:04 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 so really it just changes where the up command is executed... 21:01:44 ais523, ah... 21:01:59 MikeRiley, but is that really useful? 21:02:04 it can be.... 21:02:17 after all it becomes a decision branch at that point... 21:02:23 so 1k^ goes up at the k and 0k^ goes up at the ^ 21:02:28 depending on whether or not it is zero... 21:02:36 yeah,,,,, 21:02:51 then there are no exceptions at all on how k is executed... 21:03:17 AnMaster: no timeout here 21:03:25 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 "A pages you tried to acess does no exist on this servers." Cool. 21:29:40 So no http://vjn.cc/x/at/logs/public. 21:31:26 what? 21:36:57 ihope: vjn.cc/x is a redirect to the #esoteric logs 21:37:04 they were golfing the subject 21:41:20 -!- Corun has joined. 21:52:01 night 21:52:04 ais523, ^ 21:52:08 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 BF 1,000,000: ++++++++++[>++++++++++<-]>[>++++++++++<-]>[>++++++++++<-]>[>++++++++++<-]>[>++++++++++<-]>[.-] 22:43:44 It's very golfable, I'm sure. 22:44:10 Hello, have anybody seen something like this '5vR@5|(1+3@+5@|(Ym@'? 22:44:55 Ello. 22:45:03 Where did you find that? 22:46:01 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 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 yeah, that string doesn't resemble any language I'm aware of 22:51:02 it'd be neat if that was a language 22:51:03 but nahhh 22:51:04 i doubt it 22:51:44 I've checked all wiki languages, where was some like it, but noting equal. 22:52:21 my first instincts were 1337 and toadskin, but it doesn't look valid for either 22:53:50 juokaz: what is the situation? 22:53:54 maybe context will help 22:54:26 -!- MikeRiley has quit ("Leaving"). 22:54:50 There is no context :( I have this string, and no clues. It's like a game, like I said 22:56:04 can you tell us more about how you got it? 22:56:07 juokaz: what, did you just find the string on your HD 22:56:11 there's obviously some context to getting it 22:56:22 context can lead us in the right direction 22:57:02 and let's hope it's a program, because a non-trivially encrypted string of that length is probably unbreakable 22:57:18 plus there isn't the right symbol distribution 22:57:20 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 mmm 22:59:18 Seems like it would require some cryptanalysis. 22:59:20 is there some sort of high-level BF? 22:59:34 psygnisfive: :D 22:59:48 Which of several would you like? 22:59:50 pikhq: my thoughts exactly, but as I said there isn't much to work with 23:00:12 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 Oh, that's all? 23:00:45 well its just a start :p 23:00:46 Well, PEBBLe is overkill for that. 23:00:48 juokaz: link to the page? 23:00:50 how did you find the page? 23:01:05 what kinds are there? 23:01:17 juokaz: try some shift, vigenere and substitution cypher breaking tools 23:01:42 work from the assumption that instead of wrapping in the alphabet you're wrapping in ASCII 23:01:53 and also context ;) 23:02:08 I'd just try a 1-25 letter shift and see if anything comes out looking sane 23:02:38 I made a few tools along these lines, but they're in C so I hate modifying them 23:03:25 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 RodgerTheGreat: i bet it's compressed 23:04:05 it looks like it 23:04:22 psygnisfive: PEBBLe is a very powerful macro system for BF that pikhq developed 23:04:28 ahh 23:04:33 BF macros 23:04:35 lol 23:04:35 :D 23:05:37 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 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 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 ... 23:06:25 and netsplits 23:06:27 -!- olsner has quit ("Leaving"). 23:06:45 s/PEBBLe/PEBBLE/... 23:07:09 I just spelled it like you did because I never knew what the aconym meant. 23:07:18 pikhq: show me pebble 23:07:19 :O 23:07:26 Pikhq's Esoteric Brainfuck Bastard Language? 23:07:27 RodgerTheGreat: portable esoteric brainfuck based language, eh? 23:07:34 it's sad that i know that :) 23:07:43 I was fairly close 23:07:45 psygnisfive: it has tcl's syntax 23:07:53 i wanna see how it works 23:07:56 and basically consists of macros + a stdlib of them 23:08:02 and, like, a few primitives for outputting brainfuck code 23:09:31 interesting 23:09:32 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 apple was developing a professional version of apple script 23:09:55 so that instead of writing this: 23:10:03 "the first character of every word whose style is bold" 23:10:05 psygnisfive: saw that on daring fireball 23:10:05 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 you could write this: 23:10:10 { words | bold }.character[1] 23:10:13 er 23:10:16 with an == in there somewhere 23:10:16 "{ words | style == bold }.character[1]" 23:10:18 yeah 23:10:25 what i find most interesting about this 23:10:29 -!- Corun has quit ("This computer has gone to sleep"). 23:10:34 psygnisfive: is the lack of explicit binding? 23:10:39 'cause I think that's pretty neat too 23:10:39 no 23:10:46 in fact, i'm considering implementing a lang with that syntax 23:10:55 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 well yeah 23:11:06 kind of like an array programming language 23:11:09 implicit maps 23:11:33 i think it only makes sense for simple collections, that are not objects 23:11:50 psygnisfive: array programming languages apply it to everything 23:11:55 i mean, obviously if sets were objects and had properties of their own, you'd be kind of messed up 23:12:01 does .character apply to the set, or the members? 23:12:02 but still 23:12:04 its cool 23:12:09 not really, I think apl has a sort of syntax for working that out 23:12:22 ah yes... the first one started off "GENTLEMENDONOTREADEACHOTHERSMAIL..." 23:12:23 like, either set..length for the set's length or set..character[1] 23:12:32 whatevr :) 23:13:00 APL is so painful to read 23:13:22 yeah apl&k&j take it a little too far. 23:13:40 apl might as well be considered an esolang that went mainstream 23:14:02 i mean, seriously: 23:14:03 apl never really was THAT mainstream 23:14:03 X[⍋X+.≠' ';] 23:14:06 -!- juokaz has quit (Remote closed the connection). 23:14:18 ⍋ christmas tree 23:14:43 welp 23:14:45 puzzle guy is gone 23:14:52 i mean, i can see standard stuff like set notation junk 23:14:53 etc 23:14:59 the rest of it tho? 23:17:42 psygnisfive: http://pikhq.nonlogic.org/pebble.php 23:18:22 If you want some examples aside from the stdlib, I've got a few. . . 23:18:46 i just wanna see a spec :( 23:18:56 It's in the tarball. 23:19:01 ok :D 23:19:14 tusho: i think thats something that obviously should be in my quantifier language 23:19:23 It also has documentation on the stdlib. 23:19:54 (each Set).to_string 23:19:56 or something 23:20:12 psygnisfive: { numbers | odd }.sum 23:20:16 yummy 23:20:19 and as for the mapping thing 23:20:24 no that doesnt make sense 23:20:24 { words | style == bold }:characters[1] 23:20:28 the ':' is magical 23:20:36 since that clearly means sum over the set not the members 23:20:43 yes 23:20:45 ok. 23:20:48 the : is what specifies 'over members' 23:20:50 ok. 23:21:03 well, in my quantifier language im going to handle it differently 23:21:09 using quantifiers. 23:21:17 sure 23:21:18 :p 23:21:27 i like this, we need to think of more interesting things to do 23:21:38 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 XD 23:22:35 in fact psygnisfive 23:22:37 i could just do 23:22:43 sum { numbers | odd } 23:22:44 vs 23:22:48 { numers | odd }.succ 23:22:57 cleaner-looking 23:23:01 * pikhq is just going to shove PEBBLE down psygnisfive's throat 23:23:04 i prefer .: 23:23:15 psygnisfive: mm, i think mine could have merits though 23:23:16 we'll see 23:23:22 i wish that paper had more examples of it 23:23:23 because i like methods 23:24:05 methods are sort of like monads 23:24:09 well 23:24:11 the dot is. 23:24:25 the dot is like haskell's >>= 23:24:29 object orientation is reverse CPS 23:24:38 think about it 23:24:44 and i rather like . thinking 23:24:51 do this then do this to that then do this to that 23:24:53 and so on 23:24:56 yeah 23:25:00 reading nested stuff is a bitch 23:25:10 a mostly-stream workflow is far easier to grasp 23:25:38 someone should make a language thats like haskell in its function application syntax, only in reverse 23:25:44 e.g. x f instead of f x 23:25:49 psygnisfive: concatenative 23:25:49 :P 23:25:53 yeah but 23:25:56 i know what you mean 23:26:01 then any function call can look like a method call 23:26:01 I spurted some examples of it in #haskell 23:26:02 if you want 23:26:03 turn sout it kinda sucks. 23:26:11 psygnisfive: 23:26:14 a . b = b a 23:26:14 or you could go back and forth at will with some notation 23:26:21 stuff.map(succ).first 23:26:26 fear the evil 23:27:02 maybe : could be that syntax to counterpoint . 23:27:21 5:succ:abs == abs (succ 5) 23:27:35 hmm, i thought of a good alt. to : 23:27:35 -> 23:27:38 because it digs in 23:27:41 eh 23:27:44 { words | style == bold }->character[1] 23:27:46 very perl/php 23:27:46 see the metaphor>? 23:27:51 psygnisfive: very C, actually 23:28:02 and the point is that it's quite clear what it does once you've had it explained 23:28:06 since the visual meatphor is strong 23:28:07 true, but perl and php use it exclusively for method access 23:28:17 blahblahblah->to_string() 23:28:22 yeah, well, whatever they wanna do :P 23:28:26 and ive always hated it 23:28:30 but c has it, and i think it's a good visual metaphor -for this use- 23:28:38 hmm 23:28:47 { { words | bold } italic } <-- don't like this 23:28:49 how about 23:28:53 words.{ bold } 23:29:10 words.{bold}.{italic}->character[1] 23:29:32 i dont see what the first would mean 23:29:36 err 23:29:41 {{ words | bold } italic ] 23:29:42 {{words|bold}|italic} 23:29:42 ?? 23:29:47 forgot a | 23:29:53 that still doesnt make much sense i dont think 23:29:58 psygnisfive: { set | condition } 23:30:03 filter set by condition 23:30:06 { words | bold } = bold words 23:30:10 { foo | italic } = italic foos 23:30:11 oh, yeah, i guess. 23:30:17 { { words | bold } | italic } = bold italic words 23:30:24 you could just do 23:30:26 ofc you can do bold && italic 23:30:27 but what the heck 23:30:29 { words | bold and italic } 23:30:43 ok i have to make dinner 23:30:44 afk 23:30:45 bye 23:30:45 words.filter{ bold && italic }->character[1] 23:30:46 :PP 23:30:48 bye 23:30:49 *:P 23:30:50 -!- Corun has joined. 23:34:20 “ 23:34:22 ” 23:53:33 Bye? 23:53:55 Bye, psygnisfive.