←2024-12-06 2024-12-07 2024-12-08→ ↑2024 ↑all
00:02:39 -!- mtm has quit (Ping timeout: 252 seconds).
00:05:50 -!- mtm has joined.
00:18:08 <esolangs> [[Special:Log/move]] move_redir * Corbin * moved [[User:Scratch]] to [[Scratch]] over redirect: Wrong namespace for a language. (The associated joke user account is not mine.)
00:18:08 <esolangs> [[Special:Log/move]] move * Corbin * moved [[User talk:Scratch]] to [[Talk:Scratch]]: Wrong namespace for a language. (The associated joke user account is not mine.)
00:18:08 <esolangs> [[Special:Log/delete]] delete_redir * Corbin * Corbin deleted redirect [[Scratch]] by overwriting: Deleted to make way for move from "[[User:Scratch]]"
00:23:27 <esolangs> [[Scratch]] M https://esolangs.org/w/index.php?diff=147638&oldid=147634 * Corbin * (+255) Infobox and stub an important teaching language.
00:45:45 <esolangs> [[6 trits, 243 trytes]] N https://esolangs.org/w/index.php?oldid=147639 * ZCX islptng * (+421) Created page with "This is an esolang created by islptng. Unlike most of "x bits, y bytes", this esolang is serious. Note: 1 tryte is 6 trits. ==Syntax== This language uses the balanced ternary. The syntax is like a high-level language, because it has "if", "while", "break
00:51:58 <esolangs> [[6 trits, 243 trytes]] https://esolangs.org/w/index.php?diff=147640&oldid=147639 * ZCX islptng * (+131)
00:57:22 <esolangs> [[6 trits, 243 trytes]] https://esolangs.org/w/index.php?diff=147641&oldid=147640 * ZCX islptng * (-4)
00:59:51 <esolangs> [[6 trits, 243 trytes]] https://esolangs.org/w/index.php?diff=147642&oldid=147641 * ZCX islptng * (+57)
01:25:50 -!- amby has quit (Remote host closed the connection).
01:39:03 <esolangs> [[6 trits, 243 trytes]] https://esolangs.org/w/index.php?diff=147643&oldid=147642 * ZCX islptng * (+195)
01:40:48 <esolangs> [[6 trits, 243 trytes]] https://esolangs.org/w/index.php?diff=147644&oldid=147643 * ZCX islptng * (+81)
01:51:24 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[User:Scratch]]": redirects left over after a page was moved to the correct namespace
01:51:24 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:Scratch]]": Deleted together with the associated page with reason: redirects left over after a page was moved to the correct namespace
01:52:23 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=147645&oldid=147286 * Ais523 * (-27) /* S */ rm Scratch; a) not an esolang, b) was a link to a userpage with the prefix hidden
01:53:12 <esolangs> [[Truth-machine]] https://esolangs.org/w/index.php?diff=147646&oldid=146065 * Ais523 * (-13) /* Scratch 3.0 */ fix link
01:53:33 <esolangs> [[1 Line Challenge]] https://esolangs.org/w/index.php?diff=147647&oldid=101166 * Ais523 * (-13) fix link
01:54:12 <esolangs> [[Scratch is dumb]] https://esolangs.org/w/index.php?diff=147648&oldid=147070 * Ais523 * (-15) fix link, especially as it tried to bypass the filter against piped links to userpages
01:54:30 <esolangs> [[Scratcholang]] https://esolangs.org/w/index.php?diff=147649&oldid=133939 * Ais523 * (-13) fix link
02:09:36 -!- craigo has quit (Quit: Leaving).
02:25:54 <esolangs> [[Scratcholang]] M https://esolangs.org/w/index.php?diff=147650&oldid=147649 * Corbin * (-13) /* See also */ Fix a redlink.
03:18:01 <esolangs> [[DoEverything();]] https://esolangs.org/w/index.php?diff=147651&oldid=147047 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+22) /* Hello, World! */
03:23:26 <esolangs> [[Albuquerque challenge]] N https://esolangs.org/w/index.php?oldid=147652 * Tommyaweosme * (+930) Created page with "the albuquerque challenge is a programming challenge by [[user:tommyaweosme]] after getting 3-4 hours into a 17-hour video called "albuquerque but every time a word repeats it loops (normal speed)". ==goal== the goal of this challenge is to make a prog
03:25:20 <esolangs> [[User talk:Tommyaweosme]] https://esolangs.org/w/index.php?diff=147653&oldid=147621 * Tommyaweosme * (+287)
03:25:51 <esolangs> [[-)]] N https://esolangs.org/w/index.php?oldid=147654 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+26) Redirected page to [[MinusGreater]]
03:26:44 <korvo> Are there any languages that do the Cheese Shop sketch? I'm reminded of it because "Albuquerque" has a variant with donuts.
03:44:24 <esolangs> [[Instructructinstructistructististuctistuctistuctuctistuctistuctisuctisuructistuctisurctisurctisurctisurcticticiciticitsurcticitststurcticitstucitstucrcticitstucritstucritucrit]] N https://esolangs.org/w/index.php?oldid=147655 * Tommyaweosme * (+1491) Created page with "{{lowercase}}instructructinstructistructististuctistuctistuctuctistuctistuctisuctisuructistuctisu
04:15:39 <esolangs> [[User talk:PrySigneToFry]] https://esolangs.org/w/index.php?diff=147656&oldid=147609 * PrySigneToFry * (+56)
04:49:25 <esolangs> [[User:Imakesi]] https://esolangs.org/w/index.php?diff=147657&oldid=122512 * Imakesi * (-50) /* Imakesi */
04:49:37 <esolangs> [[User:Imakesi]] https://esolangs.org/w/index.php?diff=147658&oldid=147657 * Imakesi * (+1)
05:10:23 <esolangs> [[(0123456789!]] N https://esolangs.org/w/index.php?oldid=147659 * Imakesi * (+3322) Created page with "# (0123456789!?.) Welcome to '''(0123456789!?.)''', the language I made because I was bored. ### Commands Every character in the title is a command in the language, and it can basically do anything because it has get requests. {| class="wikitable" |+ Commands
05:11:52 <esolangs> [[(0123456789!]] https://esolangs.org/w/index.php?diff=147660&oldid=147659 * Imakesi * (+20)
05:13:27 <esolangs> [[(0123456789!]] https://esolangs.org/w/index.php?diff=147661&oldid=147660 * Imakesi * (-31)
05:17:30 <esolangs> [[(0123456789!]] https://esolangs.org/w/index.php?diff=147662&oldid=147661 * Imakesi * (+57) /* My (bad) Implementation */
05:18:05 <esolangs> [[(0123456789!]] https://esolangs.org/w/index.php?diff=147663&oldid=147662 * Imakesi * (+5) /* My (bad) Implementation */
05:19:01 <esolangs> [[(0123456789!]] https://esolangs.org/w/index.php?diff=147664&oldid=147663 * Imakesi * (+17)
05:22:56 <esolangs> [[User:ZCX islptng/List of "x bits, y bytes"]] N https://esolangs.org/w/index.php?oldid=147665 * ZCX islptng * (+268) Created page with "- [[3 Bits, 1.5 Bytes]] - [[5 Bits, 20 Bytes]] - [[8 bits, 256 bytes]] - [[2 Bits, 256 Bytes]] - [[4 bits, 8 bytes]] - [[6 bits, 12 bytes]] - [[3 Bits, 3 Bytes]] - [[0 Bits, 0 Bytes]] - [[ bits, 0 Bytes]] - [[4 bits, unlimited byte
05:26:12 <esolangs> [[User:ZCX islptng]] https://esolangs.org/w/index.php?diff=147666&oldid=147411 * ZCX islptng * (+124)
05:31:08 <esolangs> [[(0123456789!]] https://esolangs.org/w/index.php?diff=147667&oldid=147664 * Imakesi * (+48)
05:31:57 <esolangs> [[User:Imakesi]] https://esolangs.org/w/index.php?diff=147668&oldid=147658 * Imakesi * (+18)
05:32:35 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=147669&oldid=147645 * Imakesi * (+35)
05:37:51 <esolangs> [[6 trits, 243 trytes]] https://esolangs.org/w/index.php?diff=147670&oldid=147644 * ZCX islptng * (+198)
05:40:04 <esolangs> [[6 trits, 243 trytes]] https://esolangs.org/w/index.php?diff=147671&oldid=147670 * ZCX islptng * (+65)
06:31:39 -!- ais523 has quit (Quit: quit).
07:02:06 <esolangs> [[User:ZCX islptng/List of "x bits, y bytes"]] https://esolangs.org/w/index.php?diff=147672&oldid=147665 * PkmnQ * (+133)
07:02:20 <esolangs> [[User:ZCX islptng/List of "x bits, y bytes"]] M https://esolangs.org/w/index.php?diff=147673&oldid=147672 * PkmnQ * (+0)
07:20:36 <esolangs> [[Talk:Text]] https://esolangs.org/w/index.php?diff=147674&oldid=147615 * Ractangle * (+270) /* I made a text compiler in javascript! */
07:24:15 <esolangs> [[*&&^]] https://esolangs.org/w/index.php?diff=147675&oldid=147620 * Ractangle * (-6)
07:29:21 <esolangs> [[Talk:Scratch]] https://esolangs.org/w/index.php?diff=147676&oldid=147636 * Ractangle * (+178) /* Esoteric language?! */
07:44:54 <esolangs> [[User:Translated ORK/Translated ORK PSTF XXVII]] M https://esolangs.org/w/index.php?diff=147677&oldid=147531 * PrySigneToFry * (-9)
08:46:29 -!- tromp has joined.
09:28:36 <esolangs> [[User talk:PrySigneToFry]] https://esolangs.org/w/index.php?diff=147678&oldid=147656 * ColorfulGalaxy's CA discoveries * (+430) /* Shidinn wiki */
09:31:10 <esolangs> [[User talk:]] https://esolangs.org/w/index.php?diff=147679&oldid=139935 * ColorfulGalaxy's CA discoveries * (+340)
09:40:34 <esolangs> [[User talk:PrySigneToFry]] https://esolangs.org/w/index.php?diff=147680&oldid=147678 * PrySigneToFry * (+26)
09:43:09 <esolangs> [[User talk:]] https://esolangs.org/w/index.php?diff=147681&oldid=147679 * Ractangle * (-4) /* External account */
10:12:40 <esolangs> [[6 bytes of useless element]] https://esolangs.org/w/index.php?diff=147682&oldid=144594 * Ractangle * (-56) /* Example Programs */
10:26:19 <esolangs> [['xxx' is not recognized as an internal or external command, operable program or batch file.]] https://esolangs.org/w/index.php?diff=147683&oldid=143560 * Ractangle * (+33) /* See also */
10:26:54 <esolangs> [[Talk:'Python' is not recognized as an internal or external command, operable program or batch file.]] https://esolangs.org/w/index.php?diff=147684&oldid=144830 * Ractangle * (-180)
10:32:36 -!- FreeFull has joined.
10:41:53 -!- __monty__ has joined.
10:43:18 <esolangs> [[Wasaya]] https://esolangs.org/w/index.php?diff=147685&oldid=147468 * PrySigneToFry * (+270)
10:48:21 <esolangs> [[User talk:PrySigneToFry]] https://esolangs.org/w/index.php?diff=147686&oldid=147680 * PrySigneToFry * (+249)
11:00:02 <esolangs> [[Wasaya/Error]] N https://esolangs.org/w/index.php?oldid=147687 * PrySigneToFry * (+643) Created page with "{{Back|Wasaya}} Here shows the Error code and what it means. {| class="wikitable" |+ Error |- ! Code !! Mean |- | 0 || Exited the program normally. |- | 1 || Grammatical errors. |- | -1 || The program is manually terminated by the user. |- | 2 || Math errors.
11:29:11 -!- Sgeo has quit (Read error: Connection reset by peer).
11:37:07 <Soni> b_jonas: indeed, that kind of fork. and also multiple file relations in it (i.e. directories)
11:37:23 <Soni> a file should also be a directory, always
11:37:42 <Soni> a stream of bytes file should also be a directory*
12:03:58 -!- mtm has quit (Ping timeout: 252 seconds).
12:05:09 -!- mtm has joined.
12:46:53 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:51:02 -!- tromp has joined.
13:04:33 -!- wib_jonas has joined.
13:09:02 <esolangs> [[User:BCByte]] N https://esolangs.org/w/index.php?oldid=147688 * BCByte * (+20) Created page with "hi i am baichuanbyte"
13:10:51 <wib_jonas> Soni: I am ambivalent about those [forks].  They have some uses.  And like ais523 says, they're only useful when understood by many programs, eg. when you can tell your file manager to copy a file and it will transparently (possibly with the help of the OS) copy all the forks or directory structure under it.  So it's certainly hard to introduce
13:10:51 <wib_jonas> them to an existing system, where people will accidentally use the existing copying tools which will lose the forks.  (Unless of course you think that's a feature because you want to store hidden information for copy protection or DRM.)  And some things are inconvenient to store in a single regular file and easier to store in a directory
13:10:52 <wib_jonas> structure.  On the other hand, everyone already knows how to copy a directory recursively.  So why not just use a directory for this purpose, why would it also have to look like a regular file at the same time?  I know one reason, but it's rather minor: the Windows built-in Open and Save dialog doesn't work well if the file that you want to open
13:10:52 <wib_jonas> is actually a directory.
13:13:28 <wib_jonas> But people keep reinventing more restricted versions of forks, I think Win32 has at least two of those reinventions, linux has xattr, zip and many other older archive formats have comments for individual files and the whole archive.  So maybe we should just add the full version to avoid getting even more incompatible reinventions.
13:29:15 <Soni> wib_jonas: so we can have foo.lua/bar.lua, instead of foo/bar.lua + foo.lua or similar alternatives
13:29:57 <wib_jonas> Soni: ok, but why is that better?
13:30:09 <Soni> if a module is a submodule of another module *let us put the module in the module dammit*
13:30:35 <Soni> this is #esolangs you'd think the folks here would understand putting a module in a module
13:30:46 <Soni> (no shade)
13:31:04 <wib_jonas> why couldn't you represent modules by a directory?
13:31:19 <Soni> wib_jonas: not #esolangs enough
13:32:07 <Soni> okay here's the deal, we're gonna make a programming language that runs modules from http (exclusively), and requires you to set up a webserver that can serve foo.whatever and foo.whatever/bar.whatever correctly
13:32:31 <Soni> how does that sound
13:33:27 <Soni> it'll also let you have arbitrary strings as module names, within the limitations set forth by http (we think you aren't allowed to have newlines or NULs in http filenames?)
13:33:29 <wib_jonas> that already exists, it's a browser.
13:33:49 <wib_jonas> technically it can also run code from local file system, but doesn't support proper access management for that.
13:34:11 <Soni> wib_jonas: a browser doesn't enforce serving files as foo.js/bar.js
13:34:50 <wib_jonas> huh? what does enforcing that mean?
13:35:14 <wib_jonas> like, what are you enforcing?
13:36:06 <Soni> we're enforcing that an import for module "foo" submodule "bar" will look for a file named foo.whatever/bar.whatever
13:36:32 <Soni> so if you wanna have module foo, and module foo submodule bar, you need both foo.whatever to be a valid byte stream, and foo.whatever/bar.whatever to be a valid byte stream
13:36:49 <Soni> and since OS doesn't support that, you can use http instead
13:36:58 <wib_jonas> but what does "submodule" mean apart from that they're named like that?
13:38:08 <Soni> it's a module contained within another module, like in python or rust or lua (note that only python and rust put submodules within the namespace of their parent modules, lua submodules are independent)
13:39:29 <Soni> sure maybe ppl will just call their modules foo_bar instead of using submodules
13:39:37 <Soni> but so what, this is still #esolangs
13:43:05 <Soni> what is the point of esoteric programming language if not doing things because we can?
14:11:55 <esolangs> [[Talk:Burn]] https://esolangs.org/w/index.php?diff=147689&oldid=138536 * 5anz * (+2) /* We have nothing */
14:12:04 <esolangs> [[Talk:Burn]] https://esolangs.org/w/index.php?diff=147690&oldid=147689 * 5anz * (+2) /* The name is perfect */
14:35:39 <esolangs> [[Print("Hello, World!")]] N https://esolangs.org/w/index.php?oldid=147691 * 5anz * (+1220) Created page with "A print("Hello, World!") program prints something that would print a [[Hello, World!]] program, for example, in Python, it would be <code>print("print(\"Hello, World!\")")</code>. You ''could'' take it a step further and do <code>print("print(\"print(\\"Hell
14:37:02 <esolangs> [[User:5anz]] https://esolangs.org/w/index.php?diff=147692&oldid=146997 * 5anz * (+123) /* Esolangs I made */
14:38:46 <esolangs> [[Print("Hello, World!")]] https://esolangs.org/w/index.php?diff=147693&oldid=147691 * 5anz * (+85)
14:43:54 <esolangs> [[Print("Hello, World!")]] M https://esolangs.org/w/index.php?diff=147694&oldid=147693 * 5anz * (+87)
14:49:18 <esolangs> [[Print("Hello, World!")]] https://esolangs.org/w/index.php?diff=147695&oldid=147694 * Ractangle * (+0)
16:01:01 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:13:48 <esolangs> [[Instructructinstructistructististuctistuctistuctuctistuctistuctisuctisuructistuctisurctisurctisurctisurcticticiciticitsurcticitststurcticitstucitstucrcticitstucritstucritucrit]] https://esolangs.org/w/index.php?diff=147696&oldid=147655 * Tommyaweosme * (+82)
16:20:34 <korvo> Soni: It's important to not mix up addressing (what URLs do) and layout on disk (what filesystems do).
16:20:59 <korvo> A module can be a submodule in multiple different ways. Should it be available via many different addresses?
16:21:47 <korvo> (Also most languages that support HTTP imports also support addressing by content; a module is usually going to be canonically identified by a cryptographic hash.)
16:24:08 <Soni> korvo: it's important to recognize that URIs contain paths
16:29:02 <korvo> Soni: Some do. Some are key-value dictionaries. Some are hashes with a hint about how to resolve them.
16:29:37 <Soni> well, http uris do at least
16:30:00 <korvo> But I think that the second point is the more important one. In e.g. Java, your scheme arises naturally because of (anonymous) inner classes; each class gets compiled to its own file, but the paths of inner classes can be understood as dependent upon their outer classes.
16:30:14 <korvo> That's not use sites or import sites, but definition sites.
16:32:03 <korvo> Soni: I guess a guiding question might be: are you hoping for something closer to JAR, or something closer to WASM? How much does module identity matter? Can modules be instantiated repeatedly? Is there a reason to avoid content addressing?
16:32:36 <Soni> korvo: something closer to python or lua
16:32:50 <korvo> Last time I went through this exercise, I used WASM for code, and I had two HTTP routes. One route was a POST for creating new modules, and one was a GET that took hashes and returned hashed modules.
16:33:19 <korvo> Soni: Oh. Those languages don't exactly have modules; Python has per-module dicts and Lua has per-module tables, but they don't decompose cleanly.
16:33:45 <Soni> they have module file lookup systems
16:33:50 <Soni> (import/require systems)
16:33:56 <korvo> Like, if order of imports matters, then it's probably not real modules.
16:33:57 <Soni> which is all that matters here really
16:34:28 <Soni> alternatively, rust
16:35:45 <Soni> alternatively alternatively, we use a funny naming convention in elixir where we put the filesystem files under e.g. connection.ex.d/registration.ex since elixir doesn't care about filenames
16:35:51 <korvo> Rust and Java use their packages to achieve modularity. A Rust crate or a Java package provides a unifying namespace and a compilation barrier. Both are oriented around the idea that programmers get to choose their module names.
16:36:07 <Soni> what about a rust "mod foo;"
16:36:20 <korvo> The word "module" doesn't denote modules.
16:37:09 <korvo> Language designers haven't taken the concept seriously enough. They have mastered the idea of compilation units, but not modules. Languages like C++ and JS took multiple tries to get working modules, and arguably C++ still hasn't figured it out.
16:37:10 <Soni> why do we even point out what we're basing on
16:37:35 <korvo> Y'all can do whatever you want. I'm not stopping you. I'm just providing context.
16:37:49 <Soni> you're ignoring what we're saying
16:39:15 <korvo> Really? I'm trying seriously to understand "putting a module in a module". I'm thinking both about systems with first-class modules like SML, and systems where each module is a compilation unit like WASM.
16:39:57 <Soni> what about systems like rust where you can write "mod foo { mod bar { fn foo() { println!("this is foo::bar::foo()"); } } }"
16:40:33 <korvo> The namespace doesn't make the modularity. The isolation (in this case, via crates) is important.
16:40:41 <korvo> Python and C++ namespaces aren't modules.
16:40:47 <Soni> "mod" stands for "module"
16:41:22 <korvo> "module" also means "vector space over a semiring". Appeals to dictionaries don't help here.
16:42:17 <Soni> we mean "rust claims the "mod" keyword introduces a new "module", which is usually placed in a separate file identified by the name of the module plus the .rs extension"
16:42:19 <korvo> What I'm saying is that a module isn't merely a compilation unit. It's a parameterizable isolated hunk of open code which is repeatedly instantiated with other modules in a tree/graph to create a specialized program.
16:42:45 <Soni> but that's not the module we're talking about
16:42:51 <korvo> C++'s "modules" are its templates. Rust's "modules" are its crates and macros.
16:43:20 <Soni> hey, wasm has modules too
16:43:33 <Soni> (your meaning of modules)
16:43:46 <int-e> Uh conflicting uses of "module" detected.
16:43:51 <korvo> To first order, yes. WASM was designed fairly recently, and they learned from mistakes.
16:43:51 -!- tromp has joined.
16:44:13 <int-e> (compilation unit vs. something closer to ML functors)
16:44:17 <Soni> int-e: yes, we don't know how to fix this
16:44:34 <Soni> ... fine we'll call them compilation units
16:45:15 <Soni> we want our compilation units to be laid out in a path in an "impossible" way
16:45:22 <korvo> int-e: Yeah sorry, they're going to have to clash. ML functors are shadows of a genuine category of modules, while most other systems only allow a DAG of compositions. I'm thinking of "ML-style" and I guess "CLU-style" modules?
16:46:14 <korvo> Soni: That's much easier. The hard part of compilation units is gluing them together after they're compiled; compiling each individual file on disk is a straightforward and fun exercise.
16:46:54 <Soni> okay, so let's say we have a bytecode format
16:47:21 <int-e> korvo: Let's clash some more: real modules have rings.
16:48:00 <Soni> ... actually we don't even know anymore, thanks for making us confused about terminology to the point where we can't talk about it we guess?
16:48:02 <Soni> (sigh)
16:48:04 <int-e> . o O ( see also: modular arithmetic )
16:48:17 <Soni> (was that deliberate?)
16:48:56 <Soni> ... wait maybe we can still do this
16:49:48 <korvo> int-e: Ha! Lovely pun. Yeah, you may be right; I don't remember whether modules are over rings or semirings. I was always frustrated at this nomenclature because it feels like folks want to fix their field/ring/semiring and forget it, but want to remember whether we have modules or vector spaces.
16:50:59 <korvo> Soni: Sorry for being confusing. I've done several periods of research into modules, particularly for object-oriented languages, and one of my main lessons was that language authors don't know what modules are.
16:51:33 <Soni> we want a require() function that takes names (in the form of arbitrary strings), these names are then interpreted to form a path of (source/binary) files to instantiate (in a singleton way), in a way that's impossible to represent on a traditional filesystem/OS: when require("foo", "bar") is called, the file foo is instantiated first, and then the file bar under the file foo (and this is the key to making it impossible on a traditional OS/
16:51:33 <Soni> filesystem)
16:51:45 <Soni> but it also supports virtual filesystems and search paths, including via http
16:51:57 <Soni> korvo: this helps?
16:52:48 <korvo> Soni: Yeah, except for the two obvious issues. First, why want something impossible? Second, this sounds like it can be encoded with traditional files, and you'd have to deliberately make it jank to make it impossible.
16:53:08 <wib_jonas> I'm in a worse situation than language authors now. I don't know what a module is *twice*. I don't know what properties korvo thinks defines a module, and what properties Soni cares about here.
16:53:59 <korvo> Schema languages, e.g. Capn Proto, support importing other schemata by hash. The Capn Proto compiler doesn't know how to read anything from the filesystem, but it knows how to call target-specific helpers which can do target-specific filesystem shenanigans.
16:54:19 <korvo> So modularity is not Capn's problem, but implemented by each target harness.
16:55:40 <korvo> wib_jonas: I bet we agree on first-order modularity, where everything is a first-order procedure and we can add procedures to our namespace with metasyntax, two-tiered syntax, or directives/pragmas. I bet Soni agrees on that, too.
16:55:54 <Soni> korvo: first, because this is esolangs. we don't really need an explanation, we want it because we want it. tho if you want the long explanation it comes from recognizing that the way we encode paths is a form of domain-specific language (URIs are also a DSL btw but at least they have escapes) and recognizing that typed APIs do not need to use such inefficient and overly restrictive information transfer formats (just take an array of strings like a
16:55:54 <Soni> normal API).
16:56:09 <korvo> I don't think we agree on the nature of side effects, higher-order modules, or parameterization.
16:56:29 <Soni> secondly, if deliberately making it jank is necessary to drive the point home, then deliberately making it jank is what we'll do
16:57:35 <Soni> the only reason we don't take an array of strings is that early filesystems didn't have directories
16:57:39 <korvo> Soni: I'm not demanding an explanation~ Don't worry about convincing me that your idea is good. That's not what I'm here for.
16:58:01 <Soni> (can you believe we're stuck with 40+ years old legacy)
16:58:43 <korvo> BTW have you seen Tcl? This row-of-strings dispatch sounds familiar.
16:59:09 <Soni> we have not, no
16:59:37 <Soni> macOS has its own legacy with the : aka / thing
16:59:48 <Soni> which we'd argue is even worse tbh
17:01:56 <korvo> Soni: Okay. So, here's a sketch of a proof that y'all's require() can't work. Let require() be a black-box function from a list of strings to a list of path segments, which might not be strings but are still hashable bytes.
17:02:38 <korvo> Then there's a universal system for storing those paths. Hash the path and derive a filename from the hash. git is an example system which supports any DAG this way.
17:03:13 <korvo> So I think that "impossible" is probably the wrong thing to want. Which is good! I presume that ya
17:03:21 <korvo> *that y'all actually want to *implement* this at some point.
17:18:56 <Soni> "impossible" is in quotes for a reason
17:19:11 <Soni> this is trivial in http
17:46:22 -!- wib_jonas has quit (Quit: Client closed).
17:52:06 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:55:35 -!- craigo has joined.
17:56:38 -!- zenmov has quit (Ping timeout: 245 seconds).
18:01:49 -!- zenmov has joined.
18:06:36 <esolangs> [[1^]] https://esolangs.org/w/index.php?diff=147697&oldid=146865 * Ractangle * (+58)
18:08:42 -!- tromp has joined.
18:09:35 -!- Lord_of_Life_ has joined.
18:09:53 -!- Lord_of_Life has quit (Ping timeout: 244 seconds).
18:10:56 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
18:19:10 <korvo> Soni: You're right. I'm sorry for being so negative.
18:38:48 <esolangs> [[6 trits, 243 trytes]] M https://esolangs.org/w/index.php?diff=147698&oldid=147671 * PythonshellDebugwindow * (+101) Categories
18:40:14 <esolangs> [[6 trits, 243 trytes]] M https://esolangs.org/w/index.php?diff=147699&oldid=147698 * PythonshellDebugwindow * (+3) Categories
18:42:29 <esolangs> [[WC is a toilet but v, and c are Unlambda operators]] https://esolangs.org/w/index.php?diff=147700&oldid=138926 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+35)
18:44:34 <esolangs> [[(0123456789!]] M https://esolangs.org/w/index.php?diff=147701&oldid=147667 * PythonshellDebugwindow * (+91) Categories
18:46:16 <esolangs> [[(0123456789!]] M https://esolangs.org/w/index.php?diff=147702&oldid=147701 * PythonshellDebugwindow * (+57) Categories
18:53:18 <esolangs> [[Setlang]] https://esolangs.org/w/index.php?diff=147703&oldid=114977 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+25) /* Interpreter */
18:54:26 <esolangs> [[Category:Accumulator-based]] https://esolangs.org/w/index.php?diff=147704&oldid=117870 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+9)
18:57:46 <esolangs> [[1^]] https://esolangs.org/w/index.php?diff=147705&oldid=147697 * Ractangle * (+153) /* Syntax */
18:59:52 <esolangs> [[-]] https://esolangs.org/w/index.php?diff=147706&oldid=73724 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+401)
19:02:46 <b_jonas> korvo: IIUC Soni argued that if we make regular files also directories, and we do this early enough in the operating system so that all the file copy or download tools handle it transparently, then we can group related files under a file as directory entries. I argued that that's usually not really better than representing objects with just directories rather than regular files. Hashing paths to
19:02:52 <b_jonas> filenames is counterproductive to this task, because then it's hard or impossible to find groups of related files.
19:04:33 <esolangs> [[BITE/Quines]] N https://esolangs.org/w/index.php?oldid=147707 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+271) Created page with "<pre> \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \t \n \x0b \x0c \r \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7
19:04:58 <esolangs> [[BITE]] https://esolangs.org/w/index.php?diff=147708&oldid=143631 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+33) /* Quine */
19:04:59 <korvo> What makes them related? Is it just human opinion, or is it structures inside some files?
19:06:05 <esolangs> [[1^]] https://esolangs.org/w/index.php?diff=147709&oldid=147705 * Ractangle * (+12)
19:15:27 <b_jonas> korvo: I don't understand the submodule thing that Soni says; I was mostly thinking of application file formats such as video game saves or databases that you usually only access with just one specific program, or, say, a Microsoft Word document that has jpegs embedded, but are more conveniently stored in multiple files than in one file, possibly because the user might want to access the subfiles, or it
19:15:33 <b_jonas> helps version control, or you're doing a lot of large updates that don't replace everything but leave large parts of data that are no longer valid and if it was in a single file you'd otherwise punch a sparse file hole or something to reclaim (does Windows support that these days by the way?)
19:15:37 <esolangs> [[1^]] https://esolangs.org/w/index.php?diff=147710&oldid=147709 * Ractangle * (+45) /* Syntax */
19:16:57 <korvo> Sure. The pattern of a directory for a project, rather than a file for a document.
19:17:30 <esolangs> [[Advance The Wheel!]] https://esolangs.org/w/index.php?diff=147711&oldid=92886 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+28) /* Self-interpreter */
19:17:54 <esolangs> [[Advance The Wheel!]] https://esolangs.org/w/index.php?diff=147712&oldid=147711 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+2) /* Self-interpreter */
19:29:24 <esolangs> [[]] https://esolangs.org/w/index.php?diff=147713&oldid=147507 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+52) /* Cmds */
19:32:06 <esolangs> [[]] https://esolangs.org/w/index.php?diff=147714&oldid=147713 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-57) /* Russian Roulette */
19:32:36 <esolangs> [[]] https://esolangs.org/w/index.php?diff=147715&oldid=147714 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+0) /* Russian Roulette */
19:32:55 <esolangs> [[]] https://esolangs.org/w/index.php?diff=147716&oldid=147715 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-6) /* Russian Roulette */
19:33:01 <esolangs> [[Special:Log/newusers]] create * Prajwal S N * New user account
19:33:32 <esolangs> [[ but with only plausible commands]] https://esolangs.org/w/index.php?diff=147717&oldid=140395 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-101) /* ^ Interpreter */
19:33:51 <esolangs> [[ but with only plausible commands]] https://esolangs.org/w/index.php?diff=147718&oldid=147717 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-312)
19:38:32 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=147719&oldid=147546 * Prajwal S N * (+201)
19:39:03 <Soni> y'all aren't much fun
19:39:26 <Soni> (also we fell asleep, hi again)
19:44:17 <esolangs> [[Brainfuck]] https://esolangs.org/w/index.php?diff=147720&oldid=147556 * Prajwal S N * (+681) Add quine
19:49:53 -!- Everything has joined.
19:52:49 <korvo> Yeah, that's fair.
19:54:27 <esolangs> [[User:Ractangle/my current knowledge of PascallABC.NET]] https://esolangs.org/w/index.php?diff=147721&oldid=146001 * Ractangle * (+14)
19:54:40 <sprout> say it like it is
19:59:32 <esolangs> [[FlipFlop]] https://esolangs.org/w/index.php?diff=147722&oldid=144847 * Ractangle * (+1) /* Examples? */
20:09:09 <esolangs> [[4ME]] https://esolangs.org/w/index.php?diff=147723&oldid=144407 * Ractangle * (-6) /* Commands */
20:15:00 <esolangs> [[Comment]] https://esolangs.org/w/index.php?diff=147724&oldid=145876 * Ractangle * (+59) /* Rewritten 4ME */
20:24:30 <esolangs> [[User:Ractangle]] https://esolangs.org/w/index.php?diff=147725&oldid=147520 * Ractangle * (-1) /* Other things */
20:33:20 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:35:09 <esolangs> [[Albuquerque challenge]] M https://esolangs.org/w/index.php?diff=147726&oldid=147652 * Aadenboy * (+28) category
20:39:19 <korvo> In Advance The Wheel!, it appears that partial evaluation should be able to fully evaluate any known queues, and the main obstacle is that a residual program needs to start with The Wheel in A, which requires that all control flow in the residue is somehow synchronized at the end.
20:40:43 <korvo> But Turing-completeness of ATW! implies that there's no computable way to synchronize The Wheel. Or, um. I just lost my train of thought.
20:44:16 -!- tromp has joined.
20:46:58 -!- amby has joined.
20:57:15 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:58:58 <korvo> New train pulled into the station. Why should The Wheel start at A? I mean, it's nice and all, but as a musician I can't help but rotate it. For example, starting in the "key" of F, The Wheel's got a nice NOP pattern: NOP, 1, NOP, 2, NOP, 3, repeat.
21:08:50 -!- tromp has joined.
21:16:01 <zzo38> About regular files are also directories, my idea is that files can contain bytes as well as links to other files. There are no file names (although a file can contain a key/value list mapping names to links, or whatever other structure you want for the links). This is not quite the same but is similar.
21:16:51 <zzo38> About embedding stuff in other files, and application file formats, etc, I had considered stuff like that also and had decided to make Common Data Format; it can include opaque data but also many kind of structured data, so many data can be shared between programs better.
21:18:48 <zzo38> However, such a hyperlinked system can have some issues e.g. with hashing and transfering to other disks etc, but I had also considered it, that a interchange format that is used for the package manager (and other things) that can put multiple files represented together into one file, including queries for finding external files that might be linked when installed (by whatever criteria you want to use).
21:23:57 <zzo38> Some programming languages do have a separate type for file names than text strings, I think.
21:24:43 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:24:51 <zzo38> (I think Lisp does, and I think BTRON provides a type to use for this purpose in a C header file)
21:31:16 -!- Sgeo has joined.
21:43:34 -!- tromp has joined.
21:52:42 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:09:34 -!- tromp has joined.
22:09:49 -!- tromp has quit (Client Quit).
22:11:07 -!- tromp has joined.
22:41:28 <esolangs> [[Special:Log/newusers]] create * NeriyaCo * New user account
23:00:37 <esolangs> [[2Deadfish/Constants]] https://esolangs.org/w/index.php?diff=147727&oldid=120506 * Squidmanescape * (+237) typo
23:06:38 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:07:40 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=147728&oldid=147719 * NeriyaCo * (+177)
23:07:52 <esolangs> [[Dotsscript]] N https://esolangs.org/w/index.php?oldid=147729 * NeriyaCo * (+3797) Created page with "DotsScript is a JavaScript interpreter that makes your JavaScript code much simpler by making the whole code using 2 characters only, the <code>.</code> and the <code></code> character. == Installation == The interpreter is available through npm and yarn under the
23:11:08 <esolangs> [[Dotsscript]] https://esolangs.org/w/index.php?diff=147730&oldid=147729 * NeriyaCo * (-5) /* Links */
23:12:17 <esolangs> [[Execline]] N https://esolangs.org/w/index.php?oldid=147731 * Corbin * (+679) Stub. Thinking about how to fill this out.
23:12:35 <esolangs> [[Dotsscript]] https://esolangs.org/w/index.php?diff=147732&oldid=147730 * NeriyaCo * (+111) /* Usage */
23:13:00 <esolangs> [[Dotsscript]] https://esolangs.org/w/index.php?diff=147733&oldid=147732 * NeriyaCo * (-1) /* Usage */
23:31:27 -!- __monty__ has quit (Quit: leaving).
23:34:20 <esolangs> [[Execline]] M https://esolangs.org/w/index.php?diff=147734&oldid=147731 * Corbin * (+480) Add an example quine.
23:41:20 <esolangs> [[Shell]] M https://esolangs.org/w/index.php?diff=147735&oldid=134974 * Corbin * (+353) Stub a concept page (rather than let it redirect to a user page.)
←2024-12-06 2024-12-07 2024-12-08→ ↑2024 ↑all