00:00:25 traditionally unix does this using the convention of sticking a ".d/" everywhere 00:00:37 oh, so you can have something that can be interpreted either as a file or as a directory, and the two views don't necessarily have anything in common? 00:00:38 e.g. profile vs profile.d 00:00:47 Oh, "duality" in the sense of "two approaches", like particle-wave duality. 00:00:54 korvo: yes 00:01:19 -!- __monty__ has quit (Quit: leaving). 00:01:28 so like it's useful to have it as two views of the same object 00:01:36 for example, profile and profile.d/ 00:02:19 Not all filesystems are like this; some filesystems have objects which are only files or only directories. git has `blob` and `tree`. The event-sourced filesystems like ZFS, btrfs, bcachefs, etc. also distinguish between files and directories. 00:02:26 or something you'd traditionally do as foo.lua + foo/bar.lua 00:02:35 Some non-file-systems are like this, e.g. Gopher. 00:02:47 korvo: sure, but which API is more general 00:03:13 Soni: at some point, "more general" becomes a matter of perspective 00:03:46 a Perl scalar can be interpreted either as an integer or as a string, normally the two interpretations are compatible in the sense that the integer interpretation is the numerical value of the string 00:03:57 Soni: I don't think it changes the API meaningfully. Not like e.g. capability theory, which requires everything to be relative to some parent. 00:04:00 but you can create a Perl scalar where the two interpretations are unrelated 00:04:24 you can use the garbage filesystem from the better API (we do it all the time with http), but you can't use the better filesystem with a garbage API (don't even bother mounting a webdav on a modern OS, the experience sucks. just use a webdav library instead.) 00:04:24 -!- mtm has quit (Ping timeout: 260 seconds). 00:04:42 does that make it more general? in one sense, yes; in another sense, no because it's more general still to use a scheme where things can have arbitrary types with arbitrary stringifications and intifications, and Perl has that too 00:04:54 (wait is webdav the right thing, we don't remember if it's the thing we're thinking of) 00:05:14 Soni: For yet another example, consider Tahoe-LAFS or its relatives. Every piece of data is a small binary file, including directories; a directory is merely a special file format. In Tahoe, that format includes a cryptographic signature to prevent tampering, but that's optional. 00:05:32 -!- mtm has joined. 00:05:51 korvo: how does the filesystem handle things that are conceptually large binary files, like videos? 00:05:57 we would also do away with the path DSL personally 00:06:46 (we have too many competing path DSLs, just use arrays of filenames already) 00:07:04 ais523: For Tahoe in particular, there's both a big-file extension and a chunking extension baked into today's protocol. However, Tahoe was intended to be used with Usenet-style error-encoding tools like zfec, which pre-chunk everything and apply a parity coding. 00:08:03 korvo: right 00:08:28 ais523: Another technique is my DHT Radio, which trades space for time. A constant amount of data ( But combine that with a fountain code, and now it's a video-streaming gadget. 00:21:51 [[Estrita]] M https://esolangs.org/w/index.php?diff=147408&oldid=147395 * Aadenboy * (+8) mark as wip I guess 00:30:20 [[PRINT]] https://esolangs.org/w/index.php?diff=147409&oldid=137153 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+22) /* Examples */ 00:35:27 I did have some ideas relating to some of such thing before, that a operating system design that does not have directory structures, although any file can contain links to other files (and files also have forks, although they are not limited to two forks). 00:36:00 Functions such as "fopen" would not be available (although "fmemopen", "fopencookie", etc can still be used), so some other functions will be needed. 00:36:19 (I am not sure what.) 00:37:43 Probably the reference to a file will appear as a opaque object but it can be read from or written to a file. 00:38:17 It requires all disk accesses to be structured. It's a block device; so, reads always return a block-sized rich structure with lots of attached data. 00:39:16 Then, with OS support, a reference to a block can be encoded in a rich structure s.t. user-level code isn't allowed to print out the raw address directly, or access it directly, etc. The typical pattern for that is the "c-table", which is just an array of file-descriptor-like objects. 00:41:09 Yes, I would think it would be like file-descriptor-like objects, although I had consider to make them as "capabilities", so a link to a file can also appear as a capability. 00:41:13 TBH I'd just look at seL4 and figure out how to use that instead of reinventing the wheel. 00:42:39 once we have file-dir duality, there's no reason to bother with "forks" 00:43:46 I would think it is worth looking anyways, whether or not it can be used as it is 00:44:28 Maybe you are right. 00:46:43 Another idea I had is transactional file system. Furthermore, I think that forks can still be useful, to identify parts of files that can be written independently (to avoid having to move stuff around a lot; if necessary, a function could be added to efficiently move data from one fork to another fork in the same file). 00:47:09 [[Quantum Nothing]] N https://esolangs.org/w/index.php?oldid=147410 * ZCX islptng * (+616) Created page with "This is an esolang created by islptng. ==Syntax== Every program with 1 byte or more is invalid. It runs the following code, which raises a Syntax Error: +++++++++[->+++++++++<]>++.<++++++[->++++++<]>++.<+++[->---<]>--.++++++.<++++[->----<]>---.<++++[->++++< 00:48:36 [[User:ZCX islptng]] https://esolangs.org/w/index.php?diff=147411&oldid=146915 * ZCX islptng * (+102) 00:49:24 oh, I just had a realisation – files could do with a concept of whether they're still actively being appended to or not 00:49:55 for certain special files, like pipes, this already exists – if you read all the data from a pipe, but the write end is still open, the read will block rather than returning EOF 00:50:12 Transactions are important for sure. I think a lot about the way that both git and Tahoe (and I hear Fuchsia's storage as well?) separate an immutable content-addressed storage layer below, from a mutable tree-like naming system on top. 00:50:16 but this is useful for regular files too, e.g. because you're using the file both for streaming and recording 00:51:12 I wrote a ttyrec player that is able to stream from a growing regular file – it checks to see if the file has grown to know whether to switch into streaming mode – but then it isn't able to know when to *stop* reading from it so the video length just grows indefinitely 00:53:13 Yes, sometimes it might be useful, although maybe there are other ways to do it 00:55:48 ais523: yeah, I know, and what's more useful in those cases is getting notified when the file grows, but I'm generally fine with the writer and the reader program having to cooperate by some protocol using something outside that append-only file in these cases 00:57:24 ais523: we can't really apply one standard to regular files anyway. we have two to four different ways of locking a file; when a file is overwritten or a logfile cycled there are like three different ways to do that; etc. 00:59:06 And it turns out, contrary to standard UNIX lore, that end users sometimes *do* just want to stream GiB of data without saving any of it. 01:00:09 ...I mean, there's named FIFOs, but UNIX wouldn't support the append mode for ordinary files if they didn't expect the streaming behaviors y'all're describing. 01:04:29 [[This esolang is not a push-down automata]] https://esolangs.org/w/index.php?diff=147412&oldid=115648 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-32) /* External Resources */ 01:05:11 [[This esolang is not a push-down automata]] https://esolangs.org/w/index.php?diff=147413&oldid=147412 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+7) 01:11:20 [[MIRROR]] https://esolangs.org/w/index.php?diff=147414&oldid=146172 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+47) /* Python */ 01:12:24 b_jonas: I'd love it if the OS handled all this somehow, so that there wouldn't have to be so many different ways to do regular-file streaming and log rotation 01:12:57 and the API for one-program-streaming-to-two is a mess; you can do it with, e.g., tee to a named pipe but it is unreasonably complicated 01:13:35 back in university, I was working on a project that effectively needed named pipes, but I didn't realise they existed 01:13:45 so I ended up reimplementing them out of anonymous pipes and /dev/fd/ 01:14:47 [[MIRROR]] https://esolangs.org/w/index.php?diff=147415&oldid=147414 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+49) /* Commands */ 01:15:07 b_jonas: Linux leases are a great solution to the "multiple incompatible ways of locking a file" situation 01:15:40 in that the programs don't need to cooperate 01:16:43 I am still kind-of stuck on what a file actually *is*, conceptually – there's one view of it as a stream of bytes that might or might not be rewindable, but also a separate view in which you overwrite the bytes at specific offsets 01:17:00 and I haven't figured out a good way to define the behaviour of a file that takes both of those views into account 01:17:55 it reminds me of raw bytes in memory, in a way – there are lots of things you can do with them and you have to have some agreed meaning for them, and rules for changing them, for them to be at all useful 01:18:09 with files, even if you know the file format, you still need to know the agreed rules for how the file can change before you can use it safely 01:18:31 -!- 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:19:36 one consequence of all this is that Rust programs basically can't memory-map files without huge undefined behaviour, or really heavy use of unsafe code – you can't create a reference that points into a memory-mapped file without the risk that some other program violates the reference safety constraints 01:20:17 this is obviously the case for shared mappings, but it may also be the case for private mappings, if you map part of the file that isn't resident in memory and some other process writes to the file while you already have a reference into it 01:20:36 (I am not sure whether it is possible for this particular UB to ever have any consequences, it seems hard for a compiler to exploit) 01:21:31 Doesn't Rust have a safe solution for that? It would merely mean excluding simultaneous access to the mmap. 01:22:14 not as far as I know, I don't think mmaps are part of the core language, they just exist in third-party crates 01:22:59 and excluding simultaneous access to an mmap is hard because it's hard to prevent other processes accessing the same file, and the semantics for what happens when two processes access the same file and one is mmapping aren't defined very well 01:23:44 you could probably do it with a lease, but a lease breaks after 10 seconds, and Rust doesn't have any concept of "a reference that becomes invalid after 10 seconds" 01:24:13 I was hoping to see something safe in the crate `nix`, but I'm only seeing nix::sys::mman::mmap_anonymous, which returns an opaque FFI ref to the mmap. 01:25:57 (to clarify: a lease doesn't always break after 10 seconds, but it could – the kernel notifies you when you have 10 seconds of leasing left, and you're supposed to drop the lease much faster than that 10 seconds in order to avoid UB) 01:29:14 ais523: It might be interesting to know how seL4 does mmaps: it doesn't! Or at least that's the rhetoric. A process only has access to mmaps which it is born with or granted via messages; it can't ask for more. 01:29:39 So it's hard not to see UNIX's everything-is-file-shaped philosophy as part of the problem. 01:30:13 korvo: that feels like an orthogonal problem 01:30:41 zzo38: if files have files inside them, you can just put files inside files to configure the files 01:30:42 if seL4 guaranteed that any maps the process was born with are always uncontended, that would solve the problem – I don't know whether it does that or not 01:30:51 wanna set an icon? .icon.png, problem solved 01:31:16 when everything is a fork, you don't need forks 01:31:26 It means that it's up to the process tree's code to choose how to divide up its own memory. If it wants to set up two children that talk to each other, then it can do that; it can also isolate its children from one another. 01:32:19 korvo: oh, I see – I was thinking about using mmaps to, say, read in a file that the user requested the program to read 01:32:32 Soni: Reminds me of Objective-Smalltalk's polymorphic storage identifiers, or whatever he calls them these days. An object is just a function with a lot of different methods; and similarly, a URL or filepath can have lots of different verbs upon it. 01:32:52 I am comfortable with that sort of request being given in capability form rather than as a filename, but that doesn't seem sufficient here 01:33:09 korvo: don't get us started on URIs 01:33:46 korvo: or do. we tried to have some fun with them not too long ago https://www.ietf.org/archive/id/draft-soni-meta-uri-00.html 01:34:32 (nobody actually cares about the issue we were trying to solve tho) 01:35:08 ais523: Think of a cap as a full-fledged actor-style object that can send and receive messages. There's no reason that a cap can't fulfill requests by giving the requestor access to an mmap with the assurance that it is immutable. 01:36:24 solving issues is hard 01:36:32 we'd rather cause problems 01:36:52 Soni: You didn't state the issue that you're trying to solve. 01:37:15 oh 01:37:38 korvo: in which context? 01:38:29 Soni: In the RFC. The issue, the applications being addressed, the future applications, those are missing. 01:40:24 ahh yeah that's fair 01:40:38 ais523: Think of a cap as a full-fledged actor-style object that can send and receive messages. There's no reason that a cap can't fulfill requests by giving the requestor access to an mmap with the assurance that it is immutable. ← yes, that would work 01:40:42 we're not sure we care enough to update it... 01:40:47 ultimately it had to do with fediverse stuff 01:41:16 the assurance is the new/interesting part 01:41:19 and the fact that you still can't "click to open in the app" a mastodon post 01:41:28 but we're trying to move on from fedi stuff 01:41:42 it's certainly possible for an object to contain one of those, but it would be new behaviour as far as capabilities go 01:42:10 normally capabilities tell a program what they can do and provide a mechanism to do it, whereas this one is making a promise about what the rest of the system will do 01:42:37 I think Genode has something like this in their Rust bindings. Genode is not really related to E or Monte or Joule, but like them it is *object-capability*: caps are refs to objects and objects behave like actors when they invoke each other asynchronously. 01:42:54 But Genode's an OS on top of seL4. I keep meaning to try it out but get busy with other stuff. 01:46:00 ...Ah, no, the current Rust support does not appear to feature a Genode-specific API. It looks like it's a recent one-person passion project: https://genodians.org/atopia/ 01:49:10 we'd still love to have a way to split metadata from the URI while still having a valid URI... 01:50:21 an URI locates a resource but a resource can be ambiguous without extra out-of-band information 01:50:38 how do you keep the information out-of-band while still putting it in an URI 01:51:11 so we came up with meta-URIs, they're URIs plus out-of-band information, packaged in an URI-shaped format 01:51:54 ... anyway we digress 01:52:19 so what do you think about causing problems with an unusual IO API that ditches the filesystem for making everything forks? 01:52:36 (this is #esolangs after all, not #problemsolving) 01:55:14 I feel like forks are only useful if they are interpreted/understood by multiple programs (with the OS counting as a program for this purpose) 01:58:38 [[Estrita]] https://esolangs.org/w/index.php?diff=147416&oldid=147408 * Aadenboy * (+1204) page rewrite 02:26:03 by forks, do you mean the feature when a regular file can have multiple streams of bytes in it, streams not limited to small sizes? 02:41:43 -!- Everything has quit (Quit: leaving). 03:04:24 [[Talk:Combinational logic]] N https://esolangs.org/w/index.php?oldid=147417 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+327) Created page with "How exactly is hello impure? It seems pure to me. --~~~~" 03:06:17 Yeesh, that page needs a large cleanup. Onto the pile it goes~ 05:13:13 [[User:Tommyaweosme/unnamed collab with yayimhere and ractangle]] https://esolangs.org/w/index.php?diff=147418&oldid=147404 * Yayimhere * (+696) /* commands */ 05:13:38 [[User:Tommyaweosme/unnamed collab with yayimhere and ractangle]] https://esolangs.org/w/index.php?diff=147419&oldid=147418 * Yayimhere * (+115) /* suggested names */ 05:15:16 [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=147420&oldid=147201 * Yayimhere * (+132) /* things about me */ 05:26:13 With my operating system ideas, the files don't have "files inside of them", although my idea did involve using certain forks to configure various things (including metadata). The forks numbered 0 to 65535 will have conventional meanings and higher numbered forks (they are 32-bit numbers) have no conventional meaning, so would normally be mentioned in other forks. 05:26:55 Also, it is not "everything is a file"; but, everything outside of a program is a capability, being like a actor model. 05:27:31 A file consists of a set of numbered forks and each fork is a stream of bytes and/or links. 05:28:33 My design does not have file names at all. 05:29:52 (Actors and capabilities are also some stuff you had mentioned. However, there are some differences in how some systems are doing it, and I have some of my own ideas about it. I had considered using a single system call only, mainly in order to solve some issues with race conditions and atomic operations) 05:31:16 Another issue is referencing files by the command shell. I do have the idea about that as well. There are at least two ways (and they can be combined): A reference to a file (or any capability) can be selected with the mouse and copied into the command line, and/or you can specify queries to find a reference automatically and use that. 05:31:29 [[Special:Log/move]] move * Yayimhere * moved [[User:Tommyaweosme/unnamed collab with yayimhere and ractangle]] to [[Tommyaweosme/emojic collab with yayimhere and ractangle]]: since the name is this then it makes sense to move it. also if ractangle or tommy wants to move it back then yea 05:32:24 [[Match]] M https://esolangs.org/w/index.php?diff=147423&oldid=142712 * Japi * (-1) 05:34:46 [[User talk:5anz]] https://esolangs.org/w/index.php?diff=147424&oldid=147394 * Yayimhere * (+276) /* esolang? */ 05:36:36 I had seen one design that uses "everything is URI" but I think that isn't very good either. 05:39:07 [[Savage Operator]] https://esolangs.org/w/index.php?diff=147425&oldid=140139 * Yayimhere * (+160) 05:39:11 I had recently seen some stuff relating to Pony programming language (including that division by zero results in zero; uxn also does this), but also it uses capabilities, although within one program instead of for the entire system. (I think capability systems are more useful when they are what the system uses instead of what a program uses) 05:39:32 [[Unlambda]] https://esolangs.org/w/index.php?diff=147426&oldid=93334 * Yayimhere * (+22) /* See also */ 05:42:12 Pony has six kind of reference capabilities; I had not considered that, although it might be useful if you want to support shared memory. However, I am not sure that I should have shared memory, since it might have some other problems, with security and with network transparency, maybe. 05:45:26 Another security feature would be that the operating system should disallow some instructions from working such as RDTSC, and should emulate CPUID instead of allowing it to work directly. 05:47:32 [[Braintrust]] https://esolangs.org/w/index.php?diff=147427&oldid=139230 * Yayimhere * (+134) why is that here anyway? but umm to make that work with the self interpreter i plugged in braintrust for L 06:20:09 -!- Guest87 has joined. 06:24:52 -!- Guest87 has quit (Client Quit). 06:25:01 -!- Guest87 has joined. 06:25:08 -!- Guest87 has quit (Client Quit). 06:25:47 -!- zenmov has joined. 07:12:23 -!- Hooloovoo has quit (Ping timeout: 252 seconds). 07:15:20 -!- Hooloovoo has joined. 07:28:37 zzo38: x86 can trap on rdtsc so an OS can emulate it if it wants to 07:29:18 (it's unclear whether you know that) 07:31:53 [[Special:Log/move]] move_redir * Ais523 * moved [[Tommyaweosme/emojic collab with yayimhere and ractangle]] to [[User:Tommyaweosme/unnamed collab with yayimhere and ractangle]] over redirect: Revert was accidentally moved to the wrong namespace, I will redo the move to the correct namespace 07:31:53 [[Special:Log/delete]] delete_redir * Ais523 * Ais523 deleted redirect [[User:Tommyaweosme/unnamed collab with yayimhere and ractangle]] by overwriting: Deleted to make way for move from "[[Tommyaweosme/emojic collab with yayimhere and ractangle]]" 07:33:12 (But that's not true for cpuid, which seems a bit strange. I believe you can override some of the cpuid information though? Not sure, it's a hugely complex instruction, and I'm not reading the whole description rn :-P) 07:33:18 [[Special:Log/move]] move * Ais523 * moved [[User:Tommyaweosme/unnamed collab with yayimhere and ractangle]] to [[User:Tommyaweosme/Emojic collab with yayimhere and ractangle]]: repeat [[User:Yayimhere]]'s move, except keep the page in the user namespace 07:33:41 int-e: IIRC RDRAND also can't be overridden, despite being nondeterministic 07:34:21 ais523: https://www.felixcloutier.com/x86/rdrand agrees 07:34:35 Ring -1 can trap cpuid, IIRC. Or maybe it was Ring -2? Somewhere in the SMM. 07:34:54 But it's not just a hardcoded readout of branding and stepping info. 07:35:12 CPUID's interface is… weird 07:35:29 it's intel's version of ioctl 07:35:43 (not really but it's equally diverse) 07:35:48 you can query it for the maximum supported CPUID leaf; accessing high leaves is UB, accessing lower leaves is not UB but they might not be implemented, in which case they return all-zeroes 07:36:13 this seems… strictly worse than returning all-zeroes for unimplemented leaves regardless of whether they're higher or lower than the maximum supported leaf? 07:36:32 * accessing higher leaves is UB 07:36:47 int-e: yes, there are some bits in cpuid that tells to user programs not only that the CPU hardware supports a feature but that the the OS also supports that feature, and the OS needs to enable those, for two reasons: one is that when the CPU introduces new registers, the OS needs to be able to save those when switching between processes, the other is live migration of virtual machines between hosts 07:36:53 with different CPUs 07:38:43 Anyway I don't see a good reason why cpuid can't be trapped. It's a rarely used instruction, no doubt microcoded so already slow... 07:39:21 with rdrand you can argue that it's supposed to be fast (not that a check of a control register bit should be that expensive) 07:39:36 (do we have timings for rdrand, hmm) 07:41:23 The name suggests that the hardware has a `rand` pseudo-register that perhaps reads from some genuine entropy source on-die. 07:41:27 [[DJN OISC]] M https://esolangs.org/w/index.php?diff=147431&oldid=120399 * Iddi01 * (+131) [[Redcode|can't believe that this page doesn't have a link to the origin of the instruction which is t h e. u l t i m a t e. p r o g r a m m i n g. g a m e.]] 07:41:48 it's slow. https://stackoverflow.com/questions/10484164/what-is-the-latency-and-throughput-of-the-rdrand-instruction-on-ivy-bridge has some random cycle numbers 07:42:54 though it's unclear whether it's still slow if you use it sparingly... though hmm, if that's your use case then it's not worth optimizing because it won't be a bottleneck 07:44:13 This DRNG idea is fun. Gotta make sure that the entropy is spread evenly across all cores. I suppose that this would make sense if the on-die entropy requires a lot of dedicated space or has an analog circuit. 07:46:49 Anyway, I see no good reason why this shouldn't be trappable for the same reason(s) that rdtsc is. Maybe they're worried about running out of control register bits :P 07:47:13 [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=147432&oldid=147153 * Zaikawo * (+249) introducing myself 07:49:09 (It'll mess with reverse debugging which is sad. Yes, you can single-step code for that purpose, but that's still sad :-) ) 07:51:25 oh we're working around this issue in software? :-) https://github.com/systemd/systemd/issues/17112 07:51:48 (that's not a happy smiley) 07:55:38 the technique of using CPUID trapping to claim RDRAND isn't supported is clever, and will likely work in practice, but is wrong in theory :-) 07:56:06 well not just vms really, it could be migration of a process with OS support, or one of those CPUs that have two different types of cores in the same housing, as in power-saving and high-performance, and they support different instruction sets 07:57:03 -!- ais523 has quit (Quit: quit). 08:01:24 [[Special:Log/newusers]] create * Saturncorgi * New user account 08:10:12 [[Esolang:Featured languages/Candidates]] M https://esolangs.org/w/index.php?diff=147433&oldid=145031 * Iddi01 * (+1427) /* List of candidates */ [[Redcode|Changed proposal to t h e. u l t i m a t e. p r o g r a m m i n g. g a m e.]] 08:13:15 -!- tromp has joined. 08:30:08 [[Luminol]] N https://esolangs.org/w/index.php?oldid=147434 * Zaikawo * (+3538) this is an esolang i created ! 08:38:34 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 08:48:29 [[User:Froginstarch]] https://esolangs.org/w/index.php?diff=147435&oldid=143766 * Froginstarch * (+54) 08:49:54 [[User:Froginstarch]] https://esolangs.org/w/index.php?diff=147436&oldid=147435 * Froginstarch * (+120) 08:53:19 [[STRTRAN]] https://esolangs.org/w/index.php?diff=147437&oldid=146877 * Froginstarch * (+136) /*Example section is in, now we wait... :/ */ 08:56:20 [[STRTRAN]] https://esolangs.org/w/index.php?diff=147438&oldid=147437 * Froginstarch * (+154) 08:57:16 [[STRTRAN]] https://esolangs.org/w/index.php?diff=147439&oldid=147438 * Froginstarch * (+26) 08:57:30 -!- wib_jonas has joined. 08:57:32 -!- tromp has joined. 08:58:02 [[STRTRAN]] https://esolangs.org/w/index.php?diff=147440&oldid=147439 * Froginstarch * (+3) 08:58:10 int-e: on one hand, yes, it sounds like the cpu developers could easily have made RDRAND trappable. on the other hand, 08:58:25 [[STRTRAN]] https://esolangs.org/w/index.php?diff=147441&oldid=147440 * Froginstarch * (+4) 08:59:05 [[STRTRAN]] https://esolangs.org/w/index.php?diff=147442&oldid=147441 * Froginstarch * (+27) 08:59:16 maybe there are like ten other more subtle reasons why it's impossible to make modern x86 deterministic for a non-cooperating (untrusted) userspace process without very costly emulation, and the cpu developers chose to make rdrand not trappable to make that fact more obvious. 09:16:26 [[Redcode]] https://esolangs.org/w/index.php?diff=147443&oldid=146739 * Iddi01 * (+1991) Second update to the article 10:20:44 [[Special:Log/upload]] upload * WoodyFan3412 * uploaded "[[File:TileDots file.png]]" 10:27:43 [[Special:Log/upload]] upload * WoodyFan3412 * uploaded "[[File:TileDots comparison.png]]" 10:29:04 [[TileDots]] https://esolangs.org/w/index.php?diff=147446&oldid=147253 * WoodyFan3412 * (+345) Added missing info and file format. 11:14:45 [[User:Bor0]] https://esolangs.org/w/index.php?diff=147447&oldid=96407 * Bor0 * (-9) 11:15:26 -!- Sgeo has quit (Read error: Connection reset by peer). 11:15:43 [[Wasaya]] https://esolangs.org/w/index.php?diff=147448&oldid=147374 * PrySigneToFry * (+161) 11:17:38 -!- fria has joined. 11:19:34 -!- __monty__ has joined. 11:20:18 -!- fria has quit (Client Quit). 11:21:47 [[User talk:Tommyaweosme]] https://esolangs.org/w/index.php?diff=147449&oldid=147388 * PrySigneToFry * (+1064) 11:21:56 -!- wib_jonas has quit (*.net *.split). 11:24:08 -!- chiselfuse has quit (*.net *.split). 11:24:48 [[User talk:Ractangle]] https://esolangs.org/w/index.php?diff=147450&oldid=147385 * PrySigneToFry * (+159) /* Wasaya */ new section 11:25:36 Not really looking forward for doing today in Burlesque, it's terrible for anything iterative, or 2D-arrayish. 11:25:43 If it wasn't for the diagonals I'd use the string builtins to search for "XMAS" in the original, reversed, transposed and reversed-and-transposed lines, but I don't think it has anything for diagonals. 11:37:10 [[User:PrySigneToFry]] https://esolangs.org/w/index.php?diff=147451&oldid=147194 * PrySigneToFry * (+221) 11:39:42 [[User:PrySigneToFry]] https://esolangs.org/w/index.php?diff=147452&oldid=147451 * PrySigneToFry * (+15) 11:41:15 [[Free Esolang]] https://esolangs.org/w/index.php?diff=147453&oldid=145577 * PrySigneToFry * (+9) 11:49:24 [[Talk:EchoLang (None1)]] https://esolangs.org/w/index.php?diff=147454&oldid=146970 * PrySigneToFry * (+102) 11:53:21 [[User talk:ColorfulGalaxy's CA discoveries]] https://esolangs.org/w/index.php?diff=147455&oldid=147111 * PrySigneToFry * (+493) /* I've thinked about a CA with civilization. */ new section 12:03:03 [[Talk:Wasaya]] https://esolangs.org/w/index.php?diff=147456&oldid=147236 * ZCX islptng * (+745) /* This seems like a hybrid of Lua and Python */ new section 12:03:54 -!- mtm has quit (Ping timeout: 252 seconds). 12:05:21 [[Talk:Wasaya]] https://esolangs.org/w/index.php?diff=147457&oldid=147456 * ZCX islptng * (+86) 12:05:57 -!- mtm has joined. 12:09:31 [[Talk:Wasaya]] https://esolangs.org/w/index.php?diff=147458&oldid=147457 * ZCX islptng * (-5) /* This seems like a hybrid of Lua and Python */ 12:11:09 [[Talk:Wasaya]] https://esolangs.org/w/index.php?diff=147459&oldid=147458 * ZCX islptng * (+75) /* This seems like a hybrid of Lua and Python */ 12:12:19 -!- earend1 has joined. 12:14:45 [[Wasaya/Libraries]] https://esolangs.org/w/index.php?diff=147460&oldid=147190 * ZCX islptng * (+175) 12:15:23 [[Wasaya/Libraries]] https://esolangs.org/w/index.php?diff=147461&oldid=147460 * ZCX islptng * (+17) /* Self-interpreter Library */ 12:56:32 [[Talk:Wasaya]] https://esolangs.org/w/index.php?diff=147462&oldid=147459 * ZCX islptng * (-116) 12:59:19 -!- craigo has joined. 13:01:38 [[Wasaya]] https://esolangs.org/w/index.php?diff=147463&oldid=147448 * ZCX islptng * (+2) 13:03:39 [[Wasaya]] https://esolangs.org/w/index.php?diff=147464&oldid=147463 * ZCX islptng * (+5) 13:07:07 [[Talk:Wasaya]] https://esolangs.org/w/index.php?diff=147465&oldid=147462 * PrySigneToFry * (+723) 13:08:15 [[Talk:Wasaya]] https://esolangs.org/w/index.php?diff=147466&oldid=147465 * PrySigneToFry * (+22) 13:28:10 -!- amby has joined. 13:41:03 -!- wib_jonas has joined. 13:46:46 -!- chiselfuse has joined. 14:17:01 [[Special:Log/newusers]] create * SpectCOW * New user account 14:17:31 [[Savage Operator]] https://esolangs.org/w/index.php?diff=147467&oldid=147425 * Yayimhere * (+44) /* Turing-completeness */ 14:20:17 [[Wasaya]] https://esolangs.org/w/index.php?diff=147468&oldid=147464 * PrySigneToFry * (+110) 14:30:48 --> cx.cartesian 14:31:08 -!- m0ther has joined. 14:31:15 --> cx.cartesian 14:31:16 earend1: (...N) => N.reduce((A, B) => [].concat.apply([], A.map(a => B.map(b => [a, b])))).map(n => [].concat.apply([], n))/* var ABC=["A","B","C"], DEC=[1,2,3]; zip(ABC,DEC); // [['A',1],['A',2],['A',3],['B',1],['B',2],['B',3],['C',1],['C',2],['C',3]] */ 14:31:38 --> var ABC=["A","B","C"], DEC=[1,2,3]; zip(ABC,DEC); 14:31:39 earend1: [ [ 'A', 1 ], [ 'B', 2 ], [ 'C', 3 ] ] 14:32:06 --> var ABC=["A","B","C"], DEC=[1,2,3]; cx.cartesian(ABC,DEC); 14:32:07 earend1: [ [ 'A', 1 ], [ 'A', 2 ], [ 'A', 3 ], [ 'B', 1 ], [ 'B', 2 ], [ 'B', 3 ], [ 'C', 1 ], [ 'C', 2 ], [ 'C', 3 ] ] 15:00:41 [[Sirc]] N https://esolangs.org/w/index.php?oldid=147469 * Baldibacak * (+1354) Created page with "== Sirc == Sirc is an esolang based on a single-register CPU. Programs in Sirc operate by being loaded into RAM, as the architecture does not allow immediate values. The language is designed to be minimalistic and challenging to use. === Architecture === * The CPU ha 15:02:11 [[Sirc]] https://esolangs.org/w/index.php?diff=147470&oldid=147469 * Baldibacak * (-104) 15:03:24 [[Sirc]] https://esolangs.org/w/index.php?diff=147471&oldid=147470 * Baldibacak * (+82) 15:04:15 [[Sirc]] https://esolangs.org/w/index.php?diff=147472&oldid=147471 * Baldibacak * (+65) forgot to add jmp instruction 15:04:30 [[Sirc]] https://esolangs.org/w/index.php?diff=147473&oldid=147472 * Baldibacak * (+0) and made a typo 15:05:07 -!- baldibacak has joined. 15:05:14 well hello 15:17:16 -!- baldibacak has quit (Quit: Client closed). 15:41:16 [[User talk:Ractangle]] https://esolangs.org/w/index.php?diff=147474&oldid=147450 * Ractangle * (-159) no 15:44:48 [[Esolang:Community portal]] https://esolangs.org/w/index.php?diff=147475&oldid=145304 * B jonas * (+12) /* IRC */ 15:45:38 [[Estrita]] M https://esolangs.org/w/index.php?diff=147476&oldid=147416 * Aadenboy * (+394) minor change 15:45:45 m0ther: greet 15:46:00 :: greet 15:46:04 [[User talk:Tommyaweosme]] https://esolangs.org/w/index.php?diff=147477&oldid=147449 * Ractangle * (+242) /* collab? */ 15:46:10 ::greet 15:46:12 wib_jonas: hello world 15:50:20 -!- FreeFull has quit (Ping timeout: 265 seconds). 15:56:06 -!- m0ther has quit (Ping timeout: 252 seconds). 15:58:23 [[User talk:ColorfulGalaxy's CA discoveries]] M https://esolangs.org/w/index.php?diff=147478&oldid=147455 * Aadenboy * (+90) PrySigneToFry forgot to sign, adding default signature 16:07:00 ::learn chr s=>[...s].map(c=>c.codePointAt(0)).join(" ") 16:07:28 -!- m0ther has joined. 16:07:33 ::learn chr s=>[...s].map(c=>c.codePointAt(0)).join(" ") 16:07:53 ::chr A 16:08:44 m0ther: cx.chr=s=>[...s].map(c=>c.codePointAt(0)).join(" ") 16:09:13 m0ther: 2+3 16:09:19 --> 2+3 16:10:11 -!- m0ther has quit (Remote host closed the connection). 16:10:41 -!- m0ther has joined. 16:11:19 ::learn chr s=>[...s].map(c=>c.codePointAt(0)).join(" ") 16:11:20 earend1: learned new command: chr 16:11:25 ::chr A 16:11:26 earend1: 65 16:11:30 [[Luminol]] https://esolangs.org/w/index.php?diff=147479&oldid=147434 * Zaikawo * (+1648) made the page make more sense :thumbsup: 16:12:49 has cx.fetch .. so you can code a tiny webservice with resources you have (like free on runkit) and bind it with a one liner likee that. was the idea 16:12:58 m0ther: cx 16:13:32 ::help 16:13:33 int-e: 16:14:26 unfortunately that version isnt up to date. its an rescued older workspace. 16:14:56 [[User:Zaikawo]] N https://esolangs.org/w/index.php?oldid=147480 * Zaikawo * (+260) woah 16:15:11 some features like gist pastes doesnt work now.. have to update API credentials 16:15:39 ::learn name s=>blah+s 16:16:19 just a lambda taking a single param s. whjich is everything followed after command name 16:17:37 usually it would use pastes for commands with longer outout automatically .. (which for now doesnt work.. so you get just an error or nothing at all) 16:17:48 (API keys)_ 16:20:13 b_jonas: You're not wrong... anything with shared memory (say a user-space spin lock) is going to be nondeterministic. `rr` basically disables threads (only one runs at any given time). 16:21:09 b_jonas: so what makes rdrand annoiying is that it's non-deterministic even in an isolated single threaded context 16:21:14 * int-e shrugs 16:24:52 [[Luminol]] M https://esolangs.org/w/index.php?diff=147481&oldid=147479 * Zaikawo * (+18) clarified what values are 16:30:31 [[Luminol]] M https://esolangs.org/w/index.php?diff=147482&oldid=147481 * Zaikawo * (+155) added categories 16:35:56 [[Luminol]] M https://esolangs.org/w/index.php?diff=147483&oldid=147482 * Zaikawo * (-1) fixed typo in builtins 16:36:54 -!- wib_jonas has quit (Quit: Client closed). 16:39:33 -!- wib_jonas has joined. 16:40:09 int-e: yes, that's one of the largest problems, but I think even if you restrict multithreading there are other difficulties 16:40:21 Oh sure. 16:42:30 Most obviously you can share memory between processes, so it's not just threads. 16:54:57 -!- m0ther has quit (Remote host closed the connection). 17:12:00 -!- Everything has joined. 17:30:19 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 17:31:34 divide and conquer 17:31:40 -!- wib_jonas has quit (Ping timeout: 240 seconds). 17:32:48 js concurrency and event-loop fast io is awesome to delegate work around the world so to say 17:33:18 surely trivial remark 17:34:28 i love how i will never understand talk in this channel 17:35:23 No worries. I don't understand anything either. 17:36:42 . o O ( When you understand everything, you get a Bachelor's. When you understand nothing, you get a Master's. And when you realize that nobody else understands anything either, you get a PhD ) 17:37:01 (This is a joke. Also true. But a joke. :) ) 17:37:22 concurrency vs true parallel .. or more like synthese: web 1.0 17:38:14 wer nichts wird wird wirt, und wer das nicht schafft wird betriebswirt. 17:38:20 . o O ( all web development leads to eventual inconsistency ) 17:39:15 I have a web developer living in my back yard. She builds an entire web every night! If only I were so productive. But I'd have to eat flies. 17:42:32 -!- wWwwW has joined. 17:44:06 hi!! 17:44:31 i have news that prop nobody will care about: im learning prolog 17:44:38 should i use it to make compilers? 17:44:44 it seems like it would make sense but 17:46:28 -!- tromp has joined. 17:48:56 -!- Everything has quit (Quit: leaving). 17:51:54 wWwwW: Fun! You certainly can use it to make a compiler. Prolog was originally intended for parsing, but it can also be used for code transformation and emission. 17:52:13 also yes this is cuz you reccomended minikanren 17:53:01 also my reasoning is thta if you define the rules of the language makes the problem the actual program then you wouldnt need to do all the inbetween stuff? maybe idk lol 17:55:05 Sure. miniKanren is nice for expressing very pure relations that need to always be reversible. Prolog is better for practical work; it allows the user to tell the runtime to not explore certain possibilities, or to evaluate things in a fairly specific order. 17:55:26 thats also usefull 17:55:44 i have found out im a declarative fan 17:55:47 And yes, lots of parts of Prolog are effectively the user giving the runtime like three lines of code, and the runtime expanding that to hundreds of lines of equivalent low-level C. The same thing happens with SQL and database engines. 17:56:01 nice 18:01:36 wWwwW: Have you seen lists and append yet? I think it's something like: append([], X, X). append([X|Xs], Z, [X|Ys]) :- append(Xs, Z, Ys). 18:02:05 no i have not 18:02:07 and now 18:02:14 im horrorfied 18:02:14 [] and [|] are syntax for nil/0 and cons/2, so this is just: append(nil, X, X). append(cons(X, Xs), Z, cons(X, Ys)) :- append(Xs, Z, Ys). 18:03:57 Well, it's merely two logical statements: `for all X, [] ++ X == X` and `for all X, Y, Z, x, if X ++ Z == Y then cons(x, X) ++ Z == cons(x, Y)`. Two properties of lists. 18:04:16 k 18:05:02 But also, because a list is always either a nil/0 or cons/2, this means that append/3 can always pattern-match its first argument. This is a crucial insight in Prolog, because it means that (some) runtimes figure out that append/3 is actually a function. 18:05:43 lol 18:05:45 There's kind of two ways to write Prolog. You can write relations and let the runtime search for the answer, or you can write functions and let the runtime evaluate them like traditional programming. 18:06:29 Languages like Mercury, Curry, Mozart/Oz, etc. are all built around that idea of relations and functions as two different things that work together. 18:06:43 k 18:06:57 wWwwW: Would you like to be more horrified or would you like to see something practical? 18:07:13 while i learn more different langs ill be making an actual language on the side as i go along and get inspired 18:07:19 korvo: hmmmmmmm good quesiton 18:07:23 *question 18:08:46 also bye 18:08:53 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 18:09:19 -!- Lord_of_Life has joined. 18:09:54 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 18:32:12 -!- tromp has joined. 18:53:38 -!- Sgeo has joined. 19:01:04 korvo: I think the constructor for list nodes isn't actually called cons, it's called . 19:01:42 b_jonas: Probably. I don't remember all the fun syntax. I remember that ,/2 is a constructor. 19:02:24 yes, but that's a different one 19:03:32 Got it. Still confused, but that's okay. 19:04:00 though I do call it cons in https://esolangs.org/wiki/Olvashat%C3%B3 19:10:42 -!- amby has quit (Ping timeout: 252 seconds). 19:13:18 -!- amby has joined. 19:52:00 -!- earend1 has quit (Quit: Connection closed for inactivity). 20:33:28 [[User:Tommyaweosme/Emojic collab with yayimhere and ractangle]] https://esolangs.org/w/index.php?diff=147484&oldid=147429 * Ractangle * (+4) /* commands */ 20:37:34 [[User:Tommyaweosme/Emojic collab with yayimhere and ractangle]] https://esolangs.org/w/index.php?diff=147485&oldid=147484 * Ractangle * (+153) 20:40:25 [[User:Tommyaweosme/Emojic collab with yayimhere and ractangle]] https://esolangs.org/w/index.php?diff=147486&oldid=147485 * Ractangle * (-2) /* commands */ 20:40:32 If x86 cannot be made fully deterministic, can RISC-V be, and what other instruction sets do? 20:43:32 [[User:Tommyaweosme/Emojic collab with yayimhere and ractangle]] https://esolangs.org/w/index.php?diff=147487&oldid=147486 * Ractangle * (+8) 20:48:44 [[PAPER]] M https://esolangs.org/w/index.php?diff=147488&oldid=147331 * PythonshellDebugwindow * (+113) Categories 20:49:32 [[User:Tommyaweosme/Emojic collab with yayimhere and ractangle]] https://esolangs.org/w/index.php?diff=147489&oldid=147487 * Ractangle * (+16) 20:49:52 [[User:Tommyaweosme/Emojic collab with yayimhere and ractangle]] https://esolangs.org/w/index.php?diff=147490&oldid=147489 * Ractangle * (+1) 20:51:01 [[WHAT]] M https://esolangs.org/w/index.php?diff=147491&oldid=147383 * PythonshellDebugwindow * (+97) Categories 20:51:25 [[Special:Log/newusers]] create * Suprinister * New user account 20:55:39 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=147492&oldid=147432 * Suprinister * (+444) 20:59:09 [[Nile]] M https://esolangs.org/w/index.php?diff=147493&oldid=147407 * PythonshellDebugwindow * (+136) Infobox, categories 21:02:07 [[Quantum Nothing]] M https://esolangs.org/w/index.php?diff=147494&oldid=147410 * PythonshellDebugwindow * (+200) Link, categories 21:03:09 [[PAPER]] M https://esolangs.org/w/index.php?diff=147495&oldid=147488 * PythonshellDebugwindow * (+30) Category 21:04:02 [[Special:Log/upload]] overwrite * Dtp09 * uploaded a new version of "[[File:Truth-machine-tile.png]]": program compressed by two tiles horizontally 21:05:10 [[Tile]] https://esolangs.org/w/index.php?diff=147497&oldid=133963 * Dtp09 * (-16) /* Truth Machine */ compresseed program by two tiles horizontally 21:14:04 [[Sirc]] M https://esolangs.org/w/index.php?diff=147498&oldid=147473 * PythonshellDebugwindow * (+41) Categories 21:16:08 [[Luminol]] M https://esolangs.org/w/index.php?diff=147499&oldid=147483 * PythonshellDebugwindow * (+85) Infobox, categories 21:16:12 -!- zzo38 has quit (Ping timeout: 246 seconds). 21:22:13 -!- m0ther has joined. 21:22:39 -!- earend1 has joined. 21:53:36 -!- __monty__ has quit (Quit: leaving). 21:54:21 -!- m0ther has quit (Ping timeout: 246 seconds). 21:55:48 -!- zzo38 has joined. 22:12:16 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 22:13:17 I look and maybe it is possible to disable RDRAND with hypervisors 22:17:24 -!- tromp has joined. 22:34:34 [[User talk:5anz]] https://esolangs.org/w/index.php?diff=147500&oldid=147424 * 5anz * (+359) /* esolang? */ 22:34:56 [[User talk:5anz]] https://esolangs.org/w/index.php?diff=147501&oldid=147500 * 5anz * (+0) /* esolang? */ 23:01:26 [[Talk:EchoLang (None1)]] https://esolangs.org/w/index.php?diff=147502&oldid=147454 * None1 * (+274) 23:05:29 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 23:23:11 [[Talk:HQ9+]] https://esolangs.org/w/index.php?diff=147503&oldid=90218 * 5anz * (+261)