view paste/paste.18029 @ 12257:1924fe176291 draft

<fizzie> ` sed -e \'s|wisdom|bin|\' < ../bin/cwlprits > ../bin/cblprits; chmod a+x ../bin/cblprits
author HackEso <hackeso@esolangs.org>
date Sat, 07 Dec 2019 23:36:53 +0000
parents ed818e3e44da
children
line wrap: on
line source

2013-12-12.txt:05:12:24: <tswett> Heheh. My phone tried to correct "Aru" to "Arufonsu". 
2013-12-12.txt:05:12:40: -!- tswett is now known as Arufonsu.
2013-12-12.txt:05:12:50: <Arufonsu> Not a bad nick. 
2013-12-12.txt:05:12:58: <ais523> ~duck Arufonsu
2013-12-12.txt:05:13:07: <Arufonsu> "Alphonse". 
2013-12-12.txt:05:14:41: <Arufonsu> pikhq: it isn't? 
2013-12-12.txt:05:15:02: <pikhq> Arufonsu: Explain "tomodachi to hanashita"
2013-12-12.txt:05:15:20: <Arufonsu> I don't know what those words mean. 
2013-12-12.txt:05:17:18: <pikhq> Arufonsu: "tomodachi" is "friend", "hanashita" is "talk" past tense.
2013-12-12.txt:05:17:56: <Arufonsu> Huh, cool. 
2013-12-12.txt:05:18:37: <Arufonsu> So yeah, vaguely like "included". 
2013-12-12.txt:05:18:51: <Arufonsu> "My friend included, I talked." 
2013-12-12.txt:05:19:06: <Arufonsu> "Ed included, Al is going to end up dead." 
2013-12-12.txt:05:22:24: <Arufonsu> (Pretty sure it sounded like Edo to me.) 
2013-12-12.txt:05:23:29: <Arufonsu> Is that what it says in the manga? 
2013-12-12.txt:05:23:49: <Arufonsu> Stupid joke:
2013-12-12.txt:05:24:03: <Arufonsu> What language are manga written in? Manganese. 
2013-12-12.txt:05:47:24: -!- Arufonsu has quit (Ping timeout: 246 seconds).
2013-12-19.txt:01:36:56: -!- Arufonsu has joined #esoteric.
2013-12-19.txt:01:56:13: <Arufonsu> So I'm trying to think what the best esoteric programming language is.
2013-12-19.txt:01:56:30: <Arufonsu> Not merely the best existing one, but the best possible one.
2013-12-19.txt:01:57:01: <Arufonsu> My criteria are something like "similar to Underload".
2013-12-19.txt:01:57:45: <Arufonsu> I've gotta say, though, /// is a pretty great language.
2013-12-19.txt:01:58:03: <madbr> Arufonsu : in that case, the answer is "underload"
2013-12-19.txt:01:58:33: <Arufonsu> Bike: you have a point, here.
2013-12-19.txt:01:58:36: <Arufonsu> madbr: you also have a point, here.
2013-12-19.txt:01:59:43: <Arufonsu> I really like languages that use code as data. Indeed, languages where there's barely any distinction between code and data.
2013-12-19.txt:02:00:17: <madbr> Arufonsu: My attempt at that: http://esolangs.org/wiki/Univar
2013-12-19.txt:02:01:27: <Arufonsu> I also like languages where the interpreter loop consists of removing the first instruction from the code and executing it, presumably modifying the rest of the code.
2013-12-19.txt:02:03:27: <madbr> Arufonsu : My other attempt (unimplemented): http://esolangs.org/wiki/Object_disoriented
2013-12-19.txt:02:05:17: <Arufonsu> So, so far, the languages I like are... Underload and ///? I think Smurf is also pretty good.
2013-12-19.txt:02:05:21: <madbr> Arufonsu : you should probably look at look at http://esolangs.org/wiki/0x29A
2013-12-19.txt:02:06:00: <Arufonsu> madbr: so when this says "full, deep copy", that means the object is copied, as well as every object it references, every object each of those objects references, and so on?
2013-12-19.txt:02:07:30: <Arufonsu> Ah. That makes it easy.
2013-12-19.txt:02:08:30: <Arufonsu> I guess the thing about /// is that it's a bit too far removed from anything resembling a practical programming language.
2013-12-19.txt:02:08:45: <Arufonsu> (Which is a self-crediting way of saying "I have no idea how to write programs in ///".)
2013-12-19.txt:02:08:59: <LinearInterpol> Arufonsu: research markov algorithms.
2013-12-19.txt:02:09:38: <Arufonsu> LinearInterpol: Markov algorithms look like Thue.
2013-12-19.txt:02:11:36: <Arufonsu> So, lessee. My platonic ideal programming language is in the "remove and execute on remainder" paradigm.
2013-12-19.txt:02:11:45: <Arufonsu> I'm not sure I'd consider lambda calculus to be object-oriented at all.
2013-12-19.txt:02:12:36: <Arufonsu> Encapsulation is a pretty critical feature of OO languages, right? I guess Haskell lets you encapsulate stuff pretty well.
2013-12-19.txt:02:14:25: <Arufonsu> Closures are totally transparent. There's no observable difference between a closure and an ordinary function.
2013-12-19.txt:02:15:02: <Arufonsu> I think in the PIPL, symbols shouldn't just be symbols; they should be functions.
2013-12-19.txt:02:15:13: <Arufonsu> Indeed, functions taking a program and yielding a program. Or... uh...
2013-12-19.txt:02:15:54: <Arufonsu> Hang on, let me try to figure out whether or not the idea of a statically typed "remove and execute on remainder" language makes any sense at all.
2013-12-19.txt:02:17:54: <Arufonsu> I dunno. I want this to be a catenative language, but catenativity and RAEOR seem to be pretty much mutually exclusive.
2013-12-19.txt:02:18:54: <Arufonsu> Then again, if you do some sort of continuation fuckery...
2013-12-19.txt:02:23:34: <Arufonsu> Perhaps what I'm after is a language where programs can't just be written in their final form; they have to constantly construct themselves. But they should do so in a particularly elegant manner.
2013-12-19.txt:02:25:25: <Arufonsu> /// is pretty much the pinnacle of some sort of ideal.
2013-12-19.txt:02:25:30: <Arufonsu> Not sure which one.
2013-12-19.txt:02:26:22: <Arufonsu> madbr: http://esolangs.org/wiki////
2013-12-19.txt:02:26:53: <Arufonsu> Yes. Without it, there's exactly one instruction, which hangs.
2013-12-19.txt:02:26:57: <Arufonsu> Namely, ///.
2013-12-19.txt:02:29:06: <Arufonsu> In theory, a /// programming environment could be really nice. Like, you'd do the same thing that Smalltalk does, where you pretty much just have one single self-modifying program that you use for all of your programming.
2013-12-19.txt:02:29:16: <Arufonsu> And it'd be nice because you could define new syntax constantly.
2013-12-19.txt:02:29:30: <Arufonsu> In practice, no.
2013-12-19.txt:02:30:09: <LinearInterpol> I'll admit I haven't researched on /// but you're in a good paradigm, Arufonsu 
2013-12-19.txt:02:31:32: <Arufonsu> Okay, here's an idea. So, a program is a series of instructions. The instructions are SEEK(n), MARK, COPY, DELETE, and PASTE.
2013-12-19.txt:02:32:32: <Arufonsu> Your main memory is, of course, the remainder of the program. In addition to that, you have two cursors: the primary cursor and the mark cursor. You also have a clipboard.
2013-12-19.txt:02:33:29: <Arufonsu> SEEK moves the primary cursor. MARK moves the mark cursor to the primary cursor. COPY replaces the contents of the clipboard with the instructions between the primary cursor and the mark cursor. DELETE deletes everything between the primary cursor and the mark cursor. PASTE inserts the contents of the clipboard before the primary cursor.
2013-12-19.txt:02:37:41: <Arufonsu> Yeah, Those are the commands.
2013-12-19.txt:02:37:51: <Arufonsu> The program manipulates itself.
2013-12-19.txt:02:39:32: <Arufonsu> Working on it.
2013-12-19.txt:02:40:16: <Arufonsu> SEEK(4) MARK SEEK(1) COPY PASTE
2013-12-19.txt:02:40:34: <Arufonsu> "SEEK(4) MARK SEEK(1) COPY" copies "PASTE" to the clipboard, then "PASTE" pastes "PASTE" right after itself.
2013-12-19.txt:02:42:05: <Arufonsu> I never said it was absolute.
2013-12-19.txt:02:42:11: <Arufonsu> I've been thinking it was relative all along.
2013-12-19.txt:02:42:32: <Arufonsu> I wouldn't expect it to be too hard to implement Bitwise Cyclic Tag using this stuff.
2013-12-19.txt:02:42:38: <Arufonsu> Lemme see here.
2013-12-19.txt:02:45:01: <Arufonsu> This doesn't actually seem possible.
2013-12-19.txt:02:45:07: <Arufonsu> Well, not obviously.
2013-12-19.txt:02:45:26: <Arufonsu> There's no way to "look at" code without running it.
2013-12-19.txt:02:46:01: <Arufonsu> Yeah, I guess you could make it so that 0 is one piece of code and 1 is a different piece of code.
2013-12-19.txt:02:46:19: <Arufonsu> What pieces of code they are depends on what the program string is.
2013-12-19.txt:02:47:18: <Arufonsu> Yeah, I guess so.
2013-12-19.txt:02:49:14: <Arufonsu> If you had a few more cursors, everything would suddenly become way better.
2013-12-19.txt:02:49:44: <LinearInterpol> Arufonsu: or two tapes.
2013-12-19.txt:02:50:10: <Arufonsu> Like, you already have three cursors: the instruction pointer, the main cursor, and the mark.
2013-12-19.txt:02:51:18: <Arufonsu> We could say that SWAP exchanges the main cursor and the mark, and JUMP exchanges the main cursor and the instruction pointer.
2013-12-19.txt:02:52:40: <Arufonsu> I guess now there's no great reason not to say you can't edit parts of the program that have already been executed.
2013-12-19.txt:02:52:53: <LinearInterpol> Arufonsu: pretty much.
2013-12-19.txt:02:54:08: <Arufonsu> So here's a simple infinite loop: SEEK(3) SEEK(-2) JUMP
2013-12-19.txt:03:01:05: <Arufonsu> Yeah, I didn't specify exactly how JUMP works.
2013-12-19.txt:03:01:20: <Arufonsu> The instruction pointer moves forward before the cursors are swapped.
2013-12-19.txt:03:02:03: <Arufonsu> So the main cursor ends up immediately after the JUMP instruction.
2013-12-19.txt:03:02:34: <Arufonsu> The PASTE command puts stuff before the main cursor, not after.
2013-12-19.txt:03:04:36: <Arufonsu> So that'd be like, (cmi) M S4 C P -> (cm) M (i) S4 C P -> (m) M S4 (i) C P (c) -> (m) M S4 C (i) P (c) -> (m) M S4 C P (i) M S4 C P (c) -> M S4 C P M (i) S4 C P (cm) -> M S4 C P M S4 (i) C P (m) _ _ _ _ (c)
2013-12-19.txt:03:04:44: <Arufonsu> Where (c) is the main cursor and (m) is the mark.
2013-12-19.txt:03:05:08: <Arufonsu> Have I already said Markov algorithms sound like wimpmode Thue?
2013-12-19.txt:03:08:46: <Arufonsu> Nah, this language sucks.
2013-12-19.txt:03:09:24: <Arufonsu> It's not the One True Language.
2013-12-19.txt:03:10:57: * Arufonsu plays an ascending and descending whole tone scale.
2013-12-19.txt:03:14:30: <Arufonsu> Still trying to figure out the One True Language here.
2013-12-19.txt:03:15:11: <Arufonsu> Like, a quine?
2013-12-19.txt:03:20:10: <Arufonsu> Looks like this requires me to have a glib.h. What's that from?
2013-12-19.txt:03:21:36: <Arufonsu> I know what glibc is!
2013-12-19.txt:03:21:44: <Arufonsu> But no, this is the first I've learned what glib is.
2013-12-19.txt:03:21:57: <Arufonsu> What about gsl, is that related to glib?
2013-12-19.txt:03:26:51: <Arufonsu> Apparently I actually have seven versions of glib installed.
2013-12-19.txt:03:27:34: <Arufonsu> Only one of them is "activated".
2013-12-19.txt:03:28:20: <Arufonsu> So I assume "installed" means "present somewhere" and "activated" means "present in locations where applications will look for them".
2013-12-19.txt:03:50:55: <Arufonsu> All right. So, question about replifuck...
2013-12-19.txt:03:51:01: <Arufonsu> How do I do stuff?
2013-12-19.txt:03:51:16: <Arufonsu> Like, all right, memory's been initialized. I can start the machine running, but there aren't any threads.
2013-12-19.txt:03:52:44: <Arufonsu> How can I fork if there are no threads?
2013-12-19.txt:03:55:43: <Arufonsu> Maybe there are supposed to be threads, and there just aren't.
2013-12-19.txt:03:56:35: <Arufonsu> Maybe, I guess.
2013-12-19.txt:03:57:07: <Arufonsu> Here we go. If I load up a program, then there are threads.
2013-12-19.txt:03:58:07: <Arufonsu> Dang, Terminal.app doesn't work with my vim configuration at all.
2013-12-19.txt:03:58:45: <Arufonsu> When I load up vim, the entire terminal flashes at about a hertz.
2013-12-19.txt:04:01:04: <Arufonsu> Pretty sure.
2013-12-19.txt:04:01:27: <Arufonsu> Probably has something to do with mouse reporting or 8-bit color.
2013-12-19.txt:04:10:25: <Arufonsu> Guess the nice thing about this is that I can just edit the source code.
2013-12-19.txt:04:12:33: <Arufonsu> See you.
2013-12-19.txt:04:16:15: <Arufonsu> Wow. replifuck is currently using 1.5 gigabytes of memory.
2013-12-19.txt:04:16:18: <Arufonsu> That seems excessive.
2013-12-19.txt:04:20:19: <Arufonsu> It had run for about 30,000 cycles, and there were 6,000 threads. So maybe each cycle leaked 50 kilobytes of memory, or maybe each thread was using 250 kilobytes of memory.
2013-12-19.txt:04:25:41: <Arufonsu> Huh. I took a core sample of the process, and this seems to indicate it spends roughly 99.9% of its time looking for matching parentheses.
2013-12-19.txt:04:26:22: <Arufonsu> The process was sampled 2,646 times, and of those 2,646 samples, 2,646 of them were in rf_find_matching_parentheses.
2013-12-19.txt:04:27:12: <Arufonsu> I dunno. See: https://www.youtube.com/watch?v=lTF5z9YSs8w https://github.com/jgraef/replifuck
2013-12-19.txt:04:34:12: <Arufonsu> Yeah.
2013-12-19.txt:04:34:32: <Arufonsu> Okay, it looks like it was actually just that one single run that was spending 99.9% of its time looking for matching parentheses.
2013-12-19.txt:04:34:45: <Arufonsu> I've taken more samples of different runs, and these show that more interesting stuff is happening.
2013-12-19.txt:04:35:31: <Arufonsu> Oddly enough, it's spending about 2/3 of its time executing cycles, and 1/3 of its time deleting threads.
2013-12-19.txt:04:36:33: <Arufonsu> A majority of the time it spends executing cycles, it spends mutating randomly.
2013-12-19.txt:04:36:40: <Arufonsu> And most of that time is spent generating random numbers.
2013-12-19.txt:04:45:25: <Arufonsu> I'm gonna program in a limit to the possible jump distance.
2013-12-19.txt:04:46:02: <Arufonsu> What I'm confused about is how the program apparently only searches for matching brackets in one direction.
2013-12-19.txt:04:46:36: <Arufonsu> Maybe the ] command uses the stack to return to its [ command.
2013-12-19.txt:04:48:45: <Arufonsu> I'm probably gonna ping out soon. Night, everyone.
2013-12-19.txt:05:09:01: -!- Arufonsu has quit (Ping timeout: 272 seconds).
2013-12-19.txt:11:00:29: <oerjan> <Arufonsu> I've gotta say, though, /// is a pretty great language. <-- smooth.
2013-12-19.txt:11:04:54: <oerjan> `pastelogs arufonsu