00:46:09 <Sgeo> Someone should make an operating system where the OS knows where lines begin and end and you can use some sort of syntax when referring to a file to select specific ranges of lines. Someone also should convince me to stop presenting historical ideas that would be considered esoteric today as "new" ideas as a bad form of humor.
01:01:49 <int-e> Sgeo: surely you do this by making lines fixed length and then having a record-based file access API (e.g. CP/M's FCB stuff that more or less found its way into DOS)
01:03:51 <Sgeo> https://try-mts.com/working-with-files/
01:59:03 -!- 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).
02:15:32 <Sgeo> https://bitsavers.org/pdf/univOfMichigan/mts/volumes/MTSVol01-TheMichiganTerminalSystem-Nov1991.pdf appendix C on page 154 describes how line files work
02:58:58 <Sgeo> I've been playing more with MUSIC/SP than with MTS at the moment >.>
03:14:04 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=178021&oldid=177980 * Meh2 * (+148) /* Introductions */
03:14:36 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=178022&oldid=178021 * Meh2 * (-1) /* Introductions */
03:15:28 <zzo38> My idea of the operating system does not have any "plain text" files; it uses a binary structured data format (a bit like DER, but different). So, it is not made of "lines" either.
03:18:19 <esolangs> [[User:StavWasPlayZ]] N https://esolangs.org/w/index.php?oldid=178023 * Meh2 * (+52) Created page with "Where's the cursed esolang? Made by: [[User:Meh2]]"
03:33:19 <esolangs> [[User:Meh2]] N https://esolangs.org/w/index.php?oldid=178024 * Meh2 * (+28) Created page with "Meh. ==Esolangs:== Not yet!"
04:02:46 <ais523> zzo38: how does it load plain-text files that other operating systems produced?
04:05:14 <zzo38> They can still be loaded as raw files, or as converted files, if using a program (not necessarily the same program that the file is being used with) that can read the disk of that other operating system (such programs will likely be included for compatibility, at least for such things as CDs and DVDs)
04:15:32 -!- somefan has joined.
04:31:11 -!- somefan has quit (Quit: leaving).
04:31:54 <zzo38> (One of the forks is used for if programs (usually emulated programs rather than native programs) expect the file to contain raw data, then it can use that one; however, a proxy capability (or a function in a program) might be used to automatically convert in either direction if needed. This might result in a more limited functionality, such as a more restricted character set.)
04:39:48 <zzo38> (Something similar would be true of directories; you can have a table of links with whatever extra data is appropriate for the file system being converted from. However, many things would be converted to the port of the program for this system instead which would use a different format instead, so that such a thing would be mostly (although not entirely) unnecessary.)
04:40:29 <zzo38> (One of my intentions is to avoid needing to be limited due to what other existing systems do)
05:06:55 -!- impomatic has joined.
05:31:57 <b_jonas> Sgeo: that sounds like something you should do in user-space rather than in an operating system
05:32:43 <Sgeo> b_jonas, I guess it was before everyone converged on the boring but useful idea of files just being a bunch of bytes
05:33:40 <Sgeo> On IBM mainframe OSes, you tend to need to define whether a dataset (their term for file) is a bunch of fixed length records or variable length records
05:35:50 <ais523> when I first learned programming, record-based files were common enough that most practical programming languages had syntax to access them
05:35:58 <ais523> but I think they've pretty much been abandoned by this point
05:37:03 <zzo38> (Continuing what I mentioned, probably would be better to use separate programs to convert the file and then work with it, rather than doing it "live"; however, emulation might be used if you are modifying files for use with other systems (such as DOS or uxn))
05:37:51 <ais523> fwiw I think it's usually correct for databases to use a record-oriented file internally, even if they're storing it on a byte-oriented filesystem
05:38:13 <zzo38> ais523: I think BASIC does (although you have to specify the record size in your program, since the operating system doesn't know the record size); as far as I know, I have not used other programming languages that do
05:47:09 <ais523> hmm, C has an API that's capable of expressing reads and writes of record-based files (especially with fread and fwrite) but I don't know whether or not that was intentional
05:47:42 <b_jonas> ais523: ins't that because record-based files made sense for magnetic casette tape drives?
05:48:59 <ais523> I never actually used a computer with a tape drive
05:49:16 <ais523> I used a few that were designed for tape drives but they'd been connected to 5¼" floppy drives instead
05:50:08 <b_jonas> I mean disks have fixed-size sectors preallocated during formatting, which makes it easy to not overwrite other sectors on the same track, but a tape doesn't have lots of tracks that it can seek to, so at least some tape drives write and read variable-length blocks
05:50:28 <zzo38> Something I was working recently was to see how I would make a programming language to be better than C, and I suppose it also has a way to work with record-based files even though that feature was not really intended for that use; the "stream" type is a parameterized type so is usually "stream(u8)" but you could specify a different type than "u8" such as "u8[128]"
05:51:28 <ais523> zzo38: hmm, interesting; I came to a similar conclusion but I was thinking about memory allocators rather than file formats
05:52:32 <ais523> the idea of a "typed file" is probably useful even if you aren't storing records, because if the type system is sufficiently powerful, it would mean that you wouldn't have to reverify the file contents (as long as you trusted the file system to not corrupt it)
05:53:01 <ais523> although you would still need to ensure that it was a valid value of its type if you were receiving one as a stream of bytes from an untrusted source, e.g. over the Internet
05:58:08 <korvo> It's because the structure isn't local to the CPU. When we parse a file, we're creating a local structure in the CPU registers which summarizes the file contents.
05:59:12 <korvo> RAM isn't local either, but we trust memory controllers. Quirk of history, I think.
06:01:31 <korvo> Come to think of it, in the 1990s we trusted disks a lot more. Programs would mmap their save files from disk, headers and all.
06:05:09 <ais523> NetHack still does that I think
06:06:26 <ais523> I think one reason programs moved away from that is for security against files downloaded from elsewhere that purported to have been created by the program but actually weren't, and another is portability (as programs that are just mmapping their data structures may have those structures defined differently on different platforms)
06:06:48 <ais523> and nowadays, some languages (like Rust) by default allow the compiler to change the memory layout of a structure with every complie
06:07:04 <ais523> (you can request a stable layout but it isn't the default)
06:07:34 <ais523> normally this is just used to provide optimisation opportunities but some people have experimented with doing something ASLRish with it
06:08:06 <ais523> interestingly, executables are still loaded by mmap – I think that's because they're inherently nonportable to different architectures and already unsafe to run if you don't trust them
06:08:47 <ais523> (native executables, that is)
06:10:25 <korvo> Yeah, I was going to say something about how the safety of mmap boils down to treating your loader like an interpreter for the resulting memory layout.
06:10:30 <b_jonas> yeah, programs like msword used to just read and write its internal structures into a file and trust them at first, which made sense when people weren't interchanging files as untrusted between computers much, but then later these had to be changed to actually parse and verify those files and covert them to the currently used internal formats.
06:11:21 <ais523> well, it also caused the problem that Word struggled to read files from its own past versions
06:14:25 <b_jonas> these days we have so much CPU power that I generally want to verify everything I can, even if it's from a trusted source, because this can uncover bugs in the program where I had thought that an assumption was correct but it's not
06:15:30 <b_jonas> not verifying data is like a micro-optimization that you should do only when the verifying would be an actual bottleneck
06:16:34 <b_jonas> this is how my programming style works
06:17:55 <ais523> I'm generally in favour of compile-time proofs of that – we have enough CPU power to verify them – so a runtime verification would only be useful to guard against bugs in the compiler
06:18:28 <ais523> but of course, a compiler can't verify that the disk hasn't been tampered with (perhaps accidentally, e.g. due to power failure)
06:19:16 <b_jonas> that works if you aren't linking your program with other compilation units written by your incompetent co-workers that cause undefined behavior eg. by indexing out of arrays too often
06:20:08 <ais523> guarding against UB doesn't really make sense, UB can do anything after all (including making your guards irrelevant)
06:20:29 <ais523> unless you're doing it at a lower level than the level the compiler works at
06:21:02 <b_jonas> so the compiler may be able to optimize away some of my checks
06:22:02 <b_jonas> yes, the correct solution is to not link to those co-workers' code until they get competent
06:22:19 <ais523> or use a language which would prevent them doing that sort of thig
06:23:02 <ais523> that said, I can't think of many practical languages which are unable to have UB if you try hard enough
06:23:09 <ais523> there are a number of UB-less esolangs, at least
06:23:32 <b_jonas> to be fair this problem was over 12 years ago, we were all young then, me and my coworkers
06:25:04 <korvo> b_jonas: IIRC guarding against bad offsets in slices and other substructures was one of the original items in the Moore's Dividend paper.
06:25:13 <b_jonas> they did get more competent later
06:28:45 <esolangs> [[User talk:StavWasPlayZ]] N https://esolangs.org/w/index.php?oldid=178025 * PkmnQ * (+198) Created page with "Where's the cursed esolang? [[User:Meh2]] ([[User talk:Meh2|talk]]) 03:18, 21 March 2026 :Probably [[Codesh_()]] ~~~~"
06:29:38 <esolangs> [[User:StavWasPlayZ]] https://esolangs.org/w/index.php?diff=178026&oldid=178023 * PkmnQ * (-52) Blanked the page
06:47:29 <Sgeo> Oh, I have a convenient FORTRAN II compiler open right now, what UB-esque shenanigans should I try?
06:52:04 -!- impomatic has quit (Quit: Client closed).
06:52:56 <Sgeo> Actually not sure if it's II
06:53:19 <Sgeo> I'll just say 1401 FORTRAN
07:16:55 -!- ais523 has quit (Quit: quit).
07:24:21 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[User:StavWasPlayZ]]": not a user page, and not created by the relevant user
07:50:23 -!- svm has joined.
07:50:58 -!- msv has quit (Remote host closed the connection).
07:59:16 -!- impomatic has joined.
08:06:01 -!- shikhin_ has joined.
08:06:21 -!- citrons_ has joined.
08:06:54 -!- mynery has joined.
08:09:56 -!- shikhin has quit (Quit: Quittin'.).
08:09:56 -!- shikhin_ has changed nick to shikhin.
08:10:10 -!- AlsoJAA has quit (Remote host closed the connection).
08:10:10 -!- citrons has quit (Remote host closed the connection).
08:14:11 -!- AlsoJAA has joined.
08:28:24 -!- Sgeo has quit (Read error: Connection reset by peer).
08:30:59 -!- joast has quit (*.net *.split).
08:30:59 -!- myname has quit (*.net *.split).
08:34:39 -!- mynery has changed nick to myname.
08:37:23 <esolangs> [[User:Widuruwana/MainPageModernization]] https://esolangs.org/w/index.php?diff=178027&oldid=177981 * Widuruwana * (+269) Fixed the width issue
08:38:28 -!- impomatic has quit (Ping timeout: 240 seconds).
08:40:57 -!- joast has joined.
10:19:14 -!- svm has changed nick to msv.
10:30:44 -!- shikhin_ has joined.
10:33:07 -!- shikhin has quit (Ping timeout: 268 seconds).
10:33:07 -!- shikhin_ has changed nick to shikhin.
11:54:30 -!- lisbeths has quit (Quit: Connection closed for inactivity).
12:17:01 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
12:17:01 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
12:27:10 -!- perlbot has joined.
12:28:11 -!- simcop2387 has joined.
12:32:25 <esolangs> [[Prints the name of this language]] N https://esolangs.org/w/index.php?oldid=178028 * None1 * (+673) New funny esolang!
12:36:28 <esolangs> [[Prints the name of this language]] M https://esolangs.org/w/index.php?diff=178029&oldid=178028 * 47 * (-6) None, you failed mirably :sob:
12:37:55 <esolangs> [[Prints the name of this language]] M https://esolangs.org/w/index.php?diff=178030&oldid=178029 * 47 * (-1) /* =Self-interpreter that's not a quine */ ok gen forgot about this unnesesary "="
12:41:36 <esolangs> [[User talk:Widuruwana/MainPageModernization]] https://esolangs.org/w/index.php?diff=178031&oldid=178001 * Widuruwana * (+109) reply
12:42:31 <esolangs> [[Prints the name of this language]] M https://esolangs.org/w/index.php?diff=178032&oldid=178030 * PkmnQ * (+2) /* Self-interpreter that's not a quine */ Level 2 -> 3
12:52:04 <esolangs> [[Prints the name of this language]] M https://esolangs.org/w/index.php?diff=178033&oldid=178032 * None1 * (+13)
12:55:56 <esolangs> [[Joke language list]] https://esolangs.org/w/index.php?diff=178034&oldid=177670 * None1 * (+39) /* Example-based languages */
12:57:50 <esolangs> [[User:None1]] M https://esolangs.org/w/index.php?diff=178035&oldid=177998 * None1 * (+57) /* My Esolangs */
12:58:07 <esolangs> [[User:None1]] M https://esolangs.org/w/index.php?diff=178036&oldid=178035 * None1 * (+1) /* My Esolangs */
13:00:37 <esolangs> [[Grass]] https://esolangs.org/w/index.php?diff=178037&oldid=173164 * Tpaefawzen * (-55) /* Examples */ +1
13:02:04 <esolangs> [[Grass]] https://esolangs.org/w/index.php?diff=178038&oldid=178037 * Tpaefawzen * (-298) /* Examples */ +1
13:14:57 <esolangs> [[Grass]] https://esolangs.org/w/index.php?diff=178039&oldid=178038 * Tpaefawzen * (+86) /* Examples */ +1
13:21:32 <esolangs> [[Grass]] https://esolangs.org/w/index.php?diff=178040&oldid=178039 * Tpaefawzen * (-77) /* Examples */ +1
13:46:46 -!- amby has joined.
16:00:11 <esolangs> [[Staccato]] N https://esolangs.org/w/index.php?oldid=178041 * PrySigneToFry * (+3744) Created page with "Note: This article introduces a programming language, not a performance technique. Staccato is a programming language designed by PSTF. It is a concise, stack-based language where every operation is a single character (or short literal) to minimize code length.
16:02:11 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=178042&oldid=178007 * PrySigneToFry * (+15)
16:54:35 <esolangs> [[User talk:Widuruwana/MainPageModernization]] https://esolangs.org/w/index.php?diff=178043&oldid=178031 * Aadenboy * (+319)
17:09:50 -!- ajal has joined.
17:10:03 -!- amby has quit (Ping timeout: 255 seconds).
17:31:12 <esolangs> [[Prints the name of this language]] https://esolangs.org/w/index.php?diff=178044&oldid=178033 * Dragoneater67 * (+417) /* Interpreter */ add more interpreters
17:32:14 <esolangs> [[Prints the name of this language]] M https://esolangs.org/w/index.php?diff=178045&oldid=178044 * Dragoneater67 * (+8) /* Interpreters */
17:47:11 -!- Sgeo has joined.
17:49:36 <esolangs> [[Prints the name of this language]] https://esolangs.org/w/index.php?diff=178046&oldid=178045 * Aadenboy * (+76)
17:50:11 <Sgeo> I can't seem to reach esolang logs
17:50:50 <int-e> looks slow, I assume the usual (crawlers)
17:51:19 <Sgeo> I don't think 1401 FORTRAN allows... subroutines or functions written in FORTRAN. It has functions but they have to be written in Autocoder (the term for assembly on 1401)
17:57:30 <Sgeo> "The function name can be comprised of from 4 to 7 alphameric characters (not special characters). The first character must be alphabetic, and the last character must be the letter F. The first character must be X if and only if the value of the function is to be fixed point."
19:51:48 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
19:51:59 <esolangs> [[Gora]] M https://esolangs.org/w/index.php?diff=178047&oldid=166885 * Ractangle * (-37)
19:53:33 -!- Lord_of_Life has joined.
20:11:18 <Sgeo> The manual and existing 1401 Fortran copies don't match :(
20:35:15 <esolangs> [[User talk:Widuruwana/MainPageModernization]] https://esolangs.org/w/index.php?diff=178048&oldid=178043 * Ais523 * (+836) feedback
21:36:57 <zzo38> Is there the possibility in TLS for a client to send multiple certificate chains to the server (and if not, can a TLS extension be made to support such a thing)? This might be useful with services that allow multiple people to set up things that require authentication, such as IRC channels (and possibly also cloaks) on a IRC server.
22:12:12 -!- ais523 has joined.
22:18:07 -!- ursa-major has quit (Ping timeout: 244 seconds).
22:20:28 -!- ursa-major has joined.
23:30:54 <esolangs> [[Special:Log/newusers]] create * Gozzie * New user account
23:36:12 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=178049&oldid=178022 * Gozzie * (+108) /* Introductions */