comparison paste/paste.18029 @ 4200:ed818e3e44da

<oerjan> pastelogs arufonsu
author HackBot
date Thu, 19 Dec 2013 11:05:43 +0000
parents
children
comparison
equal deleted inserted replaced
4199:7fe29e5ec9b8 4200:ed818e3e44da
1 2013-12-12.txt:05:12:24: <tswett> Heheh. My phone tried to correct "Aru" to "Arufonsu".
2 2013-12-12.txt:05:12:40: -!- tswett is now known as Arufonsu.
3 2013-12-12.txt:05:12:50: <Arufonsu> Not a bad nick.
4 2013-12-12.txt:05:12:58: <ais523> ~duck Arufonsu
5 2013-12-12.txt:05:13:07: <Arufonsu> "Alphonse".
6 2013-12-12.txt:05:14:41: <Arufonsu> pikhq: it isn't?
7 2013-12-12.txt:05:15:02: <pikhq> Arufonsu: Explain "tomodachi to hanashita"
8 2013-12-12.txt:05:15:20: <Arufonsu> I don't know what those words mean.
9 2013-12-12.txt:05:17:18: <pikhq> Arufonsu: "tomodachi" is "friend", "hanashita" is "talk" past tense.
10 2013-12-12.txt:05:17:56: <Arufonsu> Huh, cool.
11 2013-12-12.txt:05:18:37: <Arufonsu> So yeah, vaguely like "included".
12 2013-12-12.txt:05:18:51: <Arufonsu> "My friend included, I talked."
13 2013-12-12.txt:05:19:06: <Arufonsu> "Ed included, Al is going to end up dead."
14 2013-12-12.txt:05:22:24: <Arufonsu> (Pretty sure it sounded like Edo to me.)
15 2013-12-12.txt:05:23:29: <Arufonsu> Is that what it says in the manga?
16 2013-12-12.txt:05:23:49: <Arufonsu> Stupid joke:
17 2013-12-12.txt:05:24:03: <Arufonsu> What language are manga written in? Manganese.
18 2013-12-12.txt:05:47:24: -!- Arufonsu has quit (Ping timeout: 246 seconds).
19 2013-12-19.txt:01:36:56: -!- Arufonsu has joined #esoteric.
20 2013-12-19.txt:01:56:13: <Arufonsu> So I'm trying to think what the best esoteric programming language is.
21 2013-12-19.txt:01:56:30: <Arufonsu> Not merely the best existing one, but the best possible one.
22 2013-12-19.txt:01:57:01: <Arufonsu> My criteria are something like "similar to Underload".
23 2013-12-19.txt:01:57:45: <Arufonsu> I've gotta say, though, /// is a pretty great language.
24 2013-12-19.txt:01:58:03: <madbr> Arufonsu : in that case, the answer is "underload"
25 2013-12-19.txt:01:58:33: <Arufonsu> Bike: you have a point, here.
26 2013-12-19.txt:01:58:36: <Arufonsu> madbr: you also have a point, here.
27 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.
28 2013-12-19.txt:02:00:17: <madbr> Arufonsu: My attempt at that: http://esolangs.org/wiki/Univar
29 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.
30 2013-12-19.txt:02:03:27: <madbr> Arufonsu : My other attempt (unimplemented): http://esolangs.org/wiki/Object_disoriented
31 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.
32 2013-12-19.txt:02:05:21: <madbr> Arufonsu : you should probably look at look at http://esolangs.org/wiki/0x29A
33 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?
34 2013-12-19.txt:02:07:30: <Arufonsu> Ah. That makes it easy.
35 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.
36 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 ///".)
37 2013-12-19.txt:02:08:59: <LinearInterpol> Arufonsu: research markov algorithms.
38 2013-12-19.txt:02:09:38: <Arufonsu> LinearInterpol: Markov algorithms look like Thue.
39 2013-12-19.txt:02:11:36: <Arufonsu> So, lessee. My platonic ideal programming language is in the "remove and execute on remainder" paradigm.
40 2013-12-19.txt:02:11:45: <Arufonsu> I'm not sure I'd consider lambda calculus to be object-oriented at all.
41 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.
42 2013-12-19.txt:02:14:25: <Arufonsu> Closures are totally transparent. There's no observable difference between a closure and an ordinary function.
43 2013-12-19.txt:02:15:02: <Arufonsu> I think in the PIPL, symbols shouldn't just be symbols; they should be functions.
44 2013-12-19.txt:02:15:13: <Arufonsu> Indeed, functions taking a program and yielding a program. Or... uh...
45 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.
46 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.
47 2013-12-19.txt:02:18:54: <Arufonsu> Then again, if you do some sort of continuation fuckery...
48 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.
49 2013-12-19.txt:02:25:25: <Arufonsu> /// is pretty much the pinnacle of some sort of ideal.
50 2013-12-19.txt:02:25:30: <Arufonsu> Not sure which one.
51 2013-12-19.txt:02:26:22: <Arufonsu> madbr: http://esolangs.org/wiki////
52 2013-12-19.txt:02:26:53: <Arufonsu> Yes. Without it, there's exactly one instruction, which hangs.
53 2013-12-19.txt:02:26:57: <Arufonsu> Namely, ///.
54 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.
55 2013-12-19.txt:02:29:16: <Arufonsu> And it'd be nice because you could define new syntax constantly.
56 2013-12-19.txt:02:29:30: <Arufonsu> In practice, no.
57 2013-12-19.txt:02:30:09: <LinearInterpol> I'll admit I haven't researched on /// but you're in a good paradigm, Arufonsu
58 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.
59 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.
60 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.
61 2013-12-19.txt:02:37:41: <Arufonsu> Yeah, Those are the commands.
62 2013-12-19.txt:02:37:51: <Arufonsu> The program manipulates itself.
63 2013-12-19.txt:02:39:32: <Arufonsu> Working on it.
64 2013-12-19.txt:02:40:16: <Arufonsu> SEEK(4) MARK SEEK(1) COPY PASTE
65 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.
66 2013-12-19.txt:02:42:05: <Arufonsu> I never said it was absolute.
67 2013-12-19.txt:02:42:11: <Arufonsu> I've been thinking it was relative all along.
68 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.
69 2013-12-19.txt:02:42:38: <Arufonsu> Lemme see here.
70 2013-12-19.txt:02:45:01: <Arufonsu> This doesn't actually seem possible.
71 2013-12-19.txt:02:45:07: <Arufonsu> Well, not obviously.
72 2013-12-19.txt:02:45:26: <Arufonsu> There's no way to "look at" code without running it.
73 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.
74 2013-12-19.txt:02:46:19: <Arufonsu> What pieces of code they are depends on what the program string is.
75 2013-12-19.txt:02:47:18: <Arufonsu> Yeah, I guess so.
76 2013-12-19.txt:02:49:14: <Arufonsu> If you had a few more cursors, everything would suddenly become way better.
77 2013-12-19.txt:02:49:44: <LinearInterpol> Arufonsu: or two tapes.
78 2013-12-19.txt:02:50:10: <Arufonsu> Like, you already have three cursors: the instruction pointer, the main cursor, and the mark.
79 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.
80 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.
81 2013-12-19.txt:02:52:53: <LinearInterpol> Arufonsu: pretty much.
82 2013-12-19.txt:02:54:08: <Arufonsu> So here's a simple infinite loop: SEEK(3) SEEK(-2) JUMP
83 2013-12-19.txt:03:01:05: <Arufonsu> Yeah, I didn't specify exactly how JUMP works.
84 2013-12-19.txt:03:01:20: <Arufonsu> The instruction pointer moves forward before the cursors are swapped.
85 2013-12-19.txt:03:02:03: <Arufonsu> So the main cursor ends up immediately after the JUMP instruction.
86 2013-12-19.txt:03:02:34: <Arufonsu> The PASTE command puts stuff before the main cursor, not after.
87 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)
88 2013-12-19.txt:03:04:44: <Arufonsu> Where (c) is the main cursor and (m) is the mark.
89 2013-12-19.txt:03:05:08: <Arufonsu> Have I already said Markov algorithms sound like wimpmode Thue?
90 2013-12-19.txt:03:08:46: <Arufonsu> Nah, this language sucks.
91 2013-12-19.txt:03:09:24: <Arufonsu> It's not the One True Language.
92 2013-12-19.txt:03:10:57: * Arufonsu plays an ascending and descending whole tone scale.
93 2013-12-19.txt:03:14:30: <Arufonsu> Still trying to figure out the One True Language here.
94 2013-12-19.txt:03:15:11: <Arufonsu> Like, a quine?
95 2013-12-19.txt:03:20:10: <Arufonsu> Looks like this requires me to have a glib.h. What's that from?
96 2013-12-19.txt:03:21:36: <Arufonsu> I know what glibc is!
97 2013-12-19.txt:03:21:44: <Arufonsu> But no, this is the first I've learned what glib is.
98 2013-12-19.txt:03:21:57: <Arufonsu> What about gsl, is that related to glib?
99 2013-12-19.txt:03:26:51: <Arufonsu> Apparently I actually have seven versions of glib installed.
100 2013-12-19.txt:03:27:34: <Arufonsu> Only one of them is "activated".
101 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".
102 2013-12-19.txt:03:50:55: <Arufonsu> All right. So, question about replifuck...
103 2013-12-19.txt:03:51:01: <Arufonsu> How do I do stuff?
104 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.
105 2013-12-19.txt:03:52:44: <Arufonsu> How can I fork if there are no threads?
106 2013-12-19.txt:03:55:43: <Arufonsu> Maybe there are supposed to be threads, and there just aren't.
107 2013-12-19.txt:03:56:35: <Arufonsu> Maybe, I guess.
108 2013-12-19.txt:03:57:07: <Arufonsu> Here we go. If I load up a program, then there are threads.
109 2013-12-19.txt:03:58:07: <Arufonsu> Dang, Terminal.app doesn't work with my vim configuration at all.
110 2013-12-19.txt:03:58:45: <Arufonsu> When I load up vim, the entire terminal flashes at about a hertz.
111 2013-12-19.txt:04:01:04: <Arufonsu> Pretty sure.
112 2013-12-19.txt:04:01:27: <Arufonsu> Probably has something to do with mouse reporting or 8-bit color.
113 2013-12-19.txt:04:10:25: <Arufonsu> Guess the nice thing about this is that I can just edit the source code.
114 2013-12-19.txt:04:12:33: <Arufonsu> See you.
115 2013-12-19.txt:04:16:15: <Arufonsu> Wow. replifuck is currently using 1.5 gigabytes of memory.
116 2013-12-19.txt:04:16:18: <Arufonsu> That seems excessive.
117 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.
118 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.
119 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.
120 2013-12-19.txt:04:27:12: <Arufonsu> I dunno. See: https://www.youtube.com/watch?v=lTF5z9YSs8w https://github.com/jgraef/replifuck
121 2013-12-19.txt:04:34:12: <Arufonsu> Yeah.
122 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.
123 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.
124 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.
125 2013-12-19.txt:04:36:33: <Arufonsu> A majority of the time it spends executing cycles, it spends mutating randomly.
126 2013-12-19.txt:04:36:40: <Arufonsu> And most of that time is spent generating random numbers.
127 2013-12-19.txt:04:45:25: <Arufonsu> I'm gonna program in a limit to the possible jump distance.
128 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.
129 2013-12-19.txt:04:46:36: <Arufonsu> Maybe the ] command uses the stack to return to its [ command.
130 2013-12-19.txt:04:48:45: <Arufonsu> I'm probably gonna ping out soon. Night, everyone.
131 2013-12-19.txt:05:09:01: -!- Arufonsu has quit (Ping timeout: 272 seconds).
132 2013-12-19.txt:11:00:29: <oerjan> <Arufonsu> I've gotta say, though, /// is a pretty great language. <-- smooth.
133 2013-12-19.txt:11:04:54: <oerjan> `pastelogs arufonsu