00:04:22 <zzo38> About a discussion mentioned earlier, I think that "good ILs can easily/automatically be converted to and from a human-readable form" is better than "good ILs are human-readable".
00:05:01 <lisbeths> a little bit of a bug was found fixed it tho mcr17(){ exec 3>&1;(echo "$1"; cat)|sh|sh|sh >&3 2>&1 |tee /dev/stderr;exec 3>&-;}
00:06:07 <zzo38> I think that "the compiler should be able to emit tracing information that lets you debug the compiler and verify that the IL is correct" is something separate from that, though, but also helpful.
01:06:40 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=152130&oldid=152107 * Hotcrystal0 * (+348)
01:07:11 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=152131&oldid=152130 * Hotcrystal0 * (-25)
01:14:39 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=152132&oldid=152131 * Hotcrystal0 * (-4)
01:36:50 <esolangs> [[Afth]] N https://esolangs.org/w/index.php?oldid=152133 * Lykaina * (+122) Created page with "{{stub}} A Forth-inspired esolang created by [[User:Lykaina]] (that looks nothing like Forth). Currently in alpha-stage."
01:38:27 -!- amby has quit (Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement).
01:38:43 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=152134&oldid=152119 * Lykaina * (+11) /* A */
01:43:27 <lisbeths> mcr17(){ exec 3>&1;(echo "$1"; cat)|sh|sh|sh >&3 2>&1 |tee >&2;exec 3>&-;} this one works on readonly filesystems
02:09:09 <esolangs> [[User:Anthonykozar/Notes]] https://esolangs.org/w/index.php?diff=152135&oldid=152129 * Anthonykozar * (+23) /* People who make interesting languages */ Added user TuxCrafting.
02:36:28 <Lykaina> so, if a line equaling ':A+ sGsIg+S' is present then any time after that the line 'A+' is encountered, Afth will execute 'sGsIg+S', the addition command sequence.
02:38:06 <Lykaina> words are two chars, and start with capital 'A'-'F'
02:40:01 <Lykaina> words contain single lines, and words can not contain words
02:42:30 <Lykaina> lines containing only '0'-'9' and 'a'-'f' put a hexadecimal number on the stack
02:44:46 <Lykaina> j/J are the two "jump if tk is non-zero"
02:45:18 <Lykaina> j is relative, J is absolute
02:46:06 <Lykaina> basically a 'goto if' kinda thing
02:46:25 -!- ais523 has quit (Quit: quit).
02:47:45 <Lykaina> there are 39 of these characters so far
02:53:50 <Lykaina> it will take a num from the stack and goto that line
02:56:23 <Lykaina> so yeah, you have to define every word before it is used
03:04:41 <Lykaina> next thing i'm adding is lines starting with '"', which puts printable ascii onto the stack
03:06:01 -!- craigo has quit (Quit: Leaving).
03:06:51 <Lykaina> where '"Hello' would add ['o','l','l','e','H'] to the top of the stack.
03:29:47 <Lykaina> the two ifs are z (if t == 0 then tk = 1 else tk = 0) and Z (if t > 0 then tk = 1 else tk = 0)
03:37:33 -!- Lykaina has quit (Quit: Leaving).
04:05:06 -!- Lykaina has joined.
04:07:52 <esolangs> [[User:Anthonykozar]] https://esolangs.org/w/index.php?diff=152136&oldid=90589 * Anthonykozar * (+325) Mentioning SCOOP and some of my other esolang ideas. Added a list of subpages.
04:18:52 -!- Lykaina has quit (Quit: Leaving).
04:23:03 <esolangs> [[User:Anthonykozar]] https://esolangs.org/w/index.php?diff=152137&oldid=152136 * Anthonykozar * (+76) Add full versions of acronyms and correct Aliba link in Subpages section.
04:34:00 <esolangs> [[User:Anthonykozar/SCOOP History and Design Goals]] N https://esolangs.org/w/index.php?oldid=152138 * Anthonykozar * (+3283) Removing this information from the main SCOOP page.
04:43:03 <esolangs> [[SCOOP]] https://esolangs.org/w/index.php?diff=152139&oldid=152105 * Anthonykozar * (-3243) Moving "History and Design Goals" and "Unused Ideas" sections to a new page under my user profile.
04:54:40 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
05:01:24 -!- slavfox has joined.
05:06:25 <esolangs> [[User:Anthonykozar]] https://esolangs.org/w/index.php?diff=152140&oldid=152137 * Anthonykozar * (+348) Added links to esolang-related software that I've written.
05:33:48 <lisbeths> now old versions of my code have stopped working
05:34:52 <korvo> Something must have changed in the environment.
05:39:41 <lisbeths> it happened on both my tablet and on my laptop
05:46:10 <lisbeths> it doesnt seem possible that it worked in my shell for days and days and days and now it doesnt
05:52:28 <lisbeths> teh only explanation I can think of is my kernel changed to disallow it
05:52:44 <lisbeths> my chromebook might do an automatic apt update but my termux on my tablet certainly does not
05:55:51 <esolangs> [[10 1]] M https://esolangs.org/w/index.php?diff=152141&oldid=144756 * Corbin * (+13) It's a trivial BF substitution.
05:59:14 <korvo> I've found a couple questionable proofs of Turing-completeness via Cook's Rule 110. Do we have a systematic way of talking about these?
06:01:06 <korvo> A good example is Foreach. I can't immediately tell whether Foreach is TC just from its specification, and it's clear that Foreach is fairly expressive. The given proof shows that Foreach can iterate Rule 110.
06:02:10 <lisbeths> https://www.irccloud.com/pastebin/lgRPE3a0/sdfaosdfij
06:02:12 <korvo> But merely iterating Rule 110 isn't TC. What's TC is iterating Rule 110 until an arbitrary chosen effect occurs, and that has to be done relative to a specific fixed background, IIRC.
06:03:01 <lisbeths> https://www.irccloud.com/pastebin/YDkixojZ/sdfsdfd
06:03:39 <lisbeths> https://www.irccloud.com/pastebin/uATyUoK7/sdfasddgsdg
06:47:29 <zzo38> I made up a file format for compact case-folding tables (for character sets of 256 characters): 0x00 to 0x7F means a identity run with length 1 to 127. 0x80 to 0xBF means a difference run with length 1 to 64; it is followed by one more byte specifying what the difference is. 0xC0 to 0xFF means a manual run of length 1 to 64; it is followed by that many bytes of data.
06:48:27 -!- Lykaina has joined.
07:03:15 <Lykaina> https://lykaina.sdf.org/afth/helloworld.afth.txt
07:10:10 -!- Sgeo has quit (Read error: Connection reset by peer).
07:12:55 <lisbeths> >&2 is broken and allegedly never worked according to this timeline
07:13:08 <lisbeths> and so the fallback is mcr17(){ (echo "$1"; cat)|sh|sh|sh;};
07:13:20 <lisbeths> this can still print to stdout just fine
07:13:40 <lisbeths> if you want to launch a graphical program say vi the current solution is echo echo xterm vi
07:13:49 <lisbeths> if you dont have xterm then dtach
07:14:01 <lisbeths> or some otehr terminal multiplexer like tmux
07:14:10 <lisbeths> you may not like it but there it is
08:12:02 <esolangs> [[Nice]] https://esolangs.org/w/index.php?diff=152142&oldid=136438 * PoptartPlungerBoi * (+75) /* Variables */
09:02:02 <esolangs> [[Special:Log/upload]] upload * PoptartPlungerBoi * uploaded "[[File:Nice 99bottles program.PNG]]"
09:04:12 <esolangs> [[Nice]] https://esolangs.org/w/index.php?diff=152144&oldid=152142 * PoptartPlungerBoi * (+72)
09:13:18 -!- amby has joined.
10:04:47 <esolangs> [[User talk:Krolkrol]] N https://esolangs.org/w/index.php?oldid=152145 * Krolkrol * (+40) Created page with "Edit this page if you want to talk to me"
10:26:59 -!- wib_jonas has joined.
10:27:39 <wib_jonas> does any of you use G'MIC in command or library form? ideally can you tell me the main advantages and drawbacks compared to ImageMagick and MagickWand?
10:29:31 <int-e> Hmm what's that... gimmick?
10:29:55 <int-e> (I can google, no worries)
10:30:17 <wib_jonas> as in https://gmic.eu/ vs https://imagemagick.org/ , I'm mostly familiar with the latter
10:30:39 <int-e> I had somehow not even heard of the former.
10:32:00 <int-e> (It is /relatively/ new with 8 years vs. 34 for IM)
10:32:41 <wib_jonas> then why did they build it to apparently inherit the bad parts of ImageMagick?
10:33:13 <wib_jonas> well I don't know for sure yet, I'm still trying to read the manuals, maybe it doesn't really inherit all the bad parts
10:36:21 -!- wib_jonas has quit (Quit: Client closed).
10:37:52 <int-e> it does the same pipeline of filters thing... is that one of the bad parts?
10:42:01 -!- wib_jonas has joined.
10:43:25 <wib_jonas> no, the bad part seems to be the syntax, where I can't just give a literal filename to ImageMagick without it trying to interpret my string as a dwim thing with complicated syntax that may have types and filters and coordinates and expressions and may incidentally also be a filename if I'm lucky
10:43:45 <wib_jonas> but maybe G'MIC has some way around this, and I just didn't get to that part yet in the docs
10:48:17 <wib_jonas> I think if you want to get ImageMagick or even MagickWand to open an arbitrary file then you have to do the open call yourself and then pass the file descriptor number in %d format inside a magic string that also mentions the image type just to make sure that loading the file can't cause arbitrary side effects.
10:49:50 <int-e> https://gmic.eu/reference/input.html looks like the <type>:filename syntax fragment doesn't overlap with the rest
10:50:24 <int-e> (unless you think that http:// is a valid part of a file name)
10:51:17 <int-e> But that's documentation. I'd wonder whether https:// and maybe file:// are supported too
11:07:39 <esolangs> [[1CP=1ICL]] https://esolangs.org/w/index.php?diff=152146&oldid=151538 * PrySigneToFry * (+0)
12:08:45 -!- ais523 has joined.
12:09:20 <ais523> korvo: to prove a language TC via rule 110 you need to initialise the rule 110 interpreter with a pattern consisting of an infinite repeating pattern, then a fixed section, then a different infinitely repeating pattern
12:09:52 <ais523> often it is possible to do this lazily, i.e. appending a particular pattern to each side every n cycles (I forget the value of n but it's a constant)
12:10:04 -!- lisbeths has quit (Quit: Connection closed for inactivity).
12:10:48 <ais523> that said, usually if a language can do rule 110 it can do other cellular automata too, and if it can take more than three inputs you can use one that's TC starting from a finitely initialised tape
12:11:07 <ais523> (by "more than three inputs" I mean calculating the value of a cell based on more than three cells above it)
12:11:29 <ais523> not sure of the minimum number of inputs needed, but most such esolangs can do arbitrarily many
12:13:12 <ais523> as for why rule 110 needs the infinitely repeating background, it's definitely needed on one side because the proof implements sequential tag (thus the repeating pattern is an encoding of a cyclic tag program as sequential tag), I am not sure whether it's absolutely necessary on the other or whether that's just done for convenience
12:31:46 <esolangs> [[Special:Log/newusers]] create * Anulick * New user account
12:54:11 <Lykaina> https://lykaina.sdf.org/afth/helloworld.afth.txt
13:09:12 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152147&oldid=152133 * Lykaina * (+116) Adding a Hello World example.
13:14:34 <esolangs> [[Free Esolang]] https://esolangs.org/w/index.php?diff=152148&oldid=151539 * Hotcrystal0 * (+143)
13:25:25 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152149&oldid=152147 * Lykaina * (+180) Adding "Core Instructions" section. (I need to fill it in)
13:35:32 <esolangs> [[Pointing]] M https://esolangs.org/w/index.php?diff=152150&oldid=151993 * Calculus is fun * (+63) changed syntax slightly
13:37:43 <esolangs> [[Pointing]] M https://esolangs.org/w/index.php?diff=152151&oldid=152150 * Calculus is fun * (-44) /* Pointer manipulation */
13:37:56 <esolangs> [[Pointing]] M https://esolangs.org/w/index.php?diff=152152&oldid=152151 * Calculus is fun * (-2) /* Pointer manipulation */
13:43:46 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152153&oldid=152149 * Lykaina * (+585) /* Core Instructions */ saving incomplete table (WIP)
14:00:09 <esolangs> [[Pointing]] M https://esolangs.org/w/index.php?diff=152154&oldid=152152 * Calculus is fun * (+166) Added implementation
14:08:21 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152155&oldid=152153 * Lykaina * (+780) /* Core Instructions */ got Chars and Names down, next is Descriptions...
14:43:24 -!- tromp has quit (Ping timeout: 244 seconds).
14:45:26 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152156&oldid=152155 * Lykaina * (+584) /* Core Instructions */ finished typing core instructions
14:51:34 -!- ais523 has quit (Ping timeout: 272 seconds).
14:55:44 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152157&oldid=152156 * Lykaina * (+154) /* Core Instructions */ updating to match planned change
15:25:40 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152158&oldid=152157 * Lykaina * (+72) /* Core Instructions */ code change opened up 'a'-'f' and 'A'-'F'
15:44:05 <esolangs> [[Pointing]] M https://esolangs.org/w/index.php?diff=152159&oldid=152154 * Calculus is fun * (+15) Updated Cat
15:48:22 -!- tromp has joined.
15:52:32 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152160&oldid=152158 * Lykaina * (+0) /* Examples */ fixed the Hello World example.
15:54:18 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=152161&oldid=152132 * Hotcrystal0 * (+86)
15:55:20 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=152162&oldid=152161 * Hotcrystal0 * (+1)
16:06:02 <esolangs> [[Free Esolang]] https://esolangs.org/w/index.php?diff=152163&oldid=152148 * Hotcrystal0 * (+112)
16:06:14 -!- dawids has joined.
16:06:23 <esolangs> [[Free Esolang]] https://esolangs.org/w/index.php?diff=152164&oldid=152163 * Hotcrystal0 * (+0)
16:10:40 -!- dawids has quit (Client Quit).
16:11:23 -!- Everything has joined.
16:36:46 -!- craigo has joined.
17:14:45 -!- wib_jonas has quit (Quit: Client closed).
17:29:36 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152165&oldid=152160 * Lykaina * (+522) Adding table for "Predefined Words" and fixing a typo elsewhere.
17:57:38 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152166&oldid=152165 * Lykaina * (+101) /* Examples */ Added "Add Two Numbers"
18:11:05 -!- ais523 has joined.
18:13:40 <korvo> ais523: Okay, that makes sense. What about halting conditions? Rule 110 is total, so I guess that we need to inspect the latest cells to know when to halt?
18:16:49 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=152167&oldid=152090 * Dan422442 * (+55) Introducing myself
18:17:06 <esolangs> [[Quinary Bueue]] M https://esolangs.org/w/index.php?diff=152168&oldid=124805 * Dan422442 * (-2) It has been Implemented
18:18:50 <ais523> korvo: right – the halt condition of the rule 110 proof is basically a pattern of repeating stripes that clearly don't interact with each other
18:19:12 <ais523> but that is hard to detect from inside a rule 110 simulator unless it's pretty high-level
18:24:07 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152169&oldid=152166 * Lykaina * (+170) /* Core Instructions */ added 'e' and 'E'
18:25:21 <ais523> actually, I think it might simplify down to "the same" state appearing twice (translated but otherwise identical) which is quite easy to objectively define
18:25:27 <ais523> but not necessarily easy to detect
18:29:15 <esolangs> [[Varia]] N https://esolangs.org/w/index.php?oldid=152170 * * (+521) Threw the framework together
18:33:49 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152171&oldid=152169 * Lykaina * (+12) /* Predefined Words */ clarifying something
18:38:01 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152172&oldid=152171 * Lykaina * (+103) /* Predefined Words */
18:38:32 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152173&oldid=152172 * Lykaina * (+0) /* Add Two Numbers */
18:41:23 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152174&oldid=152173 * Lykaina * (+0) /* Predefined Words */
18:44:37 -!- Lord_of_Life has quit (Ping timeout: 248 seconds).
18:45:19 -!- Lord_of_Life has joined.
18:52:06 <Lykaina> i decided to be nice and add predefined words to Afth
18:52:30 <Lykaina> literally I/O and basic math
18:55:08 <Lykaina> I know it's a Forth-like under the hood, but I like to make it weird.
18:59:19 <Lykaina> i already have 94 possible variables
18:59:44 <Lykaina> but they have to be initialized in order to be used
19:10:22 <Lykaina> the goal is to be able to define most words in a Forth-like using (currently) 39 core&math commands and 10 extra&io commands
19:12:03 <Lykaina> i have 7 line-level vars, 4 of which are temporary space.
19:13:32 <Lykaina> 2 of the latter could probably easily be removed
19:24:24 -!- lisbeths has joined.
19:24:29 <Lykaina> the sequence _^<<^<<^< is equivalent to t=42
19:26:07 <Lykaina> i just typed a bunch of stuff about Afth
19:26:30 <Lykaina> check log if you wanna see
19:26:53 <Lykaina> not everything is on the wiki yet
19:32:02 <Lykaina> you seemed like you might be interested in Afth, as it is a Forth-like at its core.
19:33:53 <zzo38> Is there a command with 7z or tar or other programs to specify a different path and name inside of the created archive file than the actual paths and names in the system?
19:37:16 <zzo38> Also, is it possible to tell tar to store invalid user IDs, that it will only be able to extract the files if you do not use the user IDs in the archive file?
20:02:52 <lisbeths> Lykaina: yeah tell me about it
20:04:08 <ais523> zzo38: GNU tar supports a --transform option that can regex-substitute the filenames (the input of the regex is the file's location on disk and the output is the pathname stored in the archive)
20:05:33 <ais523> in theory you could use that to give files completely arbitrary names by adding them one at a time, although it's likely for most uses that a regex will be sufficient to map the names of multiple files at once
20:06:38 <ais523> here's an online copy of the documentation: https://www.gnu.org/software/tar/manual/html_section/transform.html
20:06:42 <zzo38> Yes, after asking the question I found that, but do not find the way to specify the mapping for each name individually, in a file that also specifies the list of which files to be included in the archive.
20:08:01 <ais523> zzo38: so tar can append to an archive, so I think you just create an archive with one file and the name you want for it, then add another file using another regex, etc.
20:08:27 <ais523> although you'd probably want a wrapper script to automate that process
20:10:31 <zzo38> OK, that makes sense, too. Do you know if it can be made that user/group IDs can be invalid so that --same-owner will not work but --no-same-owner will work?
20:11:39 <ais523> I don't think so, because there are no truly invalid user/group IDs
20:12:17 <ais523> 65534 is frequently used as a sentinel for an invalid user/group ID but nothing technically prevents files being owned by that ID
20:13:25 <zzo38> I mean if the data is e.g. not a valid octal number and the user name is blank, what will tar (both GNU and other implementations) do in such a case?
20:14:45 <esolangs> [[11]] M https://esolangs.org/w/index.php?diff=152175&oldid=150640 * Buckets * (+4)
20:18:45 <Lykaina> lisbeths: i gotta go out and do some shopping, ttyl
20:30:28 <int-e> zzo38: tar: Archive contains ‘000064A’ where numeric mode_t value expected
20:31:00 <int-e> and tar tvf displays that mode as -rwsrwsrwt
20:31:06 <int-e> so I guess that's -1
20:33:08 <zzo38> I mean the user ID, not the mode.
20:35:17 -!- Everything has quit (Quit: leaving).
20:37:09 <int-e> the numeric id is displayed as 4294967295 then but maps to 0 when unpacking as root
20:38:44 <int-e> well, maybe. maybe it just didn't use the numeric id for this. in any case, this is easy to test... the checksum field is the only protection against these shenanigans and it's just a sum.
20:40:46 <zzo38> (I think it would make more sense if invalid data in the user ID and/or user name fields resulted in an error message if --same-owner is specified but is silently ignored if --no-same-owner is specified; similar should apply to other fields, if you specify switches to override them then they will be ignored and don't care if it is valid. Unfortunately, it does not work like that.)
20:42:27 <ais523> actually I guess 65535 may be an invalid value, as it's the return value on error from many uid/gid functions (well, -1 but it's traditionally a 16-bit return)
20:42:34 <ais523> that would explain why 65534 was used as the sentinel
20:44:32 <esolangs> [[Varia]] https://esolangs.org/w/index.php?diff=152176&oldid=152170 * * (+124)
20:54:47 <esolangs> [[XXXoYYY]] N https://esolangs.org/w/index.php?oldid=152177 * Dtp09 * (+5449) page creation
20:55:20 <esolangs> [[User:Dtp09]] M https://esolangs.org/w/index.php?diff=152178&oldid=128625 * Dtp09 * (+14) /* esolangs i made */
20:56:57 <esolangs> [[User:Buckets/Sandbox]] M https://esolangs.org/w/index.php?diff=152179&oldid=152117 * Buckets * (+22)
20:57:28 <esolangs> [[User:Buckets/Sandbox]] M https://esolangs.org/w/index.php?diff=152180&oldid=152179 * Buckets * (-22)
21:02:13 <b_jonas> zzo38: in 7z not directly. 7z can rename files in an existing archive, and you can give multiple pairs of names to rename. but I don't think it supports adding files with a different name in one pass.
21:07:04 <b_jonas> wait, a 16-bit return? I'll have to look this up, I assumed the user ID was always given as an int in the kernel interfaces, it's just that its value was restricted to 16 bits on old systems and that's what the file system represented
21:11:17 <ais523> b_jonas: I kind-of assumed that int was 16-bit at the time
21:11:20 <b_jonas> ``` set -e; >uid_size.c echo $'#include <stdio.h>\n#include <unistd.h>\n#include <sys/types.h>\n''int main(int ac, char *av[]) { printf("sizeof=%d, signed=%d,\n", (int)sizeof(uid_t), (int)(uid_t)-1); return 0; }'; gcc -Wall -O -o uid_size uid_size.c; ./uid_size
21:11:22 <ais523> but I guess it was 32 in early UNIX
21:11:39 <b_jonas> oh, it's possible that it was 16-bit in very early unix, sure
21:20:28 <ais523> didn't BCPL use 32 bits for everything? although Unix may have been written in C from the start
21:26:23 <ais523> now I'm a) questioning myself but b) wondering why C even allows 16-bit int – if Unix didn't use 16-bit int early on then I'd expect C to require it as 32-bit
21:27:04 <ais523> although it was a very long time after C was created before systems with short, int, and long all different became commonplace (and long is still 32 bits on Windows!)
21:27:08 <b_jonas> I'm hazy about ancient unix history. as far as I understand, unix was originally written in a machine language, then later rewritten into C. that was pre-ANSI C so function arguments and return values were promoted to at least int sized, but I think that was 16-bit int.
21:27:26 <ais523> so it could have been that int was always ambiguous, and short and long disambiguated
21:28:14 <ais523> "In UNIX V6 the getuid() call returned (euid << 8) + uid." – lots of manual pages
21:28:52 <ais523> getuid(2) says that on my current computer
21:29:32 <b_jonas> I think C was designed to be able to work on contemporary machines of different architecutres from the start, which is why short and int were separate types even if they're normally both 16 bits wide.
21:30:32 <ais523> aha – BCPL had all types the same width, but that was originally 16-bit
21:30:42 <ais523> meaning that you were limited to 64KiB of memory because pointers were 16-bit too
21:31:30 <ais523> because if everything is 16-bit the pointers only need 16-bit of granularity
21:33:03 <b_jonas> I assume that's just for data, and code can be in a separate area
21:35:06 <ais523> I think that view is compatible with how BCPL was defined
21:35:12 <ais523> although I'm not sure whether or not it did that in practice
21:35:36 <ais523> C for 16-bit x86 works similarly, a pointer is treated as a pointer to code or data depending on what you do with it
21:38:21 <ais523> x86 supports ds != ss, but I'm not sure typical C implementations handle that combination
21:39:29 <ais523> you could use a separate spill stack (in ss) and automatic variable stack (in ds), but that means two stack pointers so you're tying up one extra register, and that's fairly painful on 16-bit x86 which doesn't have very many of them
21:39:32 <b_jonas> Borland C supports like six or seven different "memory models" for x86_16 DOS that differ in these details,
21:39:46 <ais523> I'm only aware of four
21:40:16 <b_jonas> and it also lets you override this locally by declaring a pointer as near or far or huge or segment, and has a nonstandard operator spelled :> for combining a segment with a near pointer to get a far pointer
21:40:37 <ais523> 16-bit versus 32-bit for code pointer and for data pointer (4 combinations), plus if they're both 32-bit, whether objects are allowed to cross 16-bit boundaries or not
21:41:16 <ais523> maybe you can do that even if the code pointers are 16-bit, that would make 6 combinations
21:41:27 <ais523> but yes, there are near/far/huge overrides
21:41:53 <ais523> oh, I remembered the extra one! it's 16-bit code and 16-bit data in the same segment
21:41:56 <b_jonas> no, I think the extra combination is about which segments are equal when everything is 16-bit
21:43:18 <ais523> hmm, my client has timestamped my "oh," message as 21:42 and your "no," message as 21:41, but displayed my message before yours causing the timestamps to be out of order (and the logs agree that my message was first)
21:43:29 <ais523> I'm assuming this is some sort of timestamping bug
22:01:55 <esolangs> [[User talk:I am islptng]] https://esolangs.org/w/index.php?diff=152181&oldid=152102 * Hotcrystal0 * (+178)
22:03:03 <esolangs> [[User talk:Tommyaweosme]] https://esolangs.org/w/index.php?diff=152182&oldid=152077 * Hotcrystal0 * (+13)
22:03:13 <esolangs> [[User talk:Tommyaweosme]] https://esolangs.org/w/index.php?diff=152183&oldid=152182 * Hotcrystal0 * (-13)
22:13:41 -!- lisbeths has quit (Quit: Connection closed for inactivity).
22:14:09 <esolangs> [[UserEdited]] https://esolangs.org/w/index.php?diff=152184&oldid=152162 * Hotcrystal0 * (+404)
22:26:38 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:29:58 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=152185&oldid=152134 * H33T33 * (+13)
22:55:07 -!- Sgeo has joined.
23:09:04 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=152186&oldid=152118 * Buckets * (+17)
23:09:16 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=152187&oldid=152185 * Buckets * (+18)
23:10:03 <esolangs> [[]] N https://esolangs.org/w/index.php?oldid=152188 * Buckets * (+705) Created page with " (Not .) Is an Esoteric programming language created by [[User:Buckets]] in 2021. {| class="wikitable" ! Commands !! Instructions |- | || +3. |- | . || -3 |- | (Line feed) || Prints the current number in ASCII. |- | || Turn to the next page. |- | || Turn to the Previous page
23:10:25 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=152189&oldid=152186 * Buckets * (+0)
23:54:59 <esolangs> [[Afth]] https://esolangs.org/w/index.php?diff=152190&oldid=152174 * Lykaina * (+391) Updated to current.