←2016-01-30 2016-01-31 2016-02-01→ ↑2016 ↑all
00:01:11 <Elronnd> What is ban/nat/nit/nepit anyway?
00:01:30 -!- tromp_ has quit (Ping timeout: 260 seconds).
00:02:11 <zzo38> I think they said, it is the base-e unit of measurement to the bit's base-2
00:12:58 <HackEgo> [wiki] [[Esoteric units of information]] N https://esolangs.org/w/index.php?oldid=46321 * Hppavilion1 * (+5392) Created page with a good deal of partially-completed content.
00:13:55 <HackEgo> [wiki] [[Esoteric units of information]] M https://esolangs.org/w/index.php?diff=46322&oldid=46321 * Hppavilion1 * (+0) /* nat (or ban or nit or nebit) */ Formatting fix
00:14:15 <hppavilion[1]> Elronnd: e-possibilities for a bit
00:14:43 <hppavilion[1]> zzo38: I'm a "he" for future reference; no need to call me "they" (NTTAWWT)
00:14:56 <hppavilion[1]> @messages-lud
00:14:57 <lambdabot> oerjan said 6h 15m 16s ago: <hppavilion[1]> (I swear, I have no clue how I wound up there) <-- well i know why i did (for SCIENCE). alas, i note that several of the comments point out much of this can be explained by variation in broadband penetration between states.
00:14:57 <lambdabot> oerjan said 6h 14m 19s ago: so it's ice cream causing shark attacks all over again
00:16:46 <HackEgo> [wiki] [[Esoteric units of information]] https://esolangs.org/w/index.php?diff=46323&oldid=46322 * Hppavilion1 * (+0) /* TIB and STIB */ Fixed template
00:17:11 <HackEgo> [wiki] [[Esoteric units of information]] https://esolangs.org/w/index.php?diff=46324&oldid=46323 * Hppavilion1 * (+0) /* Binary (boolean) logic and gates */ Fixed template
00:19:31 <HackEgo> [wiki] [[Esoteric units of information]] https://esolangs.org/w/index.php?diff=46325&oldid=46324 * Hppavilion1 * (+2) /* Ternary logic and gates */ Indent heading
00:21:21 <Elronnd> Should I get cogmind
00:22:44 <HackEgo> [wiki] [[Esoteric units of information]] https://esolangs.org/w/index.php?diff=46326&oldid=46325 * Hppavilion1 * (+2) /* Binary (boolean) logic and gates */ Heading
00:27:00 <\oren\> it's nice that kerbins don't run out of oxygen, so you can just leave them orbiting the mun
00:27:23 <int-e> `? mun
00:27:28 <HackEgo> mun? ¯\(°​_o)/¯
00:27:31 <int-e> `? moon
00:27:34 <HackEgo> The Moon is an unprovable celestial object that is not very retroreflectorey.
00:27:45 <Elronnd> `?hackego
00:27:47 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ?hackego: not found
00:27:50 <Elronnd> `? hackego
00:27:51 <HackEgo> HackEgo, also known as HackBot, is a bot that runs arbitrary commands on Unix. See `help for info on using it. You should totally try to hax0r it! Make sure you imagine it's running as root with no sandboxing.
00:27:59 <olsner> `? int-e
00:28:01 <HackEgo> int-e är inte svensk.
00:28:13 <Elronnd> `? kerbalspaceprogram
00:28:14 <HackEgo> kerbalspaceprogram? ¯\(°​_o)/¯
00:28:25 <olsner> oh, it's even a swedish pun... did oerjan put that there?
00:28:38 <int-e> `culprits wisdom/int-e
00:28:43 <HackEgo> oerjan oerjan
00:29:19 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
00:29:41 <int-e> `? olsner
00:29:42 <HackEgo> olsner seems to exist at least. He builds all his esolangs in diesel engines.
00:29:42 -!- oerjan has joined.
00:29:50 <olsner> `? zimbabwe
00:29:51 <HackEgo> olsner's desk points zimbabwards. it is highly dependent on tswett's michiganic orientation.
00:29:52 <int-e> diesel engines?
00:30:14 -!- Melvar` has joined.
00:30:15 <int-e> `? diesel
00:30:15 <olsner> I don't remember where that comes from, probably something boily made up
00:30:16 <HackEgo> diesel? ¯\(°​_o)/¯
00:30:22 -!- Melvar has quit (Disconnected by services).
00:30:24 -!- Melvar` has changed nick to Melvar.
00:31:26 -!- jaboja has joined.
00:31:45 <oerjan> olsner: of course i put it there, jag är ju inte ligent hellre
00:32:36 <int-e> olsner: you said it yourself: 2014-01-24: <ghijfcdkml> do you guys have a particular engine you like to build your languages in? <olsner> I build all my esolangs in diesel engines <kmc> `run echo 'olsner seems to exist at least. He builds all his esolangs in diesel engines' > wisdom/olsner
00:32:50 <olsner> oh, heh
00:34:46 <oerjan> hm should that be heller my swedish grammar is lacking
00:35:03 <olsner> I think so
00:35:44 <zzo38> hppavilion[1]: What does "NTTAWWT" mean?
00:35:51 <olsner> hellre = rather, heller = whatever that word means in that phrase
00:36:36 <oerjan> both meanings are "heller" in norwegian
00:36:58 <oerjan> so i remembered hellre and thought that was the swedish version
00:37:16 <olsner> what's hellre/rather in norwegian then?
00:37:18 <int-e> zzo38: google suggests "Not That There's Anything Wrong With That."
00:37:25 <oerjan> olsner: heller
00:37:46 <oerjan> they're not distinguished
00:37:55 <olsner> right, that's what you said now that I reparsed your sentence
00:40:09 <fizzie> The emergency room of Hell.
00:40:23 <fizzie> And an evil regular expression.
00:40:31 <oerjan> new hobby: use NTTAWWT in such a way that it's insulting
00:40:36 -!- Melvar` has joined.
00:40:38 -!- tromp_ has joined.
00:40:40 <oerjan> shachaf is vegetarian NTTAWWT
00:41:14 <oerjan> fizzie: i don't get the last one
00:41:15 <fizzie> It's probably pronounced "not a twat".
00:41:18 <fizzie> oerjan: hellre.
00:41:26 <oerjan> ah
00:41:31 <int-e> oerjan has a weird sense of humor NTTAWWT
00:41:44 -!- Melvar has quit (Ping timeout: 272 seconds).
00:42:52 <int-e> But I guess it's cheating if it's insulting without the NTTAWWT.
00:43:05 <oerjan> MAYBE
00:43:37 <int-e> so, maybe: oerjan's a nice person NTTAWWT
00:43:50 <oerjan> that might be stretching it
00:43:56 <int-e> yes!
00:44:18 <int-e> makes one stop and wonder though, doesn't it...
00:44:22 <oerjan> jesus saves NTTAWWT
00:47:01 <int-e> I suspect that'll be a rather short-lived hobby. (NTTAWWT... oops.)
00:50:01 <fizzie> That's nice: I sometimes use gitg for history-browsing, but now it segfaults if I try to open the branch selection dropdown.
00:51:08 -!- Melvar`` has joined.
00:52:46 -!- Melvar` has quit (Ping timeout: 240 seconds).
00:54:39 -!- hppavilion[1] has joined.
00:55:30 -!- Melvar has joined.
00:56:55 <oerjan> `` tac <(echo a;echo b) <(echo c;echo d)
00:56:57 <HackEgo> b \ a \ d \ c
00:57:05 -!- Melvar`` has quit (Ping timeout: 276 seconds).
00:57:06 <oerjan> huh now it worked
00:57:44 <fizzie> Wha.
00:57:58 <fizzie> `` which tac
00:57:59 <HackEgo> ​/hackenv/bin/tac
00:58:07 <fizzie> Someone gone and did some sneaky stuff, I take it.
00:58:15 <oerjan> `culprits bin/tac
00:58:16 <fizzie> `culprints bin/tac
00:58:17 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: culprints: not found
00:58:19 <HackEgo> izabera izabera izabera
00:58:25 <fizzie> I can't type.
00:58:44 <fizzie> Well, I mean, it *prints* the *culprits*, it could plausibly be culprints.
00:58:52 <izabera> :)
00:58:58 <oerjan> coolprints
00:59:48 <zzo38> JavaScript allow to do things like this, it look like: x=Array.from({length:getchar()},getchar);
01:00:16 <izabera> it wasn't sneaky, i wrote it in this chan
01:06:03 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
01:38:55 -!- hppavilion[1] has joined.
01:40:01 -!- Melvar` has joined.
01:41:50 -!- Melvar has quit (Ping timeout: 260 seconds).
01:43:23 -!- Melvar`` has joined.
01:44:18 -!- Melvar` has quit (Ping timeout: 250 seconds).
01:47:38 <hppavilion[1]> I kind of want to make a program that converts between arbitrary units of information
01:48:29 <hppavilion[1]> "the complete works of shakespear -> digital clock readouts"
01:48:57 -!- Melvar has joined.
01:50:52 -!- Melvar`` has quit (Ping timeout: 250 seconds).
01:52:41 -!- ais523 has quit (Read error: Connection reset by peer).
01:54:29 -!- ais523 has joined.
01:58:16 <zzo38> I would want to make up the "htcls-" prefix for HTML attributes, which is for "HyperText Command Line Service" and is use for converting web apps into command-line programs and SQLite extensions (as well as other possible uses).
01:58:50 <zzo38> (Other attributes are still used too though)
01:58:56 <hppavilion[1]> zzo38: Ooooh
01:58:57 <izabera> web apps such as?
02:00:31 -!- AlexR42 has joined.
02:00:47 -!- Melvar has quit (Ping timeout: 276 seconds).
02:04:14 -!- esowiki has joined.
02:04:18 -!- esowiki has joined.
02:04:18 -!- esowiki has joined.
02:05:16 -!- esowiki has joined.
02:05:17 -!- glogbot has joined.
02:05:20 -!- esowiki has joined.
02:05:21 -!- esowiki has joined.
02:06:19 -!- Melvar has joined.
02:15:17 <zzo38> Many kinds, I suppose
02:15:33 <zzo38> (Including OpenID login forms)
02:17:10 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
02:44:17 <zzo38> How to change which events are allowed to be send to webpages in Firefox?
02:47:09 -!- jaboja has quit (Remote host closed the connection).
02:52:02 <zzo38> (but to allow all events in a chrome context)
02:56:48 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
03:00:07 <\oren\> I can get to suborbital space using one turbofan
03:01:54 <\oren\> i think
03:03:20 -!- ais523 has quit.
03:03:30 -!- ais523 has joined.
03:05:46 -!- Melvar has quit (Ping timeout: 250 seconds).
03:06:59 -!- Melvar has joined.
03:07:26 <\oren\> aww apogee still only 53000
03:10:42 -!- Melvar` has joined.
03:13:06 -!- Melvar has quit (Ping timeout: 240 seconds).
03:39:52 -!- MDude has changed nick to MDream.
04:04:36 <hppavilion[1]> Cartesian Sum?
04:05:13 <ais523> the addition analogue to cartesian product as multiplication is disjoint (i.e. tagged) union, I think
04:05:51 <ais523> (a+b)×(c+d) = (a×c)+(a×d)+(b×c)+(b×d), at least with a sufficiently loose definition of =
04:06:23 <hppavilion[1]> For two well-ordered sets o, p s.t. #o=#p, one could have an operation o$+$p (where $+$ is a placeholder symbol) that is basically adding each element by index
04:06:36 -!- Melvar`` has joined.
04:06:48 <hppavilion[1]> e.g. o{1, 2, 3}+o{4, 5, 6} = o{5, 7, 9}
04:07:40 <ais523> I've seen that operation in more than one language
04:07:43 <ais523> they all called it .+
04:09:28 -!- Melvar` has quit (Ping timeout: 276 seconds).
04:09:36 <oerjan> cartesian product is the category theory product in the category Set, and tagged union is similarly the coproduct/sum.
04:10:15 <oerjan> as usual in CT, defined only up to isomorphism.
04:36:10 <zzo38> My opinion is that such things like -moz-default-color should be made standardized for use in CSS (there are five of these in total); I have once wanted such thing in order to do reverse-video
04:36:50 <zzo38> (without having to override the colors of the entire webpage)
04:37:09 <Elronnd> if worst comes to worst, you can always use an iframe
04:38:31 <zzo38> That's silly though.
04:40:35 <Elronnd> that's why I said, if worst comes to worst
04:40:46 <Elronnd> Not something to do lightly
04:40:57 <Elronnd> There are few occasions where an iframe is warranted
04:48:36 <zzo38> Maybe something like the following could be used: body { background-color: -moz-default-background-color !important; color: -moz-default-color !important; background-color: white; color: black; } .reverse { background-color: -moz-default-color !important; color: -moz-default-background-color !important; background-color: black; color: white; }
04:51:38 <ais523> oerjan: that's basically what I said but in more mathematically precise language :-)
04:51:50 <ais523> now my comment seems redundant :-(
04:52:34 <oerjan> ais523: that's weird since my comment was a reply to yours.
04:52:42 <ais523> ah right
04:52:48 <ais523> it could have been a reply to hppavilion[1]'s though
04:53:05 <ais523> so I guess it was a way to bait out the correct answer
05:12:10 -!- ais523 has quit.
05:32:47 -!- AlexR42 has joined.
05:35:16 <zzo38> JSZM is now completed: http://zzo38computer.org/jszm/jszm.js Now you can please comment/questions/complain about it.
05:44:45 <hppavilion[1]> I'm making a brainfuck-based language suitable for OS development (not a normal derivative; this one isn't stupid (it's designed with a purpose- specifically, hobbyists in the field of OS development- in mind))
05:44:58 <hppavilion[1]> Take THAT stupid BF derivatives!
05:46:59 <zzo38> Once you have done, post it and then we can see it please
05:47:53 <hppavilion[1]> zzo38: OK
05:48:02 <hppavilion[1]> zzo38: I think I might actually make a compiler for it.
05:48:14 <hppavilion[1]> Which is something that would make me feel like a god.
05:50:28 <zzo38> It isn't a god to make the compiler of it, however you can do it anyways
05:52:39 <hppavilion[1]> zzo38: I know it isn't, but I'll still feel like it for about 10 minutes
05:52:50 <zzo38> hppavilion[1]: OK
05:52:58 <zzo38> Are you good enough at HTML+CSS+JS to fix this? http://zzo38computer.org/jszm/display.html display.js
05:57:42 <zzo38> I cannot get the text to scroll and pause correctly at the correct positions
05:58:23 <deltab> zzo38: there's https://drafts.csswg.org/css-color/#currentcolor-color but no equivalent for the background colour, yet
06:01:15 -!- Treio has joined.
06:01:42 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
06:02:35 -!- AlexR42 has joined.
06:02:51 <zzo38> deltab: That isn't the same kind of thing as the Mozilla user colours though
06:05:08 <deltab> oh, I thought you meant something based on the existing colours within the page, not the user preferences
06:05:26 <deltab> so that you could do reverse video and such
06:06:51 <deltab> (background-color: currentcolor gives you half of that)
06:09:04 <deltab> using user-pref colours won't work for that when the page colours aren't the user prefs
06:09:43 <zzo38> Still I think there ought to be some way to do stuff like "color: default(background-color);" that you can use such "default" function anywhere (including inside of a calculation) in order to use the value that this element would have by default based on such things as inherited values and less specific rules and so on.
06:12:52 <zzo38> Another thing that should be have is CSS priority numbers, with different defaults for different CSS sources (browser defaults, page defined, "style" attribute, user CSS), as well as different ranges for different sources so that user-defined styles are allowed to have wider ranges of priority numbers than those defined in the webpage themself
06:14:54 <zzo38> And one more thing, that could be used anywhere including inside of a calculation, is to be able to tell it to use the computed value of some CSS property of some specific element, therefore you can have one part to use the required height for the text to fit and the part underneath to use the remaining height of the window
06:16:30 <deltab> I think the issue with that is how to identify the element
06:17:16 <deltab> however flexbox covers your example, I believe
06:18:16 -!- adu has joined.
06:21:30 <deltab> so you shouldn't need a table for JSZM
06:22:15 <\oren\> css is already too complicated IMO
06:22:33 <adu> \oren\!
06:23:07 <adu> thanks oerjan
06:23:40 <adu> CSS is pretty simple, it's just a very complicated declarative language
06:24:33 <zzo38> \oren\: That is probably true, but nevertheless a few things are difficult (including that -moz-default-color and so on ought to be standardized but aren't), and all of HTML/CSS/JS/HTTP/HSTS/HPKP/whatever needs to allow user to override everything with anything
06:24:51 <adu> I think the only thing that makes it turing complete is stuff like https://developer.mozilla.org/en-US/docs/Web/CSS/calc
06:25:10 -!- Treio has quit (Ping timeout: 250 seconds).
06:26:06 <\oren\> I think it would be better to unify the three by making a JSON equivalent to HTML and CSS. Then the entire page can be in the same languages
06:26:24 <\oren\> s/ges/ge
06:26:53 <adu> there's already JsonML
06:27:38 <deltab> http://www.curl.com/products/prod/language/
06:28:26 <adu> HAR is pretty good at representing HTTP in JSON
06:29:00 <adu> I wrote a simple app to combine them: http://andydude.github.io/harcurl/
06:29:32 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
06:29:55 <deltab> to combine what?
06:30:06 <adu> HAR, HTTP, JSON
06:30:09 <deltab> ah
06:30:22 -!- AlexR42 has joined.
06:30:40 <adu> all you need is "method" and "url", and harcurl fills in the rest with the response
06:31:22 <\oren\> hmm JsonML looks good, if we have a JsonSS then that would be good
06:32:35 <adu> JsonML is more of a universal idea than a spec/format, the idea that an XML element can be translated to [tag, {...attribs...}, children, ...] is not to hard to imagine
06:33:11 <\oren\> well, whatever, it works for my purpose
06:33:19 <zzo38> No, the problem is that it is difficult for the user to override and control everything, and the data on the server has too much control over it
06:33:59 <\oren\> well that can be solved by writing your own web browser
06:34:12 <\oren\> or modifying an existing one
06:34:39 -!- oerjan has quit (Quit: Nite).
06:35:20 <hppavilion[1]> adhellu
06:35:25 <adu> hppavilion[1]!
06:35:30 <hppavilion[1]> adu!
06:35:44 * hppavilion[1] runs across the beach or something towards adu because wtfn
06:35:52 <zzo38> Your idea about representing XML as JSON (and can even be done vice-versa) is not bad, although not related to this. Another idea can even be representing them as RDF too
06:35:56 <adu> WTFN?
06:36:03 <hppavilion[1]> adu: "Why The Fuck Not"
06:36:10 <adu> ah
06:36:23 <adu> zzo38: it's not my idea, it's called JsonML
06:36:23 <hppavilion[1]> adu: I am the source of all acronyms, in case you're curious
06:36:47 <zzo38> adu: Ah, well, it is a reasonable idea anyways I suppose
06:37:20 <hppavilion[1]> adu: I'm attempting to make a BF-based language suitable for operating system development
06:37:28 <adu> hppavilion[1]: IIRC, ROFLMAO
06:37:33 <hppavilion[1]> (not as a stupid derivative; as a decent derivative)
06:37:57 <hppavilion[1]> adu: Except "lol". I have no clue what piece of shit tried to do my job for me and invented "lol"
06:38:05 <hppavilion[1]> xD
06:38:17 <adu> hppavilion[1]: low-level forth? or high-level intercal?
06:38:34 <hppavilion[1]> adu: Clarify?
06:38:40 <adu> hppavilion[1]: can't
06:38:49 <hppavilion[1]> adu: It's just above ASM in the Grand Level Heirarchy
06:38:57 <myname> i have yet to see any bf derivate that isn't stupid
06:39:07 <adu> oOo Grand Level Heirarchy tell me more
06:39:10 <hppavilion[1]> myname: CHALLENGE: IN PROGRESS
06:39:25 <hppavilion[1]> adu: It's the Grand Level Heirarchy... it describes what languages are above and below others
06:39:35 <myname> most of them are stupid because they are bf derivates
06:39:44 <hppavilion[1]> Typically, languages are implemented in a language either at, above, or one level below themselves
06:39:47 <adu> hppavilion[1]: is that like the 3G/4G bullsh*t?
06:40:02 <hppavilion[1]> adu: Not really.
06:40:09 <myname> 3.5G!
06:40:10 <zzo38> I have already made up a way of specifying a "root node" of a RDF graph (although its original purpose wasn't to represent stuff like JSON/XML, but it can be used for that too); it is: Make a triple with the subject being the root node and the predicate being <gopher://zzo38computer.org/1ns/meta:primary> and the object is irrelevant.
06:40:18 <adu> cuz regex is totally 5G, but it's classified as a DSL
06:40:31 <hppavilion[1]> adu: I thought 5G /was/ DSLs
06:40:50 <adu> hrm, I don't like the Grand Level Heirarchy for exactly this reason
06:41:13 <hppavilion[1]> At the bottom is machine code, slightly above which (by about a millituring) is older ASMs, above which by ~1 turing is modern ASM, etc.
06:41:36 <hppavilion[1]> adu: It's more of a tree than a stack or an array
06:41:37 <zzo38> There is also assemblers with macro capabilities
06:41:41 <hppavilion[1]> A DAG
06:41:47 <adu> but what's the top? is it the most advanced general purpose language? or is it the DSL that has the least "resistance" to your problem domain
06:41:56 <hppavilion[1]> adu: There isn't a top
06:41:58 <zzo38> And, Forth is both low-level and high-level, I think
06:42:10 <hppavilion[1]> adu: Well, in theory you could have a top, but it's not really implementable
06:42:12 <adu> hppavilion[1]: and if there isn't a top, then you can equate languages with integers
06:42:23 <adu> hppavilion[1]: s/can/can't/
06:42:43 <hppavilion[1]> adu: The top is a language that takes a vague notion of what you want it to do and does it perfectly. Happy?
06:42:58 <hppavilion[1]> But it's at omega turings above machine code
06:43:11 <adu> hppavilion[1]: "deface_msdn()"
06:43:20 <hppavilion[1]> adu: ?
06:43:24 <hppavilion[1]> Ah
06:43:36 <adu> hppavilion[1]: "hack_my_enemies_facebook_account()"
06:43:44 <hppavilion[1]> adu: Not quite
06:44:01 <hppavilion[1]> adu: It just reads a whim in your mind. It uses... I dunno... portable MRI machines?
06:44:09 <adu> hppavilion[1]: "steal_videos_from_my_archnemesis_webcam()"
06:44:14 <hppavilion[1]> adu: Yes.
06:44:22 <hppavilion[1]> There's a reason it's at omega turings
06:44:38 <hppavilion[1]> You can also have negative turings, at least in theory, for things /below/ machine code
06:45:07 <myname> do_what_i_want_not_what_i_code()
06:45:15 <adu> myname: yes
06:45:29 <hppavilion[1]> For example, bitchanger written as crumbs. That's below machine code, in theory
06:45:48 <hppavilion[1]> "Machine code" is actually just an average; some are above others
06:46:06 <hppavilion[1]> CISCs are above RISCs, but not by much
06:46:14 <myname> oisc!
06:46:16 <hppavilion[1]> (Even though RISCs are usually better)
06:46:43 <hppavilion[1]> myname: Yes, OISCs are about ~10*pi turings below the average machine code
06:46:52 <hppavilion[1]> At least, subleq is
06:47:37 <hppavilion[1]> myname: My "OSFuck" is designed to still be minimalistic, BTW. It just adds some new stuff to make OS development feasible in it; not much more
06:48:01 <hppavilion[1]> myname: It has pbrain-like procedures; is that being too generous?
06:48:11 <hppavilion[1]> (Also, it's a bit hard to compile pbrain)
06:48:16 <\oren\> different CPU's have different expressivness in machine code
06:48:20 <hppavilion[1]> \oren\: I know
06:48:30 <hppavilion[1]> \oren\: That's why it's an average
06:48:59 <\oren\> like 6502 doesn't have a MUL or DIV instruction, so it must be below 8086
06:49:04 <zzo38> Even many modern machine codes are stupid I think
06:49:10 <hppavilion[1]> \oren\: Exactly
06:49:16 <hppavilion[1]> zzo38: How so?
06:49:16 <zzo38> But I like the 6502 machine codes
06:49:55 -!- Treio has joined.
06:50:03 <adu> zzo38: I'm a big fan of MMIX
06:50:17 <zzo38> Actually there are some good ones but none of them are common or are commercially implemented as far as I can tell; so MMIX is one of the good ones too
06:50:20 <hppavilion[1]> \oren\: I'll ask you. For a brainfuck-like language made for OS development (as a challenge, obviously), is pbrain-like procedures being a bit too generous?
06:50:37 <hppavilion[1]> I know it'll be a pain to compile, which is why I'm apprehensive about it in the first place
06:51:07 <adu> zzo38: from what I hear, SPARC is pretty similar to MMIX
06:51:24 <hppavilion[1]> I seem to be invisible today.
06:51:28 <hppavilion[1]> Must be hereditary.
06:51:35 <adu> hppavilion[1]: I see you
06:51:46 <hppavilion[1]> adu: creep -_-
06:51:47 <hppavilion[1]> xD
06:53:01 <adu> https://youtu.be/-u5SiCCmVv0
06:53:08 <hppavilion[1]> adu: So can /you/ answer my question? Since I'm visible to you>?
06:53:14 <zzo38> Still they aren't best I think, and I have designed my own instruction sets too
06:54:29 <hppavilion[1]> adu?
06:54:44 <adu> hppavilion[1]: are pbranes too generous?
06:54:49 <zzo38> Sometimes with support for self-modifying microcodes, although never such things as automatic pipeline stalls and instruction reordering and so on
06:54:58 <hppavilion[1]> adu: Yes.
06:55:14 <hppavilion[1]> adu: As in, that's my question.
06:55:22 <adu> hppavilion[1]: pbranes are the foundation of string theory, and thus the universe
06:55:28 <hppavilion[1]> adu: ....
06:55:32 <hppavilion[1]> adu: No, pbrain.
06:55:53 <hppavilion[1]> adu: This is a serious question in the development of OSFuck. I need a verdict from someone smarter than myself.
06:55:56 <zzo38> If it isn't meant to be a "restricted harvard architecture", then the program counter may also be a general purpose register, as are most of the other registers too, and there is no immediate addressing mode (you can instead use program counter indirect with postincrement)
06:56:01 <adu> hppavilion[1]: there was a guy from 2036, "John Titor" was his name I think, or so he claimed, and he said string theory was used to build his time machine
06:56:02 <myname> why do you think it'a hard to compile?
06:56:44 <hppavilion[1]> myname: Take this subsequence of a pbrain program
06:56:46 <hppavilion[1]> ,:
06:57:01 <hppavilion[1]> (or maybe `,!`, not sure which is used for CALL)
06:57:15 <hppavilion[1]> It's :
06:57:16 <myname> well, easy to compile to c
06:57:25 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
06:57:35 <myname> just make an array with callbacks
06:58:08 <myname> ,: is like callbackarray[userinput]();
06:58:38 -!- AlexR42 has joined.
06:58:42 <hppavilion[1]> myname: Ah, but I was compiling to ASM
06:59:03 <hppavilion[1]> myname: Because efficiency and it actually seems simpler that way
06:59:54 <myname> for asm this isn't much harder
07:00:05 <myname> i am way more affraid of ,()
07:00:13 <hppavilion[1]> myname: But is it too generous?
07:00:20 <hppavilion[1]> myname: What does ,() do exactly?
07:00:37 <myname> defining a function based on userinput
07:00:46 <hppavilion[1]> Ah, yes
07:00:47 <myname> but even that may not be hard
07:01:15 <hppavilion[1]> myname: But is it too generous? That's the real question
07:01:24 <myname> you basically parse every () you see in the source, make each a label and put an array of labels somewhere
07:01:35 <adu> hppavilion[1]: so what's the difference between "pbrain" and "pbrane"
07:02:03 <myname> well, if you really want to make an os, you better have interrupts! i'd use these procedures as interrupt routines
07:02:20 <hppavilion[1]> adu: pbrain is an esolang. pbrane is an m-theory mumble mumble.
07:02:22 <myname> like, pressing a button actually calls procedure x
07:03:01 <hppavilion[1]> myname: Ah, that might be useful...
07:03:16 <myname> but that doesn't qualify as a new language imho
07:03:22 <myname> it might be fun, though
07:04:43 <adu> hppavilion[1]: it takes me several months to learn a language, I just learned about pbrain 3 minutes ago
07:05:02 <hppavilion[1]> adu: OK, and?
07:05:15 <adu> hppavilion[1]: I can't answer your question in the way that you want
07:05:29 <hppavilion[1]> myname: What doesn't qualify as a new language in particular?
07:05:42 <myname> you also need calling conventions
07:05:45 <hppavilion[1]> adu: I'm just not exactly sure what you were getting at xD
07:06:08 <myname> like, a : may change every value to the right
07:06:32 <hppavilion[1]> myname: You're losing me xD
07:06:45 <hppavilion[1]> myname: Define "calling conventions"
07:06:51 <adu> hppavilion[1]: what I'm getting at is that I'm a pbrain noob, and you are aledgedly a pbrain master, so it's you who should be answering the question, not me
07:06:52 <hppavilion[1]> Keep in mind, I'm an idiot.
07:07:03 <hppavilion[1]> adu: I... never said I'm a pbrain master.
07:07:13 <adu> hppavilion[1]: can I quote you on that?
07:07:18 <hppavilion[1]> adu: Who told you that? Was it Ralph? Dammit, Ralph.
07:07:27 <myname> hppavilion[1]: well, x86 defines that rax has a return value for example
07:07:28 <hppavilion[1]> adu: Most definitely
07:07:46 <adu> hppavilion[1]: generally questions about suitability of languages as tools to solve problems, are posed by language masters
07:07:47 <myname> you have to know where the results of a call are and where to put argiments
07:08:03 <myname> but i do think you can write an os in pbrain just fine
07:08:15 <hppavilion[1]> adu: Ah, I get what you were saying now
07:08:24 <myname> maybe add a few more functioms to directly access certain hardware
07:08:33 <hppavilion[1]> myname: I was planning on that
07:08:50 <hppavilion[1]> myname: Specifically, the Latin-1 Supplemental block includes hardware interaction (e.g. clock)
07:09:13 <hppavilion[1]> myname: Because wtfn
07:09:17 <myname> depending on hiw serious you are, getting the mouse position might be interesting
07:09:48 <myname> but at that point you might need to tbrain, except when you call procedure 0 periodically
07:09:53 <hppavilion[1]> myname: How exactly do mice work at the hardware level? I've been assuming it just tells the computer "I just got instructions to move up/down/left/right"
07:09:53 <myname> like a timer i terrupt
07:10:18 <myname> they do afaik
07:10:35 <myname> you might reserve stuff
07:10:36 <hppavilion[1]> myname: Perhaps I should require that procedure names are defined at compile-time?
07:10:55 <myname> no need for that, i think
07:11:02 <hppavilion[1]> OK
07:11:02 <myname> but you have to define some
07:11:18 <hppavilion[1]> myname: I'm probably going to need your help with the procedure definition in the compiler down the line xD
07:11:22 <hppavilion[1]> When I get around to the compiler
07:11:28 <myname> like, procedure 0 always is the timer interrupt, procedure 1 always is the keyboard interrupt
07:12:20 <myname> you are lucky that i am working on a haskell project
07:12:31 <myname> otherwise i might steal that idea :p
07:12:55 <hppavilion[1]> myname: I was thinking of that... :)
07:13:46 <hppavilion[1]> myname: Do you think I should make procedures save the current tape index and return to it after calling? I'm going to say /yes/ because interrupts
07:14:06 <hppavilion[1]> In fact, I'm so sure of my yes that I now feel stupid for having asked that question
07:14:17 <hppavilion[1]> Because wtf would it not
07:14:24 <zzo38> deltab: You said JSZM doesn't need tables; well, JSZM itself uses no HTML or whatever it is pure JavaScript, although the front-end is different and I would like the help to fix it
07:14:39 <myname> you don't need to if you establish calling conventions
07:14:56 <myname> say, every interrupt just starts with >[-]
07:14:59 <zzo38> The file "jszm.js" is the only file which is part of JSZM; the files called "display.html" and "display.js" are part of the example HTML-based front-end
07:15:11 <myname> if you put something there, it is basically your fault
07:15:29 <myname> or maybe they do [>]
07:15:33 <hppavilion[1]> myname: Ah.
07:15:47 <myname> that is, every interrupt operates on the first free cell
07:15:59 <myname> in both cases you will have problems returning the cursor
07:16:05 <hppavilion[1]> myname: OK...
07:16:11 <myname> that's the biggest problem
07:16:25 <myname> let's say, cell 1 contains the cell you are currently in
07:16:35 <myname> e.g. 53
07:16:36 <hppavilion[1]> myname: I already have the & instruction
07:16:42 <hppavilion[1]> myname: Which gets the current cell index
07:16:50 <hppavilion[1]> AND I have a single accumulator
07:16:58 <hppavilion[1]> That can take the value in the cell
07:17:01 <myname> don't think that's needed, but well
07:17:25 <myname> the problem is: how do you return to cell cells[1]?
07:18:22 <myname> i think you cannot do this in standard bf
07:18:22 <hppavilion[1]> myname: I was planning on a "back-to-start" instruction because it seemed it would be pretty much necessary, though I also thought I could exclude it and you could do some shenanigans where you leave it blank and make sure EVERY cell in between isn't, so you could just [<]
07:18:31 <hppavilion[1]> But that's probably infeasible
07:18:56 <myname> you _might_ implement a "goto cell[1]" function
07:20:04 <hppavilion[1]> myname: I suppose you could start every procedure with ^&|[>] (the non-BF parts mean put the current cell value in the accumulator, put the current cell address in in the current cell, swap the current cell and the accumulator), and you could end every interrupt with _* (goto the cell referenced by the value in the accumulator)
07:20:08 <myname> i thought you might need something to make stuff atomic, but i am not sure yet
07:20:18 <deltab> zzo38: sorry, didn't know the name for the frontend
07:20:51 <deltab> zzo38: what help do you need?
07:21:34 <myname> like, what if you copy a cell and an i terrupt is triggered when you are on the left cell to copy to the right
07:21:56 <zzo38> deltab: The text area doesn't scroll properly; the logic dealing with "moreHeight" is wrong.
07:22:00 <myname> okay, solution: interruots do not have arguments
07:22:49 <hppavilion[1]> myname: That could pose a problem, where the interrupt triggers between the copies and clobbers the register
07:22:56 <hppavilion[1]> myname: Perhaps two registers? xD
07:23:03 <zzo38> Note that it is possible for story_print to be called with a blank string, with text too long to fit on one line (so it will wrap), or an incomplete line, too
07:23:17 <zzo38> And that resizing might affect it
07:23:31 <myname> hppavilion[1]: user functions just aren't allowed to use global registers
07:23:45 <hppavilion[1]> myname: ?
07:23:59 <hppavilion[1]> myname: I suppose that works, but then how do you do callbacks?
07:24:08 <hppavilion[1]> *interrupts
07:24:25 <hppavilion[1]> Without suddenly switching tasks and clobbering the cells you were in the middle of using?
07:25:04 <myname> if something happens, the os calls a procedure without letting the usercode know. the procedure 1. must jump bacl to where the pointer was before 2. do not modify any nonzerp cells
07:25:37 <hppavilion[1]> myname: OK...
07:25:40 <myname> like, [>]dosomething cleareverythingused return
07:26:13 <hppavilion[1]> myname: So just have a RETURN instruction that goes back to where it was before the interrupt was called?
07:26:30 <hppavilion[1]> e.g. %
07:26:43 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
07:26:55 <zzo38> deltab: Do you understand this?
07:27:34 -!- AlexR42 has joined.
07:27:39 <myname> yeah
07:27:50 <myname> note that interrupts must not stack in this model
07:28:14 <myname> for them to stack, you need something like... well... a stack
07:28:28 <hppavilion[1]> myname: Ooooh, or perhaps procedure calls have their own separate accumulator
07:28:34 <zzo38> (Or just write your own front-end if you want to; if Synchronet could be updated to the newest JavaScript version then even a Synchronet front-end could be made so that JSZM can be used as a BBS door program)
07:28:52 <hppavilion[1]> So it can do the thing I mentioned above /without/ clobbering the normal accumulator
07:29:34 <hppavilion[1]> myname: Or would that pose some problem?
07:29:55 <hppavilion[1]> And I could, of course, do that on a stack.
07:31:01 <myname> hppavilion[1]: that would work, i think. it wkll also allow arbitrary jumps, not sure if this is good or bad
07:31:11 <hppavilion[1]> myname: How so?
07:31:30 <hppavilion[1]> myname: How will it allow arbitrary jumps? And what exactly does that mean?
07:31:58 <\oren\> I made a mobile lab by literally rolling the cylindrical lab across the ground
07:32:13 <hppavilion[1]> \oren\: Woooooow
07:32:28 <hppavilion[1]> (\oren\: KSP? Or real life?)
07:33:13 <myname> hppavilion[1]: how would the "jump back to where you were before" command know what the accumulator is
07:33:23 <hppavilion[1]> \n \n \n \n \n \n
07:33:42 <hppavilion[1]> myname: It uses its own accumulator
07:33:55 <hppavilion[1]> So when an interrupt is called, a new accumulator is allocated.
07:34:26 <adu> sounds so pbrain
07:34:32 <myname> at that point, you basically introduced a second tape to bf
07:34:35 <hppavilion[1]> The procedure generally calls ^&|, which (without clobbering any data) records the previous location to the new accumulator
07:34:54 <hppavilion[1]> myname: Not one you can really mess with. More of a stack than a tape.
07:35:02 <adu> there are only 10 kinds of people in this world: those who know binary, and those who don't.
07:35:09 <hppavilion[1]> And I think I'll limit recursion depth so I can just use an array
07:35:11 <myname> are you familiar with rop?
07:35:17 <hppavilion[1]> myname: Never heard of it
07:35:39 <myname> return oriented programming
07:35:42 <hppavilion[1]> OK...
07:36:16 <myname> adu: there are also those who thing 2 is the only base besides 10
07:36:18 <\oren\> hppavilion[1]: ksp
07:36:22 <myname> think
07:36:44 <hppavilion[1]> myname: Let me guess, I can't do that idea because ROP
07:36:55 <\oren\> scientists can apparently research things even while rotating 30 times a minute
07:37:11 <hppavilion[1]> \oren\: Shame, IRL would've been more 1337
07:37:13 <myname> well, you can
07:37:45 <hppavilion[1]> myname: What do you suggest I do? The older return method?
07:37:58 <myname> good question
07:38:05 <hppavilion[1]> (older as in something we decided on earlier in this convo)
07:38:09 <myname> introducing a stack might be necessary
07:38:15 <hppavilion[1]> myname: Yeah...
07:38:27 <adu> myname: if you were to mandate base 12 as king of the Earth, would you use A, B or X, E?
07:38:43 <hppavilion[1]> adu: Q and P
07:38:54 <adu> hppavilion[1]: good choices
07:39:12 <hppavilion[1]> But I don't want it to be a linked-list-like stack, because then I need to do a linked-list for the tape, and then efficiency just goes out the window
07:39:48 <myname> adu: why X, E?
07:40:00 <hppavilion[1]> myname: X = 10 (roman numerals), *E*leven
07:40:08 <adu> myname: http://www.dozenal.org/
07:40:21 <myname> hppavilion[1]: well, there already is a stack you can use
07:40:27 <hppavilion[1]> myname: Oh right...
07:40:38 <myname> E for eleven is way to central about english
07:41:04 <hppavilion[1]> myname: So should I do returns with the % procedure or a new accumulator for each nested instruction?
07:41:28 <hppavilion[1]> myname: And how do I accomplish interrupt arguments? e.g. how do you tell /which/ key was pressed?
07:41:46 <hppavilion[1]> IDEA
07:42:03 <hppavilion[1]> The % instruction, which POPs an argument and PUTs it in the current cell
07:42:42 <adu> most base-12-centric sources use X, E, but most base-neutral sources use A, B
07:43:11 <adu> X=roman numeral, E=eleven
07:43:20 <hppavilion[1]> adu: Really, I prefer <the void> and <the blood of firstborn children>
07:43:34 <adu> hppavilion[1]: wha?!?
07:43:44 <hppavilion[1]> adu: For digits
07:44:08 <adu> hppavilion[1]: you, good sir, are a wierdo
07:44:13 <hppavilion[1]> adu: Exactly.
07:44:19 <hppavilion[1]> adu: You should see my title
07:44:26 <adu> what is your title?
07:44:44 <hppavilion[1]> My full name is, currently, Nathan_<lastname>, Devourer of Souls, Lord of the Walri, Destroyer of World
07:44:58 <adu> my title is "Math Andrew"
07:45:15 <hppavilion[1]> I'm considering replacing the "th" in "Nathan" with thorn
07:45:42 <adu> hppavilion[1]: do it!
07:45:55 <myname> why not the than?
07:46:01 <hppavilion[1]> adu: I've put it on a few papers, so I'm already testing it out
07:46:12 <myname> nathorn sounds better that nathornan
07:46:19 <hppavilion[1]> myname: Good point
07:46:27 <hppavilion[1]> myname: I mean the letter thorn, though
07:46:35 <myname> okay
07:46:37 <adu> hppavilion[1]: there's this thing, you know "Ye ol' bakery" or "Ye ol' pub", the "Ye" __ACTUALLY__ means "The", so you should use "Y" instead of thorn
07:46:45 <hppavilion[1]> adu: Yes, I know
07:47:11 <hppavilion[1]> adu: "Y" is just because printing presses didn't /have/ a "thorn" key, and it was adopted by everyone else after that
07:47:30 <myname> a friend of mine has a computer he named "OfShadowsAndTheDarkThingsYouFear"
07:47:43 <adu> I used to work at a Ren Faire, and most people there didn't know that
07:48:12 <adu> https://en.wikipedia.org/wiki/Renaissance_fair
07:48:19 <hppavilion[1]> myname: So, RETURN instruction or new accumulators for each procedure call?
07:48:33 <hppavilion[1]> adu: Yes, I know what a Renaissance Fair is
07:48:49 <hppavilion[1]> They're going to be having ones about modern days in a few hundred years
07:48:58 <hppavilion[1]> I checked.
07:48:59 <adu> hppavilion[1]: I assumed as much, the link was for the benefit of eavesdroppers
07:49:05 <hppavilion[1]> adu: Ah xD
07:49:06 <myname> i'd go for return, but you hve to decide, how highlevel it should get
07:49:40 <hppavilion[1]> myname: return is cool, but OTOH new registers for each one grants you the power to control what happens after
07:50:12 <myname> why new registers?
07:50:20 <hppavilion[1]> myname: What's wrong with mine that makes you think return is better? (no really, I'm not complaining, I'm certain mine is problematic)
07:50:25 <adu> hppavilion[1]: back in the day, people used to have to pull a brick out of their pocket, and put it up to their ear, and they had to press numbers on this brick with their fingers, sometimes dialling with their butt
07:50:55 <hppavilion[1]> myname: Because that way you can do the cool thing with ^&|[>] at the beginning and _* at the end
07:51:11 <myname> what is yours?
07:51:18 <hppavilion[1]> myname: ?
07:51:25 <hppavilion[1]> What what is mine?
07:51:44 <myname> your alternative to return
07:52:19 <hppavilion[1]> myname: Well what I just said. When a procedure is called, it has a different accumulator from the caller
07:52:44 <myname> how does that differ from return?
07:53:03 <hppavilion[1]> myname: So it can do the code I just mentioned without clobbering the register of the caller, potentially in the middle of an important registral operation
07:53:29 <hppavilion[1]> myname: Well, I'm not exactly sure how to answer. Describe your return again?
07:53:50 <myname> my return is just ret of x86 asm
07:54:24 <myname> and : is just call
07:55:11 <hppavilion[1]> myname: OK...
07:55:13 <hppavilion[1]> explain?
07:55:25 <myname> what exactly?
07:55:29 <hppavilion[1]> I don't know x86 ASM very well
07:55:34 <hppavilion[1]> What, precisely, does ret do?
07:55:56 <hppavilion[1]> Which is why I need so much help xD
07:56:05 <myname> poping an address (formerly pushed by call) and jumping there
07:56:24 <hppavilion[1]> myname: Ah
07:56:48 <hppavilion[1]> myname: I suppose that's probably better xD
07:57:07 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
07:57:40 <hppavilion[1]> myname: I think I'll do that, at least for now
07:57:59 <hppavilion[1]> myname: How do I accomplish arguments to interrupts?
07:58:27 <myname> why should interrupts need these?
07:58:49 <hppavilion[1]> myname: You mentioned them earlier, and I just guessed what they meant
07:59:11 <myname> normal procedures should have them
07:59:31 <myname> like, if you want to call a printf, you might want to give a format string and variables
07:59:32 <hppavilion[1]> myname: Basically, if, for example, the k key is pressed, and that triggers a hardware interrupt (I think that's how computers work xD), how does it know what that key was?
07:59:50 <myname> it asks the keyboard
08:00:04 <hppavilion[1]> myname: Ah xD
08:00:22 <hppavilion[1]> myname: Is a bitwise mode a good idea?
08:00:37 <hppavilion[1]> A mode where you can basically go inside the current 64-bit cell and manipulate it as you would in Boolfuck?
08:01:02 <myname> what for?
08:01:13 <hppavilion[1]> myname: Not sure, but it sounded potentially useful
08:01:42 <hppavilion[1]> myname: I take it from your response that it was wrong
08:01:52 <myname> add it if it turns out to be usefuö while writing the os :p
08:03:01 <hppavilion[1]> OK
08:03:08 <hppavilion[1]> myname: What do I need to add next?
08:03:35 <myname> dunno, start writing
08:04:43 -!- adu has quit (Quit: adu).
08:05:47 <hppavilion[1]> Hm...
08:08:52 <hppavilion[1]> myname: Can I get a short list of basic interrupts I need?
08:09:32 <myname> that hardly depends on what your os should be capable of doing
08:11:27 <hppavilion[1]> myname: I need to know them so I can add them to the language so I know what to do
08:11:56 <hppavilion[1]> So I know what basic things to implement in my small DemOS
08:12:03 <hppavilion[1]> (best name ever)
08:12:49 <myname> first question: do you need multitasking? if so, does it have to be cooperational?
08:13:34 <hppavilion[1]> myname: Not sure. Mostly because I have no clue what that means.
08:13:43 <hppavilion[1]> myname: Like, threading?
08:14:36 <hppavilion[1]> myname: Concurrent execution of code so that the OS can do more than one thing at a time?
08:15:13 <myname> well, doing multiple tasks, however that may look like
08:15:27 <hppavilion[1]> myname: OK...
08:15:34 <hppavilion[1]> I probably need multitasking support
08:16:11 <hppavilion[1]> You know, so you don't have an OS that just does one thing at any given moment
08:16:22 <hppavilion[1]> And that doesn't get hung up whenever something requests input
08:16:26 <myname> you can do that a way such that each task has to say "another process may work now" sometimes or such that the os randomly takes control and put another task to work
08:16:29 <hppavilion[1]> (though I suspect I just said something stupid)
08:16:47 <hppavilion[1]> myname: Ah, yes, that's probably a good idea
08:18:19 <myname> depending on your solution, you need some interrupt that actually switches tasks
08:18:31 <hppavilion[1]> myname: OK...
08:18:37 <hppavilion[1]> myname: I'm going to want to start simply
08:19:27 <hppavilion[1]> myname: OK, what is the most important, primitive interrupt an OS can support? Interrupt 0 in my procedures?
08:21:26 <myname> if you want to do anything regularly or time specific, i'd say the timer interrupt
08:21:56 <hppavilion[1]> OK
08:22:11 <hppavilion[1]> myname: And how does that work?
08:22:22 <hppavilion[1]> How does it know how often to do stuff?
08:22:41 <myname> the hardware triggers that
08:22:44 <hppavilion[1]> Ah?
08:23:01 <myname> and you count how often it was triggered in some register
08:23:39 <hppavilion[1]> myname: Probably done manually
08:24:00 <hppavilion[1]> myname: By the programmer in their definition of the INTERVAL interrupt
08:24:43 <hppavilion[1]> You do something like =>>+% (go to the third cell, increment it, end procedure by returning)
08:25:34 -!- Treio has quit (Ping timeout: 276 seconds).
08:25:42 <myname> that'd be the simplest, yeah
08:25:49 <hppavilion[1]> myname: Yep. That's what I'm doing
08:27:03 <hppavilion[1]> myname: OK, interrupt #1?
08:28:04 <myname> depends on your goal. mqybe keyboard? or just have a look at interrupt tables of existing OSes
08:28:20 <hppavilion[1]> myname: I've been trying to find one xD
08:31:22 <hppavilion[1]> Ah, found one at http://wiki.osdev.org/Interrupt_Vector_Table
08:33:32 <hppavilion[1]> myname: QUERY HARDWARE instruction (?): Given the current cell's value, send a query to the hardware designated by that cell for what's going on- e.g. query the keyboard (50 or something) for what key was just pressed or unpressed- and put the response in the current cell
08:33:44 <hppavilion[1]> Does that work with how computers work?
08:36:47 <hppavilion[1]> myname: Did my ignorance towards computers offend you? x
08:36:48 <hppavilion[1]> D
08:37:51 <deltab> you should say whether it pauses until a key is pressed/released, or whether it immediately get the most recently stored value
08:38:52 <hppavilion[1]> deltab: Ah, yes, probably a good idea xD
08:39:24 <hppavilion[1]> deltab: I suppose that could be done by treating it as having multiple different hardware devices for different kinds of query?
08:39:33 <hppavilion[1]> e.g. 50 pause, 51 just gets the last keypress?
08:39:38 <hppavilion[1]> *pauses
08:40:24 <deltab> yeah
08:43:33 <deltab> or if you have interrupt handlers, you could have one for keypresses
08:43:58 <hppavilion[1]> deltab: I do
08:44:21 <hppavilion[1]> deltab: You give a procedure the right number (it's pbrain-like procedures), and it gets called on certain interupts
08:44:58 <hppavilion[1]> deltab: I do have one for keypresses, but the problem is that there's no way to calculate just which key was pressed
08:45:25 <hppavilion[1]> deltab: Without querying the hardware
08:46:43 * deltab nods
08:47:03 <deltab> unless you have one for each key
08:47:38 <deltab> which would be annoying if you want more than a few
08:47:46 <hppavilion[1]> deltab: Yeah, no xD
08:57:44 <deltab> .
08:57:51 <deltab> oops
08:58:41 -!- MoALTz has joined.
09:00:02 <deltab> hmm, kinda tricky to do this without adding registers or a stack :-)
09:00:21 <hppavilion[1]> deltab: ?
09:00:29 <deltab> handling interrupts
09:00:32 <hppavilion[1]> deltab: Ah
09:00:41 <hppavilion[1]> deltab: How is it tricky?
09:00:52 <hppavilion[1]> I just have procedures that are assigned to numbers
09:01:04 <hppavilion[1]> And certain numbers denote callbacks for certain interrupts
09:01:50 <deltab> and they get executed with the memory set up to contain the incoming data value?
09:02:04 <hppavilion[1]> deltab: ?
09:02:17 <hppavilion[1]> deltab: No?
09:02:43 <deltab> how do they work?
09:03:00 <hppavilion[1]> deltab: They then have to find a cell that it is acceptable to manipulate, set it to the value for the hardware to query, call ?, then they are now directly over a cell that holds the value that was sent
09:03:37 -!- PinealGlandOptic has joined.
09:03:41 <myname> so ? is syscall?
09:04:00 <hppavilion[1]> So, for example, +2{[>]?.%} is basically CAT
09:04:10 * deltab reads up on pbrain
09:04:16 <hppavilion[1]> Or more safely, +2{[>]?.[-]%}
09:05:07 <hppavilion[1]> That program alone creates an OS which, whenever a button is pressed on the keyboard, prints the value associated. It doesn't work perfectly (as in, keys don't really map to ASCII), but it's OK
09:05:37 <hppavilion[1]> I mean, it does /something/, and it's consistent at it
09:06:26 <hppavilion[1]> If you want it to work better, you kind of need a keyboard-to-ASCII decoder
09:06:32 -!- AnotherTest has joined.
09:06:33 <hppavilion[1]> Which is probably a pain
09:06:39 <myname> your {} are meant to be ()?
09:06:46 <deltab> just require the keyboard to send ASCII :-)
09:06:48 <hppavilion[1]> myname: No, I use {} instead of ()
09:07:28 <hppavilion[1]> myname: Because { and } look more functiony, and because () is used for something else (grouping for the RLE syntactic sugar, to be precise)
09:07:48 <hppavilion[1]> deltab: Does that really work?
09:07:53 <hppavilion[1]> If so, huh. Awesome.
09:08:19 <hppavilion[1]> If not, -_-
09:08:22 <deltab> hmm? oh, are you making this for real hardware?
09:08:32 <hppavilion[1]> deltab: It could work on real hardware IT
09:08:48 <hppavilion[1]> deltab: But generally, you're going to be running these in an emulator
09:09:55 <hppavilion[1]> deltab: So you can't make the keyboard send ASCII in an OS?
09:10:14 <hppavilion[1]> Well, simply?
09:10:53 <deltab> not that I know of
09:10:58 <hppavilion[1]> Damn xD
09:11:33 <hppavilion[1]> deltab: I'm planning to include stdlib functions, written
09:11:34 <deltab> possibly by reprogramming the keyboard controller
09:11:36 <hppavilion[1]> Whoops
09:11:59 <hppavilion[1]> ...written "<identifier>`", which do useful things
09:12:55 <hppavilion[1]> So eq` could be used to test if two values are equal (probably the current cell and the next) and put it in the acc, or some hoop-jumping like that
09:14:10 <hppavilion[1]> deltab: Alternatively, I could just allow characters /other/ than misc. symbols to be used as instructions (i.e. letters), but that's more limiting
09:19:08 <hppavilion[1]> deltab: What should my DemOS do?
09:27:09 <hppavilion[1]> myname: I've figured out that, yes, bitwise mode will be useful
09:28:38 -!- Reece` has joined.
09:34:03 <myname> okay
09:41:06 <hppavilion[1]> myname: Perhaps we should develop a (non-eso) programming language designed solely for OS development?
09:41:16 <hppavilion[1]> Later, obviously
09:44:18 <zzo38> How to make Firefox to display the permissions that are set in a PDF file?
09:59:30 -!- J_Arcane has joined.
09:59:38 <hppavilion[1]> Well.
09:59:45 <hppavilion[1]> Super-injunctions are bullshit.
09:59:53 -!- Reece` has quit (Quit: Alsithyafturttararfunar.).
10:05:38 -!- lleu has quit (Quit: That's what she said).
10:07:59 -!- PinealGlandOptic has quit (Ping timeout: 264 seconds).
10:13:06 -!- deir has joined.
10:14:57 -!- deir has quit (Remote host closed the connection).
10:17:59 -!- lleu has joined.
10:26:39 -!- Reece` has joined.
10:34:38 -!- Reece` has quit (Read error: Connection reset by peer).
10:36:22 -!- AlexR42 has joined.
10:49:29 <HackEgo> [wiki] [[Talk:Call/cc]] N https://esolangs.org/w/index.php?oldid=46327 * Zzo38 * (+141) Created page with "Should law of excluded middle continuations also be described? --~~~~"
10:58:01 <hppavilion[1]> zzo38: Most definitely
11:04:54 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
11:37:43 -!- Reece` has joined.
11:49:56 -!- Reece2 has joined.
11:51:20 -!- Reece` has quit (Ping timeout: 245 seconds).
11:58:22 -!- LexiciScriptor has joined.
12:00:32 -!- boily has joined.
12:00:40 -!- AlexR42 has quit (Quit: Textual IRC Client: www.textualapp.com).
12:05:55 -!- Phantom_Hoover has joined.
12:10:44 -!- Reece2 has quit (Quit: Alsithyafturttararfunar.).
12:11:01 -!- Reece` has joined.
12:25:08 -!- singingboyo has quit (*.net *.split).
12:25:08 -!- J_Arcane has quit (*.net *.split).
12:25:09 -!- MDream has quit (*.net *.split).
12:25:10 -!- hydraz has quit (*.net *.split).
12:25:10 -!- digitalcold has quit (*.net *.split).
12:25:10 -!- nitrix has quit (*.net *.split).
12:25:10 -!- coppro has quit (*.net *.split).
12:25:10 -!- b_jonas has quit (*.net *.split).
12:25:11 -!- pdxleif has quit (*.net *.split).
12:25:11 -!- deltab has quit (*.net *.split).
12:25:12 -!- lleu has quit (*.net *.split).
12:25:12 -!- trn has quit (*.net *.split).
12:25:13 -!- Reece` has quit (*.net *.split).
12:25:14 -!- pikhq_ has quit (*.net *.split).
12:25:14 -!- copumpkin has quit (*.net *.split).
12:25:14 -!- Lord_of_Life has quit (*.net *.split).
12:25:14 -!- diginet has quit (*.net *.split).
12:25:15 -!- graue has quit (*.net *.split).
12:25:15 -!- ski has quit (*.net *.split).
12:25:15 -!- j-bot has quit (*.net *.split).
12:25:15 -!- fungot has quit (*.net *.split).
12:25:15 -!- zemhill has quit (*.net *.split).
12:25:17 -!- relrod has quit (*.net *.split).
12:25:18 -!- Lymia has quit (*.net *.split).
12:25:18 -!- zzo38 has quit (*.net *.split).
12:25:19 -!- kline has quit (*.net *.split).
12:25:19 -!- rodgort has quit (*.net *.split).
12:25:20 -!- haavard has quit (*.net *.split).
12:25:21 -!- nortti has quit (*.net *.split).
12:25:21 -!- sewilton has quit (*.net *.split).
12:25:21 -!- mbrcknl has quit (*.net *.split).
12:25:21 -!- zgrep has quit (*.net *.split).
12:25:21 -!- vifino has quit (*.net *.split).
12:25:22 -!- Deewiant has quit (*.net *.split).
12:25:22 -!- jameseb has quit (*.net *.split).
12:25:23 -!- tromp_ has quit (*.net *.split).
12:25:23 -!- LexiciScriptor has quit (*.net *.split).
12:25:24 -!- tromp has quit (*.net *.split).
12:25:24 -!- Frooxius has quit (*.net *.split).
12:25:25 -!- clog has quit (*.net *.split).
12:25:26 -!- Taneb has quit (*.net *.split).
12:25:28 -!- fizzie has quit (*.net *.split).
12:25:28 -!- Elronnd has quit (*.net *.split).
12:25:28 -!- Phantom_Hoover has quit (*.net *.split).
12:25:29 -!- AnotherTest has quit (*.net *.split).
12:25:29 -!- kragniz has quit (*.net *.split).
12:25:29 -!- nisstyre has quit (*.net *.split).
12:25:29 -!- gniourf has quit (*.net *.split).
12:25:29 -!- APic has quit (*.net *.split).
12:25:29 -!- glowcoil has quit (*.net *.split).
12:25:29 -!- TodPunk has quit (*.net *.split).
12:25:30 -!- lifthrasiir has quit (*.net *.split).
12:25:31 -!- perrier_ has quit (*.net *.split).
12:25:32 -!- boily has quit (*.net *.split).
12:25:32 -!- Melvar`` has quit (*.net *.split).
12:25:32 -!- p34k has quit (*.net *.split).
12:25:33 -!- puckipedia has quit (*.net *.split).
12:25:33 -!- prooftechnique has quit (*.net *.split).
12:25:33 -!- Sgeo has quit (*.net *.split).
12:25:33 -!- FireFly has quit (*.net *.split).
12:25:33 -!- Gregor has quit (*.net *.split).
12:25:33 -!- FreeFull has quit (*.net *.split).
12:25:33 -!- Veltas has quit (*.net *.split).
12:25:34 -!- olsner has quit (*.net *.split).
12:25:35 -!- int-e has quit (*.net *.split).
12:25:37 -!- paul2520 has quit (*.net *.split).
12:25:37 -!- tswett has quit (*.net *.split).
12:25:38 -!- erdic has quit (*.net *.split).
12:25:39 -!- gde33 has quit (*.net *.split).
12:25:40 -!- lambdabot has quit (*.net *.split).
12:25:40 -!- Riviera has quit (*.net *.split).
12:25:40 -!- fractal has quit (*.net *.split).
12:25:40 -!- izabera has quit (*.net *.split).
12:25:40 -!- Nithogg has quit (*.net *.split).
12:25:41 -!- MoALTz has quit (*.net *.split).
12:25:41 -!- carado has quit (*.net *.split).
12:25:41 -!- vodkode has quit (*.net *.split).
12:25:42 -!- heroux has quit (*.net *.split).
12:25:42 -!- cnr has quit (*.net *.split).
12:25:42 -!- Hoolootwo has quit (*.net *.split).
12:25:42 -!- staffehn_ has quit (*.net *.split).
12:25:43 -!- aloril has quit (*.net *.split).
12:25:44 -!- quintopia has quit (*.net *.split).
12:25:44 -!- atehwa has quit (*.net *.split).
12:25:44 -!- ocharles_ has quit (*.net *.split).
12:25:44 -!- shachaf has quit (*.net *.split).
12:25:46 -!- jix has quit (*.net *.split).
12:25:46 -!- Xe has quit (Excess Flood).
12:30:38 -!- Nithogg has joined.
12:30:38 -!- izabera has joined.
12:30:38 -!- lambdabot has joined.
12:30:38 -!- erdic has joined.
12:30:38 -!- tswett has joined.
12:30:38 -!- paul2520 has joined.
12:30:38 -!- int-e has joined.
12:30:38 -!- olsner has joined.
12:30:38 -!- Veltas has joined.
12:30:38 -!- FreeFull has joined.
12:30:38 -!- Gregor has joined.
12:30:38 -!- FireFly has joined.
12:30:38 -!- Sgeo has joined.
12:30:38 -!- prooftechnique has joined.
12:30:38 -!- puckipedia has joined.
12:30:38 -!- p34k has joined.
12:30:38 -!- Melvar`` has joined.
12:30:38 -!- boily has joined.
12:30:38 -!- perrier_ has joined.
12:30:38 -!- jix has joined.
12:30:38 -!- shachaf has joined.
12:30:38 -!- ocharles_ has joined.
12:30:38 -!- atehwa has joined.
12:30:38 -!- quintopia has joined.
12:30:38 -!- aloril has joined.
12:30:38 -!- staffehn_ has joined.
12:30:38 -!- Hoolootwo has joined.
12:30:38 -!- cnr has joined.
12:30:38 -!- heroux has joined.
12:30:38 -!- vodkode has joined.
12:30:38 -!- carado has joined.
12:30:38 -!- MoALTz has joined.
12:30:38 -!- jaboja has joined.
12:30:38 -!- deltab has joined.
12:30:38 -!- pdxleif has joined.
12:30:38 -!- b_jonas has joined.
12:30:38 -!- coppro has joined.
12:30:38 -!- nitrix has joined.
12:30:38 -!- digitalcold has joined.
12:30:38 -!- hydraz has joined.
12:30:38 -!- MDream has joined.
12:30:38 -!- J_Arcane has joined.
12:30:38 -!- singingb1yo has joined.
12:30:38 -!- Elronnd has joined.
12:30:38 -!- fizzie has joined.
12:30:38 -!- Riviera has joined.
12:30:38 -!- AlexR42 has joined.
12:30:38 -!- Reece` has joined.
12:30:38 -!- LexiciScriptor has joined.
12:30:38 -!- lleu has joined.
12:30:38 -!- tromp_ has joined.
12:30:38 -!- Deewiant has joined.
12:30:38 -!- pikhq_ has joined.
12:30:38 -!- tromp has joined.
12:30:38 -!- Lymia has joined.
12:30:38 -!- zzo38 has joined.
12:30:38 -!- Frooxius has joined.
12:30:38 -!- copumpkin has joined.
12:30:38 -!- Lord_of_Life has joined.
12:30:38 -!- diginet has joined.
12:30:38 -!- relrod has joined.
12:30:38 -!- graue has joined.
12:30:38 -!- clog has joined.
12:30:38 -!- ski has joined.
12:30:38 -!- kline has joined.
12:30:38 -!- j-bot has joined.
12:30:38 -!- rodgort has joined.
12:30:38 -!- fungot has joined.
12:30:38 -!- zemhill has joined.
12:30:38 -!- jameseb has joined.
12:30:38 -!- haavard has joined.
12:30:38 -!- vifino has joined.
12:30:38 -!- zgrep has joined.
12:30:38 -!- mbrcknl has joined.
12:30:38 -!- sewilton has joined.
12:30:38 -!- nortti has joined.
12:30:38 -!- Taneb has joined.
12:30:56 -!- Xe has joined.
12:31:08 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
12:31:37 -!- Phantom_Hoover has joined.
12:31:37 -!- AnotherTest has joined.
12:31:37 -!- kragniz has joined.
12:31:37 -!- gniourf has joined.
12:31:37 -!- APic has joined.
12:31:37 -!- glowcoil has joined.
12:31:37 -!- TodPunk has joined.
12:31:37 -!- lifthrasiir has joined.
12:31:40 -!- fizzie has quit (*.net *.split).
12:31:40 -!- Elronnd has quit (*.net *.split).
12:32:05 -!- fizzie has joined.
12:32:05 -!- Elronnd has joined.
12:32:08 <boily> holy fungot! that split!
12:32:09 <fungot> boily: if t, all i have to
12:32:13 -!- Elronnd has quit (Max SendQ exceeded).
12:32:29 <boily> fungot: oh hai! sorry, I must leave. will botsnack you tomorrow.
12:32:30 <fungot> boily: it's easy enough to port a scheme implementation designed for script writing. for opening emacs windows and such to be built in...
12:32:42 -!- boily has quit (Quit: IMPRECISE CHICKEN).
12:34:59 -!- kragniz_ has joined.
12:35:19 -!- Elronnd has joined.
12:35:48 -!- gniourf has quit (Max SendQ exceeded).
12:35:50 -!- kragniz has quit (Max SendQ exceeded).
12:35:50 -!- gniourf has joined.
12:36:16 -!- lifthrasiir has quit (Remote host closed the connection).
12:43:36 -!- lifthrasiir has joined.
12:45:30 -!- Reece` has quit (Ping timeout: 245 seconds).
12:46:24 -!- Reece` has joined.
12:59:52 -!- nisstyre has joined.
13:05:18 -!- trn has joined.
13:15:56 -!- jaboja has quit (Read error: Connection reset by peer).
13:16:51 -!- jaboja has joined.
13:21:12 -!- Melvar`` has changed nick to Melvar.
13:26:01 -!- fractal has joined.
13:41:09 -!- Reece2 has joined.
13:42:26 -!- Reece` has quit (Ping timeout: 240 seconds).
13:48:12 -!- ais523 has joined.
14:03:41 -!- Reece` has joined.
14:04:40 -!- Reece2 has quit (Ping timeout: 245 seconds).
14:13:08 -!- bender| has joined.
14:13:29 -!- Reece2 has joined.
14:14:06 -!- Reece` has quit (Ping timeout: 240 seconds).
14:22:52 -!- Reece` has joined.
14:24:15 -!- Reece2 has quit (Ping timeout: 245 seconds).
14:31:37 <fizzie> fungot: Your scheme implementation has opening emacs windows built in?
14:31:37 <fungot> fizzie: first answer me why you think a password is only allowed in combination with
14:32:04 <fizzie> fungot: It's just common sense to 2FA.
14:32:04 <fungot> fizzie: defines a c-style string.
14:33:56 <fizzie> fungot: A string is a contiguous sequence of characters terminated by and including the first null character. (C11 7.1.1p1)
14:33:56 <fungot> fizzie: i know it sounds kind of stupid name for a new os anyways... it might have matured.
14:40:26 -!- Reece` has quit (Ping timeout: 240 seconds).
14:45:17 -!- mezkhalin has joined.
14:46:20 <mezkhalin> greetings to whomever is awake
14:47:07 <mezkhalin> so i had a little idea for a thing i dont know what to describe it as. as such im having a hard way to come up with a name and subsequently a wikipage for it
14:47:09 -!- ais523 has quit.
14:47:53 <HackEgo> [wiki] [[Brainfuck algorithms]] https://esolangs.org/w/index.php?diff=46328&oldid=46248 * YoYoYonnY * (+197)
14:47:53 <mezkhalin> but it all boils down to pisano sequences and mapping opcodes/instructions to natural numbers
14:49:14 <mezkhalin> the idea being a definition for a program begins with the size of the instruction set 0<n<infinity(theoretically) and then mapping n numbers of instructions for any language to these numbers
14:49:44 <mezkhalin> this could be done by simply providing a list of instructions and their index represents their mapped integer, tadah
14:50:18 <mezkhalin> the source code however, is the pisano sequence of n, in other words the fibonacci values % n
14:50:48 <mezkhalin> the trick thus becoming to figuring out how to map the right operations to the right integers to get not only a program that does what you want, but is also valid
14:51:20 <mezkhalin> and also choosing the right value of n, to get the total number of operations performed before the entire program starts repeating itself
14:52:19 <mezkhalin> it would be trivial to just use NOPs where ever is needed, which would lead to a desired output, but might slow down a program significantly
14:55:00 <LexiciScriptor> so, for example, for bf n=8 and the only program is oeis.org/A079344 ?
14:56:35 <LexiciScriptor> ("only" after the mapping instructions -> integers)
14:57:38 -!- PinealGlandOptic has joined.
15:03:47 -!- bender| has quit (Quit: Leaving).
15:21:22 -!- MDream has changed nick to MDude.
15:29:35 -!- jaboja has quit (Ping timeout: 240 seconds).
15:30:15 -!- Treio has joined.
15:43:07 -!- AlexR42 has joined.
15:49:23 -!- jaboja has joined.
15:56:03 -!- Phantom__Hoover has joined.
16:01:03 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds).
16:20:44 <LexiciScriptor> mezkhalin: how should you define the mapping instruction -> integers?
17:31:58 <mezkhalin> LexiciScriptor: well not precisely, i forgot to mention an operation can be added to the list of ops more than one time
17:32:17 <mezkhalin> such that a bf + instruction can be mapped to both 2,3 and 15 for example
17:32:37 <mezkhalin> the trick is to find a suitable sequence and properly mapping the instructions
17:33:10 <mezkhalin> and the definition i was thinking would be done something similar to first defining the modulo number and then a comma separated list of operations
17:33:25 -!- PinealGlandOptic has quit (Ping timeout: 245 seconds).
17:36:48 <mezkhalin> perhaps just pisano programming would be a suitable name for the concept
17:40:37 -!- PinealGlandOptic has joined.
17:40:57 <LexiciScriptor> or a name from pisa
17:41:40 <LexiciScriptor> also, do you want to map only a symbol to an integer or more than one symbol?
17:42:55 -!- Treio has quit (Quit: Leaving).
17:53:04 -!- LexiciScriptor has quit (Quit: LexiciScriptor).
17:54:54 -!- mezkhalin has quit (Ping timeout: 252 seconds).
18:16:46 -!- jaboja has quit (Ping timeout: 240 seconds).
18:21:26 -!- LexiciScriptor has joined.
18:30:35 -!- jaboja has joined.
18:30:44 -!- contrapumpkin has joined.
18:30:55 -!- copumpkin has quit (Ping timeout: 245 seconds).
18:32:19 -!- tromp_ has quit (Remote host closed the connection).
18:49:19 <myname> is there a generic way to write points-free haskell functions with two arguments?
18:51:10 <myname> i thought of something like .$, but i am a bit scared of that combination :D
18:51:50 -!- Reece` has joined.
18:52:16 -!- Reece` has quit (Remote host closed the connection).
18:53:49 -!- Reece` has joined.
18:54:18 -!- Reece` has quit (Remote host closed the connection).
18:54:54 -!- Reece` has joined.
18:56:27 -!- Reece` has quit (Client Quit).
18:57:18 -!- Reece` has joined.
18:58:40 -!- AnotherTest has quit (Ping timeout: 272 seconds).
19:00:01 -!- AnotherTest has joined.
19:03:54 -!- Reece2 has joined.
19:04:46 -!- Reece` has quit (Ping timeout: 240 seconds).
19:05:37 <myname> like, f x y = g $ h $ i x y
19:13:02 -!- ais523 has joined.
19:14:58 -!- p34k has quit.
19:16:48 -!- Treio has joined.
19:26:46 -!- Reece` has joined.
19:28:00 -!- Reece2 has quit (Ping timeout: 245 seconds).
19:32:49 -!- tromp_ has joined.
19:37:22 -!- tromp_ has quit (Ping timeout: 256 seconds).
19:51:32 -!- lleu has quit (Quit: That's what she said).
19:54:02 -!- mauris has joined.
19:55:56 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
20:03:59 <HackEgo> [wiki] [[Brachylog]] N https://esolangs.org/w/index.php?oldid=46329 * 46.193.1.94 * (+1786) Created page with "'''Brachylog''' is a [[Category:Declarative_paradigm|declarative]] language based on SWI-Prolog. It was created by Fatalize in 2015. The compiler is written in Java and genera..."
20:08:52 -!- PinealGlandOptic has changed nick to anybody.
20:12:57 -!- anybody has left.
20:27:46 <izabera> ok so i'm trying to play with dbfi on my interpreter
20:28:00 <izabera> dbfi is that small brainfuck interpreter
20:28:05 <izabera> written in brainfuck
20:28:08 <izabera> but you know it
20:28:22 <izabera> how big of a slowdown would you expect?
20:31:01 <zgrep> Interpret a brainfuck interpreter in a brainfuck interpreter! :D
20:31:41 <zgrep> That's written in brainfuck!
20:34:21 -!- tromp_ has joined.
20:38:00 <izabera> $ time bf dbfi.b < <(cat rot13.b ; echo '!irel fybj')
20:38:02 <izabera> very slow
20:38:04 <izabera> real: 5m48.295s, user: 5m48.493s, sys: 0m0.037s
20:38:10 <ais523> izabera: I'd expect an O(n) slowdown
20:38:10 <izabera> $ time bf rot13.b <<< 'irel fybj'
20:38:12 <izabera> very slow
20:38:14 <izabera> real: 0m0.142s, user: 0m0.127s, sys: 0m0.007s
20:38:35 -!- tromp_ has quit (Ping timeout: 240 seconds).
20:38:50 <ais523> because the BF self-interp needs to keep moving backwards and forwards between the program and the tape
20:40:43 <izabera> too slow x.x
20:42:40 -!- mauris_ has joined.
20:44:38 -!- mauris has quit (Ping timeout: 276 seconds).
20:48:37 -!- hppavilion[1] has joined.
20:48:42 <hppavilion[1]> myname: Hi
20:58:00 <zzo38> Do you like my idea of TVMIDI?
20:58:40 <zzo38> The digital cable boxes and satellite boxes you have to use their system, you cannot use your own, and I think that you should be allow to use your own equipment like you can with computer and telephone so that is why I invent TVMIDI, that is what it is for
21:05:02 -!- mauris_ has quit (Read error: Connection reset by peer).
21:05:39 -!- mauris_ has joined.
21:07:19 <zzo38> I have found out that the Node.js Buffer object supports an undocumented property called "buffer" which accesses the ArrayBuffer of that Buffer object.
21:09:07 <zzo38> (Actually maybe it is documented, and I have just misunderstood it)
21:12:27 -!- jaboja has quit (Ping timeout: 265 seconds).
21:16:11 <shachaf> `? siderotil
21:16:29 <HackEgo> siderotil? ¯\(°​_o)/¯
21:17:45 <izabera> that bot runs on an eniac
21:18:22 <shachaf> zzo38: What can you tell me about siderotil?
21:19:16 <izabera> zzo38 runs on an eniac
21:23:36 -!- Reece` has quit (Quit: Alsithyafturttararfunar.).
21:26:22 <HackEgo> [wiki] [[Brachylog]] https://esolangs.org/w/index.php?diff=46330&oldid=46329 * 46.193.1.94 * (-26)
21:33:11 <zzo38> shachaf: Just what Wikipedia says; it is iron(II) sulfate hydrate mineral with formula: FeSO45H2O which forms by the dehydration of melanterite.
21:58:57 <hppavilion[1]> myname: OK, I think I've got a test OS written in OSF
21:58:58 <hppavilion[1]> http://pastebin.com/Swiu63ub
22:00:10 <hppavilion[1]> It prints "kernel booting", then goes to a new line, then... then there's a bug
22:00:11 <hppavilion[1]> xD
22:01:20 <hppavilion[1]> OK, it then prints a newline via a horrible hack, then whenever you press a key it prints out the chr() of that key's ID
22:02:24 <hppavilion[1]> Which is /not/ its ASCII value AFAIK, but instead is some completely unrelated character (but at least it's consistent)
22:06:26 <myname> see, it's not that hard
22:08:37 <hppavilion[1]> myname: :)
22:10:45 <hppavilion[1]> myname: Did you check out the code? the docs are here: https://docs.google.com/document/d/18kgklbTW1lFuqvGX_cTGUHBOcFheu7863Zfo-YRuM5A/edit#
22:10:58 <hppavilion[1]> They will, of course, be transcribed to LaTeX in the final release
22:11:37 <myname> well, build a compiler
22:11:57 <hppavilion[1]> myname: Yep, planning on that soon
22:12:19 <hppavilion[1]> myname: I'm currently lexing and parsing, then I'll work on the ASM producing component
22:13:00 <myname> lexing and parsing on a language with only single character lexemes is pretty easy
22:13:52 <hppavilion[1]> myname: It's not quite that though
22:14:01 <hppavilion[1]> myname: There are also strings and RLE
22:15:18 <zzo38> I do not really like the way that asynchronous functions work in Node.js and I think that instead of passing the callback, I can propose an alternative: Such functions would return a function; this function can be called with no arguments to execute it synchronously, or called with another function as the argument in order to execute it asynchronously.
22:16:41 <zzo38> For example fs.readFile('/some/file/that/does-not-exist')() is a synchronous read file operation and fs.readFile('/some/file/that/does-not-exist')(nodeStyleCallback) would do it asynchronously
22:23:25 <zzo38> Also I still cannot find any suitable documentation for node-x11
22:30:47 <zgrep> s/documentation(.+?)node-/reason\1/
22:34:10 -!- tromp_ has joined.
22:34:59 <zzo38> If there way to make any asynchrononus function usable also as synchronous? (readFile already can do that) Possibly if something can be made like: sync(x=>fs.readFile('filename',x))
22:37:15 -!- fredrik has joined.
22:39:04 -!- tromp_ has quit (Ping timeout: 272 seconds).
22:42:10 -!- AnotherTest has quit (Ping timeout: 245 seconds).
22:43:56 -!- idris-bot has joined.
22:47:52 -!- fredrik has quit (Quit: Leaving).
23:02:43 -!- oerjan has joined.
23:07:58 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
23:15:48 -!- hppavilion[1] has joined.
23:19:55 -!- sewilton has quit (Ping timeout: 240 seconds).
23:20:37 -!- ocharles_ has quit (Read error: Connection reset by peer).
23:21:30 -!- sewilton has joined.
23:22:21 -!- ocharles_ has joined.
23:23:29 -!- MoALTz has quit (Read error: Connection reset by peer).
23:24:48 -!- aloril has quit (Ping timeout: 250 seconds).
23:27:24 -!- vodkode has quit (Ping timeout: 250 seconds).
23:38:55 -!- aloril has joined.
23:40:32 -!- vodkode has joined.
23:44:52 <oerjan> <hppavilion[1]> adu: I am the source of all acronyms, in case you're curious <-- HERATIC
23:45:08 <oerjan> (some typos just have to be kept hth)
23:45:25 <hppavilion[1]> HEROTIC
23:46:40 <hppavilion[1]> oerjan: I made a simple OS in my OS-development BF language
23:46:43 <hppavilion[1]> http://pastebin.com/Swiu63ub
23:46:51 <oerjan> OKAY
23:49:14 <hppavilion[1]> Ugh
23:49:22 <hppavilion[1]> I give up trying to build a GCC cross-compiler
23:49:48 <hppavilion[1]> Is there a windows/cygwin cc for i686-elf precompiled I can just get online?
23:55:01 <HackEgo> [wiki] [[MATL]] https://esolangs.org/w/index.php?diff=46331&oldid=46286 * Luis Mendo * (+70) /* Fibonacci sequence */
23:55:18 <HackEgo> [wiki] [[MATL]] https://esolangs.org/w/index.php?diff=46332&oldid=46331 * Luis Mendo * (-1) /* Fibonacci sequence */
23:58:59 <HackEgo> [wiki] [[MATL]] https://esolangs.org/w/index.php?diff=46333&oldid=46332 * Luis Mendo * (+149) /* Fibonacci sequence */
23:59:34 <HackEgo> [wiki] [[MATL]] https://esolangs.org/w/index.php?diff=46334&oldid=46333 * Luis Mendo * (+1) /* Fibonacci sequence */
←2016-01-30 2016-01-31 2016-02-01→ ↑2016 ↑all