00:17:27 oklopol! >| 00:28:43 -!- cctoide has quit (Read error: 104 (Connection reset by peer)). 00:29:04 -!- cctoide has joined. 00:42:32 I got my first dollar bill :D 00:42:44 5 dollars. 00:59:36 -!- jix has quit ("CommandQ"). 01:13:41 -!- oerjan has joined. 01:17:08 You can hire Pyurio now 01:17:10 five dorra 01:22:08 -!- ihope_____ has joined. 01:22:27 -!- ihope_____ has changed nick to ihope. 01:24:52 I ordered a book, and I got refunded 5 dorra for the postage 01:25:15 I put it on my wall, so Abe can watch me masturbate. 01:28:01 i just lost the game 01:38:09 -!- Sgeo has quit (Connection timed out). 01:49:27 -!- Sgeo has joined. 01:49:59 -!- tusho has quit. 02:09:58 Hm. 02:10:04 I'm watching Captain N. 02:10:09 why is he so stupid? 02:10:19 He has a pause button, why doesn't he use it at every opportunity? 02:16:09 Captain N? 02:31:03 Sgeo: wikipedia says http://en.wikipedia.org/wiki/Captain_N 02:31:14 an elaborate marketing ploy by nintendo 02:33:13 they do a lot of those 02:34:25 http://www.amazon.com/Omega-Game-Steven-Krane/dp/0886779073/ref=cm_lmf_tit_6 oO 02:35:23 good old Swann 02:35:57 he was an Agora player 02:36:59 But, you can't win the Game! D: 02:37:10 unless he returned after i left, for all you know 02:37:49 Why isn't Swann a player, and why aren't YOU? 02:38:40 life is full of mysteries 02:43:15 -!- ihope has quit (Read error: 110 (Connection timed out)). 03:00:22 -!- AnMaster has quit (Connection timed out). 03:25:08 -!- oerjan has quit ("Good night"). 03:40:44 -!- ihope_____ has joined. 03:41:04 -!- ihope_____ has changed nick to ihope. 03:57:44 -!- Corun has quit ("This computer has gone to sleep"). 05:39:40 -!- GreaseMonkey has joined. 05:56:00 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 05:56:33 -!- Judofyr has joined. 06:06:36 Slereah: He has a pause button, why doesn't he use it at every opportunity? <<< presumably prefers quantity over quality when it comes to life 06:06:56 assuming the pauses are reduced from his lifespam 06:06:59 *lifespan 06:07:54 well, really the subjective length of life would be the same, but he doesn't want to live less than others, in global time 06:08:23 seems intuitive one might feel that way 06:14:19 -!- Slereah_ has joined. 06:14:22 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 06:59:38 -!- Sgeo has quit ("Ex-Chat"). 07:02:31 what a wonderful morning 07:02:45 i feel like singing, but it's hard in ascii 07:03:02 i shall use the following notation for my singing 07:03:53 makes the preceding syllable a note of that lenght/pitch 07:04:10 -!- olsner has joined. 07:04:22 0 relative pitch is 440hZ, 1 relative length you can choose yourself 07:04:47 relative pitch n is is 2^(n/12)*440 07:06:46 better notations exist 07:07:15 what<0, 2> a<2, 1> won<4, 2> der<2, 1> ful<0, 2> mor<5, 3> ning<9, 3> how<7, 2> could<4, 2> this<2, 1> feel<0, 2> ing<4, 1> be<7, 2> topped<5, 8> 07:07:25 i don't know any that incorporates lyrics 07:07:29 *incorporate 07:07:37 anyway, that was the song, really 07:08:04 you'd think it would continue 07:08:08 but nah 07:08:35 lament: care to sing it better? 07:08:44 no :D 07:09:43 i hate it when people judge my singing if they can't sing themselves! 07:12:04 lament: wanna play the guitar as i sing? 07:12:14 Slereah_: will you take the bongos? 07:12:27 07:15:21 oklopol 07:15:25 california legalized gay marriage 07:15:27 lets get married 07:15:29 :o 07:15:51 :D 07:16:09 has gay sex been legal all this time we have not been having sex? 07:16:12 *illegal 07:16:18 no, it hasn't 07:16:26 but the gay marriage has been. 07:16:28 -!- Slereah has joined. 07:16:33 we could go to norway too, thats closer to you 07:16:52 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 07:17:41 or we wait a few years until finland legalizes it, and then not marry each other *here*, how about that? 07:18:51 we're always quick at these things, so desperate for attention 07:19:00 you could always go to sweden and not marry 07:20:32 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 07:21:10 -!- Judofyr has joined. 07:23:17 i guess the negation does make it quite easy to accomplish in any country. 07:23:50 -!- cherez has quit (Connection timed out). 07:26:09 -!- cherez has joined. 07:41:10 -!- Slereah has quit (Read error: 110 (Connection timed out)). 07:46:01 -!- RedDak has joined. 07:54:28 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 07:56:46 -!- adu has joined. 07:57:18 -!- Slereah has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:07:48 -!- Slereah_ has joined. 08:08:18 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 08:27:22 -!- SevenInchBread has joined. 08:30:08 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 08:30:25 -!- oklopol has joined. 08:32:14 -!- olsner has quit ("Leaving"). 08:35:04 -!- shachaf has quit (Remote closed the connection). 08:35:09 -!- shachaf has joined. 08:40:31 -!- augur has quit (Read error: 104 (Connection reset by peer)). 08:40:53 -!- augur has joined. 08:44:18 -!- adu has quit. 08:47:22 -!- mtve has quit (Read error: 110 (Connection timed out)). 09:33:54 -!- ais523 has joined. 09:43:46 -!- ais523_ has joined. 09:53:11 -!- ais523_ has quit ("rebooting"). 09:53:32 -!- ais523 has quit (Read error: 110 (Connection timed out)). 09:55:34 -!- adu has joined. 09:59:49 HELLO BONGO PHONE? 10:01:47 * oklopol answers with his butt 10:06:10 -!- ais523 has joined. 10:19:32 -!- adu has quit. 10:38:29 -!- mtve has joined. 11:14:28 -!- GreaseMonkey has quit ("Remote closed the previous member app"). 11:32:32 -!- ais523 has quit ("afk food"). 11:52:18 .. 11:52:36 ! 11:55:17 let 8=0.999... and D=1 11:55:20 -!- ais523 has joined. 12:01:13 -!- AnMaster has joined. 12:08:18 -!- ais523 has quit (Remote closed the connection). 12:08:46 -!- ais523 has joined. 12:28:49 -!- RedDak has joined. 12:29:58 Let 8===D 12:59:09 SevenInchBread! 13:08:34 omg 13:08:38 ... 13:09:01 yes, that's unusual, I don't think anyone's pinged SevenInchBread in a while 13:09:08 ihope: why did you ping them? 13:09:43 Because nobody's pinged him in a while, I guess? 13:09:57 ihope: do you like pinging random people for no obvious reason? 13:10:33 clog: ping 13:12:43 Man, the Gabriel Knight book has the laziest cover. 13:12:55 It's three screenshots from the game shopped together. 13:15:28 clog didn't respond... 13:15:32 * ais523 is disappointed 13:15:41 hey, where'd cmeme go? 13:15:55 does this mean that ircbrowse aren't logging us any more? 13:28:31 "I'll toss your salad!" 13:28:42 Heh. Love cartoons double entendre. 13:30:18 * ais523 tries to figure out what happened to cmeme 13:30:26 apparently it left June 5 and never came back 13:33:15 wow, ircbrowse is being really slow 13:33:22 I picked one of the active days back from 2005 13:33:27 and the page was cut off at "GregorR-LQuit with mess" 13:35:09 heh, there are some gems in the early logs: " I already got complaints about the 4-bit adder being too unnatural-looking and lacking scenery." 13:39:41 * ais523 ponders the idea of doing an "optical illusion" thing which is actually an animated gif that simulates the effect you're meant to see 13:39:46 so it isn't an illusion, it's actually there 13:46:38 hi ais523 13:46:43 hi AnMaster 13:46:45 how goes ffungi? 13:48:28 not very much further yet 13:48:33 but I was just about to start on it again 13:50:51 ais523, ansembler is probably turing complete (except that it got limited memory like a computer, so not really) 13:51:03 bounded-storage, then 13:51:04 by now it got all but floating point and SYS done 13:51:23 and some floating point are done 13:51:32 ais523, I went crazy with pre-processor in it 13:51:41 want to see some examples? 13:51:47 may as well 13:51:53 why are you creating a new asm anyway? 13:51:58 is it just for fun or is there another reason? 13:52:01 GenerateArithmeticOP(MUL, 64, *=, u, U, uint) 13:52:01 GenerateArithmeticOP(IMUL, 32, *=, s, S, int) 13:52:01 GenerateArithmeticOP(IMUL, 64, *=, s, S, int) 13:52:08 ais523, just for fun 13:52:18 GenerateArithmeticOP(ADD, 32, +=, u, U, uint) 13:52:18 GenerateArithmeticOP(ADD, 64, +=, u, U, uint) 13:52:21 AnMaster: ugh, are you using stringify there? 13:52:28 ais523, I use ## a lot yes 13:53:00 ais523, http://rafb.net/p/GywJbw94.html 13:53:21 ais523, seems totally intercal level! 13:53:26 :D 13:53:42 my interpreter-macros.h is over 300 lines long 13:53:48 332 to be exact 13:53:49 hey, I only do that sort of thing in a couple of cases 13:54:04 most notably in the ffi, where I run the C preprocessor, then my own preprocessor, then the C compiler 13:54:05 my interpreter.c is 281 lines long 13:54:06 :P 13:54:30 ais523, well I need a lot of variants on similar thing 13:54:33 so doing this is good design 13:54:40 avoiding code duplication 13:54:41 ! 13:54:53 #define GetRegister(rreg, type)\ 13:54:53 { \ 13:54:53 ans_regspec my_regspc = FetchRegspec(); \ 13:54:53 rreg = GetRegister ## type (my_regspc); \ 13:54:53 } 13:55:21 FetchRegspec is a generated function btw 13:55:24 CreateFetchParam(Regspec, ans_regspec) 13:55:27 ;P 13:55:31 static inline 13:55:33 but generated 13:55:50 http://rafb.net/p/guaCo541.html 13:56:12 SevenInchBread, and ais523: what do you think ;P 13:57:05 GenerateBitwiseOP(XOR, 32, ^=) 13:57:05 GenerateBitwiseOP(XOR, 64, ^=) 13:57:15 those are nice imo 13:57:22 GenerateFloatDoubleArithOP(ADD, +=) 13:57:22 GenerateFloatDoubleArithOP(SUB, -=) 13:57:34 #define GenerateFloatDoubleArithOP(name, operator) \ 13:57:34 GenericFloatingPointArithOP(F ## name, operator, flt[0]) \ 13:57:34 GenericFloatingPointArithOP(D ## name, operator, dbl) 13:57:40 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 13:57:43 -!- ais523 has joined. 13:58:08 [13:53] hey, I only do that sort of thing in a couple of cases 13:58:09 ais523, read log 13:58:10 [13:54] most notably in the ffi, where I run the C preprocessor, then my own preprocessor, then the C compiler 13:58:13 [13:54] I have macros that expand into instructions for my preprocessor 13:58:15 [13:57] what's FungeSpaceSaveToFile for? 13:58:17 sorry, connection dropped 13:58:21 http://rafb.net/p/z8hQGE37.html btw 13:58:38 ais523, FungeSpaceSaveToFile is for o instruction 13:58:42 it is needed 13:58:47 -!- ais523 has quit (Client Quit). 13:58:50 o writes out some of funge space to a file 13:58:52 ......... 13:59:03 -!- ais523 has joined. 13:59:08 ais523, http://rafb.net/p/nTbx9t70.html 13:59:12 see that link 13:59:15 all you missed 13:59:34 sorry... connection troubles 13:59:39 ais523, so open link 13:59:46 I have done 14:00:39 ais523, why is FungeSpaceSaveToFile a problem? 14:00:41 * ais523 wonders how easy it would be to serialise the internal state of a Befunge interp, so that Befunge programs could be frozen into a file and restarted later 14:00:43 AnMaster: it isn't 14:00:43 it is *needed* 14:00:48 I was just wondering why it was there 14:00:50 hm 14:01:03 I was wondering if it was part of a serialisation trick like that 14:01:04 I'm pretty sure there is a nice doxygen comment in the header for it 14:01:32 ais523, but yes a program could use it it to serialize itself 14:02:02 it needs to get it's own size probably too 14:02:10 y instruction should know that 14:02:13 you'd have to serialise the stack too, though, and Funge-98 has a stack stack too IIRC? 14:02:13 iirc 14:02:18 yes 14:02:25 and then you need ip state 14:02:30 yes 14:02:32 so a bit more indeed 14:02:51 also internal state of fingerprints 14:02:56 ais523, why would you need to serialise it? 14:03:02 AnMaster: various reasons 14:03:02 and some fingerprints use static variables 14:03:06 hidden in their own files 14:03:19 because the data is shared between all the fingerprints 14:03:19 for instance when I initialised Lost Kingdoms separately and sent the resulting serialised BF image to ehird 14:03:20 err 14:03:22 all the ips 14:03:29 because he was fed up with waiting for it to load 14:03:33 ais523, oh I see 14:03:42 Emacs uses that trick, I think 14:03:45 yes 14:03:49 it dumps core and then makes the core dump into an executable 14:03:54 aye 14:04:06 rather nasty IMO 14:04:10 hmm... do core dumps have their own headers? 14:04:19 or is it possible to dump core in such a way that it starts with an ELF header? 14:04:24 that would be a brilliant quine 14:04:32 ais523, I think they have special elf headers 14:04:33 a machine-code Kimian quine based on core-dumps... 14:04:44 that will need modification after 14:04:49 pity 14:05:35 ais523, unless it is fantasy game ;P 14:05:56 14:11:03 * ais523 ponders what includes are needed in the glue code 14:11:17 , of course, but which of yours will I need? 14:11:24 um what? 14:11:29 ais523, depend on what you are using 14:11:29 header files 14:11:46 each header corresponds to a source file apart from global.h 14:11:49 loading fungespace from a string, then running the interp 14:12:09 I need to duplicate the functionality of interpreterMainLoop, but with various modifications 14:12:10 ais523, the headers mostly include other headers as needed I think 14:13:00 * ais523 ponders how k would interact with NEXT 14:13:01 ais523, interpreter.h + maybe reach internals in that file not sure, and funge-space/funge-space.h 14:13:03 at least 14:13:04 badly, I htink 14:13:17 ais523, well k interacts badly with a lot of things 14:13:29 instructions/iterate.c 14:13:32 see how it is done there 14:13:35 lots of special casing 14:13:59 oh, and k + marker makes little sense either, but I don't think it can ever come up in a situation where it's dangerous 14:14:09 k + forget? 14:14:20 ais523, as for fingerprint you may need more headers not sure 14:14:27 AnMaster: that's fine, 15kF and 51kF would be equivalent 14:14:34 ais523, if there are any major changes you want upstream, I'm open for discussion 14:14:54 I don't think there will be, I'm trying to disturb upstream as little as possible 14:15:07 ais523, well you got your load from string 14:15:15 yes, thanks 14:15:26 and I think you may need to touch internals in interpreter.c, not just the header 14:15:51 as for k + fingerprint... that is one hard 14:16:09 current infrastructure doesn't really support special casing k for fingerprints 14:16:15 nor is it something the upstream will need 14:16:22 I've thought of a way to avoid messing with internals, which is a good idea anyway to avoid the internals being messed up with my stupid stack tricks 14:16:24 as I have very few feral fingerprints 14:16:31 and I'd like you to figure out k + TRDS... 14:16:45 ais523, I don't plan on implementing TRDS in upstream 14:16:50 no, I'm not surprised 14:17:18 ais523, see README, it contains a list of fingerprints which won't be implemented 14:17:26 but what most of the fingerprint commands do is set flags, which are processed when control returns to ick_InterpreterMainLoop or whatever I call it 14:17:44 ais523, right, makes sense 14:17:51 that way there's nothing much dangerous on the C stack when I go about destroying it or whatever 14:18:05 indeed 14:18:11 also it's only InterpreterMainLoop that I have to worry about making re-entrant 14:18:25 hah true 14:18:36 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 14:18:44 this breaks badly with k + NEXT, though, I think 14:18:49 ais523, as for how k + TRDS interacts: badly I think 14:18:51 but some things work in my favour 14:18:58 AnMaster, wat. 14:19:05 SevenInchBread, ?? 14:19:10 for instance, k + COMEFROM is inexpressible with the notation I plan to use 14:19:14 you pinged me apparently. 14:19:25 SevenInchBread, yes ages ago a bit after you talked here 14:19:36 see scrollback 14:19:58 for instance, k + COMEFROM is inexpressible with the notation I plan to use <-- interesting 14:20:14 AnMaster: if you put the k before the marker, it's never seen, likewise if you put it after the C 14:20:21 if you put it after the marker it applies to the wrong statement 14:20:24 ais523, hum? 14:20:36 and if you put it before the C then the C ends mark-mode and the other iterations never run 14:20:37 why is the marker never seen with a k next to it? 14:20:46 AnMaster: program execution starts at the marker 14:20:55 so the k immediately before it never executes 14:21:10 well what if the program hits the marker later on? 14:21:12 will it reflect? 14:21:21 AnMaster: no, a marker's a NOP if you aren't in mark-mode 14:21:23 as is a COME FROM 14:21:35 that reflects the INTERCAL behaviour 14:21:44 a COME FROM does nothing if encountered in the normal flow of things 14:21:53 ais523, ok, then you need to change ExecuteInstruction in interpreter.c a bit 14:21:55 I think 14:21:59 actually, that's not quite right, COME FROM pops the stack if not in mark-mode 14:22:13 AnMaster: not really, it should be easy enough to define a NOP in a fingerprint 14:22:24 err fingerprints can only define [A-Z] 14:22:31 // Next: Is this a fingerprint opcode? 14:22:31 } else if ((opcode >= 'A') && (opcode <= 'Z')) { 14:22:40 AnMaster: well, I was planning to expose markers as M to the Befunge code 14:22:44 just have them as middot in the source 14:22:46 ah 14:22:49 I see 14:22:53 ais523, interesting! 14:23:00 so they get magical marker metadata, whilst not surprising a Funge program 14:24:43 * ais523 wonders what the fffungi handprint should be 14:25:06 IFFI? CFUI? 14:25:09 CFNI? 14:25:13 I was planning to use IFFI for the fingerprint 14:25:16 ah 14:25:23 yeah seems good 14:25:25 it might make a good handprint too, though 14:25:39 but the handprint should acknowledge cfunge, really 14:25:43 whereas the fingerprint shouldn't 14:25:43 yeah 14:25:52 CFUN is current fingerprint 14:25:55 err 14:25:57 handprint 14:25:58 iirc 14:26:01 yep, I just looked it up 14:26:23 maybe CFFI 14:26:33 there's a nice symmetry there 14:26:35 yeah seems to make sense 14:26:52 ais523, however that may be a future fingerprint on my side 14:27:00 ah, what would it do? 14:27:04 I have had ideas about a C FFI fingerprint for befunge 14:27:06 using libffi 14:27:08 ah, of course 14:27:11 to handle it at runtime 14:27:17 ais523, however this may never happen 14:27:18 would a handprint/fingerprint clash be a problem? 14:27:22 as I got no idea how hard it would be 14:27:24 ais523, not realluy 14:27:26 really* 14:27:30 they are separate name spaces 14:28:32 ais523, also when compiled in 64-bit variant the handprint of fingerprints could use 8 chars 14:28:36 however it is not recommended 14:28:48 possible but not recommended 14:29:51 and besides, what I'm doing also provides a C ffi for Befunge in a very tortuous manner 14:29:51 you'd just need a stub INTERCAL program to connect the two 14:29:52 -!- ais523 has quit (Remote closed the connection). 14:30:07 -!- ais523 has joined. 14:30:37 sorry... 14:30:39 did I miss anything? 14:30:56 We cured cancer. 14:30:57 you'd just need a stub INTERCAL program to connect the two 14:30:58 * ais523 has quit (Remote closed the connection) 14:31:05 ah, no I didn't 14:31:56 ais523, note I haven't tested the load from string 14:32:05 so if you have odd issues with loading look there 14:32:12 well, I'm going to set to documenting what I'm about to do before I start actually coding it 14:32:12 ais523, oh and some gdb tricks 14:32:16 that seems necessary here 14:32:40 and C-INTERCAL's the first program I've ever come across which has managed to completely confuse gdb 14:32:42 ais523, compile *without* defining NDEBUG 14:32:47 it doesn't like bits of stack disappearing without warning 14:32:58 then in gdb you can do: 14:33:03 call FungeSpaceDump() 14:33:31 there is also a funge stack dump 14:34:12 call StackDump(pointer to a funge stack be sure it is correct, there is no verification) 14:36:15 -!- Corun has joined. 14:36:41 ok, although it's unlikely to be the Befunge stuff itself that needs debugging 14:36:46 although now I've said that it will be 14:38:29 AnMaster: oh, one other thing; is it possible for a fingerprint to do unusual stuff when it's loaded 14:38:34 as opposed to when the commands in it are called 14:38:57 one thing I'm not sure whether to do is to have the Befunge program run as normal until IFFI's loaded, then for the INTERCAL program to start 14:39:08 to allow the Befunge program to do initialisation if it wants before relinquishing control 14:42:21 hm 14:42:25 AnMaster: oh, one other thing; is it possible for a fingerprint to do unusual stuff when it's loaded 14:42:26 well 14:42:31 anything that C could do 14:42:33 HOWEVER 14:42:36 it may cause issues 14:42:47 I was planning just to set a flag that the main loop could read 14:42:53 you could do memset(0, 0, 2*1024*1024); 14:43:03 but likely that would segfault 14:43:47 and well flag seems sane 14:44:02 one thing I'm not sure whether to do is to have the Befunge program run as normal until IFFI's loaded, then for the INTERCAL program to start 14:44:02 to allow the Befunge program to do initialisation if it wants before relinquishing control 14:44:04 no clue 14:44:11 my plan's basically an insane main loop combined with sane everything else 14:44:20 ais523, right 14:44:28 seems a good way to do it 14:45:00 anyway a fingerprint is only activated when any instruction in it is called 14:45:04 or when it is loaded 14:45:10 never when it is unloaded or otherwise 14:45:18 ais523, that may be worth remembering 14:45:20 ah, ok 14:45:25 not when unloaded is slightly surprising 14:45:33 why? it wasn't needed 14:45:50 AnMaster: well, reversing whatever was done on startup, such as deallocating memory, etc, is what I'd have expected 14:46:19 ais523, so far that haven't been needed, all fingerprints that allocate memory to static variables should persist until the program ends 14:46:26 ok 14:46:37 all that allocate to data stored in ip, will persist until ip terminates or program ends 14:46:48 and that is only HRTI so far 14:46:57 ais523, if I needed unload I would indeed add it 14:47:02 and I can add it if you need it 14:47:05 I don't think I need it 14:47:22 I may need it in the future, it would be a optional hook 14:47:24 it would make something more symmetrical, but I think the symmetry would be bad, and also a pain to implement at my end 14:47:36 so only change would be a few lines in fingerprint spec, if even that 14:47:48 * ais523 recalls that "no Intercal;" in C-INTERCAL is an error 14:47:55 eh? 14:47:58 no Intercal;? 14:47:58 that is, C-INTERCAL's programmed as a Perl module 14:48:02 but it mustn't be unloaded 14:48:07 doing so causes an error message 14:48:10 hahaha 14:48:17 ais523, well fingerprint may be unloaded 14:48:23 s/C-INTERCAL/CLC-INTERCAL/ 14:48:24 obviously 14:48:25 you need to check if you are already initialized 14:48:27 sorry for that typo 14:48:34 just do something like: 14:48:49 static bool initialized = false; 14:48:55 then in the loading code set it to true 14:49:16 yep, simple enough 14:49:18 don't forget #include 14:49:30 ais523, a few fingerprints does that 14:49:33 REFC for example 14:49:40 AnMaster: you rely on a lot of header files that I don't depend on existing 14:49:41 HRTI does per-ip for various reasons 14:49:45 but then C-INTERCAL doesn't depend on C99 14:49:51 older versions don't even depend on C89 14:49:52 well stdbool.h is C99 indeed 14:50:02 so I see no reason not to use it 14:50:07 for me it works well 14:50:12 yes, this is only going to work in C99 14:50:41 of course if you plan to write your fingerprint as C89 that should work with the exceptions of existing macros 14:51:12 well, I'll make it C99, but mostly avoiding C99 features unless I would really find them useful 14:51:24 anyway I think global.h already includes stdbool.h and stdint.h 14:51:25 :) 14:51:34 at least stdint.h is included 14:51:35 either that, or the whole thing will be legal C89 except for a comment saying // this comment was put here to make the file C99 not C89 14:51:44 ais523, hahaha 14:51:54 I may do that, it's in the spirit of the rest of the code 14:52:06 in the spirit of cfunge? 14:52:08 not really 14:52:17 I use C99 code because I find it is useful 14:52:32 like variable sized structs 14:52:44 used for ip list in concurrent funge 14:52:51 no, I meant in the spirit of the rest of C-INTERCAL 14:52:58 I normally try to pay homage to the langs other people chose 14:53:15 so for instance my CLC-INTERCAL character set stuff is full of Perl idioms despite being written in C 14:54:42 ouch 14:54:48 ais523, what are those idioms? 14:54:58 mostly ifs done with short-circuit operators 14:55:04 but that requires a lot more parens to work in C 14:55:16 um? short circut operators? isn't that the default in C? 14:55:20 yes 14:55:25 but they aren't normally used for if statements 14:55:29 normally they're used for logic 14:56:05 well if ((foo == bar) && (quux == xyzz)) will break on the first that is false 14:56:08 in C 14:56:16 for || it will break on the first that is true 14:56:28 (void)(ic==-1 && (ick_cset_recent[ic=ick_csetow++].nbytes=0)); 14:56:39 that's a common Perl idiom, but is much uglier in C 14:56:43 err 14:56:46 what does that do? 14:57:03 1) that isn't a if statement 14:57:07 2) that makes no sense 14:57:11 AnMaster: it's functionally an if statement 14:57:19 oooh 14:57:30 [[ $ic == -1 ]] && blah blah; 14:57:31 in bash 14:57:39 well I use that *sometimes* in bash but not often 14:57:52 in Perl it would read ic == -1 and $ick_cset_recent[$ic=$ick_csetow++]->nbytes=0; 14:57:55 which is much the same thing 14:58:01 just C requires lots of parens 14:58:08 and a cast to void to satisfy linting tools 14:58:36 well... 14:58:49 GCC would warn on it 14:58:52 something like: 14:58:57 no wait it wouldn't 14:59:01 no it doesn't 14:59:08 "statement with no effect"? 14:59:13 I have seen that 14:59:16 when I typed: 14:59:20 foo == bar; 14:59:22 instead of: 14:59:24 foo = bar; 14:59:25 once 14:59:56 -!- SevenInchBread has quit ("haaaaaaaaaa"). 15:00:06 gcc would also do it if you discard the data from a function marked __attribute__((const)) 15:00:11 AnMaster: it does have an effect 15:00:16 ais523, yes true 15:00:16 there's two assignments in there 15:00:25 and a cast to void to show that I don't care about the final value 15:00:41 ais523, doing an assign inside a [] sucks IMO 15:00:49 yes, probably, I wouldn't do it normally 15:00:54 in fact there are two assigns inside that [] 15:00:55 it is perlish? 15:00:58 but the ++ is reasonable 15:01:02 well I have done ++/-- 15:01:04 in that 15:01:04 AnMaster: I don't think it's perlish 15:01:12 except when golfing 15:01:25 but Perl is much more commonly used for golfing than C 15:01:28 why did you do it then? 15:01:33 so I couldn't resist the temptation to golf a bit 15:01:43 tbh, often the temptation to golf a bit gets me anyway 15:01:51 well I avoid that 15:01:58 but on serious projects I normally suppress it 15:02:00 ais523, doxygen kind of kills that ;P 15:02:05 try it 15:02:16 * ais523 imagines golfing documentation in such a way that it was still readable 15:02:21 and useful 15:02:22 doxygen works wonders on supressing your urge to golf 15:03:28 right 15:03:39 ais523, anything else you need help with explaining in cfunge? 15:03:51 not right now, probably there will be later 15:03:53 -!- Corun has quit ("This computer has gone to sleep"). 15:04:01 ais523, try running: doxygen 15:04:03 in top dir 15:04:10 see doxygen-docs/html 15:04:18 or doxygen-docs/latex 15:04:19 after 15:05:49 looks mildly useful, presumably that becomes more and more useful the bigger your project gets 15:09:37 hmm... should I put much effort into making IFFI work standalone? 15:10:08 in theory, it could work like that, creating a Funge + COME FROM language 15:10:21 without the need for an INTERCAL program connecting 15:10:48 but that would mean reimplementing the INTERCAL call stack, etc., in cfunge, so it probably isn't worth doing 15:11:37 indeed isn't worth doing 15:11:58 ais523, my future CFFI would be way more straight forward, just a wrapper for libffi 15:12:15 yep 15:12:22 after all, you don't need COME FROM then 15:12:29 yep 15:12:49 and indeed doxygen is way more useful on larger projects 15:13:07 but I did doxygen here in order to help third party developers 15:13:15 I know my way around the code anyway 15:15:50 ais523, I think the file list and desc what each file contains should be useful to you 15:15:57 yes, probably 15:16:48 although ideally I won't have to touch any of cfunge apart from the main loop and fingerprint code 15:16:54 in fact I still think it may be possible with unmodified sources, just with extra files being added 15:17:03 maybe 15:17:36 * AnMaster just pushed a new revision 15:17:45 just adding some comments to shut up some doxygen warnings 15:20:08 -!- timotiis has joined. 15:28:14 AnMaster: what do you call it when the IP's moving like it does in Befunge-93 15:28:21 that is, one step at a time, orthogonally 15:31:19 • If the IP’s delta is either (0,-1) (south), (1,0) (east), (0,1) (north), or (-1,0) (west), it is said to 15:31:19 be travelling cardinally . This is the same as how a rook moves in chess and this is in fact 15:31:19 the only way the IP can move in Befunge-93. 15:31:34 • Any IP with a nonzero delta is considered moving. 15:31:35 • Any IP with a zero delta is said to be stopped. 15:31:35 • Any moving IP that is not travelling cardinally, and is not stopped, is said to be flying. 15:31:42 -!- Corun has joined. 15:31:46 ah, thanks 15:32:04 this is found in funge98 standard, but the copy was from my 108 draft 15:32:14 which is in latext/pdf 15:32:14 as far as I'm concerned, if people are going to write a COME FROM non-cardinally, they can put the code to set the IP direction in themselves rather than the interp trying to guess 15:32:15 ;P 15:32:21 latex* 15:32:57 ais523, what about pushing delta on stack? 15:33:13 what parameters will your code have there? 15:34:29 AnMaster: well, the point is that I have to try all the markers with all the possible cardinal deltas 15:34:31 -!- ais523 has quit (Remote closed the connection). 15:34:41 ... 15:34:42 err 15:34:48 that doesn't make sense 15:34:49 -!- ais523 has joined. 15:34:53 AnMaster: well, the point is that I have to try all the markers with all the possible cardinal deltas 15:34:54 * ais523 has quit (Remote closed the connection) 15:34:54 ... 15:34:54 err 15:34:54 that doesn't make sense 15:34:55 what about 15:35:02 for parameters, 15:35:19 V_1 = position to set marker at 15:35:29 well, suppose I have a line (100) in the INTERCAL code 15:35:31 V_2 delta to use for ip when we start from here 15:35:36 and COME FROM (100) in the Befunge code 15:35:42 value = line number 15:35:51 At current I'm planning that to be Maa*C 15:35:53 ais523, you could make it take more parameters 15:36:05 ah, you mean more metadata/ 15:36:06 for non-initial one 15:36:09 that's an interesting idea 15:36:21 for initial one you would have to have some defaults 15:36:29 does that sound sane? 15:36:34 I kind of like the idea of a middot surrounded by arrowheads so that three of the directions are incorrect 15:36:37 your way is saner, though 15:36:54 but less visual in the source 15:37:58 I think I'll finish writing the spec as I planned it originally 15:38:00 and then show you 15:38:23 hm 15:38:37 well for initial marker allow just some directions 15:38:49 for later markers I'd say allow more meta data 15:38:54 well, yes, the four (/two/six) cardinal directions seem to make sense 15:39:03 maybe each marker should have allowed directions 15:39:16 well for initial marker: cardinal 15:39:18 which defaults to all four cardinal directions to test in for a middot entry 15:39:24 for adding new using fingerprint: any delta 15:39:25 right? 15:39:39 but when specifying them programmatically you can use any delta you like 15:39:41 also how do you do initial marker's line number? 15:39:53 AnMaster: the line numbers aren't metadata 15:39:58 but instead specified in Funge code 15:39:59 oh?! 15:40:02 err 15:40:07 wtf XD 15:40:10 the markers are there to say where to start executing to determine the line number 15:40:19 oh my 15:40:22 e.g. line 150 would be Maf*L 15:40:26 well write your specs 15:40:39 that way you can have computed COME FROMs, computed line numbers, etc 15:40:39 and I will read with interest 15:40:43 food is soon ready 15:46:29 AnMaster: interesting point: if I try to do something that's an error in INTERCAL (such as NEXTing to a non-existent line) from inside Befunge, should it reflect as in Funge, or error out as in INTERCAL? 15:46:45 ais523, don't really know 15:46:53 it is a collisions of interests clearly 15:46:56 yes 15:47:04 probably the second is what'll happen if I don't special-case it 15:47:14 well do what you prefer 15:47:43 not sure really, I'll have to think about it more 15:47:49 reflecting would certainly be more useful 15:47:52 Try `rm ./-d9A2oq1N38.flv' to remove the file `-d9A2oq1N38.flv'. 15:47:57 but I'm not sure if that's a good or a bad thing 15:48:00 well I knew that 15:48:09 interesting to see gnu rm being so bloated 15:48:24 * AnMaster did rm -- -d9A2oq1N38.flv tough 15:48:47 AnMaster: I think it's trying to be user-friendly 15:48:55 and that is at least a useful tip for people who don't know it 15:49:00 true 15:49:07 besides, have you seen how bloated GNU true is? 15:49:16 I know it is 15:49:31 I could write one in like 3 lines C: 15:49:36 int main(void) { 15:49:39 return 0; 15:49:41 } 15:49:57 why does it need help? 15:49:58 AnMaster: IIRC there was a 0-byte implementation of true in some OS, but it was buggy 15:50:00 or version 15:50:13 for false just change to return 1 15:50:24 ais523, a few lines of asm would also work 15:50:27 * ais523 wonders if a single colon would be a non-buggy implementation of true 15:50:34 AnMaster: it's one byte of machine-code in DOS 15:50:41 for rather convoluted reasons 15:50:43 assuming *nix 15:50:43 ... 15:50:46 but DOS doesn't implement true anyway 15:50:54 and yes com is crazy 15:50:57 *.com I mean 15:51:04 basically, it pushes a 0 on the stack before the program runs 15:51:18 ais523, oh? why? 15:51:20 and the DOS equivalent of exit(0) is put at location 0 in the segment the .com file is loaded into 15:51:28 specifically so doing a single return will exit the program 15:51:36 it's for compatibility with some old OS 15:51:39 that predates even DOS 15:53:21 hmm... I have a Windows version of true on here that I wrote myself, which was basically your three-liner 15:53:32 it's 172065 bytes as a .exe 15:53:44 I wonder what all those bytes are used for? 15:54:02 by comparison GNU true is only 22192 15:54:19 BusyBox true is even smaller because it's a symlink, but that's cheating 15:56:32 AnMaster: http://rafb.net/p/7Ze8i339.html 15:56:37 those are my partial specs so far 15:56:45 I've put most of the flow-control stuff in there 15:58:10 "The fingerprint adds a new mode to the IP, known as 'mark mode'." 15:58:16 how do you plan to store this? 15:58:23 in static variables in my own stuff 15:58:30 other Funge commands have no way to change it 15:58:36 because it can exist at the same time as other modes 15:58:42 maybe I should clarify that a bit differently 15:58:49 but it's possible to be in mark-stringmode for instance 15:59:00 hm 15:59:04 although I'm not sure what would happen if something like L was hit whilst still in stringmode 15:59:15 actually, clearly it wouldn't run the command 15:59:18 it would just push it on the stack 15:59:23 that's what stringmode does, after all 16:00:46 ais523, what should happen on a @ 16:00:54 or q 16:00:58 all the programs end 16:01:01 right 16:01:08 that's consistent between C exit() and INTERCAL GIVE UP 16:01:15 so it should be consistent to Befunge @ too 16:01:18 ais523, do you need to do any clean up on your side? 16:01:26 because cfunge simply calls exit() 16:01:30 well, deallocating memory's nice, but apart from that no 16:01:41 ais523, you could use atexit() then 16:01:48 yes, I thought the same thing myself 16:01:49 and OS should free the memory 16:01:55 but that'll be something to do later 16:02:04 because the OS frees the memory 16:02:10 and because it affects more than just fffungi 16:02:14 not sure about DOS though ;P 16:02:37 DOS doesn't free after program end IIRC, but then I don't know if cfunge would run on it 16:02:50 probably it would under DJGPP, it might need some tweaking though 16:02:59 I'm not sure I see what C is doing 16:03:21 AnMaster: basically M5C does a COME FROM from line 5 16:03:33 nothing if it's encountered in program flow, it just pushes then pops the 5 16:03:35 hm 16:03:56 but if line 5 is encountered, it's run in mark-mode, the C compares 5 to 5, finds they're equal, and seizes control 16:04:09 ais523, bbiab food is ready 16:04:15 ok 16:18:07 back 16:20:07 ais523, how do you define a new come from label 16:20:13 with that fingerprint 16:20:19 and how do you remove an existing? 16:20:21 what, the label to come from, or the come from itself? 16:20:35 ah, you edit the playfield to add a marker, code to compute the label, and an L 16:20:45 to remove an existing you simply demetadata the marker 16:20:51 hm 16:21:00 well here is how I would do it: 16:21:03 although you can wipe that area of the playfield clean instead or as well if you like 16:21:22 N 16:21:24 on stack 16:21:26 and: 16:21:34 D 16:21:35 on stack 16:21:40 the first to add, the second to remove 16:21:58 the second doesn't make sense when there are two COME FROMs aiming at the same line 16:22:03 admittedly, you probably don't want to do that 16:22:06 ok so you need x,y too 16:22:10 but it's legal so long as that line's never encountered 16:22:21 ais523, well you could involve concurrency in this XD 16:22:24 (better not) 16:22:28 AnMaster: that's what INTERCAL does in that situation 16:22:41 but one issue with that is it only gives you noncomputed COME FROMs 16:22:50 both INTERCAL and C support computed COME FROMs 16:23:06 computed goto I know 16:23:12 but computed come from I don't get 16:23:17 you just COME FROM an expression 16:23:25 whenever a line label is reached, that expression's evaluated 16:23:27 computed come from would be exceedingly slow right? 16:23:34 need to be checked once every line 16:23:38 and if it evaluates to the same value as the label, you do the COME FROM 16:23:41 and yes, it is pretty slow 16:23:47 although not all lines are labeled in INTERCAL 16:23:51 which speeds it up to some extent 16:28:32 ais523, anything else? 16:28:48 not right now, I don't think 16:29:20 ais523, will there be a way to do non-computed COME FROM in your fingerprint? 16:29:33 that's just COME FROM with a constant expression 16:29:38 yes 16:29:43 but that is faster right? 16:29:43 do you think there should be an optimised way? 16:29:58 AnMaster: not the way I was planning to implement it, it's a bit difficult to optimise 16:30:08 and yes I think it should be an optimized way, though you could do it optimized anyway 16:30:16 it can't be compiled into a goto, for instance because Funge can't be compiled 16:30:17 monitor those cells for change 16:30:38 ais523, what about JITing? 16:30:48 * AnMaster has pondered JIT of befunge for quite some time 16:30:58 but JIT is unportable 16:31:02 maybe with LLVM? 16:34:31 -!- ais523_ has joined. 16:34:58 sorry... 16:35:04 -!- ais523 has quit (Nick collision from services.). 16:35:08 -!- ais523_ has changed nick to ais523. 16:37:17 -!- Sgeo has joined. 16:37:34 it can't be compiled into a goto, for instance because Funge can't be compiled 16:37:34 monitor those cells for change 16:37:34 ais523, what about JITing? 16:37:34 * AnMaster has pondered JIT of befunge for quite some time 16:37:34 but JIT is unportable 16:37:35 maybe with LLVM? 16:37:38 ais523, missed any of that? 16:37:46 I missed bits of it 16:37:54 what is LLVM, anyway? 16:38:04 and I thought JIT was a compilation technique, so how can it be unportable? 16:38:13 ah, you mean that it would need to compile into machine code 16:38:57 ais523, the registered Sgeo on Agora is I 16:39:16 Sgeo: good, I thought so, but given the circumstances it was worth checking 16:39:25 and I seriously doubt you're ehird in disguise 16:39:52 Maybe he had this disguise lurking for years just for this possibility muahahahah! j/k 16:40:55 ais523, indeed machine code :/ 16:41:03 and llvm is some pretty cool stuff 16:41:04 google 16:43:35 As a player, I have to read EVERY public message? 16:44:14 11:42 AM (1 hour ago) 16:44:24 ais523, are you a time traveller? 16:44:40 Sgeo: I'm in UTC+1 16:44:49 also, you don't have to read every public message 16:45:00 however sending a public message is an accepted way of informing you of something 16:45:19 so you can't claim ignorance of the contents of a public message 16:45:26 take this conversation over to ##nomic? 16:59:10 -!- ais523 has quit (Remote closed the connection). 16:59:32 -!- ais523 has joined. 17:08:32 -!- tusho has joined. 17:08:43 hi ais523 17:08:45 OH YEAH 17:08:56 :3 17:09:34 hmph 17:09:41 ais523: i would appreciate your approval 17:09:42 :P 17:10:02 tusho, hm? 17:10:20 Sgeo: the beat-ais523-greeting-me competition 17:10:39 oh 17:10:41 riright 17:10:53 WHY AM I STILL ON THE COMPUTER?! 17:11:06 cause 17:11:21 I have somewhere I want to be at 1:30 my time 17:11:30 and I still need to look for clothing and eat 17:11:41 Although I can only be there 4 hours out of 9.5hrs 17:11:52 -!- ais523_ has joined. 17:11:56 ais523: GAHAHA 17:12:01 I got you while your network was fucked evidently! 17:12:14 still, i got you much less than a second after actually joining, so I'd have beat you anyway 17:12:19 hi tusho 17:12:21 from my point of view, I won 17:12:23 from your point of view, you did 17:12:27 but the logs will have stated you won 17:12:30 -!- ais523 has quit (Nick collision from services.). 17:12:33 -!- ais523_ has changed nick to ais523. 17:12:37 ais523_: unless you scripted it, no way 17:12:38 so good win 17:12:42 I had 'hi ais523' on the clipboard 17:12:50 and as soon as I saw 'esoteric' appear in the sidebar, CMD-VENTER 17:13:03 it'll have come late to you because of your network problems 17:13:15 no, it actually didn't arrive at all 17:13:22 well, then 17:13:23 :-P 17:13:27 but I believe you 17:13:31 assuming a good network I probably would have won 17:13:32 so yay 17:13:40 Sgeo: oh, and I suspect oerjan has better things to do than play agora 17:13:44 like writing papers and stuff. 17:15:54 * AnMaster ponders adding a hi tusho script 17:15:58 and hi ais523 17:16:01 XD 17:16:09 because I never disconnect my client 17:16:18 unlike you two 17:16:34 as for this night's disconnect: power outage 17:16:46 AnMaster: I'm not online at all much of the time 17:16:49 and my laptop's off 17:16:53 so it would be a bit hard to be connected 17:16:56 heh ok 17:17:27 unless, presumably, I run a friendly bot on some always connected server and actually implement /nickswap... 17:20:25 -!- ais523 has quit (Remote closed the connection). 17:20:41 -!- ais523 has joined. 17:23:33 -!- ais523 has quit (Read error: 60 (Operation timed out)). 17:24:27 -!- ais523 has joined. 17:32:02 atsampson: ping 17:32:15 ais523: cmeme kept joining/parting 17:32:17 so lament banned em 17:32:19 tusho: what's with all the pinging random people that's going on today? 17:32:27 ais523: techncially, seveninchbread talked earlier 17:32:29 03:52:18 .. 17:32:44 and lament banned the logbot? presumably, it's worth trying letting it back in to see if it helps 17:32:45 i was just joining the bandwagon 17:32:50 and it can always be banned again 17:32:53 ais523: i think e unbanned the logbot, but it never returned 17:32:57 tusho: pong 17:33:00 makes sense 17:33:07 atsampson: hey!! you're not dead 17:33:08 hi :) 17:33:16 * tusho is amazed 17:33:16 I wouldn't go that far -- it is Friday evening ;) 17:33:34 * atsampson wanders off to fight the Amazon courier service 17:33:40 :) 17:34:25 Are yyou about to talk about doing things at the last minute? 17:34:27 Probably not 17:34:36 I just had some rather strong deja vu 17:35:08 http://dev.eclipse.org/viewcvs/index.cgi/org.aspectj/modules/weaver/src/org/aspectj/weaver/patterns/HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor.java?revision=1.1&root=Tools_Project 17:35:09 WTF 17:35:12 :D 18:00:58 oklopol: ping 18:01:22 Sgeo, ping 18:01:52 pong 18:01:57 * Sgeo is more active in ##nomic 18:02:04 anyone up for pinging everyone in this channel? 18:02:07 ais523, maybe you? 18:02:11 or you tusho? 18:02:16 pong 18:02:19 yes 18:02:21 sounds good 18:02:26 *ahem* 18:02:52 oklopol: stop faking your ping time responses, it's silly 18:03:06 AAA_AAA ais523 AnMaster atsampson augur bsmntbombdood cctoide cherez clog Corun Deewiant Dewi fizzie ihope Ilari jamesstanley Judofyr lament lifthras1ir mtve oklopol Polar puzzlet RodgerTheGreat sebbu sekhmet Sgeo shachaf SimonRC Slereah_ timotiis tusho 18:03:09 oh, and ihope won that little ping race 18:03:11 ais523: his client does that 18:03:14 wha 18:03:20 RodgerTheGreat: i pinged everyone 18:03:29 tusho: that's just pingspam 18:03:33 :) 18:03:33 omgwhat 18:03:43 tusho dont make me rape you. 18:03:46 augur: EXACTLY! 18:03:55 hehe 18:03:59 ais523: AnMaster proposed it 18:04:00 Kill, kill, kill, kill! 18:04:04 everything he says is logical and rational 18:04:06 :-P 18:04:12 nice to see this channel alive! 18:04:21 ANMASTER IS AN ASS. 18:04:23 MASTER. 18:04:24 yes, but in the wrong way 18:04:27 .. 18:04:29 I pinged everyone too, but via ctcp 18:04:31 augur, I said it as a joke 18:04:41 that's a lot nicer 18:04:44 it was tusho that didn't get the joke 18:04:53 *the previous statement should be read in the voice of Shake, from Aqua Teen Hunger Force 18:04:59 * Ping reply from cherez: 0.31 second(s) 18:04:59 * Ping reply from Sgeo: 0.55 second(s) 18:04:59 * Ping reply from clog: 0.57 second(s) 18:05:02 those won 18:05:08 oh, ihope won when I tried 18:05:13 then clog 18:05:15 ais523, well not odd 18:05:16 You punks! 18:05:21 cherez: thanks 18:05:21 :D 18:05:25 ais523, after all 18:05:35 we are probably on different servers 18:05:36 tusho: now to do that in #ubuntu... 18:05:42 ais523: YES 18:05:43 YES 18:05:43 YES 18:05:43 YES 18:05:46 no 18:05:46 * tusho writes a bot 18:05:47 no 18:05:49 no 18:05:49 tusho: stop spamming 18:05:53 and no, you'll just get banned 18:05:58 Mark my words: you will have been on fire recently in the near future! 18:06:04 tusho, do it in #wikipedia rather 18:06:07 ais523: glad I use os x then :-P 18:06:08 no don't 18:06:09 AnMaster: #ubuntu's bigger 18:06:10 cherez: ha, a decent use of the future perfect 18:06:19 tusho, but ais523 is a wikipedia admin 18:06:23 he will ban you ;) 18:06:26 uh 18:06:32 I'm not a wikipedia chanop 18:06:32 wikipedia admin != #wikipedia op 18:06:34 aha 18:06:36 right 18:06:39 there's like 500 wikipedia admins. 18:06:44 can there be that many chanops? 18:06:44 ais523: It rarely gets used in English, so I try to bring it back when I can. 18:06:57 anyway, editors with like a few months of experience get adminship over there, it's bizzare :-P 18:07:05 cherez: worth it, although Feather requires a whole new set of tenses 18:07:09 Mark my words: you will have been on fire recently in the near future! <-- is that valid? 18:07:17 AnMaster: yes, I parsed it 18:07:22 it's a bit redundant 18:07:25 what does that form mean? 18:07:27 but correct 18:07:45 AnMaster: it means that at some point in the future, someone (probably tusho) will have been on fire recently 18:07:45 -!- pingspam has joined. 18:07:52 right 18:07:56 /kickban pingspam 18:08:01 enlarge your pings! 18:08:08 pingspam: hi AnMaster 18:08:14 eh? 18:08:16 what's weird about future perfect 18:08:17 tusho, ? 18:08:20 a guess 18:08:22 get latent quick! 18:08:22 it's a tor user 18:08:30 i can't think of anyone else who would use tor in here 18:08:31 tusho, well I'm not pingspam 18:08:32 -!- pingspam has quit (Client Quit). 18:08:39 maybe you? 18:08:43 no 18:08:53 It's not fun if they don't have to spend a little while grokking. 18:08:59 tusho, I don't even have tor on this pda 18:09:05 tusho: I've learnt through experience to deny your denials in such cases 18:09:06 and I'm not at home 18:09:17 I still think it was you who wrote a bot to vandalise the canada ruleset 18:09:30 my mouth hurts :( 18:09:51 augur, ouch, maybe write a esoteric language bemoaning this fact? 18:09:52 * AnMaster runs 18:10:00 20:02… ais523: oklopol: stop faking your ping time responses, it's silly <<< what? 18:10:10 i don't use tor 18:10:10 :-P 18:10:13 * Ping reply from oklopol: 1214535396.53 second(s) 18:10:15 oklopol, that 18:10:17 probably 18:10:21 it's his client 18:10:22 :| 18:10:26 oklopol: well, I get 15 seconds within less than a second when I ping you 18:10:33 anyway, faking ping responses was my idea first! 18:10:36 ais523: no 18:10:40 clients do it quite often 18:10:40 and then I find nnscript's done it all along 18:10:44 just as a 'oh shut up' 18:10:45 ais523, I get more than that 18:10:52 ais523, I get a whole 1214535396 seconds 18:10:56 AnMaster: probably our clients encode the ping timer different ways 18:11:08 have you guys seen the 4chan quine? 18:11:08 ais523, yes I think it uses unsigned int... 18:11:14 bsmntbombdood, where? 18:11:18 bsmntbombdood: no, how did that happen? 18:11:21 is it an IRP quine? 18:11:28 and has it become a worm? 18:11:34 or a meme? 18:11:49 is it pudding? 18:12:02 * AnMaster glares at oklopol 18:12:51 stop it that tickles 18:12:51 http://encyclopediadramatica.com/4chan.js 18:13:46 ah 18:13:48 it posts itself 18:13:57 clever 18:13:58 so it's a JS virus? 18:14:22 ais523: it's a JS that, when run, posts {Copy and paste the following to Notepad, save with the filename "4chan.js", open the file you created and shit bricks.} 18:14:25 followed by its own code 18:14:32 to 4chan, repeatedly 18:14:35 so it's a JS honor virus 18:14:36 that's hardly obfuscation 18:14:54 it spams /b/ with a message telling people to run itself 18:14:58 http://encyclopediadramatica.com/4chan.js#Unencoded_script 18:15:16 well, server the purpose of obfuscation, but there should be a separate word for real obfuscation, and that kind of trivial code hiding 18:15:35 http://images.encyclopediadramatica.com/images/8/81/4chanjsshit3.PNG ok this made me laugh 18:15:39 wow, sex partners 18:18:32 what in gods name 18:19:27 wow, sex partners 18:19:28 what in gods name 18:19:30 #esoteric is modern art 18:19:40 hey, oklopol! :D 18:19:42 ::pounce:: 18:19:57 tusho: actually, I've been thinking that esolangs are an art form for a while, and the associated channel seems to be a different art form 18:20:29 ais523: only after augur and oklopol and Slereah_ 18:20:33 they kind of mesh with the rest of the channel 18:20:35 and it explodes into art 18:23:09 tusho: well actually, i got redirected to a page that told me there are cheap sex partners in turku :D 18:23:13 (where i live) 18:23:18 oklopol: o, that's the interstial ads 18:23:20 you click Skip Ads 18:23:30 oklopol, im very cheap 18:23:31 free infact 18:23:34 just not in turku :( 18:23:54 interstial? 18:24:04 ? 18:24:05 augur: so i hear! 18:24:05 oklopol: between the sts 18:24:40 ais523: ah! 18:25:46 whats the full JS in that post? 18:26:12 oh i see 18:26:17 actually, the challenge is to golf that JS down to 510 characters, plus the IRC stuff that goes on at the start of the line 18:26:17 ais523, how goes ffungi? 18:26:26 AnMaster: I've been doing other things for a while, sorry 18:26:33 the ffungi window is still open but not typed in 18:26:43 ais523, blargh 18:26:47 ;P 18:27:10 I support that blargh. 18:27:24 well that script obviously cheats the quine part, so it's not really an interesting task 18:27:40 oklopol: how do you cheatquine in JS? 18:27:44 heh. i think its interesting that the script preys on windows users. 18:27:50 -!- KingOfKarlsruhe has joined. 18:27:53 ais: cheatquine? 18:27:56 ah, by using JS's method of outputting the source for a function? 18:27:57 ais523: dunno, but something there has to read the source. 18:28:10 augur: a quine that doesn't use "legitimate" techinques 18:28:13 i didn't actually read it, because i don't know half the functions used 18:28:17 e.g. a quine that reads the program's source code from disk 18:28:19 oh, you mean one that reads its own source? 18:28:25 yes, that sort of thing 18:28:30 or the Q command in HQ9+ 18:28:38 or arguably any PHP program that doesn't contain < 18:28:47 but that one's more debatable 18:28:51 thats ever so slightly tricky i think. 18:29:00 ais523: 18:29:01 f = WSH.createobject("scripting.filesystemobject") 18:29:01 g = f.opentextfile(WSH.scriptfullname) 18:29:01 h = g.readall() 18:29:03 this does it 18:29:11 now that i took a glance 18:29:20 oklopol: ugh, they should have done it genuinely 18:29:20 that only works with some weird WSH thing which isnt standard JS 18:29:27 ais523: yes. 18:29:28 augur: well duh 18:29:32 the instructions say save it as 4chan.js 18:29:33 then run it 18:29:45 you can do it without that i think. 18:29:47 after all, in JS if you cast a function to a string you get its source code 18:29:48 yeah, that is an instant hint it cheats 18:29:50 augur: duh. 18:29:53 yes, augur, but it uses WSH for other stuff 18:29:54 that's pretty easy to do 18:30:05 ais: true 18:30:12 but that doesnt print the script as a whole 18:30:14 just the function 18:30:41 augur: 18:30:59 augur: it's easy enough to quote the bit around it in the function itself 18:31:02 augur: but it's trivial to do the rest 18:31:04 yeah 18:31:07 function f(){var me = "function f(){" + f.toString() + "};f();";};f() 18:31:10 er 18:31:13 function f(){var me = "function f(){" + f.toString() + "};f();";};f(); 18:31:19 'me' is the program 18:31:39 tusho: actually I think toString gives the name of the function as well 18:31:40 let me test 18:31:54 ais523: ah yes 18:32:05 function f(){var me = f.toString() + ";f();"; ...};f(); 18:32:10 technically that has extra whitespace 18:32:12 (it reindents the code) 18:32:18 javascript:function f(){var me = f.toString() + ";f();"; alert(me);};f(); 18:32:21 that's almost a quine 18:32:22 so you can't use obfuscation with it. 18:32:24 :( 18:32:25 except that Firefox pretty-prints it 18:32:30 ais523: it's required 18:32:32 it's a do-the-same-thing quine, anyway 18:32:34 Safari does it 18:32:35 anyway 18:32:36 ok so firstly 18:32:39 that way wouldn't let you obfuscate it 18:32:43 which is required for that worm to work well 18:32:45 you dont need ; after the } in the function definition 18:32:52 secondlt, you dont need f.toString 18:32:52 augur: we know 18:32:55 but you need a newline instead 18:32:55 tusho: yes you could obfuscate it like that 18:32:58 and third 18:33:01 we know javascript, jeez 18:33:02 you 18:33:05 're not the only one in here 18:33:08 we were just hacking it up on irc 18:33:14 and? 18:33:21 and ... so you don't need to tell us :\ 18:33:39 then act like you know it without me needing to tell you. :) 18:33:40 tusho: you could put the source code for a JS obfuscator inside the quine if you wanted to 18:33:47 yeah augur, how silly of you to think me, tusho or ais523 wouldn't know a language that exists. 18:33:49 ais523: well yes, but. 18:34:01 oklopol: ais523 has written quite a lot of esolang interps in JS 18:34:04 most of his interps are, in fact 18:34:08 they're on the esowiki 18:34:13 and readily linked 18:34:14 tusho: I've written at least one esolang interp in JS 18:34:20 ais523: at least 3 18:34:21 i believe 18:34:22 also a BF-minus-input to Underload compiler 18:34:28 tusho: probably, I lose track 18:34:28 (function f() { alert("(" + f+")()"; })() 18:34:34 tusho: i don't know what your point is, but good to know :P 18:34:42 i did know ais523 knows js 18:35:11 i've written nothing in js, i think 18:35:15 but i know it quite well 18:35:35 also I wrote quite a few scripts for Wikipedia in JS 18:35:39 well, i know it well enough to use it, i don't prolly know much about its specific coolnesses. 18:36:05 oklopol: coolnesses: cloning-based object model, lambdas, exceptions 18:36:12 well i know those 18:36:16 oh and a really sane syntax for objects 18:36:40 in fact, oklotalk "stole" js:s object model somewhat, although i learned about js after designing it. 18:36:56 it's just it did exist before ot, and it's very similar 18:36:59 (function () { 18:36:59 alert("(" + arguments.callee + ")();"); 18:37:00 })(); 18:37:02 a real quine in firefox 18:37:07 (i.e. actually the same text) 18:37:15 ais523: really sane syntax for objects? 18:37:20 tusho: thats basically what i wrote before. 18:37:22 oklopol: yep 18:37:22 the function thing? 18:37:23 only more verbose. 18:37:26 at least I think so 18:37:30 augur: except yours didn't output the same string bit for bit. 18:37:31 compare to Java for instance 18:37:41 because function's string conversion prettyprints in all browesrs I know. 18:37:42 i haven't tried it out, but i like the model, and have invented it a few times 18:37:53 oklopol: {prop: value, prop: value, ...} 18:37:54 tusho: not terribly relevant since whitespace is semantically empty. 18:37:58 add back in the whitespace if you want. 18:38:01 augur: a quine outputs its code byte for byte 18:38:02 ah, that one, right 18:38:04 and I did 18:38:08 augur: well, your program outputs a quine, at least 18:38:08 no you didnt. 18:38:14 i have that in a few of my languages as well 18:38:26 you used arguments.callee which is unnecessary, tusho. 18:38:34 also, methods are just properties which are functions 18:38:38 augur: naming things is for losers 18:38:49 and arguments.callee is fun 18:38:53 losers and people who want small functions. 18:39:01 now try to do it by overriding Array() 18:39:07 let's get offended that I made your quine actually be a quine 18:39:09 it's a great topic 18:39:11 furthermore, named functions like that are the same as arguments.callee 18:39:11 note that they don't allow that in FF3 because it's a security risk 18:39:13 i think we should whine about it all day 18:39:14 waaaaaaah 18:39:35 tusho: why the fuck did you do that? 18:39:42 what's augur done to deserve such bashing 18:40:00 oklopol: his previous bashing; and the fact that he wouldn't shut up about it 18:40:05 tusho: let me prove to you why you're wrong: string outputting for function code is dependent on browser, and therefore yours is no more a quine then mine. 18:40:16 augur: i stated 'in FF' 18:40:20 irrelevant. 18:40:59 always with the fighting 18:41:09 hey dont blame me, tushos the one being a child. 18:41:14 i want to code up something 18:41:27 augur: whatever you say :P 18:41:27 augur: pretty sure you agreed to shut the fuck up about my age. 18:41:30 ais523, progress? 18:41:36 AnMaster: I haven't started again 18:41:48 tusho: i wasn't referencing your age, but i figured you'd think that given your current mental state. 18:41:53 StartCoding(ais523, ffungi); 18:42:03 undefined 18:42:05 tusho: don't worry, you usually appear the more mature one :P 18:42:11 in case you were unaware, tusho, saying someones acting like a child is not a reference to their age 18:42:15 but a reference to their behavior 18:42:16 i am aware 18:42:19 but it was clearly a reference 18:42:22 although often the more annoying one. 18:42:26 actually it clearly wasnt 18:42:44 i've been trying to shut up about this for the past like 10 messages, can we actually do that now 18:42:57 i find it interesting that you're so worked up about the quine that you're this irrational, tusho. 18:43:09 maybe you should go have a nice cup of tea and come back when you've calmed down. 18:43:16 :D 18:43:19 i find it interesting that you evidently find this conversation fulfilling, worthwhile, or indeed useful, when I just suggested we drop it. 18:43:21 maybe a nap 18:43:24 yeah cuz he's british, haha 18:43:36 i know. hes british. oh those brits. 18:43:49 heh also nap cuz he's so young :P 18:43:53 such comedy 18:44:01 hey hey hey, dont mention his age 18:44:04 argh, code, must code 18:45:00 augur: i don't see why you always make everything spiral out of control into pointless bickering whenever you say something and I point out an error I see in it 18:45:08 it's really damn tiring 18:45:09 lol. 18:45:18 tusho, where did _I_ make this spiral out of control? 18:45:18 especially when I ask if we can stop and you start commenting about the conversation 18:45:26 -sigh- 18:45:43 if you're trying to come out of this more mature than me I don't think you're going very far 18:45:44 could it have been when i acted like a fucking twat and said stupid shit like 18:45:45 "let's get offended that I made your quine actually be a quine" 18:45:49 oh, wait, that was you! 18:46:03 thats right, YOURE the one who started acting like an idiot, silly me. 18:46:25 jesus christ 18:47:03 "c'mon guys geez I was obviously acting like an idiot ironically your sarcasm meters are broken I'm not actually being an asshole honest" 18:47:33 -!- tusho has left (?). 18:47:36 undefined 18:47:39 blergfh 18:47:50 yay tusho left, now you can code ais523! 18:49:01 so on to more interesting things 18:49:29 -!- Corun has quit ("This computer has gone to sleep"). 18:51:25 i downloaded a torrent the other day 18:51:33 it had like a hundred books on CS subjects 18:51:37 mostly AI-related stuff 18:51:41 but lots of other stuff too 18:51:53 well 18:52:00 now you have to read them all 18:53:11 i know :( 18:53:16 im reading one right now actually 18:55:17 -!- RedDak has joined. 18:55:34 -!- KingOfKarlsruhe has quit (Remote closed the connection). 18:55:35 oh also, awesome music: 18:55:45 wellnowwhat.net/transfers/Dream.zip 18:56:44 zips usually just sounds like white noise to me 18:57:45 -!- Sgeo has quit (Connection timed out). 18:58:22 ive actually got a 30 second brown noise loop i can send you 18:58:29 its great for going to sleep. :o 18:59:08 javascript:var y="X",x="javascript:var y=\"X\",x=\"X\".split(y);alert(x[0]+y+x[1]+x.join(y).split('\\\\').join('\\\\\\\\').split(\"\\\"\").join(\"\\\\\"\")+x[2]);".split(y);alert(x[0]+y+x[1]+x.join(y).split('\\').join('\\\\').split("\"").join("\\\"")+x[2]); 18:59:15 there are probably simpler ways to do that, though 19:02:05 christ almighty wtf is that?! 19:02:06 -!- tusho has joined. 19:02:06 lol 19:02:22 looks like a quine 19:02:30 it is a quine 19:02:34 without cheating 19:02:36 but i don't actually feel like running it in my head 19:02:39 ais thats ridiculous. lol 19:02:40 to be precise, it's a URL quine 19:02:47 because I included the javascript: at the start in it 19:02:50 yeah, got that much 19:03:49 glah, i hate imperative quines. 19:04:18 (\x -> x ++ show x) "(\x -> x ++ show x) " 19:04:31 i love functional quines :P 19:04:35 ap (++) show "ap (++) show " -- this works too I think 19:04:44 ap? 19:05:18 oklopol: ap is a monad thing 19:05:26 ap = liftM2 id 19:05:37 (:aSS):aSS 19:06:06 (aS(:^)S):^ 19:06:09 oklopol: basically 19:06:15 ap m1 m2 = do { x1 <- m1; x2 <- m2; return (x1 x2) } 19:06:25 in this case we use it with the function monad 19:06:31 tusho: function monad? 19:06:31 full quine: 19:06:34 ais523: yeah 19:06:38 what does that do? 19:06:46 ais523: 19:06:46 tusho: @src (->) return 19:06:46 [19:07] lambdabot: return = const 19:06:46 [19:07] tusho: @src (->) (>>=) 19:06:47 [19:07] lambdabot: f >>= k = \ r -> k (f r) r 19:07:07 ais523: it's the Reader monad 19:07:12 but without the wrapper of Reader 19:07:26 (and 'ask' becomes 'id') 19:07:54 main = putStrLn $ ap (++) show "main = putStrLn $ ap (++) show " 19:07:57 full version 19:08:37 a rough conversion of tusho's functional quine: (function (f) {alert("(" + f + ")(\"" + f + "\");"); })("function (f) { alert((\" + f + \")(\\\"\" + f + \"\\\");\"); }"); 19:08:56 that's basically right 19:09:03 but it's imperative and has backslash syndrome 19:09:03 QED 19:09:04 :P 19:09:55 yeah, backslashes are, well.. 19:10:25 augur: that's why I use directed quotes in Underload 19:10:37 directed quotes? 19:10:45 strings are delimited by () 19:10:47 separate quote for open and close 19:10:47 and () nest 19:11:05 incidentally, INTERCAL causes brilliant confusion by using undirected parens in expressions 19:11:08 ( for open, ) for close, instead of " for both 19:11:09 as the opposite of that 19:11:22 ais523: like doesn't matter which you use? 19:11:34 oklopol: no, you enclose groups in ' ' or " " 19:11:44 so in C you'd write, say, (1 + 1) * 3 19:11:56 with INTERCAL parenising that would be " ' 1 + 1 ' * 3 " 19:12:05 ais523: is it whitespace sensitive 19:12:06 like nopol 19:12:07 tusho: no 19:12:09 darn 19:12:11 I was just making it easier to read 19:12:12 ah, yeah, i should've known that 19:12:21 ais, how do you quote a (? 19:12:24 a huge run of ' and " all mashed together is a pain to read in a variable-width font 19:12:25 ais523: nopol has <> for lists, and >< for negative lists! 19:12:31 augur: you can't, ( and ) always come in pairs 19:12:40 you can use the a command to enclose something in ( ) 19:12:42 beat that confusingness 19:12:57 so then quines cant be produced with strings 19:12:57 and in Underload, there's no way to modify the contents of a string, just append things to it and prepend things to it 19:13:03 augur: yes they can 19:13:05 how? 19:13:09 you just use a to create a pair of parens 19:13:10 you'd need to quote ( 19:13:12 (:aSS):aSS 19:13:15 i'd like (1 + 1) * 3 to be 1 + )1 * 3( in a language 19:13:34 oklopol: wasn't there a BF version which swapped + with - and [ with ]? 19:13:39 oklopol, dont be silly 19:13:42 another silly BF derivative 19:13:46 ais523: how's that similar? 19:13:51 it'd have to be 1 + 1) * 3( 19:13:56 augur: because [ and ] go the wrong way round 19:14:01 s/augur/oklopol/ 19:14:07 ais523: that's not nearly the same 19:14:16 oklopol, dont be silly 19:14:21 oklopol: oh, yes, I misread it 19:14:22 * tusho points to the sign saying "#esoteric" 19:14:39 augur: 1 + )1 * 3( will work just fine 19:14:44 lies! 19:14:45 :p 19:14:48 :) 19:14:50 actually, you know 19:14:51 you'll see 19:14:58 its easy to transform that into sensible stuff 19:14:59 ah, the ) and ( reduce the precedence of everything inside them? 19:15:02 as opposed to increasing precedence? 19:15:06 just move each ) and ( to the right one 19:15:07 ais523: yes 19:15:17 augur: what? 19:15:17 oklopol: obviously that cant be true 19:15:31 there is no precedence for 1*3 in the statement (1+1) * 3 19:15:37 :| 19:15:42 augur: yes, but * has a precedence 19:15:50 true 19:15:52 imagine, say, that * and / have precedence 2, and + and - have precedence 1 19:16:09 say parens increase the precedence of everything inside them by 2, but otherwise have no meaning 19:16:13 )( will not be a context insensitive construct. 19:16:19 then you can parse strings of + - * / without trouble 19:16:19 sure, but decreasing precedence is somewhat nonsensical by grouping like that. 19:16:20 there will not be a trivial conversion 19:16:32 augur: no, it works too, in much the same way 19:16:46 augur: seems nonsensical because of the lack of context insensitivity 19:16:49 precedence only arises with composite op composite-or-atomic 19:17:04 but otherwise there's nothing nonsensical about it. 19:17:20 oklopol: oh, my version of how it worked was context-insensitive 19:17:26 to keep it simple, say there's only one op o 19:17:26 ais523: no 19:17:30 1 + )1 * 3( makes no sense because the operation 1*3 has no precedence in the semantics. 19:17:39 (1 o (2 o 3)) o 4 is how it would look normally 19:18:06 1 o 2) o ((3 o 4)) is how it would go in reverse-paren notation 19:18:08 19:18:09 19:18:09 ais523: context insensitive in syntax, but not in semantics 19:18:09 19:18:13 sorry, (1 o 2) o ((3 o 4)) 19:18:16 its the * that has precedence so you would need to do something like 19:18:21 and all those parens are backwards 19:18:25 1 + 1 )*( 3 19:18:28 )1 o 2( o ))3 o 4(( 19:18:38 oklopol: well, maybe I have a different idea from you 19:18:51 I think I have the same idea as augur, except I moved the parens to just outside the closest operands 19:18:53 because I could 19:18:56 anyway, stop all of you, it took me a second to come up with the perfect way, stop slowly spelling it out for me :P 19:19:16 well, i have no idea what augur is doing 19:19:23 ais523: i'm sure it's the same 19:19:42 oklopol: you're silly. 19:19:48 yep 19:19:52 i am fairly silly 19:19:53 im simply saying that 1 + )1 * 3( makes no sense 19:20:02 augur: two people disagree with you 19:20:05 augur: yeah, you say a lot of things that make no sense 19:20:06 augur: yes it does, the ) ( reduce the precedence of * 19:20:07 so uh, i guess maybe it does make sense 19:20:16 and they're moved outside the operands for aesthetics 19:20:17 /shrug 19:20:19 ais: but thats not how precedence works. 19:20:28 augur: yes it is, in this system 19:20:34 it may not be how you use precedence normally 19:20:40 augur: really, it's just that the semantics aren't context insensitive, which you automatically assume from a nesting construct. 19:20:48 i mean, sure if you say that )( work only on the operator they enclose, ignoring the operands, then thats fine 19:20:49 but precedence is equivalent to "parens increase the precedence of everything inside them by a lot" 19:20:54 but its not the reverse of () in any sense. 19:20:55 augur: yes, that is what I mean 19:21:06 and the ( ) are also put around the operands for no good reason 19:21:07 because the stuff inside )( has no precedence. 19:21:20 actually they're put around the operands for a very good reason 19:21:45 I mean, 1 (o 2 (o)) 3 o 4 is equivalent to (1 o (2 o 3)) o 4 19:21:46 () are part of ordered rules. 19:21:58 it's just that the second looks nicer 19:22:09 actually no its not the same ais :P 19:22:18 :| 19:22:23 yes it is, the way I'm doing it 19:22:36 in fact, if ( is "increase the precedence of the things to the right of here by a lot" 19:22:46 and ) is "increase the precedence of things to the left of here by a lot" 19:22:51 the way you're doing it is not the reverse of () and therefore not relevant to the original problem. :P 19:22:58 no, ) = decrease to the right, ais523, i think 19:23:02 then you get a nice balanced notation that works both for forward and for backward () 19:23:06 oh 19:23:07 actually 19:23:11 of course works your way too 19:23:15 oklopol: it's equivalent 19:23:18 yes 19:23:23 your way's nicer because it leads to smaller numbers, of course 19:23:35 -!- Corun has joined. 19:23:35 hmm... we could end up with paren golf! 19:23:42 :) 19:23:44 1 o (2 o 3)) o 4 19:23:47 ais: your way is a bitch to parse too. :P 19:23:52 that isn't even balanced 19:23:55 and my way is trivial to parse 19:23:59 lies. 19:24:04 using traditional operator-precedence algorithms 19:24:10 it's just the parens dynamically change precedences 19:24:16 lying lies. 19:24:18 this way, you don't even need left- and right-precedences 19:24:25 so it handles parens more naturally than the old method 19:24:39 yeah, it's just augur wants to parse the syntactically context insensitive construct straightforwardly into a context insensitive ast 19:24:59 oklopol: yes, the parens vanish altogether in the parsetree 19:25:02 actually i just want to use ordered rules. i like them better. ;) 19:25:03 but that's as it should be 19:25:20 ordered rules make precedence a breeze, since its inherent in the system. 19:26:17 ais523: for golfing your original, (1 o (2 o 3)) o 4 => 1 o 2( o ))3 o 4, ay? 19:26:31 oklopol: yes, that works 19:26:36 i like this 19:26:51 why haven't i ever teamed you @ language creation, you get me :) 19:26:57 anyway, pee time -> 19:27:18 me + ais523 + oklopol 19:27:21 = argument 19:27:21 wouldnt that really need to be 1 o 2) o ((3 o 4? 19:27:40 augur: no 19:27:47 you have the parens the wrong way round 19:28:12 but then () is behaving like normal and increasing precedence inside 19:28:31 :\ 19:28:32 augur: that's right, but it's decreasing precedence outside 19:28:38 right 19:28:46 so it's symmetrically-acting parens 19:28:53 which can be placed anywhere in the input string without trouble 19:28:58 but its exactly the same then as the normal kind 19:29:07 augur: no, its an extension to the normal kind 19:29:11 hmm 19:29:16 its a trivial conversion from that to the normal kind 19:29:25 yes, that's what I was trying to say all along 19:29:42 oklopol was trying to make it exceedingly non-trivial in appearance 19:29:49 make it seem reversed. 19:29:56 not really 19:30:12 your whole big thing is reversing, what are you talking about 19:30:12 :P 19:30:14 1 o )2 o 3( o 4 19:30:23 that's much nicer with reverse parens than normal parens 19:30:29 compare to 1 o (2 o 3) o 4 19:30:33 there's a nice duality there 19:30:45 so you can pick whatever parens suit the job 19:31:12 o (o) (o (o)) o -> 1 2 2 3 1 -> 3 2 2 1 2 -> ((o) o o) o (o) 19:31:20 heh 19:31:21 but with your version that should be 1 o 2( o )3 o 4 19:31:22 error 19:31:30 o (o) (o (o)) o -> 1 2 2 3 1 -> 3 2 2 1 3 -> ((o) o o) o ((o)) 19:31:54 o (o o (o)) o -> 1 2 2 3 1 -> 3 2 2 1 3 -> ((o) o o) o ((o)) 19:32:15 incidentally, the trick to reading INTERCAL expressions is to treat ' followed by an operand as an opening paren, and ' preceded by an operand as a closing paren 19:32:21 assuming constant parsing direction for all o 19:32:21 that works fine for everything but array indexing 19:33:25 furthermore, your version has implicit paren balancing 19:33:46 augur: that's just because oklopol's putting extra parens at the edges of the expression to make it looked balanced 19:33:48 not that this is bad but im just saying. 19:33:50 s/looked/look/ 19:34:03 it's possible to make any expression look balanced like that 19:34:09 well, its still implicit tho 19:34:27 since you have to define what happens at the edges 19:34:34 :\ 19:34:48 i don't really see the big thing here, it was just a trivial parsing semantics idea 19:34:50 augur: no you don't 19:34:53 see my explanation above 19:35:02 well, it does define what happens at the edges, but coincidentally 19:35:09 yeah. 19:35:21 so trivial i had a moment of doubt whether i shuold say it or just quickly implement it 19:35:26 *should 19:35:43 oklopol: implement it 19:35:44 i still dont like that its the same as normal parens tho. 19:35:47 i'll use it for everything 19:35:47 btw. the reason i'm sounding even more trivializing than usual is i'm quite high on caffeine. 19:35:47 :3 19:35:50 :D 19:35:57 1 o (2 o 3) o 4 => 1 o 2( o )3 o 4 19:36:03 i mean thats just too simpler :\ 19:36:08 simple* 19:36:26 1 o 2) o (3 o 4 is better. 19:36:41 augur: that's just (1 o 2) o (3 o 4) in our system 19:36:45 and the easiest way to say it 19:36:49 no its not 19:36:53 you said earlier that 19:36:55 what you're doing is our system with ) and ( reversed 19:36:59 1 o (2 o 3) o 4 in your system 19:37:09 is 1 o 2( o )3 o 4 19:37:12 yes, it is 19:37:18 they're both correct ways to write it 19:37:32 but that makes no sense 19:37:47 augur: yes it does, parens affect nothing but operators 19:37:57 ( decreases precedence of the left stuff, right? 19:38:06 augur: yes, the operators to the left 19:38:09 and ) to the right? 19:38:12 so it doesn't matter which side of the operand you put it 19:38:15 yes 19:38:16 then your version is incorrect. 19:38:21 in what way? 19:38:33 (1 o 2) o (3 o 4) has the middle o as a lower precedence than the other two 19:38:39 augur: correct 19:38:47 so it handles ordinary parens correctly 19:39:21 yes, which is why i said that its too simple! 19:39:27 because it basically IS normal parens 19:39:32 with implicit balancing. 19:39:35 augur: but your version is a trivially obfuscated version of ours 19:39:41 with ( and ) the other way round 19:39:47 yes, but its visually a hell of a lot more confusing. 19:39:55 oh, if that's all you wanted... 19:40:26 well, whats the point of making special magic )( if all they do is autobalance? :P 19:40:54 i mean, if o ( o )) o autobalances to (o ( o )) o then why bother making this at all? 19:41:05 augur: because they can be either side of the operands, too 19:41:23 still trivial to understand when looking at it. 19:41:44 hardly more complicated than if they were on the right side of the operands. 19:42:16 haskell has a low-precedence-izer you know. 19:42:19 $ 19:42:30 $ f a = f a 19:42:34 augur: actually, $ is a low-precedence version of whitespace 19:42:45 and that's ($) f a = f a because $ is infix 19:43:00 er.. i dont think it is... 19:43:02 incidentally, is it legal to do `($)` to prefixise it and then infixise it again? 19:43:09 augur: I know $ is infix, I've used it before 19:44:10 the )( thing is mostly visually interesting if it's requires to be explicitly balanced. 19:44:54 *required 19:44:58 oh, you're right it is infix, sorry. 19:45:29 anyway, its interesting none the less. 19:45:39 ais523: no 19:45:47 i (h (g (f x))) == i $ h $ g $ f x 19:45:53 oklopol: no to `($)`? 19:45:54 it's legal in oklotalk :) 19:45:59 ais523: yes, no. 19:46:03 ok 19:46:07 that should be legal, I reckon 19:46:09 which is effectively your version of ( i guess. 19:46:10 sort of. 19:46:11 is it a syntax error 19:46:14 yeah 19:46:26 augur: no 19:46:37 oklopol: yes. :P 19:46:43 because your versoin would be 19:46:48 i (h (g (f x 19:47:03 in that situation, it's the exact same 19:47:06 not in general 19:47:29 indeed, but its pretty close. 19:47:45 its also a shittonne more confusing 19:47:46 it's a higher-precedence parenthesis construct without a closing paren 19:48:04 tho $ is like "of" 19:48:19 i of h of g of f x 19:48:33 the confusing part is requiring balancing of )(, wasn't that clear from the start 19:48:49 i guess not 19:48:57 i still prefer the reversed )( to the normal () 19:49:02 anyway, i wanna get back to making my pointless game, stop being interesting -> 19:49:53 ais, if you replaced () with <**> you'd have something equivalent to the operator precedence parser's internals. 19:52:19 and <**> would be terribly unfamiliar 19:52:24 ais523, progress? 19:52:42 AnMaster: no more 19:52:48 ais523, why not :( 19:52:49 wow, you've got so pestery about this recently 19:52:57 sorry 19:53:05 anmaster: what are you hounding ais about? 19:53:06 ais523, I blame my bad mood on the cold I have 19:53:28 augur: it's OK, I don't mind AnMaster really, some people thing ffis between Funge and INTERCAL are really important 19:53:33 s/thing/think/ 19:53:38 heh 19:53:51 and it is more likely to be useful than many other #esoteric projects 19:53:51 well is there any part of it I can code? some more function you need? 19:53:58 at least both Funge and INTERCAL are reasonably well known 19:54:11 well I'd say INTERCAL is famous 19:54:15 and no, this is pretty much all my stuff, I just have to make up my mind to do it, I'm suffering from holidayitis 19:54:20 ffis? 19:54:25 augur, FFI yes 19:54:25 and Befunge is almost as famous as INTERCAL 19:54:30 FFI? 19:54:33 Final Fantasy 1? 19:54:39 AnMaster: do you think we should just define FFI in the topic? 19:54:39 FFI not FF1 19:54:43 never played the game, to be honest 19:54:45 augur must have been the fourth person or so to ask 19:54:46 augur, .... 19:54:50 augur, google? 19:54:55 tho i probably should 19:54:58 its a classic i hear 19:55:00 ais523, but yes you should 19:55:01 ... 19:55:11 Fuel Freedom International? 19:55:14 ais523, I would but I can't spel it ;P 19:55:15 Family Firm Institute? 19:55:18 foreign function interface 19:55:20 oh i know 19:55:23 -!- ais523 has set topic: The foremost international hub for enterprise esoteric programming language design, development and deployment | http://esolangs.org/ | Logs: http://tunes.org/~nef/logs/esoteric | an FFI is a Foreign Function Interface that allows programs in one language to use functions written in another, stop asking us to define it. 19:55:26 Fatal Familial Insomia! 19:55:29 Insomnia* 19:55:33 augur, what oklopol said 19:55:39 what ais523 said 19:55:44 im not listening to oklopol 19:55:49 he ruins my fun. 19:55:54 :) 19:56:08 backronyms are a fun way to pass time 19:56:12 oklopol, use your hands for more interesting things. like masturbating on a webcam. 19:56:31 perhaps, perhaps. 19:57:12 live.yahoo.com 19:57:37 oklopol, two issues regarding reactance: 19:57:45 x -> z, y -> z means what? 19:57:46 and 19:58:15 how do we detect change without propogating changed values 19:58:32 augur: depends, in my implementation it doesn't have any special meaning 19:58:38 but you said it should remove x->z 19:58:43 e.g. how to we get abs vals of derivatives of variables 19:58:48 probably the latter then? 19:58:54 i prefer removing x->z 19:59:06 because what if i dont want both to be active? 19:59:11 how then would i delete x->z? 19:59:28 i shouldnt need to know whats leading to z to begin with 19:59:45 i appreciate your opinion 19:59:55 so it'd need to be something like :deletefrom z 20:00:45 then again, if we wanted both x and y to feed z somehow, we'd need something like :both x y -> z 20:00:51 and no, this is pretty much all my stuff, I just have to make up my mind to do it, I'm suffering from holidayitis 20:00:52 same 20:00:55 if we have a change function, :change x 20:01:01 I code much better when I don't really have time to 20:01:11 then the both function would be trivial 20:15:04 oh my god 20:15:07 the html5 examples have 20:15:09 'Wake up sheeple!' 20:15:38 hahaha 20:17:59 what? 20:18:11 who listened to the music i sent? :| 20:18:44 -!- ais523 has quit (Read error: 60 (Operation timed out)). 20:19:11 -!- ais523 has joined. 20:30:30 -!- olsner has joined. 20:55:13 -!- ais523 has quit (Remote closed the connection). 20:55:27 -!- ais523 has joined. 21:00:34 [21:00] [CTCP] Received CTCP-PING reply from ais523: 14 seconds. 21:01:06 back 21:01:12 ais523, impressive 21:01:17 3.3 seconds for me 21:01:22 normally it is like 0.1 21:01:27 AnMaster: I have network trouble 21:01:34 I've managed quite a bit more than that before 21:01:46 but normally it doesn't reconnect if the ping takes too long and I have to restart the client 21:01:48 * Received a CTCP PING 1214546901505614 from AnMaster 21:01:48 * Ping reply from AnMaster: 0.92 second(s) 21:02:33 ais523, mine reconnects when ping goes over 2 or 3 minutes iirc 21:02:40 ihope: there are spambots attacking your userpage on Esolang 21:02:53 ais523, restore it then! 21:02:55 do you want me to protect it, or are you fine with me just deleting it every time a spambot creates it? 21:02:57 AnMaster: I have done 21:03:08 ihope hasn't had a non-spambot-created user page, I think 21:03:15 oh you are an esolang admin I see 21:11:04 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 21:11:14 -!- ais523 has joined. 21:19:24 -!- augur has changed nick to pygnisfive. 21:19:46 -!- pygnisfive has changed nick to psygnisfive. 21:24:58 -!- Sgeo has joined. 21:29:42 lalala 21:41:15 dont be so quiet. 21:41:31 Join ##nomic 21:42:37 ##nomic? 21:46:40 psygnisfive: it's about nomic 21:46:58 whats nomic? 21:46:58 :) 21:47:22 psygnisfive: a game where legal moves consist of changing the rules 21:48:05 i redefine the ruleset to be: Only I can change the rules. 21:48:09 i win. 21:48:11 end of game. 21:48:17 psygnisfive: there are limits on it, of course 21:48:30 trying to find a way to loophole to do that is one recognised technique for winning 21:48:32 i've redefined them out of existence. 21:48:51 psygnisfive: that sort of retroactivity shouldn't work, B Nomic are having a crisis because someone claimed it did 21:49:06 its not retroactivity at all. 21:49:34 ais523: this is how most people play nomic when they first hear about it 21:49:43 'I add a rule I win.' 21:49:57 tusho: it would probably be outvoted, though 21:50:08 most nomics require at least a majority vote to begin with 21:50:23 -!- pikhq has joined. 21:50:24 well if thats the case then youve misinformed me sir! 21:50:39 sorry 21:51:03 * pikhq is back. . . 21:51:08 FROM USENIX. 21:51:42 ::uses pikhq's nix:: 22:48:58 -!- Judofyr has quit. 22:49:51 * pikhq wonders: where's Gregor? 22:52:23 prague 22:52:27 i think 22:52:30 Bastard. 22:52:43 I met his former boss at Intel, oddly enough. 22:52:51 o.O 22:53:11 I mentioned my fondness for esolangs at USENIX. . . 22:53:39 and they killed you for being a freak? 22:53:40 :-P 22:54:12 And this guy was like "Oh, yeah. . . There was this student a while back who did Brainfuck. . . Named Gregor. He wore a different hat every week; insanely good coder, but a tiny bit odd." 22:54:19 "Gregor? ... Gregor Richards?" 22:54:26 "... Yes..." 22:54:40 Hahahahahahahaha! 22:54:48 Brilliant. 22:54:53 During the Russian revolution, the mathematical physicist Igor Tamm was seized by anti-communist vigilantes at a village near Odessa where he had gone to barter for food. They suspected he was an anti-Ukranian communist agitator and dragged him off to their leader. 22:54:54 Asked what he did for a living he said that he was a mathematician. The sceptical gang-leader began to finger the bullets and grenades slung around his neck. "All right", he said, "calculate the error when the Taylor series approximation of a function is truncated after n terms. Do this and you will go free; fail and you will be shot". Tamm slowly calculated the answer in the dust with his quivering finger. When he h 22:54:58 as I was saying, it's a small world 22:54:59 ad finished the bandit cast his eye over the answer and waved him on his way." 22:55:39 psygnisfive: Which function? 22:55:42 ais523: indeed, I think I have never created a userpage for myself on the Esolang wiki. 22:55:56 ihope: no, you haven't, the spambots seem quite anxious to though 22:56:02 * psygnisfive shoots pikhq 22:56:02 the confusing thing is that they don't even add spam 22:56:03 And there can be more than one Taylor series for a function. ;) 22:56:04 just random text 22:56:05 YOU ARE A SPY 22:56:11 if I make ihope a userpage will I get banned? 22:56:13 Cooool! 22:56:19 No, I just paid attention in calculus. 22:56:22 tusho: it rather depends on what you do 22:56:31 and my assessment of how likely you are to be human 22:56:42 Hmm. What esolangs has ihope made? 22:56:46 Redivider ... and ... 22:56:52 -!- sekhmet has left (?). 22:58:18 what's you guys favourite esowiki article 22:58:19 mine is http://esolangs.org/wiki/FURscript 22:58:21 because it's not a joke 22:58:48 http://esolangs.org/wiki/Dimensifuck 22:58:50 -!- Sgeo has quit (Connection timed out). 22:58:51 Because it's mine. 22:58:54 the BF constants one, just because people keep putting work into it every now and then 22:59:03 it's heartening to see so many people work together 22:59:51 pikhq: Slereah_ i think linked to a 4chan thread a while back where someone had linked to that page calling it the best language ever 23:00:07 the rest of the thread was rather predictably people calling the language stupid 23:00:30 furscripe? 23:00:30 dunno why I recalled that just now 23:00:31 but hey 23:00:41 script* 23:00:49 why is it called furscript 23:01:00 FURscript doesn't even make much sense 23:01:08 also it's hard to read 23:01:26 strangely, I don't find things like Unlambda and the various line-noise languages "hard to read" in that sense, just hard to fathom 23:01:35 it looks like queer html. 23:01:39 as in, looking at the code's fine, working out what it does is a lot harder 23:01:51 mixed with turbo pascal and basic 23:02:11 psygnisfive: it was apparently totally serious 23:02:19 the guy who created the article said the creator had put it on their wiki 23:02:27 (presumably of a programmign community) 23:02:27 it doesn't have any loop construct 23:02:31 and he moved it over there because it's so bad 23:02:45 nor any data storage AFAICT 23:02:45 { * The person who designed this language was 100% serious about it and the vb6 compiler, but I think he got as far as a text box and a copyright notice before going back to programming his graphics calculator. --Einsidler 10:44, 24 Nov 2006 (UTC) } 23:03:01 {# [DIRFORMAT="DIRECTORY","BYPASSSECURITY?"] FORMATS A DRIVE AND ASKS WHETHER TO BYPASS ALL RESTRICTIONS } is just so brilliant 23:03:17 so why is the command called DIRFORMAT 23:03:27 the command looks like it's trying to format a dir, not a drive 23:03:39 also, why are the descriptions in allcaps? 23:03:40 ais523: why are you using logic on this terrible abomination 23:04:04 LMAO 23:04:05 also, why does it have procedures when there's no way to call them? 23:04:07 I just made ihope's user page 23:04:09 but a spambot got it 23:04:12 while I was editing 23:04:17 go delete that :P 23:04:47 done 23:05:04 it seems to be from single-use spambot IPs 23:05:07 which only ever hit once 23:05:10 probably zombies 23:05:10 AWSUM 23:05:12 a real page 23:05:13 :D 23:05:32 now, only time will tell if I have to semi that or not 23:05:37 I hope not 23:06:41 tusho: as for FURscript, what would you say to its deletion? 23:06:42 omg i love meat stews :( 23:06:47 ais523: no, leave it there 23:06:49 quite a few people on its talk page wanted it deleted, including me 23:06:53 it's godly 23:06:56 so probably you should comment onwiki about that 23:07:00 for the record 23:07:04 if you tried to make a more shitty language, you couldn't manage 23:07:13 tusho: are you sure? 23:07:13 heh 23:07:17 actually, probably I couldn't 23:07:17 ais523: pretty sure 23:07:20 but lots of people could 23:07:26 i doubt it 23:07:33 especially if they were sincere about it 23:07:56 * tusho is poking around zzo38's site, he's pretty crazy but it's a fun mishmash of stuff 23:08:11 i'm rather surprised at the list of features on http://zzo38computer.cjb.net/chrono/about.htm vs the shortness of http://zzo38computer.cjb.net/chrono/_show_source 23:08:50 is that multiple passwords thing a reference to your website where you could have two users with the same username but different passwords? 23:09:25 somehow I doubt it 23:09:33 i'm not exactly sure what it means 23:09:38 the code doesn't look that short to me 23:10:05 ais523: i was saying in comparison to the length of the features 23:10:18 and i didn't really mean in lines 23:10:24 I kinda meant in the 'the code is pretty trivial' 23:10:33 though - http://zzo38computer.cjb.net/chrono/zzo38/mainpage the actual UI has something to be desired.. 23:11:05 it looks about the right length for that feature set for well-written code 23:11:05 it's just that well-written code is comparatively rare nowadays 23:11:05 especially in PHP 23:11:05 oh, and just try to work out the computational order of onoz 23:11:05 -!- ais523 has quit (Remote closed the connection). 23:11:21 -!- ais523 has joined. 23:11:49 sorry... 23:11:51 oh, and back 23:11:57 grr... my client still isn't responding to self-pings 23:12:01 I wonder if anyone else in #esoteric can see this 23:12:03 ah, it responded 23:12:07 [23:11] [CTCP] Received CTCP-PING reply from ais523: 22 seconds. 23:12:10 really... 23:12:22 presumably you lot will see this eventually, then 23:12:28 afk 23:12:29 but I probably won't get your replies for a while 23:12:31 tasty soup 23:12:39 ah, better now 23:12:46 ais523: i saw that immediately 23:13:02 tusho: how do you know? 23:13:09 'cause that's how fast you type 23:13:14 hrh 23:13:16 s/r/e/ 23:13:42 SMATINY is ihope's 23:13:47 ais523: aah, that multiple password thing - 23:13:53 you can have passwords for different privileges 23:13:59 e.g. a password for just posting and editing 23:14:04 and another for system administration 23:14:05 etc 23:14:11 also Foobar and Foobaz and Barbaz, oh my! 23:14:53 * ais523 likes what-links-here 23:15:19 http://zzo38computer.cjb.net/chrono/zzo38/1203755544 i like some of the entries on here 23:15:23 'Power to commit suicide' 23:15:28 you need special powers to do that 23:16:13 I like the "of course you also need powers to change back as well" 23:16:26 thinking like a programmer who's met one too many evil genies 23:16:28 couldn't you just transform into whatever you were before 23:16:49 tusho: maybe not, if you transformed into something that didn't have the same powers as you 23:17:09 transform into the thing you were before with the same powers 23:17:28 I mean, if you transformed into something that couldn't transform 23:17:37 yes 23:17:42 just specify the transforming powers when you transform 23:18:26 would you remember that every single time? 23:18:41 or would you assume it was obvious after a bit and forget to specify it? 23:18:53 you would specify the power to include not having to mention it. 23:19:00 (when you transform the first time) 23:19:00 yes, that would be useful 23:19:10 http://zzo38computer.cjb.net/chrono/zzo38/1199580665 'Our Father who has warts in heaven' how on earth do you hear that 23:20:15 "These are some comments about a book about philosophy I have. It is ISBN 1-55111-493-3" <-- why can't he just tell us the title? 23:22:41 I think VALGOL's my favourite out of the lesser known languages 23:22:57 it could easily be made a real lang, although it would probably suffer from LOLCODEitis 23:23:51 LOLCODEitis is easy to avoi 23:23:52 d 23:24:00 don't actively promote your language; because that's stupid, it 23:24:02 's a freaking esolang 23:24:13 don't build a huge fancy site and expect a 'community', who do you think you are? This is an ESOLANG 23:24:15 hey everyone, convert to Thutu now for all your programming needs! 23:24:29 don't act like you're the first person to ever think of making a programming language look funny (WTFWTFWTF) 23:24:30 besides, I think LOLCODE actually has a community] 23:24:31 and finally 23:24:35 actually know how to design a language 23:24:41 ais523: unfortunately, yes. it's one of idiots 23:24:51 well, LOLCODE just seems to be a clone of generic imperativeness 23:25:00 http://catseye.tc/projects/valgol/doc/valgol.html parser! 23:25:00 With more crap. 23:25:12 yeah the lolcode people keep tripping over basic things 23:25:18 or coming up with fucked solutions to easy problems 23:25:26 they have Commities and Meetings 23:25:31 and try to make it easy to use and practical and whatnot 23:25:33 and I'm like... 23:25:37 VALGOL? /Catseye/? I don't believe it 23:25:40 you're making a language about kitty pidgin. 23:25:43 ais523: why? 23:25:50 catseye has everything 23:25:59 tusho: I knew it had SARTRE 23:26:09 but really, this just doesn't fit with my worldview at all 23:26:13 why not 23:26:17 I don't know 23:26:21 -!- Corun has quit ("This computer has gone to sleep"). 23:26:24 is this some kind of pun ais523 23:26:30 if I did then my worldview would be able to fit it 23:26:32 and no, it isn't a pun 23:26:38 mmmback 23:26:43 just me being unusual for no reason that's satisfactory to anyone, not even me 23:26:47 http://catseye.tc/projects/eso.html 23:27:18 ok so cmon guys 23:27:29 i wanna make a really queer new kind of esolang 23:28:22 psygnisfive: try implementing Feather, I'm struggling 23:28:46 whats feather. 23:28:55 it's an esolang I've designed 23:29:07 it's object-oriented 23:29:08 specs? 23:29:14 and based on inheritance by retroactive effects 23:29:20 and I don't really have specs yet 23:29:26 well then i cant help you ;) 23:29:30 it's the sort of thing that needs to be defined by a reference interp 23:29:36 just to prove it's possible 23:29:47 I have partial notes on a few feather-like objects 23:29:50 but that's about it 23:29:59 oh, also they're wrong 23:30:05 so it's not a very good thing to implement based on 23:30:46 ais523, how goes coding? 23:30:54 AnMaster: it's half-past-11 23:30:59 ais523, nothing done yet? 23:31:02 really, would you expect me to be coding now? 23:31:03 k 23:31:10 ais523, well I coded just now 23:31:18 presumably you aren't tired 23:31:41 I am 23:31:46 but I need to get this done 23:31:51 ais, surely you can provide some sort of spec 23:31:53 I got a deadline here 23:31:57 AnMaster: ok 23:31:58 syntax + semantics 23:32:02 psygnisfive: I'll try 23:32:02 and a very urgent one 23:32:05 DO IT 23:32:07 but it's easier to explain over IRC, I think 23:32:15 then show you what I have which is misleading 23:32:16 -!- oerjan has joined. 23:32:18 but I'll paste anyway 23:32:28 ais523, specs on what? 23:32:30 no dont show me what you have 23:32:33 gimme specs 23:32:34 AnMaster: Feather 23:32:37 which is? 23:32:41 psygnisfive: I mean paste the specs 23:32:42 R0RF 23:32:59 ais523, could you explain it here over irc please! 23:33:06 psygnisfive just told me not to 23:33:13 well I tell you to! 23:33:15 error! 23:33:17 do both! 23:33:20 no error! 23:33:27 IS NOT MUDDS WORLD 23:33:30 let me finish pasting my incorrect and incomplete specs for a different lang first 23:33:38 psygnisfive, what world? 23:33:46 was it mudds planet? 23:33:53 psygnisfive, yes 23:34:00 what is that? 23:34:01 DAMN YOU SHATNER!!! 23:34:05 http://rafb.net/p/TG83VV29.html 23:34:11 ok, first, ignore that because it's wrong 23:34:14 psygnisfive, what are you talking about? 23:34:14 but it'll give you an idea 23:34:30 basically, the idea is that you have an object-oriented language 23:34:39 there are no classes, all objects are created from other objects by cloning 23:34:44 oh, its neither 23:34:46 its mudd's women 23:34:49 also, nothing is modifiable, it uses single assignment 23:34:51 DAMN YOU SHATNER! DAMN YOU! 23:35:00 so you create a changed copy rather than modifying the original 23:35:01 psygnisfive, wtf are you talking about? 23:35:08 its a reference to a star trek episode 23:35:16 now, in order to do interesting things like inheritance 23:35:24 ais: so you've created stateless Self? 23:35:25 you can retroactively change what an object was at the time it was created 23:35:27 psygnisfive, well what one? I mainly watched TNG 23:35:31 and Voyager 23:35:38 Mudd's Women, form TOS 23:35:42 psygnisfive: well, Self doesn't have retroactivity, but it's similar 23:35:46 psygnisfive, plot summary? 23:35:55 it's also vaguely message-passing 23:35:58 and you can modify anything 23:35:59 where chekhov makes some robut women explode by telling them he loves on but not the other 23:35:59 * tusho writes something like chronojournal because e feels like it 23:36:07 they're all identical so this causes a logic error, naturally 23:36:12 you can even change the syntax of the language by modifying eval 23:36:19 psygnisfive, odd 23:36:23 well, retroactively modifying it 23:36:39 ais: i dont see what retroactive modification means. 23:36:55 tusho has become asexual, hence his use of the gender-neutral pronoun "e" 23:37:04 psygnisfive: it's all this agora playing 23:37:06 psygnisfive: ok, say you make an object b that's a clone of an object a, and an object c that's a modified clone of a, and an object d that's a modified clone of c 23:37:15 tusho: it makes your cock vanish? 23:37:18 yes 23:37:20 now, suppose you retroactively modify a so it was really d all along 23:37:35 ok 23:37:39 what does that MEAN tho 23:37:40 then you find out that b was d all along, and c was modified from d, and d depends on the old version of d 23:37:46 and the program is recalcualted to allow for that 23:37:52 i.e. rerun from that point with the changes 23:37:54 and the same inputs 23:37:58 the whole program? 23:38:01 yep 23:38:08 except that that should be optimisable in many cases 23:38:09 err, this is backtracking isn't it? 23:38:10 ais523, ? 23:38:13 AnMaster: sort-of 23:38:15 i foresee some potential problems 23:38:27 but in backtracking you specify the possible choices at the choicepoint 23:38:32 mainly that it has no single answer. 23:38:46 whereas in Feather you can take information from one possible path and use it to modify the next path that's tried 23:38:58 ais523, do you mean recursive inheritance? 23:39:08 AnMaster: not exactly, that doesn't involve rerunning the program 23:39:09 its an interesting idea, but not interesting enough. 23:39:15 your language is boring. :P 23:39:16 recursive inheritance is entirely possible, though 23:39:31 i want interesting! 23:39:34 psygnisfive: well, you write a language where you can change the syntax at runtime and have it effect everything the program's ever done 23:39:34 give me interesting!!! 23:39:48 i dont know why i'd even want to do that, ais. 23:39:56 for instance, you can modify objects representing functions to keep track of their source code and how many times they've been run 23:40:06 psygnisfive: this is as interesting as reactance if not more so 23:40:08 so basically you can make the language as reflective as you like 23:40:11 a load of people in here are interested by it too 23:40:15 psygnisfive, intercal? 23:40:20 that's pretty interesting 23:40:23 and ais523 can give that 23:40:24 a LOT of it 23:40:32 reactance isnt supposed to be interesting 23:40:34 yep, I'm probably in the world's top 10 intercallers by now 23:40:56 probably the top when it comes to C-INTERCAL's newer features, but I could probably still be beaten on some of the more established ones 23:41:26 also, feather's interesting due to consistent time travel rules 23:41:39 there are a lot of possible consistent time travel rules, but strangely fiction normally doesn't use them 23:42:37 oh? 23:42:42 which time travel rules? 23:43:02 -!- Corun has joined. 23:43:22 psygnisfive: just the retroactivity, basically all the possible timelines are ordered, an earlier timeline can affect a later timeline but not vice versa, and all retroactive changes have to be legal in the timeline they were made but not necessarily in the resulting timeline 23:43:36 there, that description should be in every nomic in existence, I reckon, to avoid stupid retroactivity things 23:44:13 im not entirely sure i follow. 23:44:27 well no, it took me a week or so to understand and I invented it 23:44:31 this is why it needs a reference interp 23:44:35 http://qntm.org/?models 23:44:35 to prove that it's possible and works 23:44:37 time travel models 23:44:49 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 23:45:07 ooh, intercal with actual time travel? 23:45:21 no i mean in a general time travel sense 23:45:21 I haven't tried to attach time travel to INTERCAL yer 23:45:27 i dont follow 23:45:29 now you've mentioned it I'll have to think about it, though 23:45:35 yeah, it'd be awesome 23:46:01 anyone seen Earth: Final Conflict? 23:46:02 psygnisfive: you can go back in time and prevent yourself ever having got a time travel machine, this does not lead to a contradiction 23:46:27 ais: alternate universe interpretation? 23:46:40 psygnisfive: yep 23:46:49 lots of shows use this model of time travel. 23:46:51 except that you can send objects from one universe into another 23:47:05 again, lots of shows. 23:47:13 how does that work in your version tho? 23:47:17 the sentence between universes 23:47:27 but only one object, only in one direction, it always replaces an object in the next universe, and it's the only way to do time travel 23:47:46 "Star Trek has run long enough to include examples of all kinds of other models of time travel, as well as plenty of crazy rubbish which makes no sense. The model given here is approximately correct, but there are technicalities." 23:48:08 Sliders, Star Gate, Back to the Future 23:48:15 psygnisfive: http://qntm.org/?models 23:48:17 probably others 23:48:22 most of them don't actually. 23:48:35 i love the fixed history model 23:48:45 yes, so do I 23:48:47 even though it makes no sense 23:48:48 its brilliant for writing greek tragedy stuff 23:48:55 i think it makes complete sense :) 23:49:09 oh, and the major problem with Feather programming is avoiding timeloops 23:49:36 anyway, I'd better go home now 23:49:40 bye everyone 23:49:42 bye ais523 :) 23:49:52 -!- ais523 has quit ("PLEASE DO NOTHING"). 23:50:56 hmm, so that's a description of *dramatic* models of time travel with no consideration on how to integrate a model of time travel into a model of the universe 23:51:08 olsner: no 23:51:10 the title of the page is 23:51:12 Modelling time travel in fiction 23:51:26 (Favourite quote: {This violates the law of conservation of mass-energy, but that's a small price to pay for working time travel.}) 23:52:06 quantum mechanics violates mass-energy conservation for very small values of mass-energy and time. 23:52:08 maybe. 23:53:24 very small products of mass-energy and time, iirc 23:56:34 The larger the violation, the less time it may last. There is similar noncommutative relationship between time and energy as there is between position and momentum... 23:57:18 * pikhq waves at Oerjan 23:57:29 * oerjan waves back 23:57:31 " it seems that time travel involves the sending back and forth through time of quantum packets of information, which alter history multiple times in a kind of feedback loop until the universe settles into a stable structure in which the instance of time travel is completely internally consistent." 23:59:58 I like that model ... it reminds me of fixpoints and the path-integrals they speak of in quantum mechanics