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