←2015-12-02 2015-12-03 2015-12-04→ ↑2015 ↑all
00:00:34 <hppavilion[1]> Sgeo: What is a norn exactly?
00:01:06 <Sgeo> The main focus of the Creatures series, an artificial life form with a brain and biochemistry
00:01:15 <Sgeo> https://creatures.wiki/Norn
00:01:21 <hppavilion[1]> Sgeo: That must have been an interesting introduction for cryptsting.
00:01:57 <Sgeo> cryptsting, we don't torture people here. Unless computer programs are people.
00:02:11 <Sgeo> (And even then, if people turn into computer programs someday, I won't torture them)
00:02:31 <hppavilion[1]> Sgeo: What makes the Norns go at the programmatical level?
00:02:45 <hppavilion[1]> Sgeo: But what if computer programs turn into people?
00:02:45 <Sgeo> Actually, someone I know kind of gets on my case about being careful as AI advances
00:03:30 <hppavilion[1]> There're probably being smart. But who cares? We have things to torture.
00:03:48 <Sgeo> hppavilion[1], neural network made of several lobes. Input lobes which receive data from the engine (including drives and what's nearby), a combination lobe which combines them, and output lobes, one for an action and one for a noun (attn)
00:03:52 <hppavilion[1]> (But not living things. For the record. Unless you count a Neural Network as living)
00:03:57 <Sgeo> AFK
00:04:20 <hppavilion[1]> Sgeo: Ah, that makes sense. I might use that model in my hell.
00:12:22 -!- relrod_ has changed nick to relrod.
00:12:51 -!- cryptsting has quit (Read error: Connection timed out).
00:13:25 <boily> so much for a `relcomed newcomer :/
00:13:33 <boily> fungot: were you ever `relcomed?
00:15:56 <B1ood6od> How does one go about creating an esoteric language? Is it easier to compile it, or translate to something else (c, for example)?
00:17:39 <Taneb> Do you mean define, or do you mean implement?
00:24:04 <\oren\> hi
00:24:32 <B1ood6od> I mean I'm new, and have no clue what I just asked.
00:25:56 <B1ood6od> Thanks Google. I suppose I mean implementing.
00:26:21 <\oren\> you can either make a compiler, translator, or interpreter
00:26:50 <\oren\> compiler: takes a program in language X and produces a native EXE or ELF executable
00:27:14 <\oren\> translator: takes a program in language X and produces a program in language Y
00:28:00 <\oren\> interpreter: takes a program and language X and produces the effect of running that program
00:28:32 <\oren\> any language can be used to write these
00:28:51 <B1ood6od> Hm.. It sounds an interpreter would be easiest?
00:29:01 <\oren\> usually, yes
00:29:24 <B1ood6od> So as someone who has never done something along these lines, would it be suggested that I go that route?
00:30:15 <\oren\> yeah
00:32:37 <MDude> Oh hey, people talking about Creatures?
00:32:40 <MDude> Neat.
00:39:20 <hppavilion[1]> MDude: Do you have any idea what I should do with neural networks? I want to do something, but I don't know what xD
00:39:53 <boily> hppavellon[1]. MNIST!
00:40:16 <hppavilion[1]> boily: MNIST?
00:41:17 <hppavilion[1]> B1ood6od: I recommend using an interpreter, definitely. But that's for implementing, not for creating.
00:42:22 -!- jaboja has quit (Ping timeout: 260 seconds).
00:42:49 <boily> hppavilion[1]: MNIST. http://yann.lecun.com/exdb/mnist/
00:43:54 <hppavilion[1]> boily: Oh, that's a database. I'm wondering what I should /do/ with neural networking in the /first/ place.
00:45:53 <B1ood6od> hppavilion[1]: so then does 'creating' imply designing?
00:47:11 <boily> it's a very good dataset to play with. with a neural network you can (hopefully) classify stuff, in this case handwritten digits.
00:51:34 <hppavilion[1]> B1ood6od: Yes.
00:51:42 <hppavilion[1]> Most certainly.
00:53:50 <hppavilion[1]> Sgeo: An idea for a hell is, instead of pain, using fear.
01:00:25 <hppavilion[1]> OK, Imma make a brain called Hive. Not sure how to go about it, but who cares.
01:00:40 <boily> brains are overrated.
01:00:52 <Sgeo> I feel bad if I scared cryptsting
01:01:08 <Sgeo> I don't think there's really a difference between pain and fear in norn brains
01:01:36 <Sgeo> Just what can cause them. There IS a difference between pain/fear and the rest of the drives.. the presence of the former temporarily lowers other drives
01:02:06 <Sgeo> (With the exception of one of the hunger drives, which when it returns turns into a different drive... pretty sure that's a bug in the genome)
01:16:50 -!- jaboja has joined.
02:13:26 <quintopia> helloily
02:14:15 -!- B1ood6od has quit (Read error: Connection reset by peer).
02:16:08 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
02:18:50 <quintopia> boily?
02:23:05 <quintopia> fungot, have you seen boily?
02:23:06 <fungot> quintopia: this is where we are big now it was a nonsense statement. actually, the exception only needs to ,config ,load a packages.scm defining the corresponding structure, i think
02:23:19 <quintopia> ^styles
02:23:22 <quintopia> ^style
02:23:22 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube
02:23:38 <quintopia> ^style homestuck
02:23:39 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
02:26:23 <boily> quinthellopia! sorry, was watching a horrible sequel...
02:26:34 <boily> fungot: I am here.
02:26:34 <fungot> boily: have a look. a trail of this fluid in the hall. you are going in.
02:26:42 <boily> fungot: what? no!
02:26:42 <fungot> boily: it is a hate so pure and... pumpkin seeds? i sure as hell don't care what the consequences. they allude to other things as well?
02:27:04 <boily> fungot: I don't hate pumpkin seeds, and ain't no way I'm going in. ew.
02:27:05 <fungot> boily: is it. perhaps this one. in a kid's yard. not even that sure why
02:27:19 <boily> fungot: don't ask me. you're creepy.
02:27:19 <fungot> boily: in a good way though
02:27:35 <boily> fungot: eeeeh... please consider the expression of my doubts.
02:27:56 <boily> but now, time to appreciate the softness of my pillow.
02:28:04 -!- boily has quit (Quit: INDUSTRIAL CHICKEN).
02:30:04 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:55:48 -!- bb010g has joined.
03:05:27 <MDude> I would first look into general language design.
03:05:32 <MDude> Wait I'm scrolled up.
03:05:52 <MDude> And also hppavilion talked to me?
03:08:11 <MDude> And later left.
03:12:03 <shachaf> `olist 1014
03:12:07 <HackEgo> olist 1014: shachaf oerjan Sgeo FireFly boily nortti b_jonas
03:14:12 <Sgeo> shachaf, you're fast
03:14:42 <Sgeo> Faster than IFTTT is at checking RSS and Twitter
03:18:43 -!- jaboja has quit (Ping timeout: 260 seconds).
03:20:25 <MDude> There are many uses of neural nets, but for something like norns brains I would try to actually implement Babbage.
03:22:00 <MDude> Since if the simulae brain is taken as being the cpu's emotion, one can use it to impliment the "might do" loop statement.
03:24:47 <MDude> Or Else is such a nice error handling method.
03:27:01 -!- MDude has changed nick to MDream.
03:32:45 <tswett> The ordinal numbers are keeping me awake.
03:33:12 <tswett> I'm trying to decide what I think the smallest non-well-behaved ordinal number is.
03:33:19 <tswett> And so this has me thinking about ordinal notations.
03:33:27 <tswett> Wikipedia defines a certain ordinal notation.
03:33:40 <zgrep> And doesn't follow it? :P
03:33:56 <tswett> 0 is the smallest ordinal number. Z(a,b) is the smallest ordinal number which is greater than a and b, and which is greater than Z(c,d) for c < a or for c = a and b < d.
03:34:20 <tswett> So, taken together, these definitions form an ordinal notation.
03:34:38 <tswett> Let, uh... let E be the set of all ordinal numbers defined by this notation.
03:35:20 <tswett> The notation provides a function (1 + E * E) -> E. A bijection, actually.
03:36:12 <tswett> Now...
03:36:13 <zgrep> How is Z(a,b) > Z(a,d) if b < d?
03:36:39 <tswett> Whoops. s/b < d/d < b/
03:36:56 <zgrep> Ah.
03:37:10 <tswett> And then the question is, how do you compare ordinal numbers defined in this notation?
03:37:35 <tswett> Well, let's try to compare 0 and Z(a,b). Hey, guess what? Z(a,b) is guaranteed to be greater than something, which means that it's greater than 0.
03:37:50 <tswett> Now, let's next try to compare Z(a,b) and Z(c,d).
03:38:58 <tswett> The easy case: a = c, b < d. In this case, Z(c,d) = Z(a,d) is greater than Z(a,e) for e < d, so Z(a,d) is greater than Z(a,b).
03:39:05 <tswett> And the hard case: a < c.
03:39:25 <tswett> Supposedly, in this case, Z(a,b) < Z(c,d) if and only if b < Z(c,d).
03:39:26 <tswett> Why?
03:39:48 <tswett> Well, because...
03:40:16 <tswett> Because, well...
03:40:21 <zgrep> Because a < c, so we can forget about it since Z(a,b) is greater than a,b?
03:40:52 <tswett> Ah, there's my other mistake.
03:40:57 <tswett> Okay, let me restate the definition entirely.
03:41:00 <zgrep> Heh.
03:41:20 <tswett> 0 is the smallest ordinal number. Z(a,b) is the smallest ordinal number which is greater than a and b, and which is *not equal to* Z(c,d) for c < a or for c = a and d < b.
03:43:06 <tswett> Now, it's clear enough that Z(a,b) is increasing in b.
03:43:32 <tswett> So the "easy case", comparing Z(a,b) and Z(c,d) for a = c, is still just as easy.
03:44:05 <tswett> So now the hard case, a < c. In which, supposedly, Z(a,b) < Z(c,d) if and only if b < Z(c,d).
03:44:23 <tswett> Ah, I think I'm starting to remember.
03:44:55 <tswett> Z(c,d) is a fixed point of the function Z(a,-). How do we know this? It's because... um...
03:47:23 -!- hppavilion[1] has joined.
03:47:26 <tswett> Something something normal function?
03:48:04 <tswett> Let's see. Is the function Z(a,b) normal in b?
03:49:38 <tswett> "For all ordinals a < b, f(a) < f(b)." Yup, we know that. "For every limit ordinal g, f(g) = sup {f(n) : n < g}." Um... I think so?
03:49:43 <tswett> Let me chew on that a bit.
03:50:24 <tswett> You know what, I think Z is *not* normal in b.
03:51:09 <tswett> Because Z(0,omega) is omega + 1.
03:51:39 <Sgeo> Babbage?
03:52:40 <tswett> But how about for a > 0, then is it normal?
03:53:46 * tswett peeks at the answer.
03:54:34 <tswett> Looks like the answer is: never.
03:55:29 <tswett> Let's give the Veblen functions a try.
03:55:48 <tswett> Well... wait, I don't want to do that yet.
03:57:23 <hppavilion[1]> Hello tswett.
03:57:27 <tswett> Hey hppavilion[1].
03:57:38 <hppavilion[1]> I'm now interested in Neural Networking
03:57:44 <hppavilion[1]> Particularly with PyBrain
03:58:35 <tswett> I guess a crucial fact is that the function Z(0,b) "misses" "Ord-many" ordinal numbers.
03:58:51 <tswett> After all, it's just b+1, so it misses all the limit ordinals.
03:59:07 <tswett> Sorry if I seem a bit distracted. It's because I am.
03:59:22 <hppavilion[1]> Weird
04:01:03 <tswett> So, the function Z(1,b) gives the smallest ordinal number which is greater than b and which is missed by Z(0,-).
04:01:16 <tswett> But this function *also* misses Ord-many ordinal numbers.
04:01:42 <tswett> How do we know this? Good question...
04:05:32 <tswett> Well, suppose you take the function Z(1,-) and iterate it on your favorite ordinal number. You'll get an infinite increasing sequence. Consider the limit of this sequence... call it m. Z(1,m) has to be bigger than m, by definition. But for k < m, Z(1,k) is smaller than m...
04:06:13 <tswett> ...because once you find a number in the sequence bigger than k, the following number (which is smaller than m) is bigger than Z(1,k).
04:06:37 <tswett> So, for every ordinal number, there's a bigger number which Z(1,-) misses.
04:06:43 <tswett> Z(1,-) misses Ord-many ordinal numbers.
04:07:12 <tswett> In fact, I think this is true for every function f with the property that for all ordinal numbers x, f(x) > x.
04:07:26 <hppavilion[1]> tswett: What should I purpose my Neural Net to do...
04:08:00 <hppavilion[1]> It'll definitely be bluetoothkinetic- that is, able to sense the bluetooth in the surrounding environment
04:08:34 <tswett> Well, that rules out everything unrelated to Bluetooth, right?
04:08:37 <zgrep> Teach it to hijack cars' speakers, and broadcast scary messages.
04:09:21 <hppavilion[1]> tswett: Well I want it to be more of a generic assistant and/or toy with special abilities than a single-purpose robot
04:09:54 <tswett> Do you want to actually build it into a robot?
04:10:17 <hppavilion[1]> No! Of course not
04:10:22 <hppavilion[1]> Don't be ridiculous
04:10:23 <hppavilion[1]> xD
04:10:28 <zgrep> :(
04:10:41 <tswett> So, like, this is totally software, no hardware.
04:10:42 <hppavilion[1]> I really just want a fun widget.
04:10:45 <hppavilion[1]> Yep
04:10:47 <hppavilion[1]> Just software
04:11:15 <tswett> Hmmm. It'll be hard to do something that hasn't been done before.
04:11:28 <hppavilion[1]> Pretty much
04:12:05 <tswett> You know what I've wanted to make a neural net do?
04:12:11 <hppavilion[1]> What?
04:12:13 <tswett> Take an English word and predict the corresponding Spanish word.
04:12:19 <hppavilion[1]> Huh
04:12:24 <hppavilion[1]> That'd be interesting
04:12:37 <tswett> It would, of course, come up with predictions for things that aren't actually English words, like "vonk".
04:12:40 <zgrep> There's french and german... http://104.131.78.120/
04:12:42 <hppavilion[1]> I can't figure out how to make Pybrain accept variable-width strings
04:13:13 <tswett> Is that because Pybrain feeds the entire string into the neural net all at once?
04:13:20 <hppavilion[1]> I'm not sure
04:13:28 <hppavilion[1]> tswett: You know what I want to do? Make a Neural Net that feels pain.
04:13:36 <hppavilion[1]> Then construct Neural Net hell.
04:13:58 <hppavilion[1]> Either that or make a small race of neural-net-based individuals and train them all to worship me as a god.
04:14:18 <tswett> You'll have to figure out what it means for a neural net to feel pain or to worship.
04:14:23 <tswett> In any case, theoretically, I should be sleeping right now.
04:14:31 <tswett> The only reason I'm not sleeping is that I'm thinking about ordinal numbers.
04:14:42 <tswett> So I really ought to either go to sleep, or continue thinking about ordinal numbers.
04:14:44 <tswett> I choose the latter.
04:14:46 <hppavilion[1]> tswett: Feeling pain would just be punishment; put the neural net in a state and program it to avoid being in that state.
04:15:12 <hppavilion[1]> Excellent choice, monsoir.
04:15:16 <tswett> Ah, that's easy.
04:17:02 <hppavilion[1]> tswett: And make it a big neural network so that the pain feels meaningful to us
04:20:00 <tswett> Right, now. Z(0,-) misses Ord-many numbers, so Z(1,-) exists. It misses Ord-many numbers, so Z(2,-) exists. And so forth.
04:20:34 <tswett> I'm going to temporarily forget about the question of whether or not Z(omega,-) exists.
04:20:37 <tswett> (Spoiler: it does.)
04:24:04 <tswett> Let's do a relatively concrete comparison, why not?
04:24:32 <tswett> Which is bigger: Z(6,b) or Z(7,d)?
04:24:48 <tswett> Supposedly that question reduces to this one:
04:24:53 <tswett> Which is bigger: b or Z(7,d)?
04:25:48 <tswett> And I guess that comes down to the fact that Z(7,d) can't lie in between b and Z(6,b).
04:25:52 <tswett> Well, why not?
04:26:38 <tswett> Well, suppose that b < Z(7,d).
04:28:58 <tswett> Let's see. Z(7,d) is one of the numbers that's missed by Z(6,-).
04:29:33 <tswett> Which means that Z(7,d) is not any of the elements in this sequence: b, Z(6,b), Z(6,Z(6,b)), Z(6,Z(6,Z(6,b))), ...
04:29:55 <tswett> But could it be stuck in the middle somewhere?
04:31:35 <tswett> Well... I think the answer is theoretically yes.
04:32:04 <tswett> Like, if Z(6,x) were x*2, the answer would be yes.
04:32:33 <tswett> The answer is in fact no, but we don't know this given the mere fact that Z(6,x) makes its argument bigger and misses Ord-many numbers.
04:32:39 <tswett> And is strictly increasing.
05:01:20 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
06:00:26 -!- B1ood6od has joined.
06:33:11 -!- propumpkin has joined.
06:34:15 -!- copumpkin has quit (Ping timeout: 260 seconds).
06:39:10 <HackEgo> [wiki] [[Seriously]] http://esolangs.org/w/index.php?diff=45746&oldid=45741 * 202.99.101.111 * (+10) oh, no!
07:24:12 -!- Elronnd has joined.
07:39:34 -!- Patashu has joined.
07:48:25 -!- hppavilion[1] has joined.
08:11:53 -!- mroman has joined.
08:12:00 <mroman> fnird
08:12:09 <mroman> @massages-low
08:12:09 <lambdabot> Unknown command, try @list
08:12:13 <mroman> @messages-low
08:12:13 <lambdabot> oerjan said 11h 47m 36s ago: <mroman> getVar name = do (_, _, v) <- get <-- depending on circumstances, just matching enough to ensure the resulting triple is not undefined might be too strict. does it help with a ~ before the ( ?
08:12:13 <lambdabot> oerjan said 11h 47m 7s ago: mind you, that might sometimes leak memory instead.
08:17:28 <mroman> Why do all the english documentaries sound like 50min long movie trailers?
08:18:48 <hppavilion[1]> Hm...
08:19:03 <hppavilion[1]> What cool and/or evil shit can I do with Neural Networking...
08:19:23 <hppavilion[1]> Hemroman!
08:19:35 <hppavilion[1]> ( mroman )
08:19:36 <idris-bot> (input):1:8: error: expected: "#",
08:19:36 <idris-bot> "$", "&", "&&", "&&&", "*!>",
08:19:36 <idris-bot> "*", "***", "*>", "*>|", "+",
08:19:36 <idris-bot> "++", "+++", "-", "->", ".",
08:19:36 <idris-bot> "/", "/=", ":+", ":-", "::",↵…
08:19:45 <hppavilion[1]> Crap. idris-bot.
08:34:11 -!- skarn has quit (Ping timeout: 260 seconds).
08:35:05 -!- ais523 has joined.
08:36:31 -!- skarn has joined.
08:37:55 -!- aloril has quit (Ping timeout: 260 seconds).
08:42:01 <HackEgo> [wiki] [[Three Star Programmer]] http://esolangs.org/w/index.php?diff=45747&oldid=45719 * Ais523 * (+105) /* Implementation */ add a link to my C impl
08:43:04 <B1ood6od> hppavilion[1]: you still on? Thanks for the befunge-98 suggestion. Been working on it for a few hours, I'm cloning my Rubik's encryption in it.
08:43:07 <HackEgo> [wiki] [[The Amnesiac From Minsk]] http://esolangs.org/w/index.php?diff=45748&oldid=45745 * Ais523 * (+1396) /* Implementing level 2 in level 1 */ looks like this part of the document got corrupted somehow (missing paragraphs and the wrong title for the wrong section); fixing that now
08:43:26 <hppavilion[1]> B1ood6od: I'm ALWAYS on.
08:44:05 <HackEgo> [wiki] [[Language list]] http://esolangs.org/w/index.php?diff=45749&oldid=45742 * Ais523 * (+30) /* T */ +[[The Amnesiac From Minsk]]
08:44:32 -!- aloril has joined.
08:44:37 <HackEgo> [wiki] [[Language list]] http://esolangs.org/w/index.php?diff=45750&oldid=45749 * Ais523 * (+18) /* L */ +[[Last ReSort]]
08:44:38 <B1ood6od> The way I'm doing this code though, just doesn't feel right. I feel like befunge needs to have shapes and look pretty, but so far its massive 200 line column, just to accept any ASCII character and recognize it.
08:45:41 <HackEgo> [wiki] [[User:Ais523]] http://esolangs.org/w/index.php?diff=45751&oldid=45310 * Ais523 * (+46) +2; it's unclear what to do about sort order when you create two languages concurrently, each taking influence from the other...
08:45:54 <ais523> anyone seen my recent languages, incidentally?
08:47:02 <HackEgo> [wiki] [[OISC]] http://esolangs.org/w/index.php?diff=45752&oldid=45611 * Ais523 * (+50) /* See Also */ let's create a page the old fashioned way (i.e. creating a redlink to it first), for nostalgia's sake
08:47:19 <HackEgo> [wiki] [[ZISC]] N http://esolangs.org/w/index.php?oldid=45753 * Ais523 * (+43) create redir
09:00:35 <HackEgo> [wiki] [[OISC]] http://esolangs.org/w/index.php?diff=45754&oldid=45752 * Ais523 * (-6) change categories, this one seems to fit better
09:02:41 <b_jonas> oh great
09:03:56 <ais523> hi b_jonas
09:04:51 <HackEgo> [wiki] [[Zero Instruction Set Computer]] N http://esolangs.org/w/index.php?oldid=45755 * Ais523 * (+3009) a new esoconcept
09:05:42 <b_jonas> hello, ais523
09:05:53 <ais523> have you (or anyone else here) looked at the languages I created recently?
09:06:01 <b_jonas> ais523: yes, I've looked at them
09:06:21 <ais523> any opinions about them?
09:07:11 <b_jonas> ais523: there's that limited minsky machine thing,
09:07:12 <HackEgo> [wiki] [[MATL]] http://esolangs.org/w/index.php?diff=45756&oldid=45743 * Luis Mendo * (+0) /* Compiler */
09:07:18 <ais523> b_jonas: right, that's one of them
09:07:31 <ais523> I admit I'm still stuck on level 3
09:07:54 <b_jonas> I don't really know how the lower levels work, but these kinds of limited Minsky machines can be useful for things like proving that M:tG is Turing-complete,
09:07:56 <ais523> Three Star Programmer, and later The Amnesiac From Minsk, really reignited my interest in esolangs-as-puzzles
09:08:03 <ais523> and yes, I noticed that too
09:08:09 <b_jonas> although I really don't like the exponential slowdown (sometimes double exponential).
09:08:28 <ais523> (or I probably wouldn't have thought of implementing The Amnesiac From Minsk in StackFlow)
09:08:46 <ais523> I don't like the slowdown either
09:08:56 <ais523> although you can partially work around it by writing really fast interpreters
09:08:57 <b_jonas> As for three star programmer, the reference interpreter "http://nethack4.org/esolangs/threestar.c" was down recently and I wanted to look at it, but it's up now so I can take a look.
09:09:13 <ais523> b_jonas: I actually just overwrote it with a new, much better interpreter
09:09:37 <ais523> I decided to see how fast I could make it go, so I removed all memory allocation and just use the entire data segment as the memory array
09:09:43 <b_jonas> oh, that one is scary
09:10:01 <b_jonas> so it's not a reentrant or embeddable interpreter
09:10:48 <ais523> indeed, I actually decided to avoid stdio because I wasn't quite sure it'd work
09:11:07 <ais523> it beats having to use realloc, though
09:11:22 <ais523> it's the most literal possible interpretation of "extending an array"
09:12:33 <b_jonas> Couldn't you just use a separate mmapped segment for that? Then it wouldn't mess up anything else
09:13:15 <ais523> you could try to place an mmap at a location in memory at which it could extend a long way
09:13:17 <b_jonas> Also, is it possible that it fails to extend memory when pptr goes over the limit but no cell points after that?
09:13:29 <ais523> but that's a) nonportable, and b) not necessarily going to work
09:13:39 <^^v> mmap <3
09:13:39 <ais523> and pptr's confined to a small region at the start of the data segment
09:13:46 <ais523> we store program first, then memory
09:13:55 <ais523> and pptr just loops around and around the program
09:14:00 <b_jonas> oh right
09:14:22 <b_jonas> so the program is stored before the data memory, right?
09:14:26 <ais523> right
09:14:44 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
09:14:56 <b_jonas> where do you make sure that the memory is initialized to zero when allocating the initial part?
09:15:53 <ais523> in the memory extender
09:16:02 <ais523> it's used to allocate memory initially by extending it from 0
09:16:11 <ais523> and it does a memset on the newly allocated area
09:16:36 <b_jonas> um
09:16:46 <b_jonas> why would you need memset of the newly allocated area? that's zero anyway
09:16:51 <b_jonas> I'm asking about the original area
09:16:59 <ais523> there is no original area
09:17:20 <ais523> or, well, there's the program's original data segment but it isn't used except for the normal purposes of a data segment
09:17:39 <b_jonas> oh!
09:17:40 <ais523> to create memory we write to, we always use sbrk, and then zero the space between the old and new break
09:17:55 <b_jonas> so you sbrk anyawy when you extend, even if the data segment already had some space after?
09:17:58 <b_jonas> ok
09:18:03 <b_jonas> makes sense
09:18:07 <ais523> err, I don't think you understand what sbrk does
09:18:23 <ais523> sbrk moves the end of the data segment, causing everything between the old and new break to become/cease to be data segment
09:18:39 <ais523> "space after the data segment" doesn't make sense
09:18:52 <b_jonas> as far as I can see, sbrk is a special case of mmap/munmap/mremap, which modifes the end of the data segment and returns the old end of it
09:19:06 <b_jonas> it exists only for historical reasons
09:20:24 <b_jonas> from back when there was no memory mapping, paging, or os-configurable segments, and all the cpu mmu did was to enforce that user mode can't access addresses higher than some limite
09:20:50 <ais523> the difference is that memory maps created by mmap try to avoid the area that the data segment's expected to expand into, but don't try to avoid each other
09:21:03 <ais523> and mremapping the data segment is a good way to cause bad things to happen
09:21:12 <b_jonas> so it set the notional break between the data segment and the stack segment, where the stack segment grew down from the top of the user area
09:22:16 <b_jonas> ais523: even if you mremap the data segment without changing the address? mremap can do that, it isn't only for changing the base address, it's also for changing the size.
09:22:50 <ais523> ooh, I was assuming that MREMAP_MAYMOVE couldn't be turned off but it can
09:23:17 <ais523> even then, isn't it much easier to call sbrk, than attempt to find the data segment (or an appropriate place to put a data-segment-alike) and mremap that?
09:23:31 <b_jonas> ais523: yes, certainly
09:23:33 <ais523> also mremap's Linux-specific
09:23:44 <b_jonas> sbrk is easier
09:23:48 <b_jonas> but you don't actually need mremap
09:23:57 <ais523> whereas that code runs in the union of BSD and POSIX (and the POSIX dependency is only used for error messages)
09:23:58 <b_jonas> you can use munmap + mmap
09:24:08 <ais523> err, wouldn't that deallocate the data?
09:24:15 <ais523> unless it was backed by a file
09:24:22 <ais523> which has its own issues
09:24:34 <b_jonas> yes, you'd need to back it by a file or by a "posix shared memory segment" (whcih is just a fancy libc wrapper for a file on linux)
09:24:40 <b_jonas> so yes, sbrk is probably easier
09:24:45 <b_jonas> for the data segment
09:25:19 <b_jonas> ais523: ok wait, but
09:25:56 <b_jonas> instead of taking over all the data segment, parts of which could still somehow be used by the compiler or compiler libraries or perhaps even libc, could you instead allocate the initial array with sbrk, and
09:26:07 <b_jonas> then later at each sbrk, assert that nobody called sbrk between your calls?
09:26:50 <b_jonas> that would be much more portable, because then libc (including the runtime, signal handlers, etc) or libgcc could still use areas of the data segment that it's already allocated,
09:26:55 <b_jonas> it just wouldn't be allowed to allocate more.
09:27:29 <ais523> b_jonas: no, that's exactly what I do
09:27:41 <ais523> including the assert
09:27:45 <b_jonas> great!
09:27:46 <ais523> although I guess you could remove the assert for performance
09:27:52 <b_jonas> meh
09:27:55 <ais523> I don't clear the existing bit of the data segment
09:28:01 <b_jonas> the assert doesn't really slow down anything
09:28:04 <ais523> given that that's a good way to cause your constants to start not existing
09:28:14 <ais523> and indeed, not with the current code structure
09:28:32 <ais523> the assert got inlined into the middle of a loop with some previous code and broke code locality as a result
09:28:34 <b_jonas> ok, good
09:28:57 <ais523> but the nested-loop style of writing the program persuaded gcc to not inline the allocation, which makes sense given how rarely it runs
09:29:12 -!- ^v has quit (Read error: Connection reset by peer).
09:29:25 <b_jonas> you could tell that to the compiler explicitly
09:29:37 <b_jonas> that the condition is rarely true that is
09:29:40 <b_jonas> oh well
09:30:35 <b_jonas> it's funny that the program doesn't actually have three consecutive stars by the way
09:30:53 <b_jonas> you could try to store pointers instead of integers maybe
09:31:17 <ais523> I know, storing pointers would be more efficient on many architectures
09:31:36 <b_jonas> that depends
09:31:38 <ais523> but x86 (-32 and -64 but not -16) has this really nifty addressing mode that can do the pointer deref in one instruction
09:31:55 <b_jonas> it depends on whether you want to restrict the integers to 32 bit
09:32:01 <b_jonas> if you want 32 bit, you can't use pointers
09:32:07 <b_jonas> (in x86_64 that is)
09:32:16 <b_jonas> if you want 64 bit integers, then you can.
09:32:35 <b_jonas> but 32 bit integers would be much more efficient if you're sure (and assert) the memory never grows above that
09:33:36 <HackEgo> [wiki] [[Last ReSort]] http://esolangs.org/w/index.php?diff=45757&oldid=45744 * Ais523 * (+138) mention the influence of Malbolge
09:35:36 <ais523> I'm sort-of hoping Last ReSort is TC, because its main loop is one byte shorter than MiniMAX's and thus would set a new record
09:35:56 <ais523> although it's not as elegant because MiniMAX is capable of zeroing its own memory as memory expands, and Last ReSort isn't
09:38:15 <b_jonas> um, one byte shorter in what what?
09:38:24 <b_jonas> like, some cpu implementation or something?
09:38:34 <b_jonas> and which cpu among that?
09:40:03 <b_jonas> oh well, at that point I probably don't much care about how short it is, as long as it's reasonably short.
09:40:34 -!- ^^v has quit (Ping timeout: 245 seconds).
09:40:52 <ais523> in x86 family
09:41:12 <b_jonas> "x86 family"? but x86_32 and x86_64 are different
09:41:16 <b_jonas> for these purposes
09:41:39 <ais523> b_jonas: yes, I said that intentionally, because MiniMAX used the 8086 (which is actually relevant in this case)
09:42:00 <ais523> whereas Last ReSort's ZISC I was using x86_64, although it easily ports to other 86alikes
09:42:01 <b_jonas> the 8086 as opposed to what?
09:42:21 <b_jonas> "easily ports" sure, it's a freaking C program afterall, but the number of bytes changes a lot
09:42:43 <ais523> b_jonas: as opposed to the 80386
09:42:54 <b_jonas> ...
09:42:57 <ais523> and no, I'm talking about MiniMAX/Last ReSort
09:42:58 <b_jonas> how does that matter for this?
09:43:01 <ais523> they were originally written in machine code
09:43:11 <ais523> 8 bytes versus 7 for the main loop
09:43:30 <b_jonas> hmm... let me think what the differences are that make 8086 better (as opposed to worse)
09:43:45 <b_jonas> I think push sp or pop sp work differently,
09:43:48 <ais523> the #1 biggest advantage is a default 16 bit data size
09:43:51 <b_jonas> which may help
09:44:05 <ais523> meaning your constants use up less space
09:44:10 <b_jonas> um, you can still do 16 bit data size on a 386
09:44:27 <b_jonas> all x86 cpus can do that, except in long mode
09:44:35 <b_jonas> push sp or pop sp might help actually.
09:44:42 <ais523> b_jonas: you can, but I said "default"
09:44:54 <b_jonas> they all start up in 16 bit real mode, don't they?
09:44:57 <ais523> you need to drop extra 66s and 67s into the program
09:45:03 <ais523> also I consider that to be an 8086 emulator
09:45:12 <ais523> rather than the "proper" 80386 instruction set
09:45:16 <b_jonas> what?
09:45:26 <b_jonas> the 80386 adds a lot of new features to 16 bit real mode
09:45:43 <b_jonas> lots of new instructions, including 32 bit arithmetic, in a legal and documented way
09:45:52 <b_jonas> it's not just a "8086 emulator"
09:46:01 <HackEgo> [wiki] [[MATL]] http://esolangs.org/w/index.php?diff=45758&oldid=45756 * Luis Mendo * (+261) /* Specification */
09:46:13 <b_jonas> plus the 286 adds 16-bit protected mode
09:46:39 <ais523> well, let's put it this way: MiniMAX runs in real mode, Last ReSort runs in protected mode
09:46:44 <b_jonas> ok
09:47:06 <b_jonas> but really, does the different meaning of POP SP perhaps help in one of those variants, for one-byte dereferencing?
09:47:34 <b_jonas> let me look it up how it works and when it's changed... hmm, where's that documented
09:47:50 <b_jonas> it must be somewhere in the intel manual probably
09:48:12 <HackEgo> [wiki] [[MATL]] http://esolangs.org/w/index.php?diff=45759&oldid=45758 * Luis Mendo * (-350) /* Specification */
09:48:17 <b_jonas> unless they decided you should just check that bit in the flags to detect the cpu
09:49:09 <ais523> POP SP sounds like the sort of instruction that's generally basically useless, but might be really helpful for an esolang
09:49:15 <ais523> what does it actually do?
09:49:29 <b_jonas> ais523: I don't know if it's push sp or pop sp
09:49:47 <b_jonas> one of them differs somewhere between the 8086 and the 80386, but I'm not sure at which stepping and which direction,
09:49:58 <b_jonas> in whether they decrement/increment first and load/store next or backwards
09:50:03 <ais523> oh, it's not quite the Last ReSort ZISC all by itself, I was hoping it would be
09:50:10 <ais523> because it's sp, not *sp, that gets incremented
09:50:20 <b_jonas> and iirc it was the recommended way to detect the difference between two of those cpus,
09:50:32 <b_jonas> although these days you can just shortcut it by detecting a later cpu directly
09:51:34 <b_jonas> two of the steppings use a bit in the flags register for detection
09:52:11 <b_jonas> (one is somewhere between 8086 and 80386, the other is between pentium with cpuinfo and pentium without cpuinfo, almost everything after pentium with cpuinfo just uses bits in cpuinfo for detection)
09:52:17 <b_jonas> (almost)
09:52:40 <b_jonas> (there's more steppings between these and I don't recall what they use
09:52:41 <b_jonas> )
09:53:26 <b_jonas> But these days the intel manual doesn't even bother to document those old cpus, so I'm not sure that part is documented.
09:53:51 <B1ood6od> Just learned not to program at 4am. I had a 200+ line if-else statement doing something I just did in 5 lines, oops.
09:54:43 <b_jonas> It only documents everything starting from the 386.
09:55:01 <b_jonas> hmm no, it actually documents a bit earlier too, partly.
09:55:56 <impomatic_> POP SP might be useful for removing a stack frame. I don't the ENTER and LEAVE were available before the 286. (I might be wrong)
09:55:58 <b_jonas> wait, there are more bits in EFLAGS for detection than I thought
09:56:03 <b_jonas> (some of them are also used for other things)
09:56:10 <b_jonas> three or four bits
09:56:12 <b_jonas> interesting
09:57:09 <b_jonas> aha, here it is
09:57:12 <b_jonas> it does document that
09:58:45 <b_jonas> it says that PUSH SP differs, namely 286 and later push the old value, the 8086 pushes the new value to the stack
09:59:04 <b_jonas> (it pretends the 80186 doesn't exist, which is mostly true)
09:59:59 <b_jonas> bit it also gives another way to distinguish between the 8086 and the 286, so I think one of those is above and one below the 80186.
10:00:10 <b_jonas> It doesn't say anything about POP SP, but you can probably find that info somewhere else.
10:01:22 <b_jonas> This is chapter 22.17 and 22.16 in the intel manual, and it also tells how to distinguish between 386 and 486 etc
10:02:20 -!- ais523 has quit (Ping timeout: 246 seconds).
10:02:44 <b_jonas> But very few people use real 8086 these days, because the 80386 has obsolated it.
10:09:57 <mroman> 8086 didn't have leave
10:11:05 <mroman> also push bp wastes valuable stack space
10:11:20 <mroman> on 8086 micros with 128 bytes RAM
10:11:46 <mroman> well depends on how much recursion.
10:12:09 <mroman> using recursion on micros should be done carefully
10:13:05 <b_jonas> Although I think POP SP doesn't help three star programmer no matter how it works.
10:13:35 <mroman> b_jonas: looks like LEAVE was added with 186
10:15:11 <mroman> hm.
10:15:17 <mroman> do compilers use conditional moves?
10:17:43 <mroman> PUNPCKHQDQ
10:18:15 <mroman> RSQRTSS
10:18:31 <mroman> didn't somebody make a "is this a real instruction or not?" quiz?
10:19:22 <b_jonas> mroman: of course they use conditional moves. conditional moves are the best thing since sliced bread. (if you compile for x86_32, then of course they might not use them unless you tell them that it's ok if the program runs only on later archs)
10:19:59 <b_jonas> they're much better than the silly SETC stuff from 386.
10:21:21 <mroman> -march=i686
10:21:29 <mroman> I guess you need that with gcc?
10:21:39 <mroman> and at least -O2 probably
10:21:43 <b_jonas> mroman: I'm not sure that enough. conditional moves are new, sadly.
10:21:56 <b_jonas> but probably enough. I don't know really.
10:22:09 <b_jonas> if you want to be sure, read the docs and/or test.
10:22:34 <b_jonas> I only care about serious (non-eso) optimization stuff for x86_64, where luckily they're always available.
10:24:09 <mroman> yeah
10:24:16 <mroman> I should switch to 64bit OS at some point
10:24:32 <mroman> seeing that certain people don't ever provide 32bit support for their software
10:24:35 <mroman> *even
10:24:40 <mroman> like docker and shit
10:24:57 <b_jonas> you should definitely switch. it's way better.
10:25:14 <mroman> I don't know.
10:25:20 <mroman> 2GB oughta be enough RAM for everybody
10:25:53 <b_jonas> it's not about the ram
10:26:03 <b_jonas> it's about code that's more efficient
10:26:16 <b_jonas> because you have more registers and stuff
10:26:27 <b_jonas> a better abi that doesn't try to be compatible with ancient stuff
10:26:51 <b_jonas> and programs aren't compiled for compatibility with very old cpus "just in case" someone runs them on a real 386
10:27:05 <b_jonas> so they can all assume at least sse2
10:27:13 <b_jonas> (you can compile your programs for higher)
10:27:38 <b_jonas> but mostly, the extra registers make the programs much more efficient
10:45:10 <mroman> hm
10:45:20 <mroman> I think I'm going to write something that targets HackVM
10:59:59 -!- shikhin_ has joined.
11:02:18 -!- ais523 has joined.
11:03:45 -!- shikhin has quit (Read error: Connection reset by peer).
11:03:45 -!- clog has quit (Ping timeout: 276 seconds).
11:09:41 <ais523> bye clog
11:10:07 -!- FreeFull has quit (Quit: See ya).
11:26:10 -!- boily has joined.
11:32:23 -!- ais523 has quit.
11:37:18 -!- ais523 has joined.
11:37:28 -!- ais523 has quit (Client Quit).
11:42:26 -!- Patashu has quit (Ping timeout: 246 seconds).
11:42:54 -!- ais523 has joined.
11:45:03 -!- Frooxius has quit (Quit: *bubbles away*).
11:45:38 -!- Frooxius has joined.
11:46:06 -!- Frooxius has quit (Remote host closed the connection).
11:48:18 -!- Frooxius has joined.
11:52:40 -!- ais523 has quit.
11:55:18 -!- ais523 has joined.
12:12:57 -!- ais523 has quit.
12:14:04 -!- ais523 has joined.
12:19:42 -!- shikhin_ has changed nick to shikhin.
12:24:43 -!- ais523 has quit (Ping timeout: 260 seconds).
12:26:09 -!- clog has joined.
12:27:54 <HackEgo> [wiki] [[Talk:HelloWorld]] http://esolangs.org/w/index.php?diff=45760&oldid=20240 * LegionMammal978 * (+99)
12:27:59 -!- shikhin has changed nick to howdoesthislook.
12:28:10 -!- howdoesthislook has changed nick to shikhin.
12:28:22 <HackEgo> [wiki] [[Talk:HelloWorld]] http://esolangs.org/w/index.php?diff=45761&oldid=45760 * LegionMammal978 * (+109)
12:32:30 -!- boily has quit (Quit: FLOWERING CHICKEN).
12:34:44 -!- MDream has changed nick to MDude.
12:37:06 <HackEgo> [wiki] [[LLL]] http://esolangs.org/w/index.php?diff=45762&oldid=37359 * LegionMammal978 * (+9)
12:50:28 -!- ais523 has joined.
13:09:52 -!- ais523 has quit.
13:12:17 -!- atslash has quit (Read error: Connection reset by peer).
13:12:25 -!- atslash has joined.
13:13:38 -!- ais523 has joined.
13:14:57 -!- ais523 has quit (Client Quit).
13:19:49 -!- ais523 has joined.
13:19:55 <ais523> what is with this connection today?
13:23:29 -!- AnotherTest has joined.
13:25:01 <b_jonas> ais523: freenode troubles maybe?
13:25:05 -!- ais523 has quit.
13:26:32 -!- ais523 has joined.
13:26:44 <ais523> it's weird, the Internet connection generally doesn't drop
13:26:51 <ais523> but my client thinks it has for some reason and disconnects
13:27:00 <ais523> then when I /reconnect it often (but not always) reconnects almost instantly
13:55:31 -!- ais523 has quit.
13:57:35 -!- ais523 has joined.
13:58:03 -!- oerjan has joined.
13:58:43 * oerjan now back on his own computer, and Windows 8...
14:01:39 <ais523> hi oerjan
14:01:44 <ais523> did you see the esolangs I posted recently?
14:02:13 <oerjan> not _very_ recently, been thinking a bit about 3SP
14:03:58 <ais523> right
14:04:35 <ais523> I have a construction for cyclic tag in 3SP, but I haven't tested it because it's actually surprisingly hard to get it to produce output without very repetitive programs
14:06:46 <ais523> then I got sidetracked trying to create a version of cyclic tag with multithreading library support
14:06:50 <ais523> *multithreading and library support
14:07:41 <HackEgo> [wiki] [[Three Star Programmer]] http://esolangs.org/w/index.php?diff=45763&oldid=45747 * Ais523 * (-178) /* External resources */ remove the minimal interp because I overwrote it by mistake; if anyone needs a copy ask me for one
14:07:59 <ais523> then I tried to write an efficient 3SP interp (which is now on the wiki) and spent some time getting the C compiler to generate the fastest possible asm for it
14:08:44 <ais523> then I decided that it was ugly to have a separate IP and data pointer, so I invented the concept of a ZISC, and then from there stumbled Last ReSort, and from there stumbled The Amnesiac From Minsk
14:08:59 <ais523> although those two languages were created concurrently, and have inspirations from all over the place
14:10:01 <b_jonas> yeah... I would expect three star programmer would be hard to program
14:10:23 <ais523> actually I decided that three star programmer was too easy ;-)
14:10:45 -!- ais523 has quit.
14:11:03 -!- ais523 has joined.
14:11:42 <ais523> OTOH Last ReSort may be too hard, but at least I'm about halfway through The Amensiac From Minsk's levels (Last ReSort is level 4; I've completed level 2 and feel like I have a decent handle on what level 3 is like)
14:12:02 <FireFly> Can I just say that I appreciate the punny names?
14:16:01 <b_jonas> Hehe, "halfway through"
14:16:04 <b_jonas> it doesn't really work like that
14:16:33 <b_jonas> I mean, they might simply not be Turing complete.
14:16:47 <oerjan> AND WHAT'S THE CHANCES OF THAT
14:16:56 <ais523> FireFly: sometimes I have huge trouble naming esolangs, but it's rare
14:17:24 <ais523> so I try to make good ones
14:17:36 <ais523> also I was surprised that no other esolang name starts with "The" and a space (and only one other starts with "The" full stop)
14:17:54 <FireFly> Hm, that is surprising, yeah
14:18:10 <b_jonas> As for me, I should work on documenting those Amycus variants more properly.
14:18:17 <b_jonas> They're interesting.
14:18:24 -!- oerjan has quit (Quit: Later).
14:22:20 <ais523> b_jonas: at first I thought they might be
14:22:42 <ais523> then I managed to mould the language into something vaguely resembling actual computation (The Amnesiac From Minsk level 4)
14:23:14 <ais523> in particular you can easily just use sets of three adjacent counters to implement an arbitrary Minsky machine for any finite length of time, but then bad undefined critical things start happenin when you run out of padding
14:25:56 <b_jonas> yes, but "for any finite length of time" doesn't really convince me when there's an exponential blowup in the translation so you do way more work if you translate than if you just run the original Minsky machine.
14:26:04 <b_jonas> It's easy to get contradictory results that way.
14:27:09 <ais523> b_jonas: oh, definitely, I'm not claiming that's a TCness proof
14:27:23 <ais523> but it makes you want to look for one
14:27:36 <ais523> it's a much higher level of computation than, say, Xigxag's ever been shown to be capable of
14:27:47 <ais523> (Xigxag is my go-to example of "almost certainly not TC but nobody knows how to prove it")
14:28:19 <b_jonas> right
14:28:31 <FireFly> Oh, that one
14:31:14 <b_jonas> I was thinking a bit of Amycus without rule 0 and 2. That's definitely not Turing-complete, in fact it can be evaluated for any program and input in a double-exponential time or something like that,
14:31:51 -!- jaboja has joined.
14:31:53 <b_jonas> or maybe in some tetrated time or something, I dunno.
14:32:17 <b_jonas> But there's still the question of whether it can do meaningful computation, and of what class, or instead you have to do more computation when translating than what it does.
14:33:43 <b_jonas> At least if you represent program and input as nested lists, not as numbers.
14:36:05 -!- ais523 has quit.
14:37:23 -!- ais523 has joined.
14:40:51 -!- Welo has joined.
14:45:31 <\oren\> I have invented the craziest breakfast drink. It is made by pouring boiling expresso slowly over cold milk. the two liquids form two umixing layers. when drunk, you drink it quickly so the cold milk flows over your tongue with hot expresso on top, thus you don't burn your tongue.
14:49:23 <b_jonas> \oren\: "craziest" is hard to claim
14:49:31 -!- `^_^v has joined.
14:53:11 <FireFly> I read that as "when [you are] drunk" rather than "when consumed"
14:54:47 -!- AnotherTest has quit (Ping timeout: 264 seconds).
14:56:40 <ais523> well it sounds a lot like the sort of thing people will hope will act as a hangover cure
15:01:27 -!- ais523 has quit.
15:02:43 -!- ais523 has joined.
15:03:27 <ais523> <TheManaSource, on Reddit> We crashed MODO. It started re-creating the game state from the beginning of the game over and over again. Looped for awhile until we just gave up and I conceded. xD ← so that's what happens if you set up a loop that makes infinitely many tokens
15:03:38 <ais523> this doesn't speak well for our attempts to run programs on it
15:04:07 <b_jonas> ais523: a non-interruptible one?
15:04:29 <ais523> that particular one was a) interruptible and b) not even technically infinite
15:04:38 <ais523> but it doubled the number of tokens each turn, IIRC
15:04:49 <b_jonas> only doubled? :-)
15:05:05 <ais523> yes, that's all that Magic Online needed to crash :-)
15:06:31 -!- ais523 has quit (Client Quit).
15:07:29 -!- ais523 has joined.
15:08:12 <b_jonas> wasn't there some creature, possibly in Future Sight, that doubled every three turns?
15:09:29 <ais523> chronozoa, perhaps?
15:09:49 <ais523> it's pretty hard to keep it alive long enough to start going exponential, though
15:10:08 <b_jonas> yes, I figured that
15:10:20 <b_jonas> oh, it's in Planar Chaos. no wonder I didn't find it.
15:11:11 <b_jonas> you'd need two Paradox Hazes on yourself if you wanted it to double every turn.
15:21:44 -!- ais523 has quit.
15:23:03 -!- ais523 has joined.
15:27:36 <HackEgo> [wiki] [[Special:Log/newusers]] create * Albedo * New user account
15:31:52 -!- ais523 has quit.
15:34:39 -!- ais523 has joined.
15:49:42 -!- aloril_ has joined.
15:51:00 -!- aloril has quit (Ping timeout: 245 seconds).
16:00:55 -!- gamemanj has joined.
16:02:18 -!- atslash has quit (Read error: Connection reset by peer).
16:07:07 -!- atslash has joined.
16:07:22 -!- ais523 has quit.
16:09:04 -!- ais523 has joined.
16:13:26 -!- jaboja has quit (Ping timeout: 250 seconds).
16:52:53 -!- aretecode has joined.
16:55:08 <myname> http://codegolf.stackexchange.com/questions/65641/the-versatile-integer-printer i don't even
16:58:56 -!- J_Arcane has quit (Ping timeout: 250 seconds).
17:01:05 -!- propumpkin has changed nick to copumpkin.
17:02:45 -!- mroman has quit (Quit: Lost terminal).
17:03:09 -!- ais523 has quit.
17:03:29 -!- ais523 has joined.
17:06:37 <ais523> myname: it's basically a polyglot challenge
17:06:55 <myname> a crazy one at that
17:08:30 -!- bb010g has quit (Quit: Connection closed for inactivity).
17:10:26 <ais523> it's about the simplest polyglot challenge you could come up with, isn't it?
17:11:18 <FireFly> I guess it puts an emphasis on coming up with clever polyglot expressions over polyglot "statements"/completely independent code
17:11:43 -!- spiette has quit (Ping timeout: 260 seconds).
17:19:38 <b_jonas> Can you point me on a description on how to write HTML documents with MathML content that also has custom fallback HTML content for when MathML isn't supported, without client-side scripting?
17:19:57 <b_jonas> There's probably some simple way for this.
17:23:51 <b_jonas> As a bonus, how to do it if the non-MathML browser might have no CSS support, nor support for the HTML attribute hidden. This may be impossible.
17:25:05 <FireFly> It probably is
17:25:26 <b_jonas> But with CSS allowed, there is probably some easy way, possibly built into the design of MathML.
17:26:01 <b_jonas> Like, the equivalent of a NOSCRIPT tag, which is hidden if mathml is supported, or some way in CSS to mark something as hidden if mathml is supported.
17:26:33 -!- spiette has joined.
17:27:06 <b_jonas> If it's impossible, I might try to make two versions of each HTML page, one with MathML and one without, but that would suck for the users.
17:27:24 -!- jaboja has joined.
17:28:16 <FireFly> Looks like it might require JS
17:28:39 -!- blackcat-783 has joined.
17:32:58 <b_jonas> Even if there's no builtin mechanism, there's probably a nonportable hack for this.
17:33:09 <b_jonas> But I hope there's a designed way.
17:33:51 -!- oerjan has joined.
17:38:08 -!- blackcat-783 has quit (Max SendQ exceeded).
17:43:44 -!- ais523 has quit.
17:46:36 -!- ais523 has joined.
17:52:11 <ais523> are wiki dumps/backups available anywhere?
17:52:13 <ais523> I'd like one for offline reading
17:52:19 <ais523> (fizzie?)
17:52:25 <b_jonas> ais523: of the esowiki?
17:52:30 <ais523> right
17:52:40 <b_jonas> I don't have one.
17:53:17 <b_jonas> I download some sites I consider valuable and likely to disappear forever, but esowiki isn't one of those.
17:53:22 <ais523> I have an old one but am not sure where I got it from
17:53:38 <b_jonas> (I'm downloading some images from some site for such purposes right now.)
17:53:49 <ais523> ooh, there are instructions linked from the main paeg
17:53:51 <ais523> *main page
17:53:58 <ais523> no idea if they still work
17:54:57 <fizzie> The dump thing might still be working; I think we did migrate it.
17:55:34 <ais523> right, I'll give it a go once zsync's finished installing, then
17:55:38 <ais523> looks like that's how I got my current dump
17:55:47 <ais523> I see shell scripts next to it containing zsync commands
17:56:20 -!- sebbu3 has joined.
17:56:21 <b_jonas> ais523: do you know anything about mathml?
17:56:33 <ais523> not very much at all, sadly
17:56:34 -!- sebbu has quit (Ping timeout: 250 seconds).
17:56:38 <b_jonas> oh, maybe you were here when I asked that
17:56:57 -!- sebbu3 has changed nick to sebbu.
17:57:05 <b_jonas> hmm.... maybe I should ask David Madore, he might be kind enough to point me to the right direction. I'll try some more searching first though.
17:58:02 <fizzie> The dump .xml.gz and .xml.zsync files have a last-modified timestamp of today, so I think they're current.
17:58:26 <ais523> well zsync's running now
17:58:39 <ais523> also the connection speed is changing more or less at random
17:58:45 <ais523> sometimes single-digits kbps, sometimes three-digit
17:58:57 -!- ais523 has quit.
17:59:55 -!- ais523 has joined.
18:00:14 <b_jonas> ais523: are you downloading esowiki?
18:00:36 <ais523> yes
18:00:52 <b_jonas> Ok, I admit I do also download some websites that I don't think will disappear. That can be still useful, for local viewing and searching.
18:01:07 <b_jonas> But downloading ones that I fear could disappear is also important.
18:01:15 <FireFly> Indeed
18:01:20 <ais523> right, that's the main reason I wanted it
18:01:42 <b_jonas> Also, there's at least one website that I've downloaded because it has valuable information presented badly, but I could improve its presentation and make a usable mirror.
18:02:23 <b_jonas> ais523: if you need help in mediawiki automation, including batch editing, I may be able to help in that, although I think you already know a lot about it.
18:02:37 <ais523> batch editing is something that we rarely need
18:02:47 <ais523> the special case of spam cleanup, we used to need, but I'm pretty fast at that
18:03:17 <ais523> and go it
18:03:18 <ais523> thanks
18:03:31 -!- j-bot has quit (Ping timeout: 260 seconds).
18:03:56 <b_jonas> yes. I did batch editing only once so far, and it's more like batch replacing pages with newly formatted versions with the same content from the same source without using the previous content of the mediawiki pages.
18:04:55 -!- SirCmpwn has quit (Ping timeout: 260 seconds).
18:05:02 <b_jonas> I have more ideas (if I have time), but more batch querying than batch editing.
18:05:20 -!- MDude has quit (Ping timeout: 246 seconds).
18:07:43 -!- pdxleif has quit (Ping timeout: 260 seconds).
18:08:18 <ais523> I also used to run a bot on Wikipedia
18:09:06 -!- pdxleif has joined.
18:13:14 <oerjan> @tell Blood6od <B1ood6od> Hm.. It sounds an interpreter would be easiest? <-- there _are_ exceptions, for example it's easier to compile brainfuck to C than to interpret it in C
18:13:14 <lambdabot> Consider it noted.
18:14:09 -!- ais523 has quit.
18:14:23 <b_jonas> sure, and it's easier to compile C to C with cat than to interpret C
18:14:51 <oerjan> heh
18:17:37 -!- hppavilion[1] has joined.
18:24:00 -!- FreeFull has joined.
18:25:36 <oerjan> @tell tswett <tswett> The ordinal numbers are keeping me awake. <-- try attaching them to sheep hth
18:25:36 <lambdabot> Consider it noted.
18:28:43 * hppavilion[1] begins a slow clap for oerjan.
18:29:57 <oerjan> yay
18:30:18 -!- SirCmpwn has joined.
18:31:29 <hppavilion[1]> So when I make my own little AI using neural networking...
18:31:48 <hppavilion[1]> I'm probably going to give it an external calculator it can use for doing rapid calculation.
18:31:50 <oerjan> @tell tswett i'm not convinced your Z(a,b) defines an ordinal number for a > 0. it seems to me that Z(0,b) = b for any infinite ordinal b, so there _are_ no larger ordinals for a > 0 to choose from.
18:31:50 <lambdabot> Consider it noted.
18:31:59 <hppavilion[1]> Because I am a kind and loving god.
18:36:43 <oerjan> @tell tswett hm wait, Z(0,b) = b+1.
18:36:43 <lambdabot> Consider it noted.
18:52:10 <oerjan> @tell tswett oh hm i see, when you fixed it to "not equal to" it makes more sense. because Z(0,...) leaves out all the limit ordinals, so Z(1,...) gets some of those.
18:52:10 <lambdabot> Consider it noted.
18:53:47 <oerjan> @tell tswett except i fail to see how there's anything left for Z(2,...).
18:53:47 <lambdabot> Consider it noted.
18:56:38 <oerjan> @tell tswett i really should learn not to @tell until i've read through the whole log discussion...
18:56:39 <lambdabot> Consider it noted.
19:00:35 -!- mtve has quit (Ping timeout: 245 seconds).
19:01:11 -!- mtve has joined.
19:10:33 <hppavilion[1]> Polynomial neural networking: Neural Networking using polynomials instead of floating-point numbers.
19:11:47 <hppavilion[1]> In fact, even a Stringy Neural Network would be cool
19:15:44 <HackEgo> [wiki] [[TypeNet (Python library)]] N http://esolangs.org/w/index.php?oldid=45764 * Hppavilion1 * (+319) Created Page (WIP)
19:18:18 <HackEgo> [wiki] [[Template:WIP]] http://esolangs.org/w/index.php?diff=45765&oldid=44862 * Hppavilion1 * (+29) Not always languages
19:19:21 -!- B1ood6od has quit (Read error: Connection reset by peer).
19:22:54 -!- AnotherTest has joined.
19:24:43 -!- spiette has quit (Ping timeout: 260 seconds).
19:50:20 -!- `^_^v has quit (Ping timeout: 246 seconds).
19:50:36 -!- Welo has quit (Quit: Leaving).
20:00:53 -!- ^^v has joined.
20:01:33 -!- Patashu has joined.
20:02:20 -!- ^v has joined.
20:21:11 -!- B1ood6od has joined.
20:29:53 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
20:31:02 -!- hppavilion[1] has joined.
20:32:32 -!- FreeFull has quit (Quit: Rebooting).
20:34:11 -!- FreeFull has joined.
20:36:35 -!- Patashu has quit (Ping timeout: 260 seconds).
20:58:38 -!- spiette has joined.
20:59:04 <B1ood6od> hppavilion[1]: only issue I had with befunge-98 was when it came to looping, to get another character. Other than that, got a working ASCII > cube notation
20:59:59 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
21:00:02 <quintopia> what goes
21:26:35 -!- gamemanj has quit (Ping timeout: 246 seconds).
21:32:38 -!- jaboja64 has joined.
21:36:25 -!- jaboja has quit (Ping timeout: 245 seconds).
21:36:49 -!- Lord_of_Life has quit (Excess Flood).
21:39:06 -!- Lord_of_- has joined.
21:39:29 -!- jaboja64 has changed nick to jaboja.
21:39:54 -!- hppavilion[1] has joined.
21:47:16 -!- augur has quit (Read error: Connection reset by peer).
21:48:04 -!- augur has joined.
21:50:54 <B1ood6od> hppavilion[1]: Do you have anymore languages to suggest?
21:57:56 -!- ^v^v has joined.
21:59:15 <hppavilion[1]> B1ood6od: Well if you could implement it in Brainfuck that'd be amazing xD
21:59:29 <hppavilion[1]> B1ood6od: Thue is fun, but a little too tarpitty
21:59:35 <hppavilion[1]> I advise you make a language
22:00:18 <hppavilion[1]> It isn't too difficult to make a standard-awesome esolang. A godly esolang is a little more difficult
22:00:27 <hppavilion[1]> ("Godly" including Befunge, Unlambda, etc.)
22:00:49 <B1ood6od> I don't think I'm at the level of making a language yet, I'd like to work with existing ones a bit more to learn what I'd like to make, ya know? My goal honestly is implementing it in a bunch of fun or hard languages (assembly is a plan, definitely).
22:00:53 <hppavilion[1]> B1ood6od: I could guide you through the process
22:01:01 <B1ood6od> github.com/b1ood6od/rubiks
22:01:02 <hppavilion[1]> Nonsense! EVERYONE is at that level xD
22:01:05 <B1ood6od> Is as far as I am.
22:01:40 <hppavilion[1]> B1ood6od: If you implement it in Malebolge (Unshackled?), we will all worship you as our Messiah.
22:02:12 <B1ood6od> Never heard of it (I'm still new to esoteric stuff, first time I used one was two days ago when I made it in LOLCODE)
22:02:13 <hppavilion[1]> B1ood6od: The interesting thing about esolangs is you need not have advanced knowledge of language design to make one; just knowing the basics is enough.
22:02:34 <hppavilion[1]> B1ood6od: It's one of the big 5. Just check the wiki.
22:02:56 <hppavilion[1]> I think it's spelled Malbolge
22:03:09 <hppavilion[1]> (Named after Malebolge, a circle of hell in Dante's Inferno)
22:03:20 <hppavilion[1]> (Or part of one of the circles; I think it's the one where frauds go)
22:03:35 <B1ood6od> OH, yeah I remember skimming that one.
22:03:43 <hppavilion[1]> Yep
22:03:51 <hppavilion[1]> I dare you to try to implement anything it it xD
22:04:05 <hppavilion[1]> B1ood6od: I had an idea that might be of interest to you if you like encryption
22:04:33 <B1ood6od> I'm definitely interested in it, as I plan to join the navy in about a year to go into cryptology.
22:04:48 <hppavilion[1]> That's a good goal
22:05:06 <hppavilion[1]> I call it "Executable Encryption" (not to be confused with encrypting an executable file)
22:05:18 <hppavilion[1]> Basically, you encode plaintext by converting it into a program written in an Esolang.
22:05:53 <hppavilion[1]> The only way to access the plaintext is by executing the cyphertext. It has a series of conditions that must be satisfied, such as entering the correct password, that are literally built-in to the program
22:06:31 <hppavilion[1]> The language itself is nigh-impossible to comprehend; it's a fungeoid that works in upwards of 50 different dimensions.
22:07:05 <hppavilion[1]> So you can't only not read the cyphertext; you can't even see it for what it really is.
22:07:47 <hppavilion[1]> B1ood6od: Only problem is it's so complicated that if there are any ways to bypass it, it'd be hard to tell unless you were a genius, which you have to assume the person trying to break your encryption is under the Laws of Cryptography
22:08:45 <hppavilion[1]> It's more of an idea than a usable thing; but it's cool
22:08:49 <hppavilion[1]> B1ood6od: What do you think?
22:09:46 <B1ood6od> That's, complicated. Lol. But see pretty epic. A fungeoid is a program with pointers, right? I've yet to grasp the meaning of "dimension" with them though.
22:10:38 <hppavilion[1]> Another idea is to make a computer program generate a partially-random language by example, that is, it creates a bunch of files and tells the computer that it means the same thing as one in the language of the message trying to be sent
22:11:16 <hppavilion[1]> Then, it use a Google Translate-like software (which learns by comparing two documents with the same thing in different languages) to translate the message into the randomly-generated language.
22:11:58 <hppavilion[1]> Then you transmit the message and the key used to trigger the pseudo-random number generator that produced the original language. The other person uses google translate in reverse to detranslate
22:12:06 <hppavilion[1]> Boom. Modernized Navajo Code Talkers.
22:12:18 <hppavilion[1]> B1ood6od: Did you read the page on Fungoids on the wiki?
22:13:10 <hppavilion[1]> *Fungeoids
22:13:15 <hppavilion[1]> B1ood6od?
22:13:32 -!- oerjan has quit (Quit: leaving).
22:14:22 * APic thinks somebody has claimed to solve the „Turing-Test“ this way. But probably Alan would have disallowed People literally coming from oppsite Corners of one of the available Earths.
22:15:31 <hppavilion[1]> Basically, the way "dimension" works in it is that the language is an array of instructions instead of a list of instructions and some flow to repeat. The IP ("instruction pointer") is the same as in a normal language (points to the current list index), /except/ that it has a sense of "delta" that tells it which instruction to move along. The "dimension" comes from the fact that the IP has a location that is expressed as an ordered pair
22:15:31 <hppavilion[1]> instead of just a number.
22:15:40 <hppavilion[1]> If that helps, B1ood6od
22:16:30 <B1ood6od> I'm in another app reading up on them. Thanks for the description.
22:17:15 <hppavilion[1]> YW
22:19:23 <HackEgo> [wiki] [[User:Hppavilion1/UniFunge]] http://esolangs.org/w/index.php?diff=45766&oldid=45650 * Hppavilion1 * (+624) Basic Operators
22:20:10 <hppavilion[1]> B1ood6od: I highly recommend you develop a language though; it'll give you a better understanding of what you're doing. Also, I like new languages.
22:20:33 <hppavilion[1]> And it doesn't take advanced knowledge, just a basic understanding of CS and knowing at least one normal language
22:20:52 <B1ood6od> What all will be required? I'm sure it takes some planning.
22:21:03 <hppavilion[1]> B1ood6od: Depends on how you do it.
22:21:24 <hppavilion[1]> For starters, do you want your language to be Imperative or Declarative? Or a weird mix?
22:21:44 <hppavilion[1]> (Imperative is the easiest)
22:22:36 <hppavilion[1]> (Usually. If you happen to know of a powerful-and-simple-but-as-of-yet-unused computational model, then Declarative can be easy)
22:23:14 -!- B1ood6od has quit (Read error: Connection reset by peer).
22:23:27 <HackEgo> [wiki] [[Special:Log/newusers]] create * Derobos * New user account
22:23:44 -!- B1ood6od has joined.
22:24:54 -!- j-bot has joined.
22:25:31 <HackEgo> [wiki] [[Deadfish]] http://esolangs.org/w/index.php?diff=45767&oldid=45175 * Derobos * (+779) /* C */
22:25:46 -!- j-bot has quit (Remote host closed the connection).
22:26:25 <HackEgo> [wiki] [[Deadfish]] http://esolangs.org/w/index.php?diff=45768&oldid=45767 * Derobos * (-12) /* C */
22:26:31 -!- j-bot has joined.
22:27:20 <B1ood6od> Woops, internet went crazy.
22:28:54 <APic> During the Times it had not been crazy it was probably still called the ArpaNet.
22:35:26 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:45:24 -!- haavard has left ("WeeChat 1.1.1").
22:55:45 <HackEgo> [wiki] [[Control Flow]] N http://esolangs.org/w/index.php?oldid=45769 * Hppavilion1 * (+5762) Created Page
23:01:07 <HackEgo> [wiki] [[Control Flow]] http://esolangs.org/w/index.php?diff=45770&oldid=45769 * Hppavilion1 * (+471) /* Esoteric Things */ DLUF and For..else/While..else
23:01:52 <hppavilion[1]> B1ood6od: Can you think of any Esoteric Control Flow, out of curiousity? That'd be a GREAT thing to put in a language
23:05:15 -!- lleu has joined.
23:05:15 -!- lleu has quit (Changing host).
23:05:15 -!- lleu has joined.
23:07:49 <HackEgo> [wiki] [[Control Flow]] http://esolangs.org/w/index.php?diff=45771&oldid=45770 * Hppavilion1 * (+637) /* Higher-level Things */ Procedures, subroutines, coroutines, case construct
23:10:45 <hppavilion[1]> B1ood6od: I'm making a language called Wybe :)
23:12:48 -!- lleu has quit (Read error: Connection reset by peer).
23:12:57 -!- lleu has joined.
23:12:57 -!- lleu has quit (Changing host).
23:12:57 -!- lleu has joined.
23:13:18 <hppavilion[1]> It's stacky and designed to be usable. Its current purpose is an embedded language used for connecting APIs to each other, e.g. SAPIing Skype (making you computer read skype messages out loud)
23:14:58 -!- J_Arcane has joined.
23:18:31 <HackEgo> [wiki] [[MATL]] http://esolangs.org/w/index.php?diff=45772&oldid=45759 * Luis Mendo * (-1192) /* Specification */
23:18:59 -!- lleu has quit (Ping timeout: 260 seconds).
23:21:37 <HackEgo> [wiki] [[MATL]] http://esolangs.org/w/index.php?diff=45773&oldid=45772 * Luis Mendo * (+0) /* Compiler */
23:34:52 -!- lleu has joined.
23:34:52 -!- lleu has quit (Changing host).
23:34:52 -!- lleu has joined.
23:38:36 -!- lleu has quit (Read error: Connection reset by peer).
23:39:54 -!- aretecode has quit (Quit: Toodaloo).
23:44:40 -!- Lord_of_- has quit (Excess Flood).
23:47:36 -!- Lord_of_- has joined.
23:51:24 -!- Lord_of_- has quit (Excess Flood).
23:53:21 <Taneb> Things I am irrationally scared of: the Bronze Age collapse
23:53:36 -!- Lord_of_- has joined.
23:53:43 <hppavilion[1]> Taneb: Is that where someone fucks something up and we all revert to the bronze age?
23:53:52 <hppavilion[1]> Or was that the collapse of the bronze age?
23:53:59 <Taneb> The second one
23:54:16 <hppavilion[1]> Or is that where you collapse after a heart attack in your Bronze Years (similar to your Golden Years)
23:54:30 <hppavilion[1]> Because that one is definitely scary.
23:54:30 <Taneb> Still the second one
23:54:56 <Taneb> Basically, society in the near east and eastern meditteranean suddenly collapsed and no-one knows why
23:55:20 <hppavilion[1]> Ah
23:55:33 <hppavilion[1]> Wait, recently?
23:55:36 <hppavilion[1]> Ah
23:55:37 <hppavilion[1]> Right
23:55:40 <hppavilion[1]> The second one
23:55:45 <hppavilion[1]> Taneb: Why?
23:55:46 <hppavilion[1]> xD
23:55:55 <Taneb> It's terrifying that something like that can happen
23:56:14 <hppavilion[1]> Well of course it can heppen
23:56:25 <hppavilion[1]> My entire evil plan revolves around that being a possibility
←2015-12-02 2015-12-03 2015-12-04→ ↑2015 ↑all