←2017-08-18 2017-08-19 2017-08-20→ ↑2017 ↑all
00:08:35 -!- moonythedwarf has joined.
00:09:05 -!- moony has quit (Ping timeout: 246 seconds).
00:32:15 <boily> `` ls wisdom/*moon*
00:32:17 <HackEgo> wisdom/moon
00:32:40 <boily> `` find wisdom/ -type f -iname '*moon*'
00:32:41 <HackEgo> wisdom/moon
00:51:33 -!- hppavilion[1] has joined.
00:52:49 <zemhill> Lymia.nyuroki2: points 21.24, score 54.96, rank 1/47 (+3)
01:04:15 <zemhill> Lymia.nyuroki2: points 20.57, score 53.03, rank 1/47 (--)
01:06:39 <zemhill> Lymia.nyuroki2: points 19.17, score 48.96, rank 1/47 (--)
01:06:54 <zemhill> Lymia.nyuroki2: points 20.57, score 53.03, rank 1/47 (--)
01:10:35 <zemhill> Lymia.nyuroki2: points 21.24, score 54.96, rank 1/47 (--)
01:14:13 <zemhill> Lymia.nyuroki2: points 7.48, score 26.53, rank 13/47 (-12)
01:14:41 <zemhill> Lymia.nyuroki2: points 21.24, score 54.96, rank 1/47 (+12)
01:21:10 <HackEgo> [wiki] [[Special:Log/delete]] delete * Oerjan * deleted "[[Bulan]]": Author request
01:25:27 -!- moonythedwarf has quit (Ping timeout: 240 seconds).
01:27:19 -!- moony has joined.
01:33:23 -!- doesthiswork has joined.
01:37:55 -!- moony has quit (Remote host closed the connection).
01:38:21 -!- moony has joined.
01:41:46 <boily> `ysaclist (64)
01:41:47 <HackEgo> ysaclist (64): boily shachaf
01:42:18 <shachaf> I think parentheses are deprecated.
01:46:41 <zzo38> Why?
01:47:35 <alercah> why not?
01:47:45 <alercah> spoken language doesn't need em
01:48:14 <boily> 「【『[(parentheses are great)]』】」
01:48:19 <zzo38> Perhaps, but writing will make it clearer though
01:48:32 <boily> helloochaf, hezzo38, hellorcah.
01:51:00 <shachaf> I meant, for ysaclist
01:51:08 <shachaf> "`ysaclist 64" is just fine
01:52:13 <zzo38> Not knowing what it is mean, I would not know, if you should need the parentheses or not
01:52:38 <zemhill> Lymia.nyuroki2: points 21.26, score 55.04, rank 1/47 (--)
01:54:08 <zemhill> Lymia.nyuroki2: points 21.24, score 54.96, rank 1/47 (--)
01:55:31 <zemhill> Lymia.nyuroki2: points 21.26, score 55.04, rank 1/47 (--)
01:58:13 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:00:58 <zemhill> Lymia.nyuroki2: points 21.90, score 56.88, rank 1/47 (--)
02:02:21 -!- sleffy has quit (Ping timeout: 240 seconds).
02:16:01 <boily> `5 w
02:16:06 <HackEgo> 1/2:adjective//Adjectives are words frequently found attached to chickens. \ quintopia//quintopia is our resident tl;dr generator. He is flooded by thundercats and thunderdogs. He is the temporal antipode of boily despite living on the same continent. \ the walrus//In order to obtain the unredacted documents specifying the true identity of the walr
02:16:14 <boily> `n
02:16:15 <HackEgo> 2/2:us, contact the Glass Onion (mailing address: UH2BEStWmPI). \ transformer//A transformer is one who used to trans, but no longer does. \ lambek's lemma//Lambek's Lemma, invented by Joachim "Taneb" Lambek, states that initial algebras have inverses. It can be proved with as few as five arrows.
02:22:18 -!- moony has quit (Quit: Leaving).
02:22:43 -!- moony has joined.
02:25:00 -!- moony has quit (Client Quit).
02:25:01 -!- impomatic has quit (Quit: impomatic).
02:25:23 -!- moony has joined.
02:25:44 <zemhill> Lymia.nyuroki2: points 21.95, score 57.08, rank 1/47 (--)
02:33:46 <zemhill> Lymia.nyuroki2: points 21.95, score 57.04, rank 1/47 (--)
02:34:40 -!- hppavilion[0] has joined.
02:35:35 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
02:37:28 <zemhill> Lymia.nyuroki2: points 21.95, score 57.15, rank 1/47 (--)
02:37:50 <zemhill> Lymia.nyuroki2: points 21.95, score 57.08, rank 1/47 (--)
02:42:27 <zemhill> Lymia.nyuroki2: points 22.05, score 57.39, rank 1/47 (--)
02:44:32 -!- PinealGlandOptic has joined.
02:51:39 <zemhill> Lymia.nyuroki2: points 22.83, score 59.84, rank 1/47 (--)
02:55:34 -!- xkapastel has joined.
03:02:14 -!- ATMunn has quit (Quit: See ya! o/).
03:14:33 <zemhill> Lymia.nyuroki2: points 19.10, score 49.18, rank 1/47 (--)
03:17:02 -!- moony has quit (Remote host closed the connection).
03:19:34 -!- boily has quit (Quit: LUNATIC CHICKEN).
03:21:38 <zemhill> Lymia.nyuroki2: points 22.83, score 59.84, rank 1/47 (--)
03:28:38 -!- Antoxyde has quit (Quit: Leaving).
03:30:51 <zemhill> Lymia.nyuroki2: points 22.95, score 60.17, rank 1/47 (--)
03:35:25 <Lymia> !ztest fetch https://paste.lymia.moe/lymia/c608f1bba429b91cdc60d221ade02a2da70932de.bf
03:35:26 <zemhill> Lymia.fetch: points 1.26, score 21.06, rank 16/47
03:37:49 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/bf712c780e0595518fd4b17b09152acf31c62af4.bf
03:37:50 <zemhill> Lymia.nyuroki: points -8.36, score 12.46, rank 42/47 (+5)
03:38:05 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/67c57bb9732ff6493347dd022bae6c5ad1912209.bf
03:38:06 <zemhill> Lymia.nyuroki: points 15.81, score 40.40, rank 3/47 (+44)
03:38:59 -!- hppavilion[0] has quit (Remote host closed the connection).
03:39:24 -!- hppavilion[0] has joined.
03:45:37 <zzo38> Does vim have a insertion mode so that if return key is push it moves the cursor to the same column as it was in before on the next line instead of inserting a line break?
03:47:44 <Lymia> !zjoust nyuroki2 https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki2.bf
03:47:45 <zemhill> Lymia.nyuroki2: points 22.83, score 59.84, rank 1/47 (--)
03:56:15 -!- prooftechnique has quit (Quit: ZNC http://znc.in).
04:12:32 -!- prooftechnique has joined.
04:59:24 <zzo38> "I've had a couple of other Astrolog dreams; I had one neat one while working on the -h feature (described later) about a far distant future version of Astrolog that could actually teleport one to the places which they cast charts for." But can it also teleport you to the time that the chart is cast for (in the past or future)?
05:03:10 <imode> wtf is astrolog.
05:03:23 <imode> oh, astrology. bullshit then.
05:07:53 <zzo38> It is actually not bad software, although some of the features are rather worthless (such as the interpretation feature).
05:08:29 <imode> buddy if it can convince me that the transit of venus influences my bowel movements, it'll win a nobel.
05:08:56 <zzo38> I doubt the transit of Venus can influence your bowel movements.
05:09:31 <zzo38> But it can calculate the transit of Venus anyways if you want it.
05:10:30 -!- oerjan has quit (Quit: Nite).
05:22:03 -!- wob_jonas has joined.
05:25:36 <zzo38> Do you know that my MIX assembler now has EJMP and EJSJ commands which is somewhat like COME FROM (although computed at compile time, rather than run time)?
05:27:18 <wob_jonas> zzo38: is that like the afterthought source patching functions that cobol or cweb have?
05:28:08 <zzo38> Actually, no; what I used it for was to build jump tables, although it doesn't have to be used for jump tables.
05:29:26 <wob_jonas> zzo38: does it insert an instruction to where it comes from by shifting the following instructions one word down, or by replacing one instruction like a debugger would do to set a breakpoint?
05:30:22 <zzo38> By replacing the instruction, so it won't work so well unless it is already a jump or NOP.
05:30:56 <wob_jonas> does it make the previous instruction it replaced available somehow?
05:31:33 <zzo38> Currently no, although I could perhaps add that feature later.
05:31:34 <wob_jonas> and for building jump tables, can you just use labels and JMP instead?
05:32:49 <zzo38> You could, although I find this way more convenient (I have used something similar in 6502 assembly language programs too, although in that case I used a macro and the jump table did not itself contain jump instructions).
05:34:05 <wob_jonas> ok
05:36:38 <zzo38> Although I will consider your idea making the previous instruction it replaced available somehow, perhaps a new pseudo-instruction can be used to insert it (although I am not sure what to call it; do you have the idea?)
05:45:10 <wob_jonas> zzo38: well, if the EJMP is a COMESUB pseudo-instruction, then you need a corresponding RETURN pseudo-instruction. normally this would be just a jump, but MIX's rJ feature makes it tricky, so you'll need to use those tricks to set rJ, which are described in Knuth vol 1 at debuggers and involve some self-modifying code.
05:47:07 <zzo38> wob_jonas: You can just return in the normal way. However, replacing the instruction is different, since you may want to execute that instruction (the programmer has to deal with the consequences of doing so by himself).
05:47:33 <wob_jonas> zzo38: yes, so the replacement routine has to execute that replaced instruction before returning
05:48:11 <zzo38> Yes, and I wanted to know what to call it.
05:51:26 <wob_jonas> maybe ERET?
05:51:44 <wob_jonas> um, why is EJMP called EJMP in first place?
05:52:20 -!- ais523 has joined.
05:52:24 <zzo38> It is short for "enter JMP into the specified location"
05:52:40 <wob_jonas> ah
05:53:18 <wob_jonas> well, maybe ERET then. and its parameter is the label of the EJMP.
05:54:08 <wob_jonas> hi ais523. zzo38 is just talking about how he added a COME FROM or NEXT FROM to an assembler. or something.
05:54:33 <ais523> FORTRAN has an effective COME FROM and it's basically an asm (especially in fixed form)
05:54:43 <ais523> the only real difference is that it has arithmetic expressions
05:54:54 <zzo38> wob_jonas: OK I could do
05:55:16 <shachaf> What's a good subset of the real numbers that's sufficient for most uses but also has e.g. computable equality?
05:55:25 <wob_jonas> ais523: ok
05:55:57 <ais523> shachaf: the rationals, most likely
05:56:01 <wob_jonas> shachaf: uh... I think algebraic reals has a computable representation with computable comparison, but the algorithms are really complicated,
05:56:12 <zzo38> The EJMP and EJSJ in my assembler have arithmetic expressions too, although can be computed only at compile time.
05:56:32 <ais523> wob_jonas: huh, algebraic reals can be compared? that's actually pretty interesting
05:56:49 <shachaf> ais523: The rationals don't include a lot of useful numbers
05:56:53 <wob_jonas> you could take just quadratic irrational reals, that is closure of reals on field ops and square root of positive numbers, which definitely has computable less-than comparison with an easy to understand (but slow in general) algorithm
05:56:55 <ais523> the computable reals have computable /inequality/ but it doesn't work for two values which happen to be equal
05:57:07 <shachaf> It's semicomputable.
05:57:11 <shachaf> Or semidecidable, whatever.
05:57:24 <wob_jonas> ais523: I think so, but I'm not sure, and I think Mathematica is about the only program that implements the full algorithm
05:57:38 <shachaf> https://hackage.haskell.org/package/cyclotomic seems like a good attempt
05:57:48 <shachaf> "The cyclotomic numbers contain the square roots of all rational numbers. They contain the sine and cosine of all rational multiples of pi."
05:57:55 <zzo38> (For example, you might write "EJSJ JTBL+5", and then if rI1 contains 5 then "JMP JTBL,1" will jump to the entered JSJ instruction, which then jumps to the location of the EJSJ in turn.
05:57:59 <wob_jonas> hmm, I don't know how much GAP implements
05:58:01 <shachaf> Not quite as good as algebraic.
05:58:05 <wob_jonas> it might implement all of it too
05:58:08 <wob_jonas> let me check the manual
05:59:54 <wob_jonas> nope, GAP doesn't implement all of it, but it does implement an interesting subset:
06:00:15 <wob_jonas> http://www.gap-system.org/Manuals/doc/ref/chap18.html GAP admits computations in abelian extension fields of the rational number field ℚ, that is fields with abelian Galois group over ℚ.
06:00:32 <wob_jonas> which might answer shachaf's question
06:01:21 <wob_jonas> and it might not implement less-than comparison for those
06:03:44 <wob_jonas> but I think it implements equal comparison
06:04:10 <zzo38> Can any long programs be made up that will work even if the cards are mixed up (including the first and last card)? Can it be made to work even if a small percentage of the cards are removed afterward?
06:04:48 <wob_jonas> shachaf: anyway, there are also various sets of fixed-size floating point numbers, if you exclude non-real values from them, and all those are finite subsets of rationals
06:06:24 <wob_jonas> zzo38: in MIXAL, I'd guess no. For example, if you happen to mix such that the END statement is the first card, you're screwed.
06:07:12 <zzo38> Yes, I know that. But I meant a compiled program (that isn't compiled using MIXAL necessarily)
06:07:44 <shachaf> wob_jonas: Even the algebraic numbers don't include important values like pi
06:09:35 <wob_jonas> zzo38: in that case, I guess it can be done, but I'm not completely sure
06:10:33 <zzo38> (Also, my own assembler does support some pseudo-ops even after END: EQU, PUNCH, and DECK. You can use this EQU if you want addresses after the equal sign expressions have been compiled; since it is a two pass assembler, it can be used.)
06:19:01 <ais523> Google's INTERCAL style guide implies that the physical cards have machine-readable numbers on them that allow them to be placed into order, and that the compiler is instructed not to read them
06:19:05 <ais523> you could probably do something similar with MIX
06:20:58 <zzo38> Possibly each card could contain the loader program for one MIX word and increments a counter so that it can know once all of the cards have been loaded, it can start the execution.
06:21:52 <wob_jonas> zzo38: something like that could work, but it'd be hard to fit on one card with all punchable words
06:22:54 <wob_jonas> if your card reader can read any byte, then I think you can do it
06:24:50 <zzo38> There is also the trouble of initializing the counters. However, I will try to see anyways
06:26:34 <wob_jonas> zzo38: you can use the fact that the start button loads the first card to address 0, you load all your cards to a different address (say 16), then you can distinguish the first card from other cards by overwriting an instr at either the first card or other cards read buffer, and initialize the counter if it's the first card
06:26:43 <wob_jonas> there are other ways but that's probably the easiest and most robust
06:27:55 <zzo38> Yes I actually did think of that
06:28:01 <wob_jonas> more obscure ways would be to rely on the fact that the start button initializes rJ to 0, but that would be non-robust because implementations of the start button in MIX can't do that, so some MIXes might be non-comforming; or the fact that the start button sets the overflow flag
06:28:42 <HackEgo> [wiki] [[Special:Log/newusers]] create * Javyu * New user account
06:29:44 <wob_jonas> or you can overwrite some of the code of the next card after you load it but before you jump into it
06:30:26 <wob_jonas> or you can jump into the middle of the next card and initialize the counter at the start of the card
06:31:44 <zzo38> I have thought of some of those things
06:32:20 <wob_jonas> the overflow fact method might actually be shorter if you want punchable cards
06:32:29 <wob_jonas> overflow flag method
06:34:45 <zzo38> Yes, OK
06:35:58 <zzo38> I did not know that it affects the overflow flag, or maybe I read it once and I forgot.
06:39:59 <wob_jonas> Hmm strange. The exercise about the card loading routine says that "=" and ":" characters might not be readable from a card. But those characters are used in MIXAL, and ":" appears in a lot of MIXAL programs. How does that work?
06:41:28 <wob_jonas> Those two characters would help a lot with punchable routines
06:41:46 <zzo38> Maybe MIXAL does not run on the computers that can't read "=" and ":"
06:42:25 <wob_jonas> maybe, but that would be strange.
06:42:43 <wob_jonas> why would Knuth choose that syntax then instead of some syntax that doesn't use those characters?
06:43:09 <zzo38> Of course it might also just be a mistake
06:43:43 <zzo38> And I think the loader program given in the answer section actually does have a equal sign (although I do not quite remember)
06:43:45 <wob_jonas> yeah, but Knuth rarely does mistakes
06:44:02 <wob_jonas> especially ones he hasn't corrected since
06:44:13 <shachaf> wob_jonas: Why don't you submit it as a bug?
06:44:29 <wob_jonas> I'm not sure it's a bug yet
06:45:39 <zzo38> I also don't know if Knuth still cares about updating the MIX versions of the programs (even though I would be interested in both the MIX and MMIX versions)
06:46:36 <wob_jonas> zzo38: even if he doesn't update them, he is still interested about bugs
06:46:48 <wob_jonas> bugs in his books that haven't yet been reported that is
06:46:51 <zzo38> O, OK.
06:47:15 <wob_jonas> and no, it doesn't look like the solution has an equals sign
06:47:39 <wob_jonas> in the punched version that is
06:47:47 <wob_jonas> it does have equals sign and colon in the assembly version
06:48:15 <wob_jonas> but that doesn't matter
06:48:16 <zzo38> Maybe I was mistaken and forgot, I suppose
06:58:59 <wob_jonas> oh, and it's called the GO button, no the start button
07:10:58 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
07:28:32 -!- zseri has joined.
07:57:36 <zseri> hi
07:59:12 -!- imode has quit (Ping timeout: 255 seconds).
08:09:23 -!- sleffy has joined.
08:16:59 -!- zseri has quit (Quit: Page closed).
08:26:06 -!- kuluma|2 has joined.
08:44:30 <rdococ> Concept: a fungeoid........on a triangular tiling
09:05:21 -!- sleffy has quit (Ping timeout: 240 seconds).
09:09:12 -!- hppavilion[0] has quit (Read error: Connection reset by peer).
09:14:46 -!- xkapastel has quit (Quit: Connection closed for inactivity).
09:34:11 -!- augur has quit (Remote host closed the connection).
09:34:44 -!- augur has joined.
09:37:41 -!- AnotherTest has joined.
09:38:57 -!- augur has quit (Ping timeout: 240 seconds).
09:41:18 <rdococ> Still trying to figure out how a call queue could work.
09:41:41 <rdococ> A normal expression of the form "(((4 * 3) / 2) + 1) - 0.3" would be written "4 * 3 (/ 2 (+ 1 (- 0.3)))"...maybe.
09:42:13 <rdococ> Key part here, though, is I'm not dividing 2 by (+ 1 (- 0.3)) - quite the opposite, in fact.
09:43:06 -!- LKoen has joined.
09:44:35 -!- kuluma|2 has quit (Ping timeout: 240 seconds).
09:54:28 <rdococ> Concept: first in, middle out
10:02:26 -!- zseri has joined.
10:10:03 -!- augur has joined.
10:14:35 -!- augur has quit (Ping timeout: 240 seconds).
10:15:16 <rdococ> hi zseri.
10:15:25 <zseri> hi rdococ
10:15:38 <rdococ> wow, everything can be first-class nowadays...
10:15:43 -!- kuluma|2 has joined.
10:15:47 <zseri> yes
10:16:00 <rdococ> Concept: first-class classes - but not in the sense of data types, in the sense of first-, second- and third- class
10:16:33 <rdococ> e.g. you could create an anonymous new class whose member data types can't be passed to parameters but can be returned
10:18:12 <zseri> Is there already something like creation of classes on demand (anonymous class as return type)?
10:18:37 <rdococ> No, not that kind of class...
10:18:55 <rdococ> You know how data types may be first-class, second-class, third-class etc. depending on the language they reside?
10:20:52 <zseri> oh, first-class classes are easy to understand, just normal classes.
10:21:41 <rdococ> ...Nevermind.
10:21:44 <zseri> we can pass second-class classes around via moving or forwarding
10:22:18 <zseri> but whats the use of third-class classes?
10:23:08 <rdococ> How about a language with: 1) ability to access and modify the call stack at runtime, and 2) first-class stacks?
10:23:25 <rdococ> That way, a program could implement its own continuations.
10:23:37 <zseri> that would allow a very complicated control flow.
10:24:11 <rdococ> A program could pop items from the call stack, and then redirect the instruction pointer where-ever.
10:24:55 <rdococ> Not only that, it would be able to push frames to the call stack. Each individual call frame would also be first-class.
10:25:43 <rdococ> f(x, y) is a function invocation; getcallframe(f, x, y) would literally call f if it was pushed to the stack, and then the instruction pointer was redirected there.
10:25:47 <zseri> the program could use runtime-controllable, on the fly generated goto statements as the only flow control mechanism beside simple if statements.
10:26:14 <rdococ> You'd be able to perform pointer arithmetic on instructions for relative instruction addressing, too.
10:26:50 <rdococ> You'd also be able to get a pointer to the instruction that the IP is set to when a function is called.
10:27:24 <rdococ> e.g. "push(callstack, getcallframe(f, x, y)); goto(getip(f));" would be a complicated way of saying "f(x, y)".
10:28:44 <rdococ> And "var r = peek(callstack):getReturnAddress(); pop(callstack); goto(r);" would be a complicated way of saying "return;".
10:29:49 <rdococ> Does anyone else think it gets to the point where high-level is becoming low-level with safeguards?
10:39:27 -!- Vorpal has joined.
10:39:38 -!- doesthiswork has quit (Quit: Leaving.).
10:41:10 <rdococ> Vorpal!
10:42:16 <Vorpal> hi
10:42:53 -!- FreeFull has quit (Quit: Rebooting).
10:43:09 <rdococ> We were discussing first-class call frames.
10:43:56 <Vorpal> interesting, not really looking to engage in chatting atm
10:44:17 <Vorpal> just code in asm, everything is first class then
10:44:44 <rdococ> I guess I'll go invoke continuations in asm, then.
10:45:12 <rdococ> Then again, I guess you could copy each stack frame, and copy the instruction pointer...
10:45:18 <Vorpal> you could write some pre-processor macros that help you do it. I'm fairly sure I have seen preprocessed ASM at some point or another
10:50:14 -!- FreeFull has joined.
10:51:42 -!- Phantom_Hoover has joined.
11:02:03 <rdococ> https://gist.github.com/rdococ/b7ec09bdea6cfe837470c14e7a2b1fbb
11:02:14 <rdococ> Woah, it's a phantom hoover! O_o
11:02:47 -!- LKoen has quit (Remote host closed the connection).
11:03:25 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=52870&oldid=52784 * Zayne * (+14)
11:04:23 <HackEgo> [wiki] [[InSpace]] https://esolangs.org/w/index.php?diff=52871&oldid=52829 * Zayne * (+27)
11:04:58 <HackEgo> [wiki] [[InSpace]] https://esolangs.org/w/index.php?diff=52872&oldid=52871 * Zayne * (+1) /* Commands */
11:08:52 <HackEgo> [wiki] [[SMITH sharp]] https://esolangs.org/w/index.php?diff=52873&oldid=38971 * Zayne * (+17)
11:09:00 <HackEgo> [wiki] [[SMITH sharp]] https://esolangs.org/w/index.php?diff=52874&oldid=52873 * Zayne * (-17)
11:16:42 <HackEgo> [wiki] [[Noid]] https://esolangs.org/w/index.php?diff=52875&oldid=52861 * Zayne * (+40) /* Examples */
11:22:37 <rdococ> O_o
11:27:58 <rdococ> I'm working on a concept for a language in which continuations are passed implicitly from the point of view of the caller, but explicitly from the point of view of the callee.
11:28:57 -!- Antoxyde has joined.
12:05:19 <Vorpal> rdococ: I think there is a good reason why most languages handle call frames implicitly, but aren't there some runtime environments that expose access to them for debugging purposes? Thinking about various VMs here, such as Java, .NET and similar
12:05:53 <Vorpal> You can certainly get read only info about them, not sure to what degree you can manipulate them
12:06:03 <Vorpal> the BEAM VM (used by erlang) maybe
12:07:37 <rdococ> Concept: A lang where all function calls are call/cc, and a function would call the continuation with parameters to return.
12:08:05 <rdococ> You would even be able to pass an extra argument at the end of the function call to trick it into calling a different function/continuation.
12:08:39 <Vorpal> rdococ: I believe various intermediate languages used by compilers might fit that model?
12:09:08 <rdococ> Vorpal; It's quite similar to the "goto/cc" model I conceptualized before.
12:09:37 <Vorpal> rdococ: sounds like CPS
12:09:42 <Vorpal> https://en.wikipedia.org/wiki/Continuation-passing_style
12:09:51 <rdococ> It is CPS, basically.
12:10:08 <rdococ> Except you don't have to explicitly nest the functions.
12:10:25 <rdococ> The more I talk about it, the less esoteric and more practical it seems :P
12:10:33 <Vorpal> right, I think I may need to read up on CPS, been years since I looked at it
12:11:36 <rdococ> If you want a summary: CPS is a style of programming in which each function takes an explicit argument - an anonymous function on what to do with the function's result - and "returns" by calling the aforementioned argument with the result.
12:11:46 <Vorpal> yes
12:11:48 <Vorpal> that I remember
12:12:04 <Vorpal> But I didn't understand your comment about not having to explicitly nest
12:16:11 <rdococ> https://gist.github.com/rdococ/d4efef3a491f149ed4ecb6bca90df810
12:19:56 <rdococ> As in, you don't have to explicitly pass the continuation, it occurs implicitly. You just get the benefit of being able to access the continuation explicitly from inside the function itself.
12:20:33 <rdococ> It also means you can choose to explicitly pass a continuation, and it'll call that one instead - you can use this to get a function to return to a different function.
12:24:24 <rdococ> I'd design a real language, but I have no idea where to start.
12:24:39 <rdococ> And I have no idea what to look up, either, because all you get is shit.
12:36:10 <Vorpal> rdococ: so you are not going to make this a full language?
12:36:22 <Vorpal> or write an interpreter?
12:36:44 <rdococ> I have trouble designing interpreters anything more complicated than brainfuck derivatives.
12:36:50 <rdococ> My code is seriously sloppy.
12:36:53 <Vorpal> hm
12:37:05 <rdococ> I don't understand how to create a parser.
12:37:31 <Vorpal> ah, I took a course at university about parsers and lexers
12:38:09 <rdococ> Do you think my "callee gets explicit continuation" idea is a good one?
12:39:19 <Vorpal> But I recommend using a parser combinator library rather than than lexers and parser generator like flex/yacc/bison
12:39:37 <Vorpal> I personally find libraries like parsec (haskell) or pyparsing (python) much easier to use
12:39:57 <Vorpal> rdococ: this is #esoteric, it doesn't matter if it is good, as long as it is interesting
12:40:19 <Vorpal> and I haven't seen a language doing that before (though I have been out of the loop for a few years due to real life)
12:49:14 -!- erkin has joined.
12:57:01 <rdococ> true
12:57:17 <rdococ> is there a Lua equivalent?
13:00:01 -!- ais523 has quit (Ping timeout: 248 seconds).
13:04:16 <rdococ> `tell imode now do it for infinite trees :P
13:04:18 <HackEgo> I think you mean "@tell imode now do it for infinite trees :P" instead?
13:04:22 <rdococ> @tell imode now do it for infinite trees :P
13:04:22 <lambdabot> Consider it noted.
13:09:11 -!- boily has joined.
13:13:31 <rdococ> hi boily
13:15:42 <zseri> hi
13:18:50 <quintopia> helloily
13:19:43 -!- kuluma|2 has quit (Ping timeout: 248 seconds).
13:20:47 <boily> rdochelloc!
13:20:49 <boily> zsellori!
13:20:54 <boily> QUINTHELLOPIA!
13:21:27 <quintopia> why you up on saturday morning
13:22:58 <boily> coffee, shower, bus, metro, girlfriend ^^
13:23:33 <boily> (I'm at the coffee step.)
13:23:53 <boily> (good coffee. very powerful. much waking.)
13:24:27 <boily> enjoying your morning?
13:25:56 <quintopia> i dont have coffee. im about to start the shower step
13:26:14 <quintopia> at a campground in hollywood, sc
13:27:38 <boily> being up at 5:30am at a campground is the best.
13:27:40 <boily> sc?
13:39:39 -!- LKoen has joined.
13:57:48 -!- kuluma|2 has joined.
14:00:39 -!- doesthiswork has joined.
14:04:48 -!- doesthiswork has quit (Ping timeout: 240 seconds).
14:13:14 -!- jaboja has joined.
14:17:59 -!- boily has quit (Quit: EXPENSIVE CHICKEN).
14:26:39 -!- ATMunn has joined.
14:48:40 -!- erkin has quit (Quit: Ouch! Got SIGABRT, dying...).
14:48:47 -!- jaboja has quit (Ping timeout: 248 seconds).
15:06:32 -!- `^_^v has joined.
15:11:46 -!- jaboja has joined.
15:28:31 -!- PinealGlandOptic has quit (Quit: leaving).
15:30:04 -!- jaboja has quit (Ping timeout: 255 seconds).
15:30:31 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
15:32:24 -!- `^_^v has quit (Quit: Leaving).
15:32:26 -!- jaboja has joined.
15:32:41 -!- `^_^v has joined.
15:33:26 -!- LKoen has quit (Remote host closed the connection).
15:33:59 -!- somebody has joined.
15:34:09 -!- somebody has changed nick to ASCII-only.
15:41:09 <zseri> hi
15:44:16 <ASCII-only> *begins lurking to wait for ais523*
15:48:02 <zseri> hm
15:50:08 <ASCII-only> need his help for https://esolangs.org/wiki/Incident
15:51:38 <ASCII-only> can't figure out how to have a capital W on the hello world lol
15:58:40 <ASCII-only> can probably use the string generator, but need his help golfing it too
15:59:23 -!- [ATMunn] has joined.
15:59:39 -!- ASCII-only has quit (Quit: Page closed).
16:00:13 -!- jaboja has quit (Ping timeout: 255 seconds).
16:02:05 -!- ATMunn has quit (Ping timeout: 240 seconds).
16:16:58 -!- doesthiswork has joined.
16:21:30 -!- `^_^v has quit (Quit: This computer has gone to sleep).
16:23:51 -!- [ATMunn] has changed nick to ATMunn.
16:26:29 <int-e> http://sprunge.us/VeVA <-- compiling Brainfuck to YABC
16:27:55 * int-e should add it to the wiki but is in no mood to fight with wiki syntax right now.
16:28:20 <int-e> I guess I could annoy oerjan and put it in a single <pre> block :P
16:31:07 <int-e> (woah there went the afternoon.)
16:41:29 -!- LKoen has joined.
16:48:49 -!- `^_^v has joined.
16:52:18 <rdococ> moo
16:54:27 <int-e> . o O ( note to self, what's an unsigned natural number, wouldn't that suggest that there are signed ones as well? )
16:54:59 <rdococ> unsigned complex numbers
16:56:17 <rdococ> int-e: Concept: implicit CPS, which is made explicit to the callee. the callee receives a continuation as the final argument, and must call it to return - but the caller wouldn't pass it explicitly.
16:57:41 <int-e> so basically, you'll have call/cc everywhere
16:57:52 <rdococ> yes
16:58:17 <rdococ> but if the callee doesn't call the continuation, execution halts
16:58:24 <rdococ> so more goto/cc
16:58:43 <int-e> hmm, where's the fun in that
16:59:45 <int-e> (the fun starts when you have several continutations to choose from. oh and of course when you use the same continuation more than once)
17:00:04 <rdococ> heh
17:00:18 <int-e> and by "fun" I mean the kind that usually requires mind-altering drugs.
17:00:49 <rdococ> you can force other functions to return to other continuations from further back in the call stack
17:02:14 <rdococ> so, say you have add(x, y, return) that calls return with x+y. then you could have add5(x, return) { add(x, 5, return); } rather than return(add(x, 5));
17:03:53 <rdococ> there could also be multiple-continuation syntax like you said - e.g. if(condition) { cont1 } else { cont2 } cont3
17:05:04 -!- Melvar` has joined.
17:05:57 -!- idris-bot has quit (Ping timeout: 240 seconds).
17:07:52 -!- Melvar has quit (Ping timeout: 260 seconds).
17:14:46 -!- `^_^v has quit (Quit: This computer has gone to sleep).
17:16:54 -!- imode has joined.
17:22:13 <rdococ> imodee!!
17:22:18 <rdococ> imodium
17:22:32 -!- wob_jonas has joined.
17:22:50 <imode> suuup.
17:23:03 <rdococ> suuuuuuuuuuuup.
17:23:04 <rdococ> soup.
17:23:13 <int-e> the sky is up
17:23:56 <wob_jonas> so I just found out that there's another of these big image editing libraries, called G'MIC, at http://gmic.eu/ , which is sort of like ImageMagick in that it goes for scriptability, but even more so, and also has GUI plugins for Gimp and Krita
17:24:02 <wob_jonas> definitely worth to know about
17:24:05 <wob_jonas> zzo38: ^
17:28:05 <rdococ> Who needs stacks and heaps and call queues when you have the DATA SOUP?! :P
17:29:38 <wob_jonas> I need trees, because they're more general
17:32:32 <int-e> but soups can be reactive
17:32:36 <zzo38> I have seen G'MIC
17:33:38 <wob_jonas> good. I'd never heard of it until a few days ago for some reason
17:44:52 -!- kuluma|2 has quit (Quit: KVIrc 4.9.2 Aria http://www.kvirc.net/).
17:53:07 <zzo38> Maybe I should add a Halt CLUT program inyo my Farbfeld Utilities (actually, two such programs; one makes the identity and one applies it)
17:58:07 <wob_jonas> um, what's a Halt CLUT?
17:59:38 <int-e> CLUT = 'color lookup table', but no clue about the "halt".
18:00:38 <zzo38> s/Halt CLUT/Hald CLUT/
18:00:49 <int-e> http://www.imagemagick.org/Usage/color_mods/#hald-clut
18:01:07 <int-e> just a bit too slow :P
18:01:26 <wob_jonas> ah
18:14:09 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
18:27:18 <wob_jonas> `? hereafter
18:27:19 <HackEgo> hereafter? ¯\(°​_o)/¯
18:27:20 <wob_jonas> `? hereunder
18:27:21 <HackEgo> hereunder? ¯\(°​_o)/¯
18:27:22 <wob_jonas> `? thereof
18:27:23 <HackEgo> thereof? ¯\(°​_o)/¯
18:27:23 <wob_jonas> `? set forth
18:27:24 <HackEgo> set forth? ¯\(°​_o)/¯
18:27:43 <wob_jonas> `? hereinafter
18:27:44 <HackEgo> hereinafter? ¯\(°​_o)/¯
18:31:30 <zzo38> Now I made the program, ff-apclut ff-idclut
18:43:29 <shachaf> `smlist 456
18:43:30 <HackEgo> smlist 456: shachaf monqy elliott mnoqy Cale
19:25:42 -!- moony has joined.
20:24:24 <wob_jonas> `? moo
20:24:25 <HackEgo> Moo is the sound made by a cow as it freezes.
20:24:37 <wob_jonas> 1? mud
20:24:39 <wob_jonas> `? mud
20:24:40 <HackEgo> mud? ¯\(°​_o)/¯
20:24:58 <wob_jonas> `? mmo
20:24:59 <HackEgo> mmo? ¯\(°​_o)/¯
20:43:08 <zseri> `? mud
20:43:09 <HackEgo> mud? ¯\(°​_o)/¯
20:43:21 <wob_jonas> `? mad
20:43:22 <HackEgo> This wisdom entry was censored for being too accurate.
20:44:08 <myname> does anybody has any recommendations for a book about game design?
20:50:42 -!- HackEgo has quit (Ping timeout: 260 seconds).
20:52:47 <doesthiswork> is there a particular kind of game you're interested in?
20:54:49 -!- idris-bot has joined.
20:54:59 <myname> not in a specific way. i like games with a high replay factor a lot
20:55:09 <myname> big fan of rogue likes n stuff
20:55:47 -!- Melvar` has changed nick to Melvar.
20:55:57 <wob_jonas> myname: is your target board/card games only, or video games only? games with mostly well-defined rules, or games requiring an imaginative game master who comes up with scenarios?
20:56:22 <myname> primarily video games
20:59:33 -!- `^_^v has joined.
21:01:30 -!- `^_^v has quit (Client Quit).
21:01:40 <rdococ> did the wiki go down again?
21:02:08 <wob_jonas> `ping
21:02:14 <rdococ> looks like it
21:02:16 <wob_jonas> It was up an hour ago
21:02:21 <rdococ> ik
21:04:13 <wob_jonas> hopefully it's just a temporary problem. fizzie?
21:04:31 <wob_jonas> rdococ: seems like it might be working now.
21:04:54 <rdococ> `ping
21:10:14 <zseri> it's down
21:18:07 <rdococ> idk what to do
21:22:04 -!- imode has quit (Ping timeout: 246 seconds).
21:23:47 -!- moony has quit (Remote host closed the connection).
21:24:13 <rdococ> I was expecting someone else to talk
21:24:14 -!- moony has joined.
21:28:28 <zseri> wiki is up.
21:28:48 <wob_jonas> `is-wiki-up
21:30:19 <rdococ> can I just delete every crappy shitty esolang I have?
21:30:52 <zseri> which ones?
21:31:14 <rdococ> all of them excluding QWOP, HI9+, Rule and Mindscrew
21:32:26 <wob_jonas> rdococ: http://magiccards.info/mi/en/48.html
21:33:58 <rdococ> exactly. esplangs are like spells so I want to uncast my shitty ones.
21:34:36 <wob_jonas> rdococ: the esolangs will still exist no matter what. that's why it's dangerous to even think of brainfuck-alikes.
21:35:06 <rdococ> it's weird how my brainfuck-alike is my best esolang yet, then
21:35:36 <wob_jonas> you can probably disown esolangs though
21:35:59 <rdococ> I want to travel back in time and kill my past self before he even thinks of making shitty langs
21:36:23 <wob_jonas> or "disavow" them, which sounds much fancier
21:37:18 -!- sleffy has joined.
21:37:26 <rdococ> wob_jonas: what do you think of a lang where every call is a call/cc? every function gets passed its continuation to it, and it has to call that continuation to return
21:37:53 <rdococ> even better is you can explicitly call it with a different continuation and it'll return there instead
21:38:08 <zseri> I think 'Assignless' is a nice language.
21:38:20 <rdococ> meh, maybe
21:38:24 <rdococ> I never fleshed it out enough
21:38:54 <rdococ> I guess I could stick some of my better ideas together, but idk how assignlessness plus first-class continuations would work...well, actually it might work
21:42:20 <zseri> I think assignless and first-class continuations fit well together.
21:43:23 -!- `^_^v has joined.
21:45:48 <rdococ> mayb
21:45:49 <rdococ> e
21:53:30 <zseri> https://gist.github.com/zserik/280f3126e2141d7bad223c3c1e9a1b9d
21:55:49 <rdococ> hm...
22:00:31 <rdococ> maybe
22:01:24 <int-e> @google dykyabc
22:01:26 <lambdabot> https://disneykid08.wordpress.com/2008/12/09/dykyabc/
22:04:24 <rdococ> maybe (parameter1, parameter2, k) and have "self" as some hidden function-local variable?
22:05:45 -!- augur has joined.
22:05:50 <int-e> Did you know that there's a programming language called 'Self'?
22:08:16 <wob_jonas> int-e: wasn't Self a non-eso object-oriented programming language?
22:08:43 <rdococ> "At one point a version of Smalltalk was implemented in Self."
22:08:46 <rdococ> "Self was a dialect of Smalltalk"
22:08:53 <rdococ> what. the. actual. lol :P
22:09:27 <int-e> wob_jonas: prototype based, if you care about the difference; and it was basically a research language, so kind of esoteric
22:09:47 <wob_jonas> ok
22:10:23 <zseri> My question is: should 'self' (or 'this'; as an variable) be implicit, and the continuation an explicit? That seems a little bit inconsistent.
22:10:51 <int-e> IIUC, the most significant influence was the Hotspot VM which borrowed techniques from Self's JIT compiler.
22:11:05 <rdococ> 'self' and 'continuation' are different concepts. I think a function should be able to call itself without too much in the way.
22:11:43 <rdococ> I was thinking the syntax could be "function (x, y, z) k { ... }" (where x, y and z are parameters and k is the continuation), just as syntactic sugar
22:16:33 <rdococ> also, on the explicit/implicit end-of-function return, I think it should be explicitly required - otherwise the program will have nowhere to flow to and will hatl.
22:16:35 <rdococ> halt*.
22:21:01 <zseri> updated.
22:26:10 -!- `^_^v has quit (Quit: This computer has gone to sleep).
22:48:29 -!- ais523 has joined.
22:55:54 -!- zseri has quit (Ping timeout: 260 seconds).
23:08:34 -!- jaboja has joined.
23:25:30 -!- AnotherTest has quit (Ping timeout: 240 seconds).
23:28:36 -!- imode has joined.
23:36:51 -!- ais523 has quit (Remote host closed the connection).
23:38:01 -!- ais523 has joined.
←2017-08-18 2017-08-19 2017-08-20→ ↑2017 ↑all