00:00:11 -!- BrainF has joined. 00:00:11 Hi all. I wrote this BF program with the help of a horrible horrible generator I wrote. 00:00:11 -!- BrainF has quit (Client Quit). 00:00:17 It's so slow in connecting though 00:01:09 I need a better syntax for scripts 00:03:53 it's actually pretty cool now that i see it in action 00:04:09 oklopol, PSOX? 00:04:27 btw. unlambda cannot output any possible byte (right?), can psox be used with it? 00:04:50 oklopol, um.. what do you mean by "cannot output any possible byte"? 00:05:00 psox seems to need null bytes a lot? 00:05:02 i mean, zeroes. 00:05:07 oklopol, yes 00:05:17 i don't think you can output that in unlambda.. :< 00:05:18 oklopol: unlambda can output anything in principle 00:05:25 hmm 00:05:32 you need to have the chars in the source? :P 00:05:36 yep 00:05:37 . 00:05:41 heh 00:06:02 my self-interpreter has a table of all the ?x'es 00:06:17 (the .x's can be generated from the input using |) 00:06:31 it'd be awesome to have a system where just being able to output two different bytes would suffice. 00:06:42 psox for dummies 00:07:23 hm? 00:07:37 heh this means you actually cannot do PSOX with just null-terminated C strings 00:07:42 i mean, so that those two could be anything... you would have a clever initialization where the language tells psox what it can do. 00:08:09 after which an encoding rises somewhat naturally, for languages where not everything is easy to output 00:08:39 oerjan: well who cares about such turing tarpits anyway 00:08:42 i think PESOIX or something had such an adjustable I/O encoding at least intended 00:09:13 trivial-idiotic way to do it: have a represent 0s and b represent ones, and put in a layer between that and PSOX 00:09:19 oerjan, oh? 00:09:58 Sgeo: there was some blurb about the languages needing only some way to _represent_ the required range of numbers, anyhow 00:10:48 hm.. I suppose I could make a command line option, like -n 00:11:01 oerjan: that's trivial if external settings are used, but could the program actively ask for an encoding using its limited facilities? 00:11:09 -n a would tell the interpreter to subtract ord('a') from each character except those escaped as output 00:11:33 i mean, could it do that in that vague idea you were describing :P 00:11:40 Not going to work on it ATM, but it's an idea 00:11:45 oklopol: for languages such as original INTERCAL which has only a _very_ limited I/O format, external settings seem necessary 00:12:30 oerjan: in case nonsense is taken as a calibration sequence, i don't think they are necessary. 00:12:37 how limited is intercal? 00:12:52 tbh i still don't know much about it :| 00:12:59 roman numerals in one direction, explicit english words in the other, or something like that 00:13:13 xD 00:13:17 good old intercal <3 00:13:56 Scary that there exist languages that PSOX doesn't currently support.. 00:15:14 oerjan: but why english, why not sanscrit 00:15:45 Well, you can't write sanskrit on a keyboard! 00:16:09 you can't? 00:16:11 I can write nulls on a keyboard: \x00\x00\x00\x00 00:16:17 oklopol: i recall a list of supported languages 00:16:31 most of which were highly weird 00:17:25 Can modern INTERCAL do PSOX? 00:17:47 And does anyone want to write a decent IRC bot in BF+PSOX? 00:17:57 or INTERCAL+PSOX 00:17:57 ? 00:18:30 Sgeo: modern intercals have binary I/O extensions 00:18:37 oerjan, cool 00:18:43 I'm already sick, don't try to kill me Sgeo. 00:18:50 slereah_, get well soon! 00:20:10 00:20:10 slereah_: of course you can write sanskrit on a keyboard. the script is in UNICODE, and besides is also used for modern Hindi 00:20:20 lol, i never thought simulating a fibonacci heap manually could be this boring. 00:20:59 if i ever get to teach a class, i'm gonna make 'em pay for this. decrease min WILL FUCKING RECURSE. 00:22:20 * oklopol has simultaneously found the teacher AND the sadist in him. 00:23:27 Will the child molester follow soon? 00:25:11 people in general dislike molesting so bad i don't think i'll ever try that. 00:25:38 some seem to think getting fucked is actually worse than getting beaten. 00:25:57 but then again, some people listen to abba. 00:26:13 people are different, in a sick way. 00:26:13 What, you don't like ABBA? 00:26:21 That's worst than molesting children! 00:26:24 it was an example, but no, not really 00:26:51 not liking abba might be worse than molesting children, but i don't have to go to jail for it :) 00:27:11 i think 00:27:14 not sure though 00:27:16 http://trac2.assembla.com/psox/browser/trunk/utils/TEXT2BF.py 00:28:33 Sgeo: is that a generated generator? 00:28:37 it's kinda trivial. 00:28:39 oklopol, lol no 00:28:54 trivial? 00:29:10 well... isn't it? 00:29:12 dunno 00:29:15 I guess 00:29:24 my head is full of dancing oklotrees right now 00:29:42 they're a combination of fibonacci trees and pure insanity 00:29:47 *heaps 00:29:48 lol 00:30:39 oklotrees, do not execute extract-min in O(log n), but they look EXPONENTIALLY COOL 00:30:44 you should see it 00:31:06 nice place for a comma 00:34:46 i was quite dissappointed though when the professor told fibonacci heaps are one of the weirdest :| 00:35:15 with math you always know you can take any sub-subject and there's always 30000 pages of material about it 00:35:41 i want millions of weird heaps... 00:36:18 * oklopol is obsessed, once again 00:41:22 -!- Corun|pants has changed nick to Corun. 00:42:15 oklopol> my head is full of dancing oklotrees right now 00:42:18 oklopol> they're a combination of fibonacci trees and pure insanity 00:42:30 * oerjan gets Cthulhu mythos associations 00:43:30 i don't know much about cthulhuism 00:43:45 i get pop culture a bit slow. 00:43:48 It mostly involves dissin' on niggas. 00:43:58 xD 00:44:09 Well, Cthulhu is 90 years old. 00:44:13 oklopol: believe slereah_. that is safer than the real thing. 00:44:18 slereah_: you're one of my favorites :) 00:44:30 take or give a few dozen zeros 00:44:36 remind me of me 00:44:56 hmm 00:44:58 -!- timotiis has quit ("leaving"). 00:45:02 Hell, Turing might have read some Cthulhu! 00:45:04 not many zeroes to take 00:45:20 unless you cound the invisible ones 00:45:23 *count 00:45:56 the insane ones! 00:46:11 TAINTED ZEROES KILL KILL AOIFSDJTGO 00:46:15 no, forget those. move on. nothing to see here. 00:47:43 hmm... 00:47:59 Maybe I could make a BfEcho bot/ 00:48:17 What would it do! 00:48:30 Hm, but I'd need to examine the text coming in from the socket 00:48:30 i think i should make some generic tools for operating on trees, and make a program to randomize tree structures for me 00:48:45 There's no builtin IRC stuff, just sockets 00:48:49 that would be FUCKING HOT LAVA OH BABY YEAH 00:48:59 i hope lament isn't awake. 00:49:08 oklopol, why? 00:49:31 Sgeo: lament is the banbot of this channel, "fuck" triggers it 00:49:46 Fuck you lament 00:49:49 :D 00:49:53 also flooding and ascii penises. 00:49:53 oklopol, that can't be serious, you'd be banned if you were 00:50:02 8===D 00:50:03 fuck 00:50:03 Nah; he just has the bot to say 'OMG you said fuck' 00:50:06 Fuck on 00:50:10 Fuck. 00:50:17 Guess he disabled it. 00:50:17 Sgeo: just assume everyone is always kidding ;) 00:52:32 you never know quite what to answer when an ex girlfriend tells you they brought a dildo with 10 different vibration modes. 00:52:46 we should share more, ppl, this is great 00:52:52 "Can I try it?" 00:52:58 :D 00:52:59 immibis is the one with the bot 00:53:08 she'll prolly suggest that anyway 00:53:12 anyway, megoes -> 00:53:14 cya 00:53:21 Bai. 00:53:36 pikhq probably swears more than oklopol, though when oklopol swears its in a tightly concentrated space 00:53:41 i just swear all the fucking time 00:53:54 ehird`: I also curse multilingually. 00:54:03 pikhq: That must be..interesting 00:54:06 i mostly swear for the fuckarous fuck of it 00:54:25 10 different modes? is this a dildo or a musical instrument? 00:54:29 How often do I swear? Almost never? 00:54:47 Sgeo: Never. 00:54:47 (could be a combination of course) 00:54:48 Can you combine them? 00:55:01 oerjan: that's what i wondered too... i'm fairly sure the human pussy only distinguishes like 3... 00:55:02 Maybe find the resonance frequency of your prostate or something! 00:55:06 ehird`, well I swore just before, after the mention of lament.. 00:55:18 "And now, Beethovens' Fifth, in the key of C, on the Dildo." 00:56:10 well, yes 00:56:19 Maybe you could hook it up to your computer, and connect it to some game. 00:56:52 "TEN THOUSAND POINTS, ONE ORGASM" 00:59:01 I'm not quite sure how to test server sockets 01:13:31 * lament bans slereah_ 01:13:39 Noooooes 01:24:44 -!- Corun has quit ("This computer has gone to sleep"). 01:24:54 lament: fuck 01:26:03 my punishment shall be swift 01:26:11 and, er, horrible 01:27:26 you will cry like a japanese schoolgirl being raped by a giant radioactive octopus 01:27:56 wouldn't that be _rewarding_ oklopol though 01:29:53 I thought that the tentacle rape was actually a high honor? 01:31:27 wanna find out? 01:31:52 * lament wiggles his tentacles 01:32:24 * oerjan scratches out lament's species on his #esoteric score card 01:37:08 i meant "his or her tentacles", of course 01:37:16 -!- Corun has joined. 01:37:57 what, just two possible sexes? 01:38:17 i won't bother scratching out "home planet", then. 01:40:20 "his or her" is one sex! 01:41:38 hello 01:41:50 everyone 01:42:00 Tritonio_: quick 01:42:03 you must escape 01:42:10 huh? 01:42:12 lament is raping everyone with his or her tentacles 01:42:16 lol 01:42:40 i read about the radioactive octapus and i really loled... 01:42:42 :-P 01:43:46 btw i updated the brainfuck algorithms page on the wiki 01:44:07 i would be really happy if someone checked if the update is ok. :-) 01:46:40 how often does calamari log in here?? 01:47:41 Not enough that I can remember him 01:48:44 er i don't think it was _that_ long ago he was here? 01:49:32 Tritonio_: you prefer to be raped by squid? 01:50:44 lament, i am reallllllyyyy drunk right now so i am not even sure what a squid is 01:50:57 Tritonio_: the same animal as "calamari" 01:51:04 although i think it is that ocapus like thing that spits ink 01:51:26 oh yes... and calamari is a greek word too 01:51:32 i should now... :-D 01:51:43 he was here yesterday 01:51:46 i know 01:52:00 Tritonio_: dsof, slo utiua? 01:52:08 we talked yesterday about that 1 byte / array cell table implementation i made 01:52:16 ehird`, WTF? 01:52:20 Tritonio_: oh. i see thn..e 01:53:05 Trinioo_t: So, whtear euaf i? 01:53:10 calamari told me to update the esolang wiki with the new algo... but i want to know if i must do something with calamari's implementation on the same page 01:53:26 Airu. Ajgfunp, xkauf. ua. 01:53:38 ehird`, lol 01:53:50 whatever... maybe i must go to sleep..... 01:53:51 Tritonio_: Auuee! If you kanu, tigo aodi. 01:54:08 suuuu... nigGOODhtt 01:54:14 re 01:54:14 sopaof ubnajd. 01:54:17 fo. 01:54:21 ehird`: I agrue. You puroesj trjacgr. 01:54:22 diaoc oasirng ioaisd. 01:54:33 -!- Corun has quit ("Delight of Turkishness"). 01:54:46 >[>>>[-<<<<+>>>>]<[->+<]<[->+<]<[->+<]>-] 01:54:47 >>>[-]<[->+<]< 01:54:47 [[-<+>]<<<[->>>>+<<<<]>>-]<< 01:54:48 Tritonio_: scose daneroush rcga? 01:55:01 is this a REAL language? 01:55:10 or jist ehird'ish? 01:55:12 Tritonio_: It's enlgirs.. 01:55:30 c i oh 01:56:01 enoyreve thgin doog yawyna 01:56:08 eyb 01:56:17 )-: 01:56:18 reebyebe 01:56:21 Tritonio_: ??? Irua. I dnot udnajrtsnd ua. 01:56:32 lament: LIES. y nt befol skwat. 01:56:44 oerjan: GC! 01:56:52 i splipli dnot ndagerstand u 01:57:06 lament: Auu, I dnta thnkgi I will undnernstnd thtat for lngo.. 01:57:20 will someone Ckeck the UwPiDkAiTE 01:57:21 ? 01:57:44 rhapsody are simply perfect 01:57:45 are you drunk or what? You're talking nonsense. 01:57:50 i am 01:57:57 jglu? 01:58:01 em 01:58:10 loipon tha arxiso kai ego na milao ellinika 01:58:20 giati poly moy ta priksate an kai exo psofisei sta geleia 01:58:39 Tritonio_: lkos fin to me 01:58:41 Aufu... iaminitan, AWESOME!!! 01:58:41 perdon, yo no hablo chino 01:58:52 kala den pame kala edo mesa.... 01:58:55 xaxaxaxa 01:59:14 N gr det over alle stvleskaft her 01:59:17 oloi oi kamenoi toy eleytherokomboy se ena domatio 01:59:25 gamato 01:59:36 kalinixta kayles 01:59:40 =goodnight 01:59:46 Wuaut? Drnkju, I think you arear. ... you don't smem to be ablkgl to undasnernst su..... 01:59:46 :-) 01:59:48 jag alska bananer 02:00:00 Yuo shdoul go tobde.. 02:00:04 lament: lskar 02:00:38 * Tritonio_ 's nonsense filter log's him out automaticaly. 02:00:55 PS: we are all european here? 02:01:23 i'm Pacific. 02:01:30 I'm from the moon. 02:01:35 what;s that? 02:01:36 lamen 02:01:38 lament 02:01:44 It's a small rock around the earth 02:01:54 I live in the Pacific ocean. 02:01:58 i know about the moon. my grandma was from there 02:02:05 lament, i c 02:02:17 slereah_: don't be ridiculous. the earth is far too large for a small rock to fit around it. 02:02:34 Tritonio_: We couldn't trick you. 02:02:35 :( 02:02:42 oerjan, SDOING 02:02:49 lolol 02:02:51 anyway 02:02:58 see you 2morrooooooooooooooow 02:03:14 oerjan: i think he meant inside, not around 02:04:00 oh 02:04:31 but there's a complicated system of mirrors which makes it appear in the sky 02:06:39 It's the moon conspiracy. 02:06:55 Man didn't land on the moon, he fell on it. 02:21:54 I'm American 02:22:17 -!- kwertii has joined. 02:22:20 -!- kwertii has quit (Remote closed the connection). 02:22:28 Sgeo: Who asked? 02:22:35 PS: we are all european here? 02:22:48 -!- kwertii has joined. 02:23:44 eso.b 02:23:48 -!- BrainF has joined. 02:23:48 Hi all. I wrote this BF program with the help of a horrible horrible generator I wrote. 02:23:48 -!- BrainF has quit (Client Quit). 02:25:25 http://pastebin.com/m6f8e6cdc 02:27:01 And a more readable version: http://pastebin.com/m58f2748 02:33:56 * Sgeo modifies the generator to take the scripts in a simpler form and also to automatically add linebreaks 02:41:05 -!- ehird` has quit ("K-Lined by peer"). 02:57:13 Hm, I wonder if I can make a text generator that uses up N number of cells 03:03:35 * Sgeo is too lazy 03:03:43 22 packets transmitted, 2 received, 90% packet loss, time 21014ms 03:03:48 Someone out there hates me. 03:04:23 pikhq, are you going to try sockets? 03:04:27 Sockets are working now >.> 03:04:32 I tested them in here 03:04:39 At least, writing to sockets 03:04:47 I haven't tested server sockets or UDP or anything 03:04:55 And I think I might need to add a function 03:24:43 But still, I've connected to IRC in Brainfuc 03:24:47 Brainfuck 03:49:40 * Sgeo pokes pikhq 03:49:47 Ok, File domain thoughts: 03:50:02 Directories gotten by the equiv. of LS are represented as FDs 03:50:13 Except seeking is per file 03:50:35 the first byte in each entry is whether the entry is a file or a directory 03:53:26 pikhq, are you alive? oerjan, GregorR? 03:53:41 Well, I'm undead. 03:53:43 That's close enough. 03:53:53 !(dead) 03:54:04 No, not NOT dead. 03:54:12 UNdead 03:54:21 It can't be represented by simple boolean logic. 03:54:37 Fine, then. 03:55:03 enum gregor {DEAD, NOTDEAD, UNDEAD}; 03:55:04 Is my scheme ok? 03:55:09 We will call it, Gregorian logic. 03:55:24 Or should I have directories separate from the FD scheme? 03:55:29 Sgeo: Idonno, are you coming from Elisp or CL? 03:55:41 (hyuck hyuck hyuck) 03:56:46 So, rather than having a readdir call, you just have a stream of data in a predefined pattern? 03:57:27 BRAINS... 03:58:11 GregorR, I think it is a readdir call of sorts.. 04:09:06 -!- kwertii has quit (kornbluth.freenode.net irc.freenode.net). 04:09:06 -!- puzzlet has quit (kornbluth.freenode.net irc.freenode.net). 04:09:06 -!- lifthrasiir has quit (kornbluth.freenode.net irc.freenode.net). 04:09:08 -!- BMeph has quit (kornbluth.freenode.net irc.freenode.net). 04:09:08 -!- RodgerTheGreat has quit (kornbluth.freenode.net irc.freenode.net). 04:09:08 -!- sekhmet has quit (kornbluth.freenode.net irc.freenode.net). 04:09:08 -!- slereah_ has quit (kornbluth.freenode.net irc.freenode.net). 04:09:08 -!- Sgeo has quit (kornbluth.freenode.net irc.freenode.net). 04:09:08 -!- sebbu has quit (kornbluth.freenode.net irc.freenode.net). 04:09:08 -!- AnMaster has quit (kornbluth.freenode.net irc.freenode.net). 04:09:09 -!- Tritonio_ has quit (kornbluth.freenode.net irc.freenode.net). 04:09:09 -!- bsmntbombdood has quit (kornbluth.freenode.net irc.freenode.net). 04:09:11 -!- oklopol has quit (kornbluth.freenode.net irc.freenode.net). 04:09:11 -!- cmeme has quit (kornbluth.freenode.net irc.freenode.net). 04:09:11 -!- GregorR has quit (kornbluth.freenode.net irc.freenode.net). 04:09:12 -!- EgoBot has quit (kornbluth.freenode.net irc.freenode.net). 04:09:12 -!- Overand has quit (kornbluth.freenode.net irc.freenode.net). 04:09:12 -!- pikhq has quit (kornbluth.freenode.net irc.freenode.net). 04:09:12 -!- lament has quit (kornbluth.freenode.net irc.freenode.net). 04:09:12 -!- johnl has quit (kornbluth.freenode.net irc.freenode.net). 04:09:13 -!- atsampson has quit (kornbluth.freenode.net irc.freenode.net). 04:09:13 -!- cherez has quit (kornbluth.freenode.net irc.freenode.net). 04:09:13 -!- mtve has quit (kornbluth.freenode.net irc.freenode.net). 04:09:14 -!- SimonRC has quit (kornbluth.freenode.net irc.freenode.net). 04:10:10 -!- kwertii has joined. 04:10:10 -!- slereah_ has joined. 04:10:10 -!- pikhq has joined. 04:10:10 -!- Sgeo has joined. 04:10:10 -!- BMeph has joined. 04:10:10 -!- Tritonio_ has joined. 04:10:10 -!- sebbu has joined. 04:10:10 -!- bsmntbombdood has joined. 04:10:10 -!- puzzlet has joined. 04:10:10 -!- lament has joined. 04:10:10 -!- RodgerTheGreat has joined. 04:10:10 -!- EgoBot has joined. 04:10:10 -!- oklopol has joined. 04:10:10 -!- atsampson has joined. 04:10:10 -!- lifthrasiir has joined. 04:10:10 -!- AnMaster has joined. 04:10:10 -!- mtve has joined. 04:10:10 -!- Overand has joined. 04:10:10 -!- cmeme has joined. 04:10:10 -!- GregorR has joined. 04:10:10 -!- SimonRC has joined. 04:10:10 -!- johnl has joined. 04:10:10 -!- sekhmet has joined. 04:10:10 -!- cherez has joined. 04:12:12 ev5rn'slive? 04:12:24 wut? 04:12:45 u should srr me now in my seat 04:25:36 * Sgeo sits back up in his chair 04:31:30 Hm, pikhq GregorR should the mkdir function fail if there's already such a directory, or not? 05:10:03 -!- Asztal has joined. 05:10:42 Hi Asztal 05:10:57 Watch this: 05:11:05 :o 05:11:11 -!- BrainF has joined. 05:11:11 Hi all. I wrote this BF program with the help of a horrible horrible generator I wrote. 05:11:11 -!- BrainF has quit (Client Quit). 05:11:39 I'm intrigued. 05:11:59 At a BF program going online? 05:12:37 Yes. Does it have its input/output hooked up to a socket? 05:13:17 Not quite 05:13:24 It uses a thing called PSOX 05:13:31 http://esolangs.org/wiki/PSOX 05:13:43 Currently has sockets 05:14:11 erm, sockets and HTTP 05:14:33 It will also soon support file access 05:15:19 -!- immibis has joined. 05:15:55 Hi immibis. Did you see my latest PSOX demo? 05:16:28 no. i'm not interested in psox. 05:17:25 -!- BrainF has joined. 05:17:25 Hi all. I wrote this BF program with the help of a horrible horrible generator I wrote. 05:17:25 -!- BrainF has quit (Client Quit). 05:18:53 * Sgeo goes to change the program I but. 05:18:56 a bit 05:19:09 lol 05:21:19 -!- BrainF has joined. 05:21:19 Hi all. This client is written in Brainfuck (albeit written with a generator), believe it or not. It uses PSOX. You can get information about PSOX at http://esolangs.org/wiki/PSOX . 05:21:19 -!- BrainF has quit (Client Quit). 05:21:28 grr 05:23:08 Why is it so slow? 05:23:10 you don't need psox for that. "mkfifo irc_fifo; bf irc_bot.bf < irc_fifo | nc irc.freenode.net 6667 > irc_fifo" 05:23:20 because it's brainfuck? 05:24:01 immibis: But that's not what he's doing. 05:24:42 He's got a fancy API. ;) 05:24:48 no, it isn't. but he doesn't need psox to connect to a remote server, send commands, and read responses. 05:25:14 immibis, for the client to choose the server, yes it does 05:25:37 Let's say, hypothetically, he wrote an IRC client in Brainfuck. 05:25:48 (which is quite possible, if you're sufficiently insane). 05:25:58 Would you be more impressed with that? 05:26:21 sgeo: I'm sure that could be done with a bash script too. 05:26:34 immibis, but I'm doing it with Brainfuck 05:27:14 oh, you mean BF controlling the server 05:27:19 mkfifo irc_fifo; bf irc_bot.bf < irc_fifo > >( read server port ; nc $server $port > irc_fifo) 05:27:27 -!- BrainF has joined. 05:27:27 Hi all. This client is written in Brainfuck (albeit written with a generator), believe it or not. It uses PSOX. You can get information about PSOX at http://esolangs.org/wiki/PSOX . 05:27:27 -!- BrainF has quit (Client Quit). 05:27:42 Why does it work when I have the nickname be BrainF but not SgBrainfuck? 05:27:53 Erroneous nickname 05:28:38 The script for BrainF: http://pastebin.com/d51adfde7 05:29:14 The first line is PSOX-Init 05:29:18 The second line: 05:29:31 0x00 0x08 0x00 represents calling function 0x00 in domain 0x08 05:29:47 The 0x00 after that represents TCP v. UDP 05:29:57 0x1A 0x0B is the port 05:30:12 Then the next part is the address 05:30:15 -!- immibis has quit (Remote closed the connection). 05:30:18 and 0x0A terminates all functions 05:30:33 -!- immibis has joined. 05:30:41 wb 05:30:45 and 0x0A terminates all functions 05:31:15 the last message i got from you was [18:27] oh, you mean BF controlling the server 05:31:27 not sure what you meant by that tho 05:33:46 what's 0x00 0x02 0x10 0x04? 05:33:50 never mind, gtg 05:33:52 -!- immibis has quit (Client Quit). 05:33:56 Bye immibis 05:34:38 For anyone who wants to read in the logs: the function 0x10 in domain 0x02 switches where output goes to. In this case, we're switching to 0x04 because that's where the "file descriptor" for the socket was made 05:34:45 0x04 was the first available FD slot 05:35:18 0x00 is current outFD, 0x01 is current inFD, 0x02 is stdout, 0x03 is stdin 05:35:31 Then the next lines simply output the necessary commands 05:36:23 Sgeo: my guess is "fuck" is censored in nicknames 05:36:40 Indeed 05:39:49 -!- BrainF has joined. 05:39:49 Hi all. This client is written in Brainfuck (albeit written with a generator), believe it or not. It uses PSOX. You can get information about PSOX at http://esolangs.org/wiki/PSOX . 05:39:49 -!- BrainF has quit (Client Quit). 05:57:42 I guess I really should go to sleep now 06:01:50 -!- oerjan has quit ("Later"). 06:24:04 -!- devicenull has joined. 06:24:22 -!- BrainF has joined. 06:24:22 Hi all. This client is written in Brainfuck (albeit written with a generator), believe it or not. It uses PSOX. You can get information about PSOX at http://esolangs.org/wiki/PSOX . 06:24:22 -!- BrainF has quit (Client Quit). 06:25:02 :D 06:25:02 -!- habnabit has joined. 06:25:16 -!- BrainF has joined. 06:25:16 Hi all. This client is written in Brainfuck (albeit written with a generator), believe it or not. It uses PSOX. You can get information about PSOX at http://esolangs.org/wiki/PSOX . 06:25:16 -!- BrainF has quit (Client Quit). 06:25:31 -!- devicenull has left (?). 06:25:41 The script that I fed to the generator is at http://pastebin.com/d51adfde7 06:28:08 I should get going now 06:53:37 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 07:20:50 -!- bsmntbombdood has quit (Remote closed the connection). 07:31:22 -!- kwertii has quit ("bye"). 07:35:58 -!- BMeph has quit ("calls it a night"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:01:37 -!- olsner has joined. 08:09:00 -!- Sukoshi` has joined. 08:09:21 Yo. 08:12:42 Hi. 08:12:56 Hi. 08:13:11 Is anyone here enough of a loser to go on Direct Connect networks? 08:38:07 -!- olsner has quit ("Leaving"). 09:10:19 Sukoshi`: i'm enough of a loser for that 09:10:26 i have other reasons not to go on them 09:15:58 -!- habnabit has quit (Read error: 110 (Connection timed out)). 09:23:49 I was wondering because I'm writing a DC client. 10:40:23 I used to. 10:40:35 But really, it's now not very useful. 10:44:11 I used to longz agoz. 10:44:18 Like 6-7 years ago. 11:01:03 -!- jix has joined. 11:09:49 dc sucks... 11:17:27 -!- Corun has joined. 11:21:05 It does. 11:21:48 The protocol was written by an HS student who used terms like $ValidateDenide and $LogedIn 11:23:38 HS=? 11:23:44 high school? 11:24:01 anyway it sucks because it's nothing new... it is server based 11:24:28 there are no firewall2firewall conections.... 11:24:29 etc 11:24:50 High School. 11:24:53 What ? 11:25:00 How can a firewall connect to a firewall? 11:25:35 firewall2firewall is in fact firewalled user to firewalled user. 11:25:48 It can do passive connections. 11:25:49 two users behind two firewalled router 11:26:08 i know but with passive connections it is much slower 11:26:13 The protocol itself has no basic firewall support, true, but. 11:26:35 How else would you propose to do it? Is opening a port that difficult? 11:26:48 sometimes it is imposible... :-( 11:26:53 if you do not own the router 11:27:16 You can't tunnel through SSH? 11:27:24 Or even as a last resort, use an HTTP proxy. 11:27:45 O_o how slow is this going to be? 11:28:16 and what do you mean to tunnel through SSH? 11:29:37 Google holds many of these answers. 11:39:09 -!- oerjan has joined. 11:43:14 i still don't see how an SSH tunnel would help 12:08:24 -!- timotiis has joined. 12:17:10 -!- Corun has quit ("This computer has gone to sleep"). 12:30:51 You SSH tunnel through an open port. 12:31:14 can't you just tell dc to use that port? 12:40:09 Yeah. 12:40:25 Or an HTTP proxy works, which tunnels traffic through an HTTP port. 12:40:43 but what if the route directs no port to your pc. 12:40:50 router* 12:41:06 which is the case normally 12:41:13 So you can't access the internet at all? 12:41:24 huh? of course you can 12:41:48 you can connect to everyone else. but nobody else can connect to you. 12:41:55 If you can't pass outgoing/incoming traffic through port 80, then what? 12:42:33 A port works two ways, source and destination. A typical firewall allows you to use a port as a source port, but not use it as a destination port. 12:42:46 i am talking about routers. 12:42:47 However you cannot do that with port 80, because it is an HTTP port. 12:42:59 The router uses a firewall ... the difference is the same. 12:43:10 i can close all ports on my router and still access the internet 12:43:17 but there will be no incoming connections 12:43:40 you can make an outgoing connection using any local port even if the router has all ports closed 12:43:48 (for incoming connections) 12:43:55 That means the router is being smart and allowing an HTTP connection to work synchronously, but now allowing one directional connections to occur. 12:44:14 i don't get it 12:44:25 A router can't perform magic. It has to do something with ports. 12:44:36 There's no option in the IP RFC that says "block a port but let traffic through". 12:44:43 obviously for tunneling you keep an outgoing connection open, which is still two-way for data 12:45:16 In an HTTP proxy, the connection looks just like a typical HTTP connection. A server is connected to, data is requested, more data is sent back, data is further requested, etc. 12:45:27 the router is a network node. if you try to connect to someone's router on port 60 (4eg) it will have to forward this connection to some internal ip:port 12:45:40 right? 12:45:56 Yes. 12:46:13 so what happens if no redirections have been setup? 12:46:25 the internal network still has access to the internet, right? 12:46:26 .... 12:46:29 How? 12:46:35 Tritonio_: you don't try to connect to someone's firewalled router. you allow them to connect to you, or you both connect to a server which does the tunneling. 12:46:52 Data is transmitted outgoing or incoming. 12:47:39 oerjan, that's what i am saying. if you haven't setup and redirections then you cannot access a pc in an internal network until it makes a connections to you 12:48:10 What is the theory behind this? Data can go out of a device and into a device. 12:48:18 after the pc behind the router connects to you, you can transmit and recieve data 12:48:26 The way a router works is that, data is redirected. 12:48:42 ok wait. i 12:48:51 So when you make an HTTP connection, you send the text "GET / HTTP/1.0". This data is sent out and transmitted via the router to the server of choice. 12:49:01 i'll close all redirections in my router, and UPnP too. ok? 12:49:18 The router then sends back a response, the HTML code, and this is intercepted by the router, and then sent back to you. 12:49:25 according to you. i will not be able to talk here afterwards? 12:49:37 Notice that you have an asynchronous connection here. Data is being transmitted one way and received another. 12:50:04 Tritonio_: Not neccessarily, your router could be smart (which is very normal) and if a connection is made first from a requesting machine, that connection can be allowed into the clear by the router. 12:50:19 Stop treating the router as a black box. "The router can do x" is not an explanation. 12:50:38 i still don't get it. 12:50:45 if i disconnect from the chat 12:50:54 then cancel all redirections. 12:51:01 will i be able to reconnect? 12:51:06 (i say yes) 12:51:10 Your machine sends a SYN packet to the router dest. the IRC server 12:51:27 The router sees the SYN packet, and adds the connection to a connection table, then routes the SYN packet out to the server. 12:51:36 right 12:51:39 The server sends back a response, SYN/ACK. 12:51:46 right 12:51:55 The router then cross-references the SYN/ACK with its connection table. If it finds an entry, it lets this through to you. 12:52:07 If it does not, the packet gets dumped into /dev/null. 12:52:08 ok 12:52:22 so there will be a connection. 12:52:42 So an HTTP tunnel works exactly this way. It creates an outgoing connection, and sends the traffic through this. The proxy then is in charge of handling all the traffic with the external server. 12:53:08 an outgoing connection to who? 12:53:15 To the proxy. 12:53:30 wait 12:53:34 C <-> P <-> S (C: Client, P: Proxy, S: Server.) 12:53:38 if i am behind a router 12:53:47 and you are behind a router. 12:53:59 how can we use the http proxy to communicate? 12:54:38 Okay, I'll give the simple explanation and leave for the night (it's 4:52 AM here): Because for all intents and purposes, an HTTP proxy connection looks the same as any HTTP connection. 12:54:50 ok 12:55:11 I suggest you do some IP reading in the mean time to get an understanding of it. 12:55:18 -!- Sukoshi` has left (?). 12:56:44 -!- faxathisia has joined. 12:57:08 -!- oerjan has quit ("Too much noise"). 13:00:31 anybody here? 13:01:04 Tritonio_: 13:01:54 was i wrong about the HTTP proxy not been helpful if both routers (NATs) do not redirect incoming connections to the two users that want to communicate??? 13:45:27 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 13:46:31 -!- slereah_ has joined. 13:56:50 -!- ehird` has joined. 13:59:00 -!- ehird`_ has joined. 13:59:22 -!- ehird` has quit (Read error: 113 (No route to host)). 14:01:23 i just realised what a good curse 'Bjarne, stroustroup!' is 14:01:36 Bjarne sounds like a foreign insult and 'stroustroup' sounds like..well, stroustroup 14:01:40 [note: spelling may suck] 14:18:23 we need a glass debugger 14:19:24 wouldn't that constitute a wimpmode? I don't think Gregor would approve 14:31:43 -!- ais523 has joined. 14:33:55 RodgerTheGreat: No, not really... 14:34:00 It would be edlin-style 14:34:08 ah 14:34:10 it would execute a line at a time 14:34:24 '' would execute the line, then print out the next one 14:34:36 and you'd have a command to print out the stack in an inscrutable format 14:34:39 maybe make it use commands that are rot13ed to make it harder to memorize? 14:34:42 add about 3 or 4 more commands and you've got the glass debugger 14:34:50 RodgerTheGreat: all one character 14:34:54 with seemingly no relation to what they do 14:34:58 (Just like Glass!) 14:36:14 hello ais523 14:39:08 GregorR: Is cpkt yours? 14:39:13 ckpt 14:39:17 in egobot tree 14:39:23 because JB_SP is undefined 14:40:25 $ grep JB_SP * 14:40:25 mem.c:jbuf[0].__jmpbuf[JB_SP] = stack_base; 15:02:12 -!- ehird has joined. 15:02:16 testing 15:02:28 testy 15:02:30 testy4 15:02:43 fooby 15:02:45 -!- ehird has quit (Client Quit). 15:20:50 -!- puzzlet has quit ("Lost terminal"). 15:26:53 ehird :( 15:27:09 faxathisia: xD 15:28:07 my code kind of sucks but I don't really care because it works 15:28:16 http://rafb.net/p/QEsaFY55.txt 15:28:37 but this puts every bf program in a list and runs them all.. extracting the ones that terminate 15:29:01 so ... I run it for like half an hour and there isn't any good output 15:29:09 just \0\1\0 and stuff 15:31:48 this sucks! 15:31:58 making shortest programs in VERY hard 15:45:29 what does it do when it generates []? 15:46:10 I actually filter out any programs with [] because there's always an equivalent shorter program or it gets stuck 15:46:24 er not stuck.. but infinite loop 15:46:39 If there is an infinite loop .. I just keep evaluating it forever 15:47:04 but lots of programs are run in parralel 15:48:49 faxathisia: do you filter other infinite loops? 15:49:02 no 15:49:27 I filter any redundancy like +- <> >< -+ .. 15:49:53 and any expression that isn't well parenthesized but that's it 15:50:34 if you have a balanced loopie, it's very simple to check whether conditions have changed after a cycle 15:50:41 ..? 15:50:48 ".."? 15:51:27 the program could be made more sophisticated but I run it for ages and it didn't produce anything 15:51:41 I think this whole approach is just too slow 15:52:14 well, ofc it's slow 15:53:44 you're actually trying to do something? 15:54:22 Well the aim is find the shortest possible programs to print given strings, 15:54:37 now I know this is impossible but it's still worth trying 15:54:50 well, you're a lunatic if you think that approach could work :D 15:55:05 hehee 15:55:38 if you're going for more than 4 characters 16:01:45 are you filtering out expressions that don't end in . followed by some number of ]s? 16:02:34 you may also be able to optimise, at least if you restrict your search to loops with balanced <>, by compiling into some other language first 16:11:51 -!- habnabit has joined. 16:21:36 ais523: hmm 16:21:39 what was i going to say? 16:21:40 i forgot. 16:21:51 * ais523 is incapable of reading ehird`_'s mind 16:22:12 Haskell separates Church and state! 16:23:49 heh 16:24:44 ais523: i wrote a haskell program that makes ghc use 100% cpu and never halt 16:24:49 i think i beat the typechecker. 16:24:55 (iirc, it is non-decidable) 16:25:08 "Loop in the flow analysis" was one of my favourite Prolog compiler error messages 16:25:16 even though I never ran the compiler, just read the manual 16:25:20 ais523: Really? I preferred '42'. 16:25:29 what was your compiler-breaking program? 16:25:35 (SWI-Prolog outputs '42' if you tell it to do something impossible, like 'X.') 16:26:20 http://hpaste.org/5758 16:28:01 aha 16:28:02 hugs halts on it 16:28:04 with a type error 16:28:14 I can't figure out what pred is trying to do 16:28:23 how many arguments would it normally be called with? 16:28:35 from the name, I'm guessing it subtracts one from its argument, so 1 16:29:01 ais523: yes. this is church numeral stuff. 16:29:11 i don't personally understand 'pred', to be honest 16:29:16 you should see the type thouhg: 16:29:18 predecessor 16:29:30 (((t -> t2) -> (t2 -> t3) -> t3) -> (t4 -> t1) -> (t5 -> t5) -> t6) -> t -> t1 -> t6 16:29:33 and i know what 'pred' stands for 16:29:37 i mean i don't understand the definition 16:29:38 -!- uvanta has joined. 16:29:41 sorry, I misinterpreted your comment 16:29:49 *** Expression : dechurch 16:29:49 *** Expected type : ((a -> a) -> a -> a) -> Integer 16:29:49 *** Inferred type : ((((a -> a) -> a) -> (a -> a) -> a) -> ((a -> a) -> a) -> (a -> a) -> a) -> Integer 16:31:05 your implementation of dechurch is inefficient 16:31:36 dechurch n = n (1+) 0 16:33:28 i was doing it purely 16:33:43 in fact, your implementation is probably wrong, because comparing functions is uncomputable 16:33:57 so you can hardly expect the compiler to match functions based on Church number equality 16:34:23 ais523: well, we'll see what it does 16:34:23 :P 16:34:24 the 'dechurch zero' pattern won't match a Church numeral unless it's a literal 'zero' or you're lucky, even if the Church numeral has the value 0 16:35:26 hmm... I wonder if the recursive definition 'succ n = n succ one' would work, or whether it would confuse the compiler 16:35:41 I doubt it would work in Haskell, because it looks like an infinite loop 16:35:53 but there's a slim chance that laziness might save it 16:36:24 no, it is an infinite loop, because 'succ one' ends up being defined to be 'succ one' 16:36:25 pity 16:36:54 it would work in that uncomputable language I was talking about yesterday, if written as Succ(N)=N(Succ(One)) 16:37:20 but I wonder if that would give more than one solution for Succ... 16:37:47 -!- Corun has joined. 16:38:31 ais523: succ one = ...; succ n = n succ one 16:38:43 well 16:38:45 succ n | n == one 16:38:47 :-P 16:38:55 you can't compare functions with == 16:39:00 exactly 16:39:00 but: 16:39:01 or with anything else, for that matter 16:39:16 succ n | dechurch n == 1 = two 16:39:17 | otherwise = n succ one 16:39:27 but... 16:39:31 you need Integer -> Integer stuff 16:39:34 i'm going to do a newtype 16:39:41 hmm... 16:39:56 ais523: the type system doesn't like it, y'see 16:39:57 succ two = two succ one = succ (succ one) = succ two = ... 16:40:18 so defining succ recursively, although mathematically true, doesn't really help a computer 16:40:39 ais523: anyway, newtype Church a = Church ((a -> a) -> a -> a) is problematic 16:40:43 because you need 16:40:46 a = Church a 16:40:48 so: 16:40:52 class time 16:41:08 class Church a 16:41:09 instance (Church a) => Church ((a -> a) -> a -> a) 16:41:10 ... i think 16:41:17 :o 16:41:27 I like this idea 16:41:48 although is it valid? 16:41:55 lmao: 16:41:56 instance Churchy Church ... 16:43:03 it's so much simpler in Underload/Underlambda 16:43:07 zero is !() 16:43:10 one is 16:43:13 two is :* 16:43:14 ais523: is that strongly typed? 16:43:17 three is ::** 16:43:19 and so on 16:43:23 ehird`_: not exactly 16:43:27 there's just the one type, function 16:43:39 'xactly 16:43:39 each function maps a stack of functions to another stack of functions 16:43:52 strong typing messes up sii quite badly 16:44:00 and the ability of sii is needed to write loops 16:44:26 OTOH, I suppose you could say it was strongly typed, except with just the one type, defined recursively as type = [type]->[type] 16:44:36 you might be able to write sii using lets? 16:45:00 I can't think of a way to do that 16:45:02 because you can get Y using a let 16:45:08 I'm just guessing.. 16:45:09 the naive definition is sii X = X X 16:45:10 faxathisia: not in haskell 16:45:19 ehird`_: proof? 16:45:25 faxathisia: it doesn't type 16:45:28 a = a -> a 16:45:29 y types 16:45:29 but 16:45:34 y f = f (y f) 16:45:34 no, it doesn't 16:45:37 that is not y 16:45:37 yes it does.... 16:45:39 THAT IS NOT Y 16:45:41 Yes it is... 16:45:47 there are two Ys 16:45:52 a lazy version and an eager version 16:45:59 ais523: and that is neither 16:46:02 y is a COMBINATOR 16:46:07 and #haskell are informing you now, faxathisia 16:46:14 no they aren't :P 16:46:29 YOU are a combinator! 16:46:40 -!- Corun has quit ("This computer has gone to sleep"). 16:46:50 ais523: i haven't seen him justify his belief as of yet. 16:46:51 oh well. 16:47:14 faxathisia: http://r6.ca/blog/20060919T084800Z.html 16:47:19 a combinator can be a function 16:47:23 id is a combinator, after all 16:47:26 but it's also a function 16:47:37 ehird`_: Yeah, I've seen that 16:47:51 Y g = g (Y g), according to Wikipedia 16:48:11 ais523: that's not y. 16:48:23 that's a quote 16:48:32 Y = λf·(λx·f (x x)) (λx·f (x x)) 16:48:46 is how you defined it without using the argument in terms of lambdas 16:49:31 -!- cherez has quit (Read error: 110 (Connection timed out)). 16:54:43 type Church a = ((a -> a) -> a -> a) 16:54:43 class Churchy a 16:54:43 instance Churchy Church 16:58:42 http://hpaste.org/5759 getting there 16:59:33 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 16:59:49 -!- slereah_ has joined. 17:00:04 "Churchy" == "something that acts kind of like a Church numeral or its argument"? 17:00:15 ais523: 'Churchy' == 'a church numeral' 17:00:19 remember, 17:00:32 the only arguments to church numerals are (ChurchNumeral -> ChurchNumeral) and another ChurchNumeral 17:00:32 but church numerals can be applied to non-church-numeral arguments 17:00:41 like the (1+) I gave as an example above 17:00:44 ais523: not if we want everything to type properly.. 17:00:51 anyway -- so we have a recursive type, so we need that class hack 17:00:59 oh dear 17:01:08 the typechecker strikes again 17:01:14 er no 17:01:17 just the sane type system 17:01:26 anything more and you could get full polymorphism 17:01:29 because you need type 'a = a -> a' 17:01:34 which is the type of all lambda expressions 17:01:36 yes, but it gets in the way if you want to do Unlambda-style pure functional programming 17:01:55 presumably, they thought that real programs were more important 17:01:58 because that leads to infinite types with ease 17:01:59 i have no idea why 17:02:04 this is why we have data types :P 17:02:09 faxathisia: :) 17:02:22 I'm aware that the typechecker is useful in practice 17:02:32 but it's really annoying in theory 17:02:51 In theory a typechecker needn't exist 17:03:02 in theory, it's great 17:03:05 well .. you have to do the proofs yourself 17:03:11 its the sweet spot for usability and ... well, computability 17:03:29 church numerals are 'weird' anyway... i would say that a type system not including them is not odd 17:03:30 removing the typechecker wouldn't make the language uncomputable... 17:03:44 Unlambda is computable, and so is lambda calculus 17:04:00 uhh, duh 17:04:03 but then you have no types... 17:04:06 to me, though, the main point of Church numerals in practice is to give a simple way to write loops 17:04:06 and haskell is designed to be strongly typed 17:04:20 I guess ehird; mean that typechecking is computable? 17:04:37 succ :: Churchy a => ((a -> a) -> a -> a) -> (a -> a) -> a -> a 17:04:38 say I want to print something out 6 tiems 17:04:39 doesn't :( 17:05:18 then with the monad chaining argument explicit, it would just be a case of writing six (printChained "Hello") InitialIOChain 17:05:33 where printChain has the type String -> IOChain -> IOChain 17:05:43 and the IOChain is the underlying chaining element inside the monad 17:06:02 of course, Haskell doesn't let you access that directly, because it would allow you to fork timelines, which is just weird 17:07:01 a non-monad example: to make 12 copies of the string "test", I need only do '(church 12) (++"test") ""' 17:07:04 ais523: you can access the io chain 17:07:05 in ghc. 17:07:08 it's... magical 17:07:10 oh good 17:07:20 that would at least be better for my sanity than unsafePerformIO 17:07:27 newtype IO a 17:07:27 = GHC.IOBase.IO (State# RealWorld -> (# State# RealWorld, a #)) 17:07:27 -- Defined in GHC.IOB 17:07:36 (# ... #) is strictness annotations, btw 17:07:41 RealWorld being the IO chain, presumably 17:08:20 I wonder what happens when you deliberately fork it? 17:08:20 ais523: segfault, i assume 17:08:23 ask in #ghc or #haskell 17:08:27 not that I'd ever do something that evil in practice 17:08:28 ais523: but the important thing 17:08:35 is that with this IO, you can define IOT 17:08:36 and... 17:08:48 type TwoDucks = IOT Cont 17:09:05 I was having similar thoughts in my megaProlog 17:09:16 TwoDucksness falls out naturally from the syntax 17:09:42 with no time travel involved, just starting with the (infinite) set of all possible timelines and eliminating them until only a few are left at the end of the program 17:10:31 aww damn, ais523 -- 17:10:35 dechurch :: Church a -> Integer 17:10:37 doesn't type 17:10:40 dechurch :: Church Integer -> Integer 17:10:40 does 17:10:42 but obviously 17:10:47 that means you can't "dechurch one" 17:11:00 what about my dechurch definition? 17:11:07 I am using yours 17:11:08 dechurch (Church n) = n (1+) 0 17:11:14 that probably won't type the way you've defined the typeclasses 17:11:31 look 17:11:37 the real problem is that all the Church numerals have different types 17:12:03 so, for instance, one would be a -> a in an ideal world 17:12:31 two would be (a -> b AND b -> c) -> (a -> c) 17:12:45 three would be (a -> b AND b -> c AND c -> d) -> (a -> d) 17:13:11 but ANDs in types are apparently not allowed, even though I've wanted to use them in RL before 17:13:51 two three would be allowed; its type signature would even tell you that the result was six! 17:14:02 come to thing of it, succ and pred would likely be fine too 17:15:34 ais523: I've decided type-level church numerals are far more fun. 17:16:14 data Zero 17:16:14 data Succ a 17:16:36 err 17:16:36 peanos 17:20:50 ehird`_: I have no problem with Church numerals, succ, and dechurch typing for me 17:21:06 although they type as (a -> a) -> a -> a, which is likely the best that Haskell can do 17:21:28 ais523: yes, the problems come later 17:21:33 succ :: ((b -> c) -> a -> b) -> (b -> c) -> a -> c 17:21:40 ais523: anyway, type-levels are so fun 17:21:43 you can have 17:21:44 succ = const undefined 17:21:48 and just define the type 17:22:07 did you know that haskell's type system (well, with 1 or 2 extensions turned on) can have SK embedded in it?? 17:22:24 so you can't get sii in the lang itself 17:22:28 but you can get sii in its type system 17:22:31 but you can get it in the type system. 17:22:31 yes. 17:22:36 because the type system itself isn't typechecked so strictly 17:22:39 yes. 17:22:49 well, you can't get it without the 2 extensions 17:22:52 that says a lot about Haskell's typechecker 17:22:56 and one is -XUndecidableInstances 17:23:02 so, to be honest, you're really saying 'LET ME DO THIS' 17:23:43 well, of course, something that doesn't allow undecidable types is hardly going to allow TC types 17:23:50 ais523: here's how you use peano-types: > :t pred (undefined :: (Succ Zero)) 17:23:56 should give you: 17:24:04 pred (undefined :: (Succ Zero)) :: Zero 17:24:27 the real test will be if you can multiply and divide them 17:24:33 pred :: Succ a -> a 17:24:33 pred = const undefined 17:24:37 ais523: of course you can. 17:24:44 there's a fscking *type-level quicksort* 17:25:01 interestingly, with that definition of pred 17:25:05 you get (pred Zero) checking for free 17:25:20 yes, but I was wondering about if it was possible with that sort of simple definition 17:25:27 and how complicated the type signature needed would be 17:25:55 ais523: also worth noting is that its impossible to get the type into a haskell Integer 17:25:56 well 17:26:04 you can define a Show instance 17:26:06 then read that 17:26:06 :D 17:26:22 that only gets you a finite number of possible outputs, right? 17:26:39 therefore, you should define Show to output ASCII chars rather than integers 17:26:46 so you can have BF-style IO 17:27:05 and write atoi in the type system 17:27:05 instance Show Zero where show = const "0" 17:27:05 instance Show (Succ a) where show = const ("S" ++ show (undefined :: a)) 17:27:05 unfortunately, does not actually work 17:27:05 sorry, itoa 17:29:07 ehird`_: what goes wrong? 17:29:19 and why the underscore on your nick? 17:29:22 ais523: well, if you add (Show a) => Show (Succ a): 17:29:32 /home/ehird/calc.hs:13:20: 17:29:32 Ambiguous type variable `a' in the constraint: 17:29:32 `Show a' 17:29:32 arising from a use of `show' at /home/ehird/calc.hs:13:20-33 17:29:32 Probable fix: add a type signature that fixes these type variable(s) 17:29:45 ais523: and: 17:29:47 i use 'ehird' now (got it back) 17:29:51 but ehird` was when ehird was cracked 17:29:54 and i crashed before 17:29:57 leaving a ghost 17:29:59 so: ehird`_ 17:30:09 OK 17:30:27 Show a might not be enough 17:30:32 what about (Show a, Peano a)? 17:30:39 define 'Peano a' 17:30:41 there is no such thing 17:30:46 just 'data Zero' and 'data Succ a' 17:30:57 oh, so Zero and Succ are different data types 17:31:10 just for fun, what happens if you say "deriving Show"? 17:31:20 ais523: they have no constructors. 17:31:27 that would therefore do nothing 17:31:32 OK 17:31:42 ah wait 17:31:42 for a while I thought you were using the constructors to do your Peano arithmetic 17:31:44 i can use my pred function 17:31:49 ais523: that would be runtime 17:31:58 you're right, it would be 17:32:02 when you do 5*2 in this, it's worked out at compile-time. 17:32:08 and you get a value of type (Succ^10 Zero) 17:32:20 the value itself is just 'undefined' as some value so it's pretty opaque 17:32:57 *Main> undefined :: Succ (Succ Zero) 17:32:57 SS0 17:33:05 instance Show Zero where 17:33:05 show _ = "0" 17:33:05 instance Show a => Show (Succ a) where 17:33:05 show a = "S" ++ show (pred a) 17:36:22 Is it possible to implement the µ function? 17:36:35 I can't think of a general way to do it. 17:36:53 what is it 17:37:46 You know, for general recursive functions. µy f(y, x1, x2, x3, ...) = smallest value of y that makes the function vanish if it exists, 0 otherwise. 17:40:30 ais523: heyyy, I just realised 17:40:34 an instance for Eq on Succ a or Zero 17:40:38 is const const True 17:40:42 because.. 17:40:47 == with two non-equal arguments, with that 17:40:50 doesn't type!! 17:41:03 does Eq return false when it doesn't type 17:41:06 or does it just error out 17:41:10 ais523: no, it won't compile 17:41:17 so.. you have compile-time assertations of numeric equality 17:41:18 :P 17:41:24 so that would be more assert-equal rather than equal 17:41:26 you can define an Eq type doing it properly 17:41:27 of course 17:41:59 ais523: for Plus i'll need a class... 17:42:03 actually 17:42:06 'plus' can't be a function itself 17:42:14 i must define a 'plus' class or something 17:42:19 then do the trick i did with pred/succ for a function 17:44:40 -!- habnabit has quit (Read error: 110 (Connection timed out)). 17:47:33 ais523: making this hs98 is hard 17:47:33 :D 17:47:56 do you have a link to that type-system quicksort, by the way? 17:48:19 ais523: yep 17:48:27 Google seems not to help that much 17:48:45 http://www.haskell.org/haskellwiki/Type_arithmetic 17:48:49 but please don't look at the numeric definitions 17:48:55 i want to make sure mine are as different as possible 17:49:09 and 17:49:09 http://www.haskell.org/haskellwiki/Type_SK 17:49:14 brb 17:57:25 -!- ehird`_ has quit ("K-Lined by peer"). 18:02:48 -!- ehird` has joined. 18:03:25 ehird` missed what? 18:03:39 no comments between when you left and when you rejoined 18:03:43 at least not in this channel 18:03:50 nor either of the others I'm in 18:04:05 either of the others I'm all alone in, for that matter, since you left 18:04:12 The internet awaited your return 18:04:48 ais523: anyway, i'm testing with hugs now 18:04:50 without extensions 18:04:52 to ensure portability 18:06:00 ais523: apart from plus/minus etc 18:06:04 what would you say is a good operation? 18:06:09 since plus/minus are too hard, for now 18:06:09 for testing? 18:06:52 with Church numerals, exponentiation is easier than plus, minus, times, or divide 18:06:53 I don't think Peano numbers are so well behaved, though 18:07:00 what about mod-2 18:07:06 that's pretty simple 18:07:29 that requires comparison 18:07:30 i think 18:07:38 only to 0 and 1 18:07:45 i guess so.. 18:10:28 ais523: crazy -- i'm writing a toPeano 18:10:32 i guess, that might be impossible 18:10:35 fromPeano is easy 18:10:43 class Peano a where 18:10:43 fromPeano :: a -> Integer 18:10:43 instance Peano Zero where 18:10:43 fromPeano _ = 0 18:10:43 instance Peano a => Peano (Succ a) where 18:10:43 fromPeano a = 1 + fromPeano (pred a) 18:10:47 what are you passing in as an argument to toPeano? 18:10:51 ais523: Integer 18:10:54 which is why I think it's hard 18:10:58 clearly impossible 18:10:59 I would need run-time types. 18:11:04 the Integer's value isn't known at compile time 18:11:07 exactly 18:12:26 write a fromChurchToPeano instead 18:12:35 that reads a Church numeral in SKK form... 18:12:38 ais523: Churchs values aren't known at compile-time either 18:12:39 :-P 18:12:48 you can implement the Churches in types 18:12:57 probably easier than implementing them as functions... 18:13:06 mehh 18:13:32 it's actually remarkably simple, because you just apply the Church numeral to succ and 0 18:21:08 ais523: i am unsure if plus is possible with just hs98 18:21:54 I don't know enough Haskell typesystem stuff yet to be sure either 18:22:03 I'm just busy on getting the Underlambda Tier 1 spec finished 18:22:38 it's exactly the Underload spec, except taht S has been relaxed to print out a serialisation of the code in the top stack element, rather than the source code of the top stack element 18:22:44 and everything's described in a lot more detail 18:23:02 oh, and I changed the quoting rules because everyone ignored them anyway 18:23:15 and added a magic word for the start of the program 18:24:15 but if the forbidden characters #!{} are avoided, all Underload interpreters are lenient conforming bounded Underlambda Tier 1 interpreters 18:24:57 ais523: i just had an idea 18:25:02 if haskell's typesystem is TC 18:25:06 then what about a language with just a type system?! 18:25:49 but then it wouldn't really be a just-a-type-system lang 18:25:59 but a lang with untyped data 18:26:01 (i.e. the types) 18:26:06 unless you're using metatyping as well 18:26:09 ais523: yes 18:26:13 a turtles-all-the-way-down approach 18:26:24 I want to have metakinds of metatypes! 18:27:23 ais523: and 18:27:26 the values ARE needed 18:27:31 because a 'djinn'-alike is involved 18:27:33 if you want to do IO. 18:27:55 unless your IO chain is made of types rather than values 18:28:00 I don't see how you could do input otherwise 18:28:07 it is made up of types, yes. 18:28:08 because the input would be runtime but the output compile-time... 18:28:18 you are right -- the chain is made up of types, then 18:28:20 and if your IO chain is made of types you don't need the values 18:28:27 well, you will 18:28:39 by making the type specify that the 'values' (dummies) depend on the previous 'values' (also dummies, but of just the right type) 18:29:09 maybe you could combine the dummy values with random operators that happened to have the right type signature 18:29:20 and just plug some random dummy values in to see what happened 18:29:30 at runtime, after your program has already run 18:31:50 yep 18:31:52 well 18:31:53 no 18:31:57 what happens is that 18:32:05 to find a variable of type '' 18:32:19 it must satisfy the constraints which amount to 'a line of input whicih is inputted RIGHT NOW' 18:32:22 so the compiler gets it 18:32:30 (the compiler is also a djinn) 18:32:35 and then hardcodes that value into the output 18:32:40 just like a very clever djinn 18:32:42 so basically 18:32:46 all IO happens at compile-time 18:32:51 the final program is a no-op 18:33:00 or indeed not necessary at all 18:33:02 ais523: http://pastebin.com/m64be26a5 this bash prompt is epic -- see http://reddit.com/info/697cu/comments/c037ztj 18:33:46 are bash prompts TC, like the rest of bash is? 18:33:59 probably not, unless there's a way to loop 18:39:19 ais523: check the source fo that one 18:39:32 it uses prompt_command 18:39:51 I did, but I don't understand it that much 18:40:11 it appears to be mostly switches so that it's portable to different terminal types 18:40:13 ais523: basically, bash lets you run a command for a prompt 18:41:35 ais523: also, i have an idea 18:41:45 a prompt creation library 18:41:49 called Epic $PS1 18:41:58 which lets you configure it emacs-style, and call various init functions on variables 18:42:00 to have it manage them 18:42:06 so prompt creation is a lot easier 18:42:08 since it's modular etc 18:42:12 your comment "also, i have an idea" reminded me of the adventure game in UMIX 18:42:20 you could make a prompt whose colour was the last exit code converted to rgb 18:42:21 :D 18:42:45 it kept spouting stuff like "also, it is broken; it is missing a circuit board missing a (radio missing an antenna)" 18:43:10 the idea being that before long you would get bored and write a program to solve the puzzles, all of which were of the same nature and some of which were extremely long 18:43:11 heh 18:43:31 umix= 18:43:48 the main thing you interacted with in the 1006 ICFP 18:43:56 oh wait 18:43:59 is that the ancient machine 18:43:59 thing 18:44:01 yes 18:44:20 where they just give you some self-extracting bytecode containing most of the challenges and you have to write the VM yourself 18:44:21 i love icfp's award texts 18:44:44 if you ever try, I recommend writing the VM in C, because it needs to be extremely fast 18:44:57 heh, why? 18:45:02 I have a fast interp for it, but it assumes 32-bit pointers becaues it makes things simpler 18:45:13 ehird`: because even with my fast interp the self-extract took about an hour 18:45:32 o.o 18:45:32 I had a Perl interp originally, but I got bored before the program even finished the selfcheck 18:45:59 even worse, I had to run it twice, because I didn't have anything capturing stdout the first time 18:46:28 obviously, I meant 2006, not 1006 18:46:56 hah 18:47:20 on a similar note, does anyone know how to get past the wildcat in Lost Kingdoms? 18:47:26 I'm completely stumped 18:47:29 lmao 18:47:32 people play that? 18:47:35 i just wait until it starts. 18:47:39 to test my interps. 18:47:44 I have done, but I'm stuck on the wildcat 18:47:50 nothing I do seems to work 18:48:03 you can't go past it, because then it puts up a fake prompt and kills you whatever you type 18:48:05 ais523: what should i call that turtle-types language? 18:48:07 (logo? ;)) 18:48:09 but there's no obvious way to kill it either? 18:48:26 whenever I try, it just says "you can't see it clearly enough" or something similar 18:48:41 ais523: write a brainfuck interp that lets you serialize+reload a tape & program counter 18:48:43 then i'll try 18:48:44 :P 18:48:53 shouldn't be too hard 18:49:06 ais523: well, then you have to play up to the wildcat and serialize. 18:49:07 :P 18:49:13 so it'd better be pretty quick; for lostkng 18:49:31 I'll find a fast opensource bf interpreter and modify it a bit 18:50:01 ais523: bff.c 18:50:19 I would say 'mine' but it isn't written yet 18:50:34 oh 18:50:38 ais523: apparently http://mazonka.com/brainf/ is faster 18:50:46 than http://swapped.cc/bf/ 18:50:50 which used to have a pretty design. odd 18:50:50 I'm using the one that comes with Lost Kingdoms 18:51:30 yeah, that's slow 18:51:35 mazonka.com/brainf/ is a lot faster 18:51:39 and since you're saving more state 18:51:40 that's important 18:51:56 -!- habnabit has joined. 18:52:00 http://mazonka.com/brainf/bff4.c with -DLNR 18:53:47 ais523: how do i print up to something matching a regexp in ed? 18:54:03 trying to edit some C with it :) 18:54:03 I don't know ed 18:54:15 in sed it would be 1../regexp/ p 18:54:22 and ed often uses the same commands 18:54:23 we need ised 18:54:24 but not always 18:54:25 interactive sed 18:54:29 I was writing that 18:54:31 in INTERCAL 18:54:39 heh 18:54:47 but I shelved it after a while to work on other things 18:55:11 it would have been quite a torture-test for the backtracking code if I finished it 18:55:23 ais523: ken thompson's favourite editor used to be ed 18:55:26 it was basically sed 18:55:45 then it was sam (ed, but with a gui: a top, scrollable command window, and various file buffers below, which just display the current file) 18:55:48 except that you could enter a blank line to cause everything since the last blank line to run as a self-contained program 18:55:55 (you could use the mouse and everything to move around windows and stuff) 18:56:00 but he may have moved on to acme 18:56:01 and there was an extra command 'display on screen' 18:56:48 ais523: ah, you don't want bff4 18:56:51 it uses dbfi input 18:57:03 I can't modify it anyway 18:57:07 no explicit license agreement 18:57:15 ais523: you are PARANOID 18:57:28 no, I just like to stay legal 18:57:53 ais523: i am sure you could send off an email 18:57:58 in the esolang world, nobody cares 18:57:59 worse, bff has an explicit "all rights reserved" 18:58:22 so I'll stick to Lost Kingdom's interp 18:58:29 which is pretty responsive for me once it's loaded 18:59:47 *The program is distributed under terms of BSD license. 18:59:47 *You can obtain the copy of the license by visiting: 18:59:47 * 18:59:47 *http://www.opensource.org/licenses/bsd-license.php 18:59:47 */ 18:59:49 from 18:59:51 bff.c 19:00:06 ais523: all rights reserved is just the readme 19:00:23 so hah 19:00:27 hmm... nice misleading license 19:00:39 yeah, well who cares, the source file says it's bsd -- that's what is important 19:00:55 let me finish working on the Lost Kingdom's version, anyway, as I've done quite a bit on that already 19:01:16 ais523: ok. but bff.c is crazy fast 19:02:13 it runs mandelbrot.b in 19sec on this old, crusty machine 19:02:37 ais523: btw, do you think Epic $PS1 is a good idea? :P 19:02:44 yes 19:02:50 I wouldn't use it but probably lots of people would 19:02:53 hehe 19:03:07 actually, I might use it just to test for you, but I'm reasonably happy with my current boring default prompt 19:03:23 on Windows (where I also run bash) my prompt is even more boring; I set it to a single $ 19:03:27 and a space 19:04:03 ais523: mostly, my prompt would be in the title 19:04:09 but i think two-line prompts are pretty good 19:04:10 imagine: 19:04:14 19:04:15 $ ... 19:04:20 where $ is a # when root 19:04:22 and bold 19:04:31 # is red 19:04:33 you should turn the entire line a different colour when you're root 19:04:37 yes 19:04:38 exactly 19:04:49 and, gets coloured according to the last commands output 19:04:51 or maybe even if the command merely starts with sudo, if there's some way to do that 19:04:53 when you're root, that's tinted red 19:05:06 so, '1' might give dark gray on normal 19:05:09 whereas 0 = blue 19:05:12 but on root 19:05:15 '1' = dark crimson 19:05:16 0 = red 19:07:15 ais523: hmm, i'm giong to take a hand at writing a fastfast brainfuck interp 19:07:22 i take it you're not interested? :-P 19:07:34 not immediately 19:07:40 -!- Tritonio_ has quit ("Bye..."). 19:07:45 ais523: anyway, got that stateful interp yet? 19:07:52 almost finished writing 19:08:04 I probably would have done by now if it weren't for constantly seeing why #esoteric is flashing at me 19:08:08 -!- Tritonio_ has joined. 19:08:43 haha :( 19:09:06 -!- cherez has joined. 19:09:43 ais523: ok, what about turtles 19:11:24 typedef struct _turtle { 19:11:25 struct _turtle *metatype; 19:11:25 struct _turtle *type; 19:11:25 struct _turtle *supertype; 19:11:25 void *data; 19:11:25 } Turtle; 19:15:10 you know i've never implemented bignums 19:15:12 i should do that sometime 19:15:23 it's boring ;) 19:15:25 ehrid`: Sure you have *g* 19:15:37 data N = Zero | Succ N 19:19:48 heh 19:19:50 i meant in c 19:21:42 -!- Tritonio_ has quit ("Bye..."). 19:24:31 faxathisia: it's even easier than that 19:24:35 you just use type Integer... 19:27:06 thats not an implementation thugh. 19:35:32 hm 19:35:40 8 seconds to calculate 100000 19:35:42 err 19:35:44 100000! 19:35:48 not bad 19:42:32 -!- Tritonio_ has joined. 19:43:29 ais523: hmm............ 19:43:36 should a bigint library handle negative numbers? 19:43:39 ah! of course, 19:43:44 on the root node i can just include a 'sign' bit 19:46:26 ais523: i'll just make the actual leaves unsigned long's tgeb 19:47:30 hmm 19:47:31 then 19:47:38 base = sizeof(unsigned long)*8 19:51:53 ehird`: I finished the bf serialiser/unserialiser 19:52:00 and I've played through to the wildcat bit 19:52:03 ok 19:52:07 show me the interp&serialized 19:52:08 :) 19:52:25 * ais523 pastes 19:54:56 http://filebin.ca/ytdzpo/bf-ser.c 19:55:01 is the BF interp with serialisation 19:55:09 http://filebin.ca/hcaczt/wildcat.ser 19:55:16 is the save file for the point in the game I reached 19:55:30 ais523: you should handle SIGSUSPEND 19:55:32 aka ^Z 19:55:33 for serialize 19:55:37 what if i want to input ` 19:55:37 :P 19:55:46 I don't think that comes up 19:55:54 but this is just a quick hack 19:55:54 well, what if i want to in some program :P 19:56:00 (and, with ^Z, you can display a prompt) 19:56:04 it doesn't support loops nested more than 63 deep either 19:56:12 I may improve it at some point 19:56:30 oh, and serialisations are always written to the file ./bf.ser, but you can rename/copy it once it's been created 19:56:42 to load from a serialisation, it's bf-ser 19:57:14 and type L when it loads, to get it to repeat the last prompt, or it's terribly out of context 19:58:44 hmm 19:58:53 checking whether some integer operations overflows in c is.. hard 19:59:18 ais523: link to lostkng.b? 19:59:25 i lost it 20:00:10 looking for it now 20:00:12 damn, you can't even do: 20:00:27 (a+b) because it might overflow an awful lot 20:00:37 http://jonripley.com/i-fiction/games/LostKingdomBF.html 20:00:43 it's inside a .zip container, unfortunately 20:01:05 I strongly suggest you type ?2 at some prompt to find out the controls 20:01:11 -!- cherez has quit ("Leaving."). 20:01:48 ais523: does it start up immediately? 20:01:50 from serialization 20:01:52 yes 20:01:54 yep 20:01:54 wow 20:01:55 that's nice 20:01:56 but at a stdin prompt 20:02:03 serialize that start of lostkng.b after startup 20:02:09 then you can lie about your interps speed ;) 20:02:22 it's not quite immediate-start, TBH 20:02:25 'starts lostkng in 0sec!!!' 20:02:37 but it's O(n) in the number of instructions the IP is deep in the program 20:02:38 ais523: about instant for me 20:02:41 yes 20:02:44 because there's no looping 20:02:48 it just goes straight there 20:02:55 the delay is due to seeking by index in a linked list 20:02:59 and that's hardly noticeable 20:04:09 ais523: using this game is like programming in an esolang 20:04:24 (nigh-on impossible the first time) 20:04:28 i can't get it to do anything 20:04:55 * ais523 is used to it 20:05:00 ?2 gives a list of commands 20:05:07 i will tell you which number corresponds to which item you own 20:05:17 then it's a case of typing or space 20:05:19 to give the commands 20:05:49 -!- cherez has joined. 20:05:50 -!- cherez has quit (Remote closed the connection). 20:06:05 -!- cherez has joined. 20:06:05 -!- cherez has quit (Remote closed the connection). 20:06:42 -!- cherez has joined. 20:06:42 -!- cherez has quit (Remote closed the connection). 20:07:04 ais523: what about that axe you have..? 20:07:10 try using it 20:07:12 -!- cherez has joined. 20:07:14 it doesn't work because you can't aim it 20:07:24 i did but i don't know the controls properly so im having trouble. 20:07:24 BTW, I'm pretty sure I've got all the items in the game up to that point 20:07:35 killing the cat doesn't work 20:07:40 throwing the axe at the cat doesn't work 20:07:48 and walking deeper kills you 20:08:09 ais523: its a port of an older game 20:08:16 so why not look around for that one 20:08:24 written in BASIC IIRC 20:08:30 one thing I tried was to write a decompiler 20:08:38 but when I found there were unbalanced loops I gave up 20:08:53 maybe I should find a copy of BFBASIC and see if I can write something to reverse its effect 20:09:09 ais523: 20:09:10 >h 1 20:09:10 You hear the creature stir but the beast remains hidden. 20:09:19 and ... more than just from BFBASIC: 20:09:24 http://jonripley.com/i-fiction/games/LostKingdom.html 20:09:35 you just threw away your box of matches! 20:09:39 how could you! 20:09:42 no 20:09:45 my rusty old lamp. 20:09:48 ...and yes, I tried that as well 20:09:49 but it made the creature stir 20:09:54 sorry, misread the number 20:09:58 but I tried that too 20:10:05 no inventory works 20:10:33 sorry, ais523 -- i think it's a dead end 20:10:43 there is nowhere else 20:10:51 and that area was well-guarded 20:11:26 LostKingdom,ffb is the Acorn BBC BASIC version. 20:11:27 LostKingdom.bbc is the non-Acorn BBC BASIC version. 20:11:32 i believe those are sources. 20:11:37 * ais523 has actually written BBC Basic 20:11:44 but those sources don't correspond to the BF version 20:11:46 oh they appear to be binary files 20:13:12 yes, they are 20:13:18 and with no recognisable text fragments 20:13:33 most of the text was new for the BF version, anyway, IIRC 20:14:11 ais523: We need an esolang that is optimized for writing Hunt the Wumpus and simmilar. 20:14:13 Befunge does a good job of it. 20:14:48 http://en.wikipedia.org/wiki/Image:Wumpus.jpg wow, the wumpus SO does not look like that 20:15:04 The wumpus looks like a walrus, but bigger, and stands more on its hind legs. 20:15:10 and eviller. red eyes. 20:15:37 -!- uvanta has quit ("사회주의적 신념, 자연주의적 이성"). 20:17:50 what's the best befunge interp out there? 20:17:52 that recompiling one 20:18:11 ccbi is apparently the only standard-compilant Funge-98 interp, so that's the one I use 20:18:55 and Funge-98 > Befunge-93 in so many ways 20:19:15 TC-ness, for one 20:19:22 i like -93 more. 20:19:24 it's simpler. 20:19:30 98 is such complex crap. 20:19:35 -93 + infinite board = yum 20:19:50 besides 20:19:56 98 is 93+infinite board+actual specifications for some things that weren't specified before 20:19:57 the bef wumpus is written in -93 20:20:02 ais523: + complex crap 20:20:04 and a whole lot of useful commands that you can ignore if you like 20:20:13 http://catseye.tc/projects/befunge93/eg/wumpus.bf hunt the befunge-93 20:20:27 ehird`: input behaviour on EOF is something that badly needed specifying 20:20:38 brainfuck does fine without 20:20:42 no it doesn't 20:20:53 the EOF thing is responsible for most BF incompatibilities 20:21:00 BF would be a much better lang without that particular problem 20:21:09 -!- olsner has joined. 20:21:10 and it's pretty good as it is 20:21:56 -!- chere1 has joined. 20:21:57 -!- chere1 has quit (Remote closed the connection). 20:22:01 -!- chere1 has joined. 20:22:02 -!- chere1 has quit (Remote closed the connection). 20:22:16 on another note, I'm working on an esolang-based text adventure 20:22:18 -!- cherez has quit ("Leaving."). 20:22:19 speaking of which i should write a brainfuck specification 20:22:19 formally 20:22:20 in TeX 20:22:24 or texinfo 20:22:30 that is, esolangs form the basis of the plot 20:22:37 although the adventure is itself written in C 20:22:45 * ais523 likes texinfo 20:22:58 so far I have a BF-based, INTERCAL-based, and SMETANA-based puzzle 20:23:25 -!- cherez has joined. 20:23:35 in most of the puzzles, the player plays an intelligent IP that can choose to change direction out of free will and execute a different set of commands 20:23:55 and some of the langs were made 2D so that people could walk around them in a more interesting way 20:24:07 it's slow going, though, because good puzzle ideas are hard to come by 20:24:29 ais523: why write in c? 20:24:38 because I started it years ago 20:24:50 back when I was mostly writing C in files with a .cpp extension 20:24:55 because I didn't really realise the difference 20:25:04 it would be easy enough to translate, if necessary 20:25:18 oh, and the portability's the other reason 20:27:12 ais523: Ok -- 20:27:20 I think I want to write Be Your Funge. 20:27:26 It's FukYorBrane, but for befunge. 20:27:34 (93, of course -- the limitations are an advantage) 20:27:40 in this case, yes 20:27:55 FYB's main problem, by the way, is that [] loops can run for 0 repetitions 20:27:58 ais523: Actually, I think it will be short. 20:28:02 and 20:28:04 that's an advantage 20:28:07 it's a strategy 20:28:15 If I ever hold a FYB contest, I'll force them to run at least once each 20:28:21 rubbish 20:28:36 otherwise you can just start your program by defecting, pointing at a NOP, and skipping 100000000000000 bytes of junk 20:28:48 and do whatever you like because the opponent can only move their data pointer one step at a time 20:29:12 so you have trillions of instruction cycles before the opponent can get anywhere near affecting your program 20:30:00 it leads to degenerate competitions where the length of the original junk is all that determines who wins 20:30:12 ais523: beyourfunge will use p and g 20:30:15 to point at the opponent 20:30:22 naturally 20:31:09 ais523: um, should i do: 20:31:12 run ins on A 20:31:13 run ins on B 20:31:14 ... 20:31:17 or something more sophisciated? 20:31:28 although you lose one thing I liked about fyb, which was that setting a square to a bomb was much harder than setting it to a low-numbered instruction in terms of time spent 20:31:42 ehird`: alternate either instructions or torus squares 20:31:56 probably instructions as that's how most of the commands seem to be defined 20:32:00 i.e. spaces take 0 time to run 20:32:22 oh, it's also probably a good idea to have some way to determine where the enemy instruction pointer is 20:32:36 ais523: my way is nicer because it requires no language extensions 20:32:44 maybe radar-style: "how many spaces from point (x,y) is the enemy IP?" 20:32:56 assuming a sitting duck B, a non-modifying (of its own code) befunge program will behave normally 20:32:59 otherwise you either have to analyse the enemy program (ridiculously time-consuming) or guess 20:33:09 -!- cherez has quit ("Leaving."). 20:33:11 ais523: well, are you sure spaces should take 0 to run? 20:33:25 not sure 20:33:31 but it fits the language better 20:33:43 and it doesn't make too much difference in terms of making the IP hard to find 20:34:30 because in a 2D language like Befunge it's hard enough anyway 20:35:07 if there's no way to pinpoint the enemy IP, programs are effectively just going to be guessing where to put bombs (quit instructions?), or else covering the entire torus systematically 20:35:14 and I can't see much of a scope for better strategies 20:41:17 @ end program is indeed the bomb 20:42:02 hmm, ais523 --- how else do you end a prog in befunge apart from @? 20:42:10 you don't 20:42:16 Funge-98 has q as well, though 20:43:42 ais523: how big are befunge stack elements? 20:43:52 normally 32-bit signed integers 20:44:14 ais523: linked list stack or.. 20:44:25 the stack is infinite 20:44:31 making Befunge-93 a PDA 20:44:34 OK. 20:46:50 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 20:47:04 -!- slereah_ has joined. 20:50:11 right=0 20:50:12 left=1 20:50:13 up=2 20:50:15 down=3 20:51:00 what, no diagonally? Now I remember another reason why I don't like Befunge-93 20:51:43 ais523: horizontal if is: 20:51:55 if(pop()){d=left;}else{d=right} 20:51:59 and up/down for vertical 20:52:00 correct? 20:52:10 for some reason I only memorised horizontal 20:52:15 but it goes left on non-zero, yes 20:52:24 * _ acts like < if the value is true or > if it is false; and 20:52:24 * | acts like ^ if the value is true or v if it is false. 20:52:35 so right on both counts 20:52:43 right as in correct, that is 20:52:45 if (pop(s, n)) { 20:52:46 *d = 1; 20:52:46 } else { 20:52:46 *d = 0; 20:52:46 } 20:52:47 ---> 20:52:51 *d = pop(s, n) % 2; 20:52:52 :D 20:52:59 i think 20:52:59 no 20:53:01 oh 20:53:01 no 20:53:03 of course 20:53:04 damn 20:53:07 is there any way to do that? 20:53:10 ah 20:53:15 *d = pop(s, n) & 1;; 20:53:15 *d = !!pop(s,n) 20:53:19 hmm 20:53:21 &1 is also wrong 20:53:23 oh 20:53:24 && 1 20:53:25 heh 20:53:28 because even values > 1 have to give true 20:53:30 && 1 works 20:53:34 but !! is shorter and more idiomatic 20:54:03 then | is !!pop(s,n)+2 20:54:04 right? 20:54:11 if ^ = 2 and v = 4 20:54:12 *3 20:54:50 no 20:54:56 !pop(s,n)+2 20:55:05 because true needs to give 3 and false needs to give 4 20:55:19 so only one exclamation mark, to reverse the sense of the test 20:56:38 ais523: on an unrelated note, my stringmode handler in an 'if' jumps to a goto inside the else branch 20:56:49 that's fine 20:56:52 yes 20:56:53 but amusing 20:56:56 if a little unusual 20:57:13 ais523: I could structure it more without goto. But there are about 5 lines between jump and label. 20:57:17 So I don't think it's important. 21:02:14 ais523: stack for g 21:02:15 x y 21:02:17 or y x 21:02:26 can't remember 21:02:31 probably wisest to look it up 21:04:00 ehird`: y is on top of the stack, according to the original docs 21:05:00 i just looked it up 21:05:00 heh 21:05:00 :) 21:05:47 the main thing to be careful of is # 21:05:59 which apparently skips all whitespace in the IP's direction, and the next non-whitespace character 21:06:22 ais523: it does?? 21:06:27 I think; I'm just looking it up again 21:06:28 skip whitespace, that is 21:06:32 it seems to not skip whitespace 21:07:00 hmm... the spec is ambiguous about that 21:07:12 what does the ref interp do? 21:07:20 i can't find it 21:07:21 :P 21:08:00 http://quadium.net/funge/tbc/core.int 21:08:41 hm 21:08:42 x += dx 21:08:44 let's find dx.. 21:08:50 ah 21:08:52 ais523: you're wrong 21:08:54 it just steps one 21:08:55 -!- Asztal has quit (Read error: 104 (Connection reset by peer)). 21:09:00 you're right 21:09:12 I was thinking of the complicated situation when there's a # at the end of a line 21:09:18 and the line is not exactly 80 chars long 21:09:22 -!- Asztal has joined. 21:09:24 ais523: should I disable IO in Be Your Funge programs? 21:09:38 or will the multithreaded outputfuck be funny :D 21:09:43 (and the inputfuck, well, useless i guess :D) 21:09:56 ais523: and hm 21:09:56 allowing input would mean that you would have to generate the input somehow 21:10:02 in mine that would advance it into the next space 21:10:04 is that correct? 21:10:10 you could do it like Easy, where the input is embedded in the program 21:10:24 ehird`: jumping over the edge is undefined 21:10:35 ok 21:10:35 many interps do it differently for horizontal and vertical 21:10:38 -!- Sgeo[College] has joined. 21:10:38 then who cares what happens 21:10:41 right? 21:10:43 Hi all 21:10:47 Hi all 21:10:48 so the testsuite measures what happens but doesn't give it a pass or fail 21:10:49 Hi all 21:10:49 Hi all 21:10:49 Hi all 21:10:50 Hi all 21:10:50 Hi all 21:10:51 Hi all 21:10:53 Hi all 21:10:53 Sgeo[College]: Go to hell. 21:10:55 Hi all 21:10:55 and hi Sgeo 21:10:57 Hi all 21:10:59 Hi all 21:11:01 Hi all 21:11:02 Shut the fuck up. 21:11:03 but stop spamming, there's something wrong with your client 21:11:06 oh 21:11:08 is it his client 21:11:12 must be surely? 21:11:13 i thought he was being highly annoying 21:11:14 :| 21:11:37 ais523: and also 21:11:40 must be the client 21:11:40 in Easy the program is 'RUN' 21:11:42 lol wtf 21:11:43 no input there! 21:11:48 as it isn't responding to ctcp version or ping 21:11:56 its an ajax one 21:11:57 Client I think *winces* 21:11:58 mibbit.com 21:12:06 ehird`: I treat an Easy program as being what's typed into stdin 21:12:12 so the input and program are all mixed up 21:12:13 Sgeo[College]: you soid Hi all about 50 times! 21:12:18 ais523: but easy is all about being pedantic with things like that 21:12:20 it leads to some nicer programs, though 21:12:25 Hello, world in Easy: 21:12:35 ais523: anyway, what do undefined instructions do in befunge-93?? 21:12:42 s/\?\?/?/ 21:12:44 ,H.,e.,l.,l.,o.,,., .,w.,o.,r.,l.,d. 21:13:10 ehird`: error in befunge-93 21:13:41 in Funge-98 pretty much all errors, including undefined instructions, cause a rebound where the IP changes direction 180 degrees 21:15:28 * ehird` figures out shortest way to do 1->2,2->1 21:16:01 the classic a^=b^=a^=b is unfortunately not portable, and is technically undefined behaviour 21:16:13 ais523: i mean 21:16:15 1 maps to 2 21:16:17 2 maps to 1 21:16:24 3-x 21:17:39 although that's a classic INTERCAL problem (as 1 and 2 are the usual logic levels), with the usual answer being something like '?#1$.1'~#3 21:18:02 i.e. premingle 1, take XOR of consecutive bits, select the bottom two bits 21:19:19 ehird`: http://esoteric.voxelperfect.net/files/befunge/src/kquine.bf that's insane 21:19:27 can't figure out whether it counts as a cheat or not... 21:20:28 the code is simultaneously inside and outside a string due to the unmatched string delimiter 21:20:46 so it reads it as data, then when the IP overflows, it hits the original string delimiter and re-reads the program as code... 21:21:33 that's not cheating 21:21:38 that's how you do befunge quines 21:22:06 ais523: whoa, awesome -- byf is 255 lines XD 21:22:10 256 lines counting last \n 21:22:18 i must not add another line 21:22:18 :P 21:22:20 have you finished writing it already, then? 21:22:27 first prototype 21:22:29 hasn't even been compiled 21:22:42 besides, you ought to fit it into a space 80x25, really 21:22:45 i wrote it all without compiling it 21:22:47 :P 21:22:57 ais523: even with huge obfuscation and minimalization, i don't think that would be possible 21:23:08 you can write multiple commands on a line 21:23:19 whoa, more than a SCREENFUL of errors!!!!!!! 21:23:21 ais523: of course 21:23:23 or just string assignments together with commas 21:23:27 yes 21:23:28 but even so. 21:23:37 * ais523 has seen entire C programs written in a single statement 21:23:42 byf.c:8: warning: built-in function ‘y1’ declared as non-function 21:23:45 'y1' is a built in function? 21:23:47 what the fuck does that do? 21:24:02 try recompiling with -ansi 21:24:10 y1 certainly isn't a reserved identifier 21:24:10 ah 21:24:12 it's math.h stuff 21:24:13 bastards 21:24:14 :P 21:24:24 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client"). 21:24:59 incidentally, a shorter Easy Hello, world!: ,[.,]Hello, world\0 21:25:03 where \0 is the NUL character 21:25:16 sorry, ,H[.,]ello, world!\0 21:28:31 ais523: urgh 21:28:39 gcc insists char [x][y] 21:28:45 is really really different from char ** 21:28:51 and comparisons without casts - well, i'd better warn you! 21:28:55 it is very different 21:28:59 because of the sizeof issue 21:29:01 ais523: not in this context 21:29:02 sdfjksdf 21:29:08 and i think warning about it by default is evil 21:29:10 very evil 21:29:16 OK, but does gcc realise that it's different in this context? 21:29:29 ais523: no but it can not warn about it by default!! 21:29:45 which warning flags are you using? 21:29:46 gcc should have an -fi-dont-know-c for the newbies that does do the while (x=y) warnings 21:29:50 and can you paste the code? 21:29:55 and by default let you do stuff like while (x=y) without doing while ((x=y)) 21:29:59 ais523: none, suprisingly 21:30:04 it warns about it with no flags at all 21:30:04 and BTW, you can turn that one off by writing while ((x=y)) which is deliberate 21:30:05 -!- habnabit has quit (Read error: 110 (Connection timed out)). 21:30:06 well -- -ansi :) 21:30:10 ais523: see above. 21:30:12 that's **lame** 21:30:52 it at least reminds me which of my single-=s are deliberate 21:30:53 I tend to put double parens around any = whose value is used in a situation more complicated than a=b=c 21:30:58 to remind me that's what I meant 21:31:01 and to tell gcc that's what I meant 21:31:12 and it doesn't disrupt other compilers because it's still legal C 21:31:33 personally i write c code that compilers should shut up and compile 21:31:41 and it's still clear 21:31:46 just not annotated for a bloody program 21:31:49 :) 21:32:03 though it must be said... 21:32:12 byf.c only has one comment, and that's the top-of-file header 21:32:18 the rest is pretty much self-evident.. it's not complex 21:32:32 the fact that some programmers have got into the habit of writing while(0==x) shows that some way of marking deliberate = signs is needed 21:32:38 assuming you have an editor which can jump between definitions properly - concepts aren't introduced in a chronological order :P 21:32:45 ais523: only bad programmers. 21:32:50 IMO. :P 21:33:12 I consider myself to not be a bad programmer, but still typo a==b on occasion 21:33:25 editors can help here 21:33:28 not compilers 21:33:46 yes, but sometimes I don't have access to a decent editor 21:33:53 I'm not always on this computer, after all... 21:34:09 and wouldn't you still have to write ((a=b)) to tell your editor it was deliberate? 21:34:47 no 21:34:51 it can just highlight it differently 21:35:02 step(p1, &s1, &x1, &y1, &d1, &sm1, 1); 21:35:08 does & not result in t -> t *? 21:35:15 void step(char p[25][80], bef_stack_t **s, int *x, int *y, int *d, int *sm, 21:35:16 int n) 21:35:43 ehird`: when you look back at the code a while later, you need to know if it was deliberate 21:35:56 ais523: generally, the context explains that for me 21:36:01 and & gives you the address of a non-array variable 21:36:12 right 21:36:16 which should do int -> int * 21:36:17 or the address of the first element of an array variable 21:36:20 but gcc says incompatible pointer type 21:36:26 which is the same tpe as the array 21:36:32 ehird`: which arg? 21:36:39 and what is the type of the variable you're &ing? 21:36:43 ais523: 3&4 21:36:53 oh 21:36:57 x and y are chars 21:37:01 because they only store 25 and 80 21:37:06 duhhhh 21:37:07 :) 21:37:38 actually, ais523 -- 21:37:50 typedef union { char v:1; } onebyteunion; 21:37:52 i wish you could do: 21:37:59 char v:1; 21:38:00 and: 21:38:06 typedef char bit:1; 21:38:21 some compilers allow that 21:38:27 but taking the address of a bit would be too difficult 21:38:41 the compiler would have to store bits in separate bytes, avoiding the benefits 21:39:00 ais523: true... but it would be nice if you could do 21:39:02 the compilers that do allow it are generally for microcontrollers and other small devices that need the memory saving 21:39:07 typedef char boolean:1; 21:39:10 is the usage i was imagining 21:39:18 and a variable that acts like it's one bit is available as _Bool in C99 21:39:24 yes but it's actually bigger 21:39:28 as in, _Bool is the data type to declare it as 21:39:38 ais523: http://rafb.net/p/626wHG90.html i think p and g have off-by-one errors here.. 21:39:39 and it's actually bigger because it needs to be for the computer to handle it well 21:39:49 but my head doesn't want to wrap itself around it :-) 21:40:50 (0,0) is the top-left corner of the playfield 21:41:13 so there's nothing obviously wrong with the code with respect to off-by-one 21:41:20 i mean 21:41:21 b vs a 21:41:27 i think i have the order mixed up 21:41:29 so i hear about this PSOX thing 21:41:31 is it any good 21:41:40 oklopol: no 21:41:45 oklopol: yes 21:41:58 Sgeo just left, though, and they're probably the best person to ask for information 21:42:00 oklopol: no 21:42:07 although ehird` and Sgeo have been arguing about its merits for a while 21:42:11 ais523: singular they club??!?! *high-5* 21:42:18 ais523: i know it all, just being an oklopol. 21:42:26 * ais523 has even been known to refer to themselves using singular they 21:42:33 or maybe that should be themself... 21:42:40 I normally use themself, actually 21:42:45 just woke up, and it's 11:46 pm :) 21:42:45 ais523: '* ais523 has' 21:42:48 that reads realy badly 21:42:56 why does my sleep cycle always end up fucked up 21:43:08 themself would have been better, I just typed the wrong thing 21:44:00 ais523: i know what you use. not much gets past me that happens here. 21:44:31 ehird`: if byf doesn't have a defect instruction, or some way to modify your own source, then there's no sensible way for a program to detect and clean up @-bombs the enemy's aiming at it 21:44:39 although i had a week of self-searching a while ago, and actually missed some of the logs :| 21:45:04 ais523: what about my a/b mixup though? ... i want to fix that first 21:45:05 :-) 21:46:01 y-coordinate is on the top of the stack 21:46:17 the nit is mixed up 21:46:34 so if you're doing p1[x][y], p and g have a and b the wrong way round 21:47:00 ehird@ehird-desktop: ~/byf 21:47:01 $ ./byf wumpus.bf wumpus.bf 21:47:01 Unknown command 0 in program -1209218860 21:47:03 wowzers :D 21:47:48 fixed the program 21:47:51 but still unknown command 0 21:47:51 oh 21:47:52 of course 21:47:53 i need digits 21:47:54 you didn't pass the second data arg to fprintf at all 21:47:58 and yes 21:48:06 I think -Wall warns you about that nowadays 21:50:05 if (p[*x][*y] >= '0' && p[*x][*y] <= '9') { 21:50:05 push(s, p[*x][*y] - '0'); 21:50:06 } 21:50:13 ais523: it looks just like the original atoi! :) 21:50:36 good thing C89 and C99 both insist that '0' to '9' be contiguous 21:51:01 although they don't guarantee that sort of thing for any other set of characters, due to EBCDIC 21:51:16 ais523: Which is better - a deflect instruction or two new p/g alikes? 21:51:29 probably p/g-alikes 21:51:48 that saves the problem of special-casing dropping defects into the opponent's code 21:52:15 ais523: i'll reuse input&output chars 21:52:17 'cause i'm evil 21:52:21 and like breaking existing programs 21:52:24 multithreading may or may not be useful, too; FYB certainly does it a lot 21:53:31 ais523: yikes! that would be non-trivial with my current design. 21:53:35 well, i could use fork() 21:53:39 but pthreads... urrrgh, pthreads. 21:54:07 ais523: . or , for 'put to this program' 21:54:20 i think , 21:54:21 since it's for ascii 21:54:33 I suppose you could just have g and p to aim at yourself, as usual, and . and , could aim at the opponent 21:55:08 or other variations thereof, . and , would be mean as they're two versions of the same instruction 21:55:10 ais523: should i come up with entirely new names, then? 21:55:16 no 21:55:19 ok 21:55:26 yeah i guess not - breaking existing programs is FUN! :) 21:55:31 use an input instruction and an output instruction 21:55:36 ok 21:55:39 rather than two output instructions, one of which does input... 21:56:44 ais523: OK 21:56:51 so, standard BF command characters, sans & and . 21:57:01 and IO instructions work like g and p on the other person's board 21:57:10 ais523: do i need a 'find IP' instruction? 21:57:21 I think so 21:57:37 maybe that just pushes its coords on the stack, but that might make things too easy 21:57:56 maybe a 'distance from my IP to the enemy IP'; that would be interesting! 21:58:09 you'd have to check at lots of different points in your own program 21:58:15 encouraging people to spread about a bit 21:58:40 ais523: pushing coords to the stack would not be easy 21:58:45 well, maybe 21:59:00 you just instantly write a @ where the opponent was, and repeat continuously 21:59:02 you could constantly do it, add one @ to x+1 and one @ to y+1 21:59:06 haha 21:59:10 we think alike 21:59:22 ok, distance from my ip would work but then you'd need to get your own ip 21:59:30 you know where it is 21:59:33 and your radar idea is kind of crappy -- it would be mostly shooting in the dark 21:59:41 yes, I agree 22:00:01 maybe you find out where the enemy IP was x cycles ago, where x is some positive number 22:00:11 ais523: if you do '1', then you can just do the same trick, but add 2 22:00:22 you don't get to choose x 22:00:27 it's, say, 10 22:00:47 so programs in tight loops, or that twist and turn, avoid that strategy 22:01:04 but tight loops are risky because you can aim at where the opponent was in the hope they'll go back to that square again 22:03:59 ais523: hmm 22:04:02 i can't decide which would be the best 22:04:07 i mean -- how does fukyourbrane avoid this? 22:04:27 it has a 'loop until my data pointer is the same as the enemy's instruction pointer' loop 22:04:35 which works better in a 1D language than a 2D language 22:05:36 ais523: yeah. 22:05:36 oh, i know! 22:05:36 how about a 22:05:36 'make my ip the enemy's ip' 22:05:36 XD 22:05:36 you'd have to be 're-entrant'... haha 22:05:45 that seems a bit too random for me 22:05:55 indeed. 22:06:13 maybe you could place some sort of 'warning beacon' in your own code 22:06:14 on another note, zzo38 is not very good at designing web apps; http://zzo38computer.cjb.net/chrono/zzo38/mainpage is basically inscrutable 22:07:04 http://zzo38computer.cjb.net/chrono/_show_source yikes 22:07:06 I understand it 22:07:10 the UI, that is 22:07:55 it's very awkward 22:08:18 reminds me of an old bbs system, actually. 22:08:27 yeah. 22:08:32 hmm... is it usual to use changequote(#,|) in m4? 22:08:39 that's what I'm doing right now 22:08:40 it woludn't be so bad without the crossed-out buttons. 22:09:06 zzo38's ideas are quite odd in general, actually 22:09:08 second post on this blog: 22:09:09 'I invented a Sub-Wikipedia in ScribbleWiki. You can use it for anything, but mostly for things that isn't on Wikipedia because some administrators deleted it or whatever, maybe because there aren't enough verifiable sources, or maybe for some other reason.' 22:09:13 read as: 22:09:17 many people have had that idea 22:09:19 'trashcan of non-notable crap wiki' 22:09:29 * ais523 is a Wikipedia administrator 22:09:37 ais523: yes, i know you're a wp admin :P 22:09:41 so I know more about the problem than most 22:09:47 before even coming to #esoteric i kept seeing you dotted around the talk pages, actually 22:10:09 -!- cherez has joined. 22:10:17 -!- cherez has left (?). 22:10:23 -!- cherez has joined. 22:10:25 http://subwikipedia.scribblewiki.com/Special:Recentchanges active thing. 22:11:04 http://en.wikipedia.org/wiki/Special:Search?go=Go&search=Nine on that wiki is pretty interesting 22:11:18 no idea if it's meant to be true or humorous or both, though 22:11:23 it's .. barely interesting 22:11:24 :P 22:11:34 interesting in the attitude it shows, anyway 22:11:46 you can probably tell a lot about people from random wiki scribbles 22:12:03 just like the way I tried to implement a cyclic tag system in MediaWiki once 22:12:21 http://zzo38computer.cjb.net/chrono/zzo38/1198908097 22:12:51 wow, he's a nut 22:12:58 lament: quite 22:13:03 but his esolangs are good 22:13:08 'It's sometimes claimed that prayer doesn't work, it doesn't increase the probability of getting whatever you prayed for. I think probabilities are not calculated like that. I also think that assigning material efficacy to prayer is like greed, and greed should be avoided.' 22:13:14 i don't see how else you should calculate probabilities 22:13:17 a typical, run-of-the-mill math cook 22:13:21 .. he's probably in here right now, being offended 22:13:27 lament: he did make TwoDucks.. 22:13:34 -!- bsmntbombdood has joined. 22:13:46 And, well, all of these: http://esolangs.org/wiki/User:Zzo38 22:13:49 TwoDucks is great 22:14:15 does anyone know if english is his first language? 22:14:21 i hope not but i can't find any source of him using another 22:14:25 wow, I knew zzo38 had made a lot, but didn't realise it was quite that many 22:15:47 you know what would be cool? 22:15:48 a gopher cgi. 22:15:48 imagine a gopher blog 22:15:48 even better, make it stateful 22:15:48 or a gopher bbs 22:15:48 yes 22:15:52 ... 22:15:55 continuation-based gopher server. 22:16:01 so that if only one user uses it at a time, you can actually send instructions just by following a certain pattern of links 22:16:01 THAT WOULD BE SO AWESOME 22:16:18 continuation-based websites would be interesting enough by themselves 22:16:23 anyway, I'm being thrown out again... 22:16:30 -!- ais523 has quit ("about to lose my Internet connection"). 22:16:33 ais523: continuation based websites have already been done... 22:16:36 ... crap 22:16:54 ok 22:17:00 oklopol: interested in Be Your Funge? 22:17:06 (Fuk yor brane for befunge-93) 22:20:28 the name is awesome at least 22:20:31 oklopol: yes 22:20:32 well 22:20:36 i never tried fukyorbrane 22:20:42 oklopol: do you know wo it works? 22:20:44 hi oklopol 22:20:52 i've read the spec 22:20:55 ok 22:21:03 so, i vaguely know how it works. 22:21:06 -!- Tritonio_ has quit (Remote closed the connection). 22:21:06 bsmntbombdood: hi :) 22:21:07 so, oklopol -- i have instructions like 'p' and 'g' but on the opponents program 22:21:16 now, how should a program determine where the enemy's ip is? 22:21:22 just getting it as a value makes a perfect program too easy 22:21:26 -!- Tritonio_ has joined. 22:21:35 bsmntbombdood can answer too 22:21:36 :-P 22:21:41 hm 22:21:43 http://www.esolangs.org/wiki/Musical-X 22:21:49 i have no idea what you are talking about 22:21:56 ehird`: does that have to be easily determined 22:22:03 that language looks a lot like Prelude 22:22:21 oklopol: well, otherwise how are you going to insert a bomb at a good plcae 22:22:37 lament: a bit too syntax-oriented imo 22:22:53 well, tbh i'm mostly just assuming that. 22:23:59 what's the best brainfuck way to get 64? 22:24:00 seems i guessed right 22:24:11 i imagine the same will be true for befunge 22:24:36 hmm 22:24:45 !bf_txtget @ 22:24:47 ... 22:24:50 !bf_txtgen @ 22:25:00 !bf_textgen @ 22:25:10 it's impossible to remember whether there's an e. 22:25:29 oh, right 22:25:36 the ip doesn't really leave any trace 22:25:45 !help 22:25:54 !help me damn robot! 22:25:57 there is no e 22:26:00 txtgen 22:26:03 perhaps you can observe the stack and deduce what instructions they've run! 22:26:30 -!- jix has quit ("CommandQ"). 22:26:39 aha 22:26:39 8*8 22:26:46 oklopol: you have your own stack 22:26:54 yeah.. 22:26:57 aaand? 22:27:05 00::88*pv 22:27:05 ^ < 22:27:07 i meant the stack of the other guy's 22:27:14 ^^ that's the simplest BeYourFunge program 22:27:15 err 22:27:15 wait 22:27:44 wuzzit do 22:27:45 00::88*p1+\1+\v 22:27:45 ^ < 22:27:57 oklopol: puts @ at 0,0 then at 1,1 .. oh, wait 22:28:03 i want 0,1,0,2,0,3... 22:28:04 damn 22:28:05 this will be hard 22:28:06 :) 22:28:13 @ = end program = LOSE 22:28:38 hmm... 22:28:41 hard? 22:28:53 how come, isn't befunge fairly simple 22:29:15 i'll glance at the spec 22:29:44 oklopol: because 22:29:47 i need to do this 22:29:48 0,0 22:29:49 0,1 22:29:50 0,2 22:29:50 ... 22:29:52 0,79 22:29:54 1,0 22:29:55 1,1 22:29:57 1,2 22:29:57 ... 22:29:58 1,79 22:29:59 2,0 22:30:01 the idea is you can modify the other guy's code, and executing @ makes you lose? 22:30:01 etc 22:30:03 up to 24 22:30:07 oklopol: yes 22:30:16 and you can find the other guy's instruction pointer but jumping through hoops 22:30:23 ehird`: why not go diagonally? 22:30:31 oklopol: because that isn't brute-force 22:30:56 guess that might be a bit more difficult. 22:31:02 well... not really 22:31:15 at least shouldn't be much longer 22:31:41 was just thinking you may wanna extend to infinite grids 22:31:44 or not 22:32:04 no 22:32:10 then you can run off at great speed 22:32:12 at the start 22:34:11 true. 22:46:41 oh my god, zzo's english is atrocious http://zzo38computer.cjb.net/wmskins/Command-Skin.txt 22:48:54 ehird`: must be intentional 22:49:02 i hope not 22:49:15 ..? 22:49:27 why's that 23:00:43 -!- Corun has joined.