00:00:03 [[Translated ORK/Mihai Again17]] https://esolangs.org/w/index.php?diff=144281&oldid=144273 * MihaiEso * (+1) 00:36:47 [[Translated ORK/Mihai Again17]] https://esolangs.org/w/index.php?diff=144282&oldid=144281 * MihaiEso * (+32) 02:52:07 [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=144283&oldid=143773 * TheThunderGuyS * (+213) /* delete account */ new section 02:53:30 [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=144284&oldid=144283 * TheThunderGuyS * (+105) /* delete account */ 03:22:56 [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=144285&oldid=144138 * Aadenboy * (+518) /* Proposal: Category:Physics-based */ new section 03:56:55 -!- wWwwW has joined. 04:05:44 -!- wWwwW93 has joined. 04:33:19 -!- craigo has joined. 04:48:58 [[ ]] N https://esolangs.org/w/index.php?oldid=144286 * Yayimhere * (+1113) Created page with "''' ''' russian for fucking shit, is an esolang created by [[User:Yayimhere]]. it was created becuase he has begun in chatrooms instead of saying fuck shit ect. has just said it in russian == how it works == uses a stack of single numbers. programs are made up of english 04:49:14 -!- wWwwW93 has quit (Quit: Client closed). 05:30:25 -!- wWwwW has quit (Quit: Client closed). 05:35:45 [[SETANDCOUNT]] https://esolangs.org/w/index.php?diff=144287&oldid=144192 * Cycwin * (+118) 05:53:38 [[SETANDCOUNT]] https://esolangs.org/w/index.php?diff=144288&oldid=144287 * Cycwin * (+0) 05:58:15 [[Alivehyperfish]] M https://esolangs.org/w/index.php?diff=144289&oldid=144227 * ZCX islptng * (-243) the interpreter now works correctly. 06:00:07 [[SETANDCOUNT]] M https://esolangs.org/w/index.php?diff=144290&oldid=144288 * Cycwin * (+0) 06:12:30 [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=144291&oldid=144284 * Ractangle * (+200) /* delete account */ 06:13:09 -!- nitrix has quit (Quit: ZNC 1.8.2 - https://znc.in). 06:15:21 -!- nitrix has joined. 06:30:46 -!- tromp has joined. 06:33:47 [[Assemble]] N https://esolangs.org/w/index.php?oldid=144292 * PrySigneToFry * (+7345) Created page with "Assemble is an Esolang designed by PSTF to expand the original Assembly language. == Instructions == {| class="wikitable" |+ Instruction table |- ! Instruction !! From !! Meaning |- | add || ('''add'''ition) || Add the number after the instruction to the a 06:43:47 [[Language list]] https://esolangs.org/w/index.php?diff=144293&oldid=144221 * PrySigneToFry * (+15) 06:48:16 [[PythOwO]] https://esolangs.org/w/index.php?diff=144294&oldid=143835 * RaiseAfloppaFan3925 * (+1371) 07:35:48 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 07:38:20 -!- manish has joined. 07:40:24 -!- Lord_of_Life has quit (Ping timeout: 246 seconds). 07:44:45 -!- Lord_of_Life has joined. 07:49:22 -!- Guest22 has joined. 07:50:34 -!- Guest22 has left. 08:39:27 [[Alivehyperfish]] M https://esolangs.org/w/index.php?diff=144295&oldid=144289 * ZCX islptng * (+2314) the interpreter now works correctly. Also compiler and improved Hello World. 08:42:11 [[SETANDCOUNT]] https://esolangs.org/w/index.php?diff=144296&oldid=144290 * Cycwin * (+984) 08:43:49 [[User talk:PythonshellDebugwindow]] https://esolangs.org/w/index.php?diff=144297&oldid=144170 * Cycwin * (+93) 08:44:24 [[User talk:PythonshellDebugwindow]] M https://esolangs.org/w/index.php?diff=144298&oldid=144297 * Cycwin * (+1) 09:20:15 -!- tromp has joined. 09:27:54 -!- Sgeo has quit (Read error: Connection reset by peer). 09:38:17 [[SETANDCOUNT]] https://esolangs.org/w/index.php?diff=144299&oldid=144296 * Cycwin * (+139) 10:38:24 [[User:Ractangle]] https://esolangs.org/w/index.php?diff=144300&oldid=144046 * Ractangle * (-12) /* Esolangs */ 10:39:18 -!- manish has left (Leaving). 11:03:54 [[Langton's ant]] M https://esolangs.org/w/index.php?diff=144301&oldid=143173 * Iddi01 * (+424) Make this article more fitting for featuring 11:10:16 [[Esolang:Featured languages/Candidates]] M https://esolangs.org/w/index.php?diff=144302&oldid=143182 * Iddi01 * (+207) /* List of candidates */ Edited paragraph to reflect article change 11:39:20 -!- X-Scale has joined. 11:40:42 -!- iddi01 has joined. 11:48:17 fizzie: *emergency bug report on zemhill* I was looking into why the heck atom loses against everything, 1337 rises higher than leviathan, and the other weird scoring behavior on the hill, and i found it: even though the breakdown for atom shows all losses, the games page 11:48:18 https://zem.fi/bfjoust/game/#joust,david_werecat.atom,david_werecat.leviathan,940981f shows both wins and losses! fix it before atom DROPS OUT THE HILL 11:49:40 (I won't submit any programs until it is fixed) 11:52:06 `echo @tell fizzie *emergency bug report on zemhill* I was looking into why the heck atom loses against everything, 1337 rises higher than leviathan, and the other weird scoring behavior on the hill, and i found it: even though the breakdown for atom shows all losses, the games page 11:52:06 https://zem.fi/bfjoust/game/#joust,david_werecat.atom,david_werecat.leviathan,940981f shows both wins and losses! fix it before atom DROPS OUT THE HILL 11:52:08 ​@tell fizzie *emergency bug report on zemhill* I was looking into why the heck atom loses against everything, 1337 rises higher than leviathan, and the other weird scoring behavior on the hill, and i found it: even though the breakdown for atom shows all losses, the games page 11:53:36 doesn't work... 11:54:19  @tell fizzie even though the breakdown for atom shows all losses, the games page https://zem.fi/bfjoust/game/#joust,david_werecat.atom,david_werecat.leviathan,940981f shows both wins and losses! fix it before atom DROPS OUT THE HILL 11:54:19 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 11:56:09 Are *so* many bot commands gone (i saw from logs the @tell command was used very often earlier at #esoteric) 12:01:14 -!- Bowserinator has quit (Ping timeout: 244 seconds). 12:01:21 -!- moony has quit (Ping timeout: 248 seconds). 12:01:53 -!- iovoid has quit (Ping timeout: 248 seconds). 12:02:51 [[!lyriclydemoteestablishcommunism!]] https://esolangs.org/w/index.php?diff=144303&oldid=142092 * Ractangle * (-67) /* Examples */ 12:05:01 [[!lyriclydemoteestablishcommunism!]] https://esolangs.org/w/index.php?diff=144304&oldid=144303 * Ractangle * (+73) /* Implementations */ 12:07:10 `echo `echo `echo `echo `echo `echo  `echo `echo `echo `echo `echo `echo 12:07:11 ​`echo `echo `echo `echo `echo  `echo `echo `echo `echo `echo `echo 12:08:19 ^echo `echo ^echo 12:08:19 `echo ^echo `echo ^echo 12:08:20 ​^echo `echo ^echo 12:10:00 ^echo `echo ^echo `echo ^echo STUPID BOTLOOP PROTECTION 12:10:00 `echo ^echo `echo ^echo STUPID BOTLOOP PROTECTION `echo ^echo `echo ^echo STUPID BOTLOOP PROTECTION 12:10:02 ​^echo `echo ^echo STUPID BOTLOOP PROTECTION `echo ^echo `echo ^echo STUPID BOTLOOP PROTECTION 12:11:09 `echo !ztest test < 12:11:10 ​!ztest test < 12:11:29 ^echo !ztest test < 12:11:29 !ztest test < !ztest test < 12:11:29 fungot.test: points -46.00, score 0.00, rank 47/47 12:11:30 zemhill: no thanks, i didn't know there even was a lauri, the real wtf is that 12:15:28 ^echo `echo maybe the tell command failed due to a space 12:15:29 `echo maybe the tell command failed due to a space `echo maybe the tell command failed due to a space 12:15:30 maybe the tell command failed due to a space `echo maybe the tell command failed due to a space 12:17:16 @tell fizzie even though the breakdown for atom shows all losses, the games page shows both wins and losses! fix it before atom DROPS OUT THE HILL 12:17:16 Consider it noted. 12:17:21 -!- Bowserinator has joined. 12:17:41 ^echo `echo yes the command is not gone 12:17:42 `echo yes the command is not gone `echo yes the command is not gone 12:17:43 yes the command is not gone `echo yes the command is not gone 12:18:15 ^echo ^echo 12:18:15 ^echo ^echo 12:19:19 -!- iovoid has joined. 12:22:16 -!- moony has joined. 12:22:40 -!- Everything has joined. 12:31:23 ^bf ,[.>,]<[<]>[.>]!^bf ,[.>,]<[<]>[.>] 12:31:23 ^bf ,[.>,]<[<]>[.>]^bf ,[.>,]<[<]>[.>] 12:31:51 ^bf ,[.>,]<[<]>[.>]!^bf ,[.>,]<[<]>[.>]! 12:31:51 ^bf ,[.>,]<[<]>[.>]!^bf ,[.>,]<[<]>[.>]! 12:34:14 [[SETANDCOUNT]] https://esolangs.org/w/index.php?diff=144305&oldid=144299 * Cycwin * (+4) 12:35:31 ^echo ^bf ,[.>,]<[<]>[.>]! 12:35:31 ^bf ,[.>,]<[<]>[.>]! ^bf ,[.>,]<[<]>[.>]! 12:35:54 ^echo `echo giving up on making botloop 12:35:54 `echo giving up on making botloop `echo giving up on making botloop 12:35:55 giving up on making botloop `echo giving up on making botloop 12:36:01 -!- iddi01 has quit (Quit: Client closed). 12:38:29 -!- X-Scale has quit (Ping timeout: 256 seconds). 12:39:29 -!- X-Scale has joined. 13:16:13 -!- tromp has joined. 13:16:52 [[SETANDCOUNT]] M https://esolangs.org/w/index.php?diff=144306&oldid=144305 * Cycwin * (-110) 13:26:54 -!- Everything has quit (Ping timeout: 246 seconds). 13:28:55 -!- Everything has joined. 13:29:32 -!- __monty__ has joined. 14:00:27 iddi01: giving up already? you haven't even tried to put perlbot or lambdabot into the loop. 14:05:34 [[Esolang:Community portal]] https://esolangs.org/w/index.php?diff=144307&oldid=143017 * B jonas * (+13) /* IRC */ perlbot 14:32:40 [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=144308&oldid=144291 * Ais523 * (+269) /* delete account */ account deletion isn't supported and it's unclear what it would do 14:38:37 -!- X-Scale has quit (Quit: Client closed). 14:45:27 -!- Everything has quit (Ping timeout: 252 seconds). 14:47:24 [[90]] https://esolangs.org/w/index.php?diff=144309&oldid=144265 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+18) "When run, a 90 program scans the memory of user-mode processes that it has '''permission''' to access, looking for sequences of octet in memory that form one of its patterns. When it finds such a pattern, it replaces each oc 15:01:23 [[Talk:BackFlip]] https://esolangs.org/w/index.php?diff=144310&oldid=92732 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+362) /* Programs with output */ new section 15:05:43 [[Talk:90]] https://esolangs.org/w/index.php?diff=144311&oldid=144271 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+668) /* I/O */ 15:13:21 [[Talk:90]] https://esolangs.org/w/index.php?diff=144312&oldid=144311 * Ais523 * (+742) /* I/O */ I think you are missing the point of the language? 15:34:17 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 15:34:45 Hrm. The game viewer is based on EgoJSout, and I've generally considered it the source of truth, but what with Lymia's recent discovered bug in it, I don't know if I'd trust it implicitly. Though that seems not relevant for david_werecat.atom. 15:34:53 I think what I'll do is, I'll add the current hill to the regression test suite, run it through EgoJSout with Lymia's workaround, and see if gearlance disagrees with it. 15:35:05 It's possible the version of `gearlanced` running live is missing some bugfixes as well, because it's clearly using an older version of the protocol used between the Ruby code and the C binary. 15:35:38 Despite the "emergency", though, I think I'll still prioritize dinner first. 15:39:32 I don't think there's any bugs I can detect in gearlance. 15:40:40 Rather, something's wrong with the hill's matrix displays. 15:40:55 !bfjoust technically_not_instant_loss (-)*-1 15:41:07 !zhill technically_not_instant_loss (-)*-1 15:41:21 what was it 15:41:21 oh right 15:41:23 !zjoust technically_not_instant_loss (-)*-1 15:41:24 Lymia.technically_not_instant_loss: points -12.21, score 10.75, rank 47/47 15:42:11 Hrm. Did actually kick atom. Regardless, whatever's going wrong is not in gearlance itself. 15:46:31 Mhm. Well, I should probably just update the running code to be the currently published one, anyway. Maybe that'll just fix it. 16:07:05 -!- tromp has joined. 16:19:12 [[Alivehyperfish]] M https://esolangs.org/w/index.php?diff=144313&oldid=144295 * ZCX islptng * (+476) A more powerful compiler. 16:20:57 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 16:22:08 -!- Everything has joined. 16:22:39 [[90]] https://esolangs.org/w/index.php?diff=144314&oldid=144309 * Ais523 * (-18) Undo revision [[Special:Diff/144309|144309]] by [[Special:Contributions/Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff|Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff]] ([[User talk:Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 16:26:31 [[90]] https://esolangs.org/w/index.php?diff=144315&oldid=144314 * Ais523 * (+743) /* Semantics */ clarify how the language operates 16:27:01 [[90]] https://esolangs.org/w/index.php?diff=144316&oldid=144315 * Ais523 * (-18) remove the "no IO" category too causing another program to produce output as though it were from the 90 program may be possible 16:27:34 -!- ais523 has joined. 16:27:59 fizzie: I think what is happening is that the lowest-scoring program is deleted from the hill before, or possibly racing with, the breakdown/matrix update 16:28:08 so it shows as all losses because they're running on a deleted program 16:39:16 -!- tromp has joined. 16:40:21 ais523: Have you found a program that would be universal for 90 yet? I'm imagining some sort of universal constructor which repeatedly unfolds itself, but I haven't figured out how to carve arbitrary control flow into the side of it with NOPs alone. 16:41:03 korvo: so 90 is inherently very system-specific as you need a "donor process" to take code from 16:41:40 my thoughts have mostly been about "OK, we can probably make a usable program out of any sufficiently long executable just by NOPping out most of it, how do we get that process back into its original state afterwards?" 16:42:08 ais523: Sure. I was thinking x86, but I don't really care about ISA much. I don't think it helps; the best thing an ISA could do here is be Von Neumann so that both its code and data can be 90'd. 16:42:20 it strikes me that the simplest approach is probably to do the equivalent of injecting a system(3) call 16:42:33 korvo: so 0x90 is the NOP instruction on x86 and x86_64, which is not a coincidence 16:46:16 it strikes me that, assuming that you aren't allowed to cheat by adding new files to the disk or to memory (and that the 90 program is inaccessible to itself), you would need to be able to use existing files not just as code repositories, but as data repositories 16:46:27 the whole idea is to scavenge components from other running programs 16:46:32 The way the logic goes is, whenever there's a new submission (as opposed to resubmitting an already existing program), it replaces the lowest-scoring existing program, and then the scores are recalculated. So any new submission (no matter how poor) will always kick off the current last place holder, and makes it onto the hill (as the new last place holder if nothing else). That's the only step 16:46:34 that removes a program from the hill; editing an existing program can never kick anyone off. 16:47:40 nonetheless, I frequently observe the last-place program with an implausible breakdown that loses to almost everything, with occasionally one win somewhere 16:48:11 this even happened to Gregor's FFSPG 16:48:48 which had been a staple on the hill for years, and although I can imagine it falling into last place due to the competition getting better, can't imagine it happening with an almost-universal losing record 16:49:37 Mhm. Well, gearlanced does have some code in it for a null "loses to everything" program that it initializes all the slots with when it starts. It could be linked to that somehow; or it could be a bug in the Ruby hill-manager I guess. 16:50:05 by the "occasionally one win" I mean on one tape length, not against one program 16:50:06 ais523: Sure. But a donor isn't just a bag of ROP or LOTL organs. In this context, I'm interested in the conditions for a donor to exhibit universality. 16:50:18 korvo: ah right, I see 16:50:25 The output from gearlanced itself for the david_werecat.atom <-> david_werecat.leviathan match matches EgoJSout / the game viewer, so at least that's good. 16:50:54 Like, how does a 90 program communicate a program index to a willing donor? It can't do it just by crossing off a carefully-formatted array and "blowing fuses", so to speak; that array has to be finite because donors are finite. 16:51:22 fizzie: using my own local hill runner, I have atom scoring -8 against leviathan 16:52:11 korvo: doesn't really have to be finite, the host program can allocate more memory when the 90 parasite program that modifies it requests 16:52:30 and write it with recognizable patterns 16:52:49 korvo: this reminds me of https://esolangs.org/wiki/%E2%84%92 16:53:12 the idea that a language can fail to be truly Turing-complete because it only allows finitely many programs, but some of them are interpreters for TC languages 16:53:33 b_jonas: I assumed that we were going to freeze all target processes before performing the rewrite; otherwise, 90 obviously doesn't terminate because there are joust-like donors that can detect 90's action and lock it. 16:53:50 Which means that 90 only sees finitely many code segments, each of finite length. 16:54:03 oh wow, 90 Joust is a great concept 16:54:17 although probably not interesting in terms of competitive gameplay 16:54:41 And WLOG we can talk about processes that start up, configure their heap to a preset function of their starting environment, and then wait to be 90'd. 16:54:52 but, I was intending for a 90 interpreter to work using debugging APIs, which normally freeze a program while they're modifying it (I'm not sure if, e.g., Linux will even let you write to a process's memory image unless you freeze it first) 16:55:32 (Linux enforces a mutex for ptrace() and similar; not even root can debug an already-debugged process.) 16:55:56 well, root can kill the existing ptracer in order to be able to take over the ptrace 16:56:05 or ptrace the ptracer and relay the debugging commands 16:56:26 I guess with a willing host program you probably aren't even editing code segments. the program would just repeatedly prepare a short target buffer with pseudorandom contents so that each byte is recognizable easily by a 90 pattern, wait until the 90 parasite clears enough of its byte to communicate information, then decode and save that information, then reinitialize the buffer with a new pseudorandom 16:56:27 That's what it says on https://zem.fi/bfjoust/game/#joust,david_werecat.atom,david_werecat.leviathan,940981f as well. 16:56:32 pattern that the parasite clears, repeat until the 90 sent all the data it wants, then run the decoded data 16:56:43 (Well, that says 8 rather than -8, but I think that summary is just the absolute value.) 16:57:04 yes, both simulators have leviathan winning by 8 16:57:58 b_jonas: I am now reminded of computer viruses (actual computer viruses, not worms or trojans or other types of malware) 16:58:02 -!- wWwwW has joined. 16:58:21 b_jonas: That makes sense. The resulting construction lets the donor learn the entire 90 program, given enough time. So the 90 program should be seen as data, not code? And then the donor can decide what to do with the learned information. 16:58:26 which modify executables to do something else, typically in a way that allows the original program to continue to be able to run 16:59:03 hello 16:59:09 one old computer I had had a DOS virus scanner on it which had a human-readable virus database, together with human-written descriptions on how the viruses worked 16:59:15 it was really interesting reading 16:59:42 Okay, so a one-shot execution of 90 on a paused program probably isn't TC, but repeated execution until rewrites are no longer possible is TC in the same sense as Pressey's L. An interesting situation. 17:00:26 I think one-shot can be in L, although you need to take input from somewhere 17:00:47 as long as there's a suitable donor program, which there might not be 17:01:03 but I can easily imagine modifying, say, a scripting language interpreter to drop into a REPL 17:01:15 possibly even without code modification, just data modification 17:01:25 wWwwW: Morning. 17:01:38 for me 17:01:41 its likf 17:01:50 say I have a Perl program that is running in a loop, and a 90 program that changes the debugging flags in the Perl process to put it into the debugger REPL mode 17:01:52 is that TC? 17:02:10 чертовски поздно in the afternoon 17:02:33 "debugging APIs, which normally freeze a program while they're modifying it" => sure, but the 90 program would then choose to unfreeze the host program. I assumed you'd just repeatedly run the 90 program, then run the host program for a while, repeat 17:03:00 well, the 90 program would continue the debugged program upon detaching from it 17:03:10 i wnat to make an esolang based on the tardis 17:03:10 but i have basically no ideas 17:03:15 actually there is a potential race condition / lock if you have the 90 program creates a forkbomb 17:03:44 because then the number of processes it has access to is expanding over time, possibly faster than it can 90fy them 17:04:49 depending on how the 90 implementation enumerates processes to replace, that might potentially allow for TCness rather than just Lness? 17:05:04 ais523: I'm gonna use Futamura theory to unanswer that one. These are two different Futamura projections (zeroth and first), if we think of 90's interpreter as a very silly specializer for x86 programs (as unpacked memory images, not as ELFs.) 17:05:17 wait your talking about 90. lets gooo lol 17:06:09 And then Futamura would tell us that the interpreter for 90 is TC iff its specializer is universal over possible behaviors of residualized programs. 17:06:20 Not an answer, but a very sharp equivalence. 17:06:27 90 is basically one big conceptual problem in how to define programming languages / TCness, and we're not even sure if the language is unambiguously specified 17:07:37 ais523: Oh, I'm sure you thought of this, but we can't allow any communication back to the 90 interp without trivializing the problem, at least for Von Neumann arches. 17:08:46 For consider a program which iterates through all legal 4KiB pages of PIC'd JIT-ready straight-line x86 code, occassionally evaluating those pages on a carefully-defined heap. This program basically presents each page to the 90 interp for approval/redaction, where the interp can reject a page entirely by blanking it. 17:09:37 korvo: I actually see the rule as slightly more general than that – if the target process is reading files prepared by the 90 programmer, including indirectly (e.g. via memory image or compiled output), that trivialises the problem too 17:10:39 or, e.g. by overwriting the 90 interpreter 17:10:50 ais523: Yeah. This gives me confidence in the Futamura approach, which gives the strictest version of this barrier: the program being specialized *never executes* in the context of specialization, and is always data, not code. 17:10:55 wait 17:11:02 [[Alivehyperfish/quine]] N https://esolangs.org/w/index.php?oldid=144317 * ZCX islptng * (+29296) quine 17:11:06 wouldnt 90 destrot the computer? 17:11:12 like make it disfunctional 17:11:25 I'm sorry, I got sidetracked by thinking about the problem of iterating over all legal 4KiB position-independent straight-line x86 code 17:11:44 wWwwW: if the program isn't very careful about what it overwrites, yes 17:12:02 ok 17:12:03 wWwwW: Maybe. I imagine that an empty 90 program is legal, so an interesting question is which programs would not interfere with the computer's normal operation. 17:12:06 this is part of the reason why nobody has ever written an interpreter or experimented with sample programs 17:12:16 personally 17:12:18 i thino 17:12:31 that you need a VM to b used then 17:12:33 cuz 17:12:35 welll 17:12:39 [[Alivehyperfish]] https://esolangs.org/w/index.php?diff=144318&oldid=144313 * ZCX islptng * (+124) Quine is complete! 17:12:58 "memory of user-mode processes that it has permission to access" -- does that include itself 17:13:07 ais523: Oh, no worries. I'm doing the Gödel thing where I assume that computable things are enumerable. I don't know *how* it would be done, exactly, but I know that we can generate all possible pages, we can reject pages which aren't full of decodable ops, we can reject pages which have non-PIC,etc. 17:13:15 if patterns contain a large number of non-targets they can likely be made very specific to situations that are only likely to come up if intended 17:13:16 but that restriction is an easy way to keep the computer functioning 17:14:00 korvo: I am not sure whether, e.g., the condition of being position-independent is observable or whether it falls afoul of Rice's theorem 17:14:14 wWwwW: Sure. In the open-source world, we often use QEMU for this sort of thing. QEMU is a little old and not the best in terms of security, but it is pretty good at pretending to be a 1990s PC. 17:14:14 there are some sufficient conditions to be position-independent but it is unclear whether they are necessary… 17:14:28 ok 17:14:30 then. like 17:14:38 it shiuld be pretty easy on like assembly 17:15:22 ais523: I mean, I know JITs do this all the time simply by being restricted to some generative grammar (although they call it "NOLTIS", "BERG", etc.) so I'd be okay doing this bottom-up too. I wasn't trying to be fancy. 17:15:23 `! c int main(void) { printf("Does the C interpreter still work?\n"); return 0; } 17:15:27 Does the C interpreter still work? 17:16:22 wWwwW: It should be *possible* to do these experiments. They don't sound easy. 17:16:26 `! c int main(int argc, char** argv) { int a[argc]; int *b = &a; *b = 1; printf("%d\n", *a); return 0; } 17:16:28 1 17:16:42 `! c int main(int argc, char** argv) { int a[argc]; int *b = &a; *b = 1; printf("%p\n", (void *)a); return 0; } 17:16:43 0x7fbfacaa50 17:16:45 `! c int main(int argc, char** argv) { int a[argc]; int *b = &a; *b = 1; printf("%p\n", (void *)a); return 0; } 17:16:47 0x7fbffbea50 17:16:57 korvo: is the first of those programs position-independent? is the second? 17:16:59 `! c int main(void) { printf("%d", 1 715833348 17:17:08 `! c int main(void) { printf("%s", 1 C 17:17:12 ok 17:17:13 well 17:17:14 `! c++ int main(void) { printf("%s", 1 i reccomnd like assembly and on a VM 17:17:15 ​/hackenv/bin/!: line 4: /hackenv/ibin/c++: No such file or directory 17:17:15 -!- wWwwW has quit (Quit: Client closed). 17:17:20 huh 17:17:41 I don't think we ever had a c++ interpreter? 17:18:03 ``` /bin/ls -a /hackenv/ibin 17:18:04 ​. \ .. \ 1l \ 2l \ 7 \ adjust \ asm \ asmbf \ axo \ bch \ befunge \ befunge98 \ bf \ bf16 \ bf32 \ bf8 \ bf_txtgen \ boolfuck \ brachylog \ c \ cintercal \ clcintercal \ cxx \ dimensifuck \ forth \ glass \ glypho \ haskell \ help \ java \ k \ kipple \ lambda \ lazyk \ linguine \ lua \ malbolge \ pbrain \ perl \ qbf \ rail \ rhotor \ sadol \ sceql \ sh \ slashes \ trigger \ udage01 \ underload \ unlambda \ whirl 17:18:08 `! cxx int main(void) { printf("%s", 1 Does not compile. 17:18:35 ais523: It's really hard to not say "C doesn't have that concept." I think that we can do all of the stack work outside of straight-line code; the donor has to have a fairly robust runtime that can trampoline into JIT pages, run GC, etc. 17:19:07 korvo: sorry, should have asked about the executables, not the programs themselves 17:19:29 but it's making me realise the "position-independent" is badly defined 17:19:53 some definitions are fine with, e.g., constructing pointers to the stack and doing arithmetic on them 17:20:22 I think it's missing an #include but I don't know what syntax the old ego-style interpreter takes 17:20:26 Ah. No, those wouldn't be PIC. If the code's effect relies on PC or any positions of decoded ops, then it's not PIC. That's kind of restrictive, but I think it's workable. 17:20:33 and, well, the program does work with arbitrary heap, stack and text addresses – it just prints different values 17:21:05 somehow cussing in russian makes it more obnoxious... because that way I have to put in effort to understand what it's saying 17:21:17 fwiw I have been strongly considering a set of conventions which has two stacks – one is used for spills and calls/returns, the other is used for stack-allocated data 17:21:34 and a static analysis prevents any pointers to the former stack from leaking out or having any influence on the program 17:21:45 Makes me think of Factor TBH. 17:21:48 I think this would be more secure than what we currently have and probably also more efficient 17:22:37 b_jonas: C++ doesn't need an iostream.h for printf – the compile failure is probably the missing stdio.h 17:22:58 `! c++ extern int printf(const char *, ...); int main(void) { printf("%s", 1 ​/hackenv/bin/!: line 4: /hackenv/ibin/c++: No such file or directory 17:23:07 `! cxx extern int printf(const char *, ...); int main(void) { printf("%s", 1 Does not compile. 17:23:21 `! cxx int main(void) { return 0; } 17:23:23 No output. 17:23:31 [[ ]] https://esolangs.org/w/index.php?diff=144319&oldid=144286 * Yayimhere * (+70) /* how it works */ 17:23:46 `run >detect.c echo $'#include \n''int main(int c, char *v[]) { printf("%s;\n", 1 trying c \ C; \ trying c++ \ C++; 17:23:49 -!- wWwwW has joined. 17:24:00 `! cxx int main(void) { std::cout << "Hi!\n"; } 17:24:03 Does not compile. 17:24:10 im not rlly sure what this means: a) it doesn't have enough paragraph breaks, and b) because there is no underlining 17:24:15 hmm, does it include anythgin? 17:24:20 what deos this mean in context of program 17:24:22 b_jonas: note that your program won't work if sizeof(int) == 1 – I have programmed for such systems before 17:24:23 in 90? 17:24:37 wWwwW: they edited the program after I posted my reply 17:24:43 the original just said 00 01 02 03 04 05 06, etc. 17:24:54 yea 17:24:58 but like 17:25:02 what is the underlining 17:25:07 so the whole thing was just one pattern, which didn't replace any bytes 17:25:12 #include \n#include \n#include \n#include \nusing namespace std;\nint main(int argc, char **argv) { 17:25:13 and what is a paragraph(a newline?) 17:25:15 if it said 00 01 02 03 04 05 17:25:24 yes? 17:25:25 then the 03 would be replaced 17:25:27 ais523: yeah, there are more robust ways to distinguish C and C++, but this is good enough for some quick HackEso test 17:25:28 `! cxx std::cout << "Hi!\n"; 17:25:32 and paragraphs are related to newlines 17:25:32 Hi! 17:25:42 replaced with what? 17:25:46 90 17:26:02 why? is that just defualt 17:26:05 and also if so 17:26:14 yes, all the language does is replace bytes with an 0x90 byte 17:26:14 what are non underlined things 17:26:16 `! cxx std::cout << 1 Does not compile. 17:26:20 (sorry im stupide) 17:26:27 the non-underlined bytes are used to help find the correct bytes to replace 17:26:35 `! cxx std::cout << (1 C++ 17:26:43 01 02 03 means "replace 02 if it is in the sequence 01 02 03, but not otherwise" 17:26:46 (действительно чертовски stupid) 17:26:52 oh ok 17:27:14 so the program 17:27:24 int-e: yeah, but I wanted to run the same program in both C and C++ 17:27:41 b_jonas: well, you can't do it that way 17:27:47 `! cxx extern int std::printf(const char *, ...); int main(void) { std::printf("%s", 1 Does not compile. 17:27:53 bleh 17:27:57 int-e: right, so I just decided to ignore the old egobot interpreter and call gcc directly above 17:27:58 I thought I'd figured it out 17:28:26 should probably have invoked it as g++ though, gcc only works kind of by accident 17:28:26 (the stdio.h include imports printf into the non-namespaced namespace, but if you include it as cstdio or write the prototype by hand, it is std::printf) 17:28:34 `run >detect.c echo $'#include \n''int main(int c, char *v[]) { printf("%s;\n", 1 trying c \ C; \ trying c++ \ C++; 17:29:14 wait 17:29:20 theres no way to expand memory 17:29:24 so its not tc? 17:29:29 wWwwW: The point of 90 is to imagine what happens to a system when parts of it are missing. The hex number 0x90 merely tells an x86 system to do nothing. 17:29:42 yea 17:29:50 wWwwW: anyway, 90 programs are defined as being written in rich-text rather than plain-text, so "paragraph break" rather than "new line" because there is more than one way to represent paragraph breaks in a rich text format 17:29:56 [[Parse this sic]] M https://esolangs.org/w/index.php?diff=144320&oldid=142772 * Digital Hunter * (+37) /* Deadfish interpreter */ 17:30:07 MediaWiki uses two newlines to represent a paragraph break, but, e.g., HTML uses

17:30:15 wWwwW: We've been talking about "donor" programs, which 90 acts upon. A donor could be designed to try to run every syscall, including the syscalls that request more memory or do I/O. So it's not clear that 90 is not TC by your reasoning. 17:30:16 sorry but when writing programs 17:30:18 ill 17:30:26 _x_ for underlined x 17:30:33 but 90 programs work by modifying some other program to do the work you want 17:30:48 ais523: and winword pretends that the paragraph break is a vertical tab character \x0B 17:30:49 such as doing I/O or expanding memory 17:30:52 if memory is infinite 17:30:58 and oyu m. ke an error 17:30:59 b_jonas: that is a surprisingly sensible use of vertical tab 17:31:03 the error information 17:31:07 would be added to memory? 17:31:10 sop it can eb used 17:31:11 so 17:31:19 you can make infinte error 17:32:10 wWwwW: At the level of machine code, there usually *aren't* errors. I don't know what flavors of assembly code you've learned; if you tell us what kind of assembly you know, we can probably speak in those terms. 17:32:22 Most assembly has a NOP or do-nothing instruction, after all. 17:33:08 when there is an error in a program's machine code the is reported to the operating system, not to the program itself 17:33:30 operating systems normally react either by telling the program what the problem was, or forcing it to exit, but are not in theory limited to those options 17:33:39 * the error is reported to the operating system 17:33:51 ais523: I am using vertical tab to mean an escaped newline in a text file format. is that also sensible? the story is that I designed the file format to make it easier to parse, so a newline is always a record separator, and so I must represent escaped strings in a way that never contains a newline, so no backslash-newline or doublequote-newline nonsense 17:34:38 b_jonas: so the standard way to do this is for the record separator to be 0x1E and embedded newlines to just be newlines 17:34:53 your way of doing things is nonstandard but nobody actually follows the standard way anyway 17:35:03 I escape some other control characters with \x10 followed by the escaped character xored with 0x20, that way those control characters can be used by the file format itself, and in particular I use \x1F as the end marker for escaped strings 17:35:13 (BTW, a very funny counter-example is the ISA for the CAM in the refimpl of [[Cammy]]. The ISA's monoid uses an empty program for no-op and the bytecode isn't saved to disk, so there wasn't a reason to include a NOP.) 17:35:34 the main problem (with both mechanisms) is how to escape an escaped newline 17:35:37 ais523: that could work, but I want the file to be easily readable with an ordinary text editor, or greppable etc, so using a newline as the record separator is more convenient 17:35:46 b_jonas: I thought that might be the reason 17:36:50 you might want to consider 0x9A as an escape character, at least for ASCII – that one was never standardised but was intended at one point to be an "output the next octet as ASCII" command 17:36:52 so the vertical tab \x0B is just a shortcut, the full form \x10\x0D\x10\x0A would work too 17:37:16 wait, your newlines are actually CRLFs? 17:37:38 in the strings that I'm escaping they're mostly crlfs, but those strings can in theory contain lfs too 17:38:13 CRLF has its own codepoint, 0x85 17:38:32 although, introducing this after CRLF had become established didn't really do much for compatibility :-D 17:38:49 I don't think I want to use \x9A instead of \x10 because I work with utf-8 encoded things so often 17:39:28 I've actually been wondering whether, for new formats, it makes the most sense to use control codes that are invalid as UTF-8 leading bytes 17:39:46 e.g. 0xFF is the most sensible "end of string" marker for UTF-8, because it is not ever valid in UTF-8 and doesn't conflict with NUL 17:39:58 and has a memorable codepoint that makes some sort of intuitive sense 17:40:50 I wouldn't recommend \xFF or \xFE because those can be valid in https://ucsx.org/ , but using \x80 or \x81 as escape characters for the reason that you suggest can make sense 17:41:06 ais523: however, I need 17:41:19 0x80 would make the next most sense, I guess 17:41:20 more than just two escape characters so \x80 and \x81 wouldn't be enough 17:41:47 more than just two control characters that is 17:41:48 there are a couple of bytes that are always invalid as UTF-8 in the middle of the range 17:41:53 the leading bytes that would correspond to surrogates 17:42:09 are there? 17:42:29 although, it is not uncommon to use UTF-8 encodings of surrogates as a way to represent misencoded data in such a way that it round-trips 17:42:51 I think there are too few surrogates to fill up a full starting character, because they're in the range with three utf-8 octets 17:43:53 there are 2**11 surrogates, and each starting octet in the three-octet range covers 2**12 utf-8 values 17:44:38 hmm 17:45:42 you're right, it only covers half of 0xEE 17:45:54 I was probably thinking of C0 and C1 17:47:06 so I think \x80 and \x81 are the only ones invalid in extended UTF-8, plus \xFE and \xFF that are invalid if you want to encode 31 bit sized unicode characters, or \xF5 to \xFF () if you want to encode 20.1 bit wide unicode characters which is what modern unicode claims to allow 17:47:13 oh, I mean to ask: is there a UTF-24? given that the top byte of UTF-32 is never useful, it seems like an obvious extension 17:47:55 I don't know. There's an esoteric UTF-18 for systems with 9-bit bytes, defined when nobody was using 9-bit bytes anymore 17:48:54 I don't think there's an UTF-24, because UTF-16 works well enough, and UTF-32 is mostly the in-memory decoded format because CPUs can handle the four-byte integers easily 17:49:10 UTF-16 and UTF-8 are used as the interchange formats everywhere 17:49:31 [[Alivehyperfish/quine]] https://esolangs.org/w/index.php?diff=144321&oldid=144317 * Ractangle * (+27) 17:50:08 Java uses 0xC0 0x80 to represent NUL, so that 0x00 can consistently be end-of-string 17:50:13 korvo i dont rlly know assembly. but like. i played around with c46(thats yher name right?) and it gave me errors when form example line numbers werent there 17:50:21 `` ../ibin/c "$(printf 'return atoi(""); }\n\nint atoi(const char *x) { puts(1 C 17:50:26 `` ../ibin/cxx "$(printf 'return atoi(""); }\n\nint atoi(const char *x) { puts(1 C++ 17:50:39 (eww :-P) 17:50:53 wait 17:50:58 puts is in scope for cxx? 17:51:24 how does that work despite the mismatched } 17:51:30 (I /intended/ to add #include between those two \n\n 17:51:40 but I forgot) 17:51:42 wWwwW: Okay, no worries. The way that digital logic works doesn't have errors. I like to use light switches to explain this. 17:51:53 also why бля do they NOT have errors 17:52:02 ais523: the script adds int main(...) { at the front and ;return 0; } at the end 17:52:15 int-e: oh, it's *that* old trick 17:52:16 Take a room with a lot of light switches and light fixtures. The position of the switches determines which fixtures are on or off. 17:52:18 like why not бля add it 17:52:27 but yea 17:52:30 continue 17:52:42 `! cxx puts(1 Does not compile. 17:52:57 `! cxx puts(1 C++ 17:53:04 `! c puts(1 C 17:53:28 A CPU is wired so that the fixtures go back to the switches. A CPU is merely repeatedly determining its next position based on its current position. 17:53:35 It's a *state automaton*. 17:53:43 yea 17:53:51 korvo: CPUs normally do recognise some possible states as error states, though 17:54:06 yea 17:54:17 -!- craigo has quit (Quit: Leaving). 17:54:45 ais523: No, *humans* label some states as erroring. That's an instance of the mind-projection fallacy. 17:55:03 "Java uses 0xC0 0x80 to represent NUL" => er, what is the context for that? it represents other characters in what encoding there, eg. utf-8, utf-16-le, utf-16-be? 17:55:07 in fact, they normally have very complicated self-test circuitry because modern chip fabrication is a lot less than 100% reliable, and it's needed to know which of the fabricated CPUs are functional 17:55:28 `` ../ibin/cxx "$(printf 'return atoi(""); }\n#include \nint atoi(const char *x) { printf("%s", 1 No output. 17:55:31 Sorry, that's a grumpy take. I'm trying to get wWwwW to realize what a computer is without telling them to go read NAND-to-Tetris. 17:55:41 lol 17:55:51 (it /would/ have worked for bringing the prototype into scope) 17:56:07 korvo: well, you can reduce it to "they have an output that was designed to indicate error conditions and which triggers only in error conditions" and argue that it operating is not an error because it's operating as designed 17:56:28 well 17:56:38 its what i mean with error 17:56:54 but even from that point of view there are actual hardware-level error conditions like short circuits – they're just hard to detect reliably 17:56:55 wWwwW: Go read https://github.com/jherskow/nand2tetris/blob/master/nand2tetris%20BOOK.pdf at some point. 17:57:01 k 17:57:30 ais523: I *do* make such an argument, because otherwise we treat programmer mistakes and e.g. cosmic rays with the same remediation. 17:57:39 I guess one of the defining features of low-level programming is that the consequences of an error become harder to define 17:58:13 wWwwW: Computers don't make mistakes. Humans make mistakes. Computers do things *exactly* as told, very fast, with little variation. Think of a sewing machine; looms were the first application of modern digital programmable computers. 17:58:26 yea 17:58:54 ais523: the dodgy part is abusing atoi as a function whose prototype is known. What could possibly go wrong? Well, for one, if you don't use the result value, the compiler will discard the call... 18:00:07 wWwwW: I imagine that you're thinking of exceptional conditions. Like ais523 says, we can always designate a CPU state as an "error" or "fault" or "condition" or etc. and the CPU can have special handling for that state. 18:00:25 yes. thats what im thinking 18:00:32 im more high level 18:00:33 so 18:00:49 But all of that has to be explicitly set up. It's not free; there's a five-decade (six-decade?) argument about how to make exceptions not slow down non-exceptional code. 18:01:02 yea 18:02:07 And when you use anything from Rust to Go to C++ to Python, they're all using basically the same solution ("zero-cost exception handling") to provide that feature. When the CPU enters a certain state, the language tells the CPU to *treat it as an error*. 18:02:29 yes yes 18:02:52 shows me я трахаюсь stupid 18:03:08 I don't like the name zero-cost exception handling, the cost of the exception path is very high 18:03:10 Please stop thinking of yourself that way. You're *young* and *learning*. 18:04:02 [[Alivehyperfish/quine]] M https://esolangs.org/w/index.php?diff=144322&oldid=144321 * PythonshellDebugwindow * (+48) Back, category 18:04:43 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 18:04:58 [[ ]] M https://esolangs.org/w/index.php?diff=144323&oldid=144319 * PythonshellDebugwindow * (+94) Categories 18:06:10 [[Alivehyperfish/Constants]] M https://esolangs.org/w/index.php?diff=144324&oldid=144226 * PythonshellDebugwindow * (+48) Back, category 18:08:04 [[Talk:90]] https://esolangs.org/w/index.php?diff=144325&oldid=144312 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-2) /* An I/O Extension to 90 */ 18:09:07 Hrm. Tried to run the current code locally, it fails with "parse error: starting ( without a matching )" for web.salpynx_kalb. Which sounds implausible. 18:09:34 [[ ]] https://esolangs.org/w/index.php?diff=144326&oldid=144323 * Yayimhere * (+213) /* how it works */ 18:09:34 wWwwW: Actually, let me say something new. Notice how most of the pages on the wiki are shallow? Most programmers don't actually understand computers. They only look at the syntax and have feelings about the syntax. 18:09:48 yea 18:10:15 also can you believe this is a program...?: 18:10:15 `ебать, ебать hello hello hello hello hello hello hello hello hello hello hello hello hello hello человек, (ебать), ` 18:10:16 ​ебать,? No such file or directory 18:10:18 It's very difficult for people to actually think *beyond* that. Part of why I'm encouraging you to do it is that you have the curiosity and drive required to design interesting languages. 18:10:30 yea 18:10:33 i had an idea 18:10:37 but i couldnt do it 18:10:40 cuz that reason 18:10:49 it was where the esolang changed its interpreter 18:12:19 wWwwW: if it's any help, I tried to make an esolang like that and it ended up as a mess: https://esolangs.org/wiki/Snowflake 18:12:36 oh 18:12:41 its not the same idea 18:12:42 there is still a good idea there, I think, but I probably have the details wrong 18:13:23 wWwwW: Let's use some computability theory! In the earlier conversation, I kept saying "Harvard" and "Von Neumann". Do you happen to know what this means? 18:13:45 i know harvard 18:14:02 that is a schooluniversity/place you learn дерьмо 18:14:21 von neumann was a guy who worked with like math/physiscs i think 18:14:23 didnt he do like 18:14:27 proparralbilty 18:14:55 Ooh, I think it's a characters-vs-bytes issue, there's a ❤️ in that program source and in Ruby '❤️'.length is 2 (it's U+2764 U+FE0F), but in bytes that takes 6, so it truncates the last 4 bytes (and gets out of sync besides). 18:16:50 wWwwW: Those are the right place and person. We say that a machine either allows its code to be changed during runtime, or not. If code can be changed, it's Von Neumann; if code can't be changed, it's Harvard. 18:17:16 ok vhat 18:17:30 im так чертовски confused lol 18:18:01 Inside your computer right now, your CPU is Von Neumann but your GPU and other supporting processors are Harvard. On the wiki, Brainfuck is a great example of a Harvard language, and Snowflake would be Von Neumann. 18:18:22 the reaosn im confuse dis 18:18:29 where does the 18:18:30 like 18:18:38 comparison comefrom? 18:19:18 . o O ( hello i- and d-cache ) 18:19:33 korvo: is magic-1 Von Neumann or Harvard? :-P 18:19:37 Well, both types of machine can be TC but in different ways. We can use the TCness sometimes to ignore the differences, like when we use x86 (Von Neumann) to emulate Brainfuck (Harvard). 18:19:55 yes 18:19:59 i still odnt understand 18:20:01 why harvard 18:20:05 why von neumann 18:20:14 korvo: I think Von Neumann implies not only that the code can be changed at runtime, but that you do so the same way as changing data 18:20:52 there are some Harvard architectures which *do* allow for code changes, but have dedicated instructions for the purpose, that use a separate set of addresses 18:21:13 wWwwW: Oh, the names themselves? They're historical references to where/who wrote about these machine architectures first. 18:21:54 ohok 18:21:57 i dont know 18:21:59 history lol 18:22:02 not for copmputers 18:22:16 b_jonas: I actually don't know much about Magic-1! I'm ready to learn. From the wiki description, I'd *guess* Von Neumann, but that's gutfeel. 18:24:15 ais523, int-e: Like e.g. ARM, yeah. 18:24:39 I used microcontrollers when I was younger 18:24:41 ais523: The security-oriented definition might help; Harvard <=> code in ROM.' 18:25:15 they're like computers but often have absurdly small amounts of memory (tens of bytes) and incredibly direct hardware access 18:25:17 korvo: so magic-1 uses 16-bit pointers, so to conserve address space there's a separate data and code addres space, and most instructions (other than jumps obviously) read and write the data space. there are some special instructions to read from code space. BUT this is only the user-space view, actually both data space and code space is paged, the underlying memory is the same, and it's possible to map 18:25:23 the same page into both data and code address space. 18:25:42 b_jonas: 16-bit x86 is a bit like that 18:26:04 ais523: yeah 18:26:13 wait 18:26:23 i know this is computaitonally impossible i think 18:26:44 but 18:26:52 what if the program was the interpreter for itself 18:27:01 what *could* this look like 18:27:05 if it was possible 18:27:26 [[User:B jonas]] https://esolangs.org/w/index.php?diff=144327&oldid=143961 * B jonas * (+14) /* Todo */ 18:28:37 wWwwW: Sure. We have to be able to treat code as data; the interpreter has to be able to look at its own code without running it. It turns out that this is always possible in TC languages, although not easy. 18:28:42 wWwwW: well, you can give an interpreter itself as input, but it's not clear whether that would do anything interesting 18:29:00 ... 18:29:03 ... 18:29:04 wWwwW: And that leads to quines: https://esolangs.org/wiki/Quine 18:29:20 ЧТО ЗА ХРЕНЬ 18:30:00 I don't know very many Russian swear words, I think I've only recognised one so far 18:30:09 lol 18:30:12 it just means 18:30:17 WHAT THE FUCKING HELL 18:30:24 i like to swaer in russian 18:30:26 u'i do na.a mi na'e glibau 18:30:29 I noticed 18:30:37 lol 18:30:49 i even made it an esolang: https://esolangs.org/wiki/%D0%95%D0%B1%D0%B0%D0%BD%D0%BE%D0%B5_%D0%B4%D0%B5%D1%80%D1%8C%D0%BC%D0%BE#how_it_works 18:33:22 How do you compute whether a Russian word is verb or noun? 18:33:41 its defined in google translate 18:33:43 [[Talk:90]] https://esolangs.org/w/index.php?diff=144328&oldid=144325 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-34) /* An I/O Extension to 90 */ 18:34:32 google translate may not be deterministic (although that possibly doesn't matter here?) 18:34:48 IT IS 18:34:57 cuz non deterministic behavour 18:34:59 Yeah, I'd like to at least require "languages" to be languages. 18:34:59 on computers 18:35:03 wWwwW: A language is a set of strings. 18:35:18 is bascially impossible unless you rlly try 18:35:31 -!- tromp has joined. 18:35:49 korvo: yes 18:36:00 and some rules betweem them 18:37:24 wWwwW: Wouldn't you find it a little unfair if I *said* I had a language, but didn't actually reveal what's in the set of strings? 18:37:38 i WOULD 18:37:39 lol 18:40:23 korvo: what if I defined a language where I didn't know the set of valid strings? 18:41:12 ais523: I have a hard time deciding that 18:41:14 ais523: I guess that that would be okay, as long as you showed a way to compute whether a given string was in the set. 18:41:43 korvo: what if the input is bitmap images or GPS trails? 18:41:51 do you just assume they're encoded to strings? 18:42:02 or if the input is directory structures 18:42:07 wWwwW: We don't have the source code to Google Translate, nor the data that was used to train its language models, so we can't compute whether a given Russian word is a verb or noun that way. 18:42:13 or stacks of everyday objects 18:42:26 BTW I gave you a freebie by assuming that you had a way to tell between English and Russian. I guess you'd use Latin and Cyrillic alphabets? 18:42:29 [[+++]] https://esolangs.org/w/index.php?diff=144329&oldid=141928 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+26) 18:43:12 korvo:first of all russai detection is yes with alphabet, second of all you *could* just transælate every word in english nto russain and then see the word type its given 18:43:16 b_jonas: Ooh, yeah, are those strings? I guess a bitmap image is like a string of pixels. It's a 2D string, not a 1D string, but that's okay! Maybe it was a photograph, in which case it's a string of texels. 18:43:18 OH vs. ОН 18:43:18 [[Filename "xxx" doesn't seem to be a valid filename. Please check if the filename your trying to execute is written correctly]] https://esolangs.org/w/index.php?diff=144330&oldid=143610 * Ractangle * (-4) /* Python */ 18:43:46 lol 18:43:47 see https://esolangs.org/wiki/Piet for input is images, https://esolangs.org/wiki/Poololoop for input is GPS trails, https://esolangs.org/wiki/Efghij for input is stacks of everyday objects 18:44:36 [[Filename "xxx" doesn't seem to be a valid filename. Please check if the filename your trying to execute is written correctly]] https://esolangs.org/w/index.php?diff=144331&oldid=144330 * Ractangle * (-3) /* Interpriters */ 18:44:41 wWwwW: This might sound strange to somebody your age, but machine-assisted translation didn't exist in the old days, and there are *lots* of words which don't translate cleanly. 18:45:12 wWwwW: We used to work around this problem by hardcoding lists of verbs and nouns. If it wasn't in the list, then it wasn't allowed as a word. 18:45:13 [[Filename "xxx" doesn't seem to be a valid filename. Please check if the filename your trying to execute is written correctly]] https://esolangs.org/w/index.php?diff=144332&oldid=144331 * Ractangle * (+3) /* Syntax */ 18:45:14 lol 18:45:15 * int-e is reminded of https://www.zachtronics.com/kohctpyktop-engineer-of-the-people/ (old flash game, won't work anymore)) 18:45:33 but the "kohctpyktop" part is memorable :P 18:46:05 int-e: right, that's like the pectopaht 18:48:55 well 18:48:58 what a rabbit hole 18:49:05 just from me liking to swear in russain 18:49:07 machine translation is still unreliable, I think 18:49:10 *russian 18:49:15 wells are deep too 18:49:22 yes 18:49:54 I've actually never been down a rabbit hole 18:50:03 lol 18:50:06 wait 18:50:12 literally, rather than figuratively 18:50:23 oh same 18:50:25 and probably haven't been down a well either 18:50:35 lol 18:50:51 `? alice 18:50:53 Alice doesn't want to go among mad people. 18:51:47 wWwwW: Well, I'm hoping that you'll build an intuition for what machine learning actually is, rather than just the surface experience of using chatbots. 18:51:56 yea 18:51:59 alsao 18:52:03 i still have a problem 18:52:07 with ppl saying that like 18:52:30 "you cant use it to define a part of a prgoram cuz its not always the same"...it is 18:52:38 they are deterministic 18:52:52 As a former Google engineer: no, they aren't. 18:53:03 I think Google Translate doesn't always translate the same sentence the same way 18:53:11 if they are not 18:53:17 then how does the computer do them? 18:53:25 humans don't either, because language is often ambiguous 18:53:27 does it monitor radiation in outer space? 18:53:42 computers can do actual random 18:53:57 you can always do the steps of the computer if you know the steps 18:53:59 to take 18:54:04 wWwwW: An individual learned relation -- an individual version of a language model -- is deterministic. But Google updates those, like, weekly. 18:54:15 true 18:54:26 [[1 1]] N https://esolangs.org/w/index.php?oldid=144333 * Yayimhere * (+262) Created page with "'''1 1''' is just basically just [[ ]] but in binary == change == all russian is 1 and o for english. thats it. nouns must have 2 added while for verb its a 4 == examples == [[Infinite loop]]: 1, 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12, (1)," 18:55:03 and you may end up connecting to a server with a different set of models, because Google has more than one server and which one you connect to depends on, e.g, how busy they are with other thingd 18:55:34 plus they're improving the translator using feedback 18:55:51 (ow, my ears) 18:56:01 Or which part of the world you're in; some training data might not be available everywhere, and so the models deployed to those locations will be trained differently. 18:56:19 "the output of machine translators set to translate into English" is one of the most useful languages to learn, for someone who knows English already 18:56:27 it seems to be somewhat different from the real thing 18:56:46 [[ ]] https://esolangs.org/w/index.php?diff=144334&oldid=144326 * Yayimhere * (+44) 18:56:48 well 18:56:53 now it has date location 18:56:59 wutrever 18:57:16 Yep, it's got extra hints in the word choice. Translators' dictionaries will often have multiple synonyms and lists of idioms to help with ambiguous inputs. 18:57:58 wWwwW: That's very helpful, for sure! I do wonder about how we'll do this computation in the future, though. Can I access today's Google Translate next week? 18:58:22 idk 18:58:43 well 18:58:47 they have logs right? 18:59:11 "and probably haven't been down a well either" => https://commons.wikimedia.org/?curid=43869747 19:00:09 gfod 19:00:11 i watched a 19:00:11 well, that's just great 19:00:22 "you got a license for that" meme 19:00:23 and now 19:00:28 i wan to make that into an esolang 19:01:12 . o O ( chances are that it'll keep you busy for up to 30 minutes and noone will care about it tomorrow ) 19:01:20 true 19:01:59 св 19:05:08 wWwwW: Okay, I got a good laugh out of that one. Google does *not* share logs with users. Translate is not there for your convenience; it's there to make you dependent on Google and ignore all of the Free Software that can also do machine-assisted translation. 19:05:30 fucking kill me 19:05:51 *бля убить me 19:06:57 -!- __monty__ has quit (Quit: leaving). 19:06:59 wWwwW: I think it's worth understanding that natlangs and proglangs have different purposes. A natlang is for communicating internal mental states from one human to another. A proglang is for instructing a machine to take certain steps. 19:07:54 a proglang kinda has a natlang buolt in since it also helps people communicate what the code does? 19:10:10 That's a choice that proglang designers make. There are plenty of proglangs that don't help their programmers at all. 19:10:22 yes 19:13:28 anyway 19:13:41 how could i do 19:13:42 the 19:14:04 "you have a license for that"(YHALFT) esolagn? 19:14:06 *lang 19:15:36 -!- Sgeo has joined. 19:15:49 -!- zemhill has quit (Remote host closed the connection). 19:19:25 Re "logs", translate invocations do appear at myactivity.google.com (...assuming logged-in and WAA-on...), but it only shows you the "query" (what you translated), not the result. 19:20:03 fizzie: Nice! The results might be in Takeout; not sure. 19:21:14 Also took zemhill offline while I'm updating it. Got the current code working locally, and it seems to return plausible results, but also changes quite a few of the scores, so I'm thinking something must've been wrong with the ancient version that was live. 19:21:18 wWwwW: Write a language that looks like English legalese but is actually code, perhaps? I don't really want to do this for you thouh. 19:21:28 i wanted like 19:21:38 the code funcitned like the british piolice in the memes 19:22:04 [[ ]] https://esolangs.org/w/index.php?diff=144335&oldid=144334 * Yayimhere * (+81) /* Examples */ 19:22:07 IOW google logs what contents you gave them (accepting the ToS) but not what potentially copyright infringing replies you got back. 19:22:10 Makes sense. 19:30:41 how could i do it 19:30:58 maybe some parts of the oprogram must be run to make other possible to run? 19:33:54 -!- wWwwW has quit (Quit: Client closed). 19:34:16 -!- wWwwW has joined. 19:35:02 should i do it? 19:35:24 [[Overload/Turing-completeness proof]] https://esolangs.org/w/index.php?diff=144336&oldid=143953 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+19) 19:43:19 -!- zemhill has joined. 19:47:04 Okay, things might be back up and running in BF Joust terms, though it did do quite a difference to the hill: https://zem.fi/tmp/shuffle.png 19:47:37 Some of it is from manually rolling back the latest commit to recover david_werecat.atom, but it can't have all been that, because it's now on #33 and wouldn't have been replaced in the first place. 19:49:42 [[Talk:Overload/Turing-completeness proof]] N https://esolangs.org/w/index.php?oldid=144337 * Yayimhere * (+134) Created page with "why have you made this when its already done? ~~~~" 19:50:09 (Ignore the rank delta column; made it so it updates report.js on startup, so that it's up to date after code changes / bugfixes, but as an unfortunate consequence the initial rank diffs now show the lexicographically last program as "new", since that's the "last challenger" from the initialization.) 19:50:25 [[Talk:Overload/Turing-completeness proof]] https://esolangs.org/w/index.php?diff=144338&oldid=144337 * Yayimhere * (-134) Blanked the page 19:51:25 aaa im so bored 19:51:41 (I have absolutely no idea whether things were wrong before, or if they're wrong now, and can only apologise for the inconvenience. It is what it is.) 19:52:03 wWwwW: https://docs.python.org/3/tutorial/index.html 19:52:11 wWwwW: Suppose that I have an arbitrary Boolean circuit. How would I implement it with digital logic gates? 19:52:38 what defined a boolean curciut here 19:52:41 could it be 19:52:42 like' 19:52:44 Er, an arbitrary Boolean *formula*, sorry. How to turn a formula into a circuit? 19:52:49 ok 19:52:50 korvo: isn't a circuit already made out of... ah 19:53:06 ok 19:53:10 take all the variables 19:53:29 wait i need to sleep 19:53:33 well ill keep it in mind 19:53:39 -!- wWwwW has quit (Quit: Client closed). 19:54:25 [[Talk:90]] https://esolangs.org/w/index.php?diff=144339&oldid=144328 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-279) /* An I/O Extension to 90 */ 19:59:09 -!- Everything has quit (Quit: leaving). 20:03:31 [[Talk:BackFlip]] https://esolangs.org/w/index.php?diff=144340&oldid=144310 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-24) /* Hello, World! */ 20:07:06 [[ABCDXYZ]] https://esolangs.org/w/index.php?diff=144341&oldid=131093 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+79) /* See also */ 20:07:16 !zjoust hurtle_turtle (>)*8(>[+++++([-{((+)*112(+.)*32>)*-1}[+[-.--]]>][+[-.--]])%40)*-1 20:07:16 ais523: parse error: [..] crossing out of a ({..}) level 20:08:27 !zjoust hurtle_turtle (>)*8(>[+++++([-{((+)*112(+.)*32>)*-1}[+[-.--]]>][+[-.--]])%40][+[-.--]])*-1 20:08:27 ais523.hurtle_turtle: points -25.31, score 5.34, rank 47/47 20:08:42 I just wanted something on there to fix the report, I didn't think it'd be very good 20:09:44 !zjoust hurtle_turtle (>)*8(>[(>[+++++([-{((+)*112(+.)*32>)*-1}[+[-.--]]>][+[-.--]])%40][+[-.--]])*-1])*-1 20:09:44 ais523.hurtle_turtle: points -29.67, score 3.98, rank 47/47 (--) 20:09:54 !zjoust hurtle_turtle (>)*7(>[(>[+++++([-{((+)*112(+.)*32>)*-1}[+[-.--]]>][+[-.--]])%40][+[-.--]])*-1])*-1 20:09:54 ais523.hurtle_turtle: points -28.02, score 4.49, rank 47/47 (--) 20:10:08 !zjoust hurtle_turtle (>+)*8(>[+++++([-{((+)*112(+.)*32>)*-1}[+[-.--]]>][+[-.--]])%40][+[-.--]])*-1 20:10:08 ais523.hurtle_turtle: points -28.64, score 4.27, rank 47/47 (--) 20:11:13 [[Talk:10D Deadfish 7 with Time Travel and a Multiverse]] https://esolangs.org/w/index.php?diff=144342&oldid=144191 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+10) 20:11:38 [[10D Deadfish 7 with Time Travel and a Multiverse]] https://esolangs.org/w/index.php?diff=144343&oldid=118291 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+17) /* Hello world */ 20:15:12 [[Befunge/Constants]] https://esolangs.org/w/index.php?diff=144344&oldid=143127 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-1) /* 20-29 */ 20:16:18 [[Befunge/Constants]] https://esolangs.org/w/index.php?diff=144345&oldid=144344 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-9) /* 40-49 */ 20:16:50 [[Befunge/Constants]] https://esolangs.org/w/index.php?diff=144346&oldid=144345 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-5) /* 60-69 */ 20:16:52 [[User:Aadenboy]] M https://esolangs.org/w/index.php?diff=144347&oldid=142872 * Aadenboy * (+19) style change 20:17:09 [[User:Aadenboy]] M https://esolangs.org/w/index.php?diff=144348&oldid=144347 * Aadenboy * (+0) again 20:22:25 [[Talk:Whitespace]] https://esolangs.org/w/index.php?diff=144349&oldid=140914 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+233) /* hello, world that works */ new section 20:26:43 [[Brainfuck]] https://esolangs.org/w/index.php?diff=144350&oldid=139912 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+149) /* Truth-machine (kinda) */ 20:35:40 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 20:41:43 [[1 1]] M https://esolangs.org/w/index.php?diff=144351&oldid=144333 * PythonshellDebugwindow * (+67) Categories 20:42:54 -!- tromp has joined. 20:44:06 [[+++]] M https://esolangs.org/w/index.php?diff=144352&oldid=144329 * PythonshellDebugwindow * (+124) Categories 20:52:27 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 21:02:04 -!- Everything has joined. 21:05:18 [[JAGL]] https://esolangs.org/w/index.php?diff=144353&oldid=144232 * Ractangle * (-3) /* Syntax */ 21:06:27 [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=144354&oldid=144308 * TheThunderGuyS * (+559) /* delete account */ 21:07:57 -!- tromp has joined. 21:10:41 [[Special:Log/delete]] delete * Ais523 * deleted "[[User:TheThunderGuyS]]": requested by the user associated with the userpage 21:11:50 [[Special:Log/renameuser]] renameuser * Ais523 * Ais523 renamed user [[User:TheThunderGuyS]] (13 edits) to [[User:AnonymisedFWdd]]: user requested that their username be anonymised 21:12:21 [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=144355&oldid=144354 * Ais523 * (+188) /* delete account */ anonymised 21:20:28 [[JAGL]] https://esolangs.org/w/index.php?diff=144356&oldid=144353 * Ractangle * (+69) /* Syntax */ 21:21:21 -!- rodgort has quit (Ping timeout: 248 seconds). 21:24:47 [[JAGL]] https://esolangs.org/w/index.php?diff=144357&oldid=144356 * Ractangle * (+151) 21:31:35 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 21:43:07 Although the method I had used for superseding X.509 certificates would probably work, there is some complication involved due to it needing to be a part of the same certificate and contain signatures and hashes. 21:43:29 [[JAGL]] https://esolangs.org/w/index.php?diff=144358&oldid=144357 * Ractangle * (+63) /* Syntax */ 21:45:39 -!- rodgort has joined. 22:21:56 [[JAGL]] https://esolangs.org/w/index.php?diff=144359&oldid=144358 * Ractangle * (+60) /* Syntax */ 22:22:34 [[JAGL]] https://esolangs.org/w/index.php?diff=144360&oldid=144359 * Ractangle * (+40) /* Syntax */ 22:26:20 -!- Everything has quit (Quit: leaving). 22:39:49 -!- ais523 has quit (Quit: quit). 23:09:22 [[Talk:BIT]] https://esolangs.org/w/index.php?diff=144361&oldid=19949 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+202) /* XKCD Random Number */ new section 23:31:51 [[Whenever]] https://esolangs.org/w/index.php?diff=144362&oldid=140632 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+2) /* Syntax */ 23:32:17 [[Whenever]] https://esolangs.org/w/index.php?diff=144363&oldid=144362 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (+4) /* Hello, world! */ 23:33:16 [[Whenever]] https://esolangs.org/w/index.php?diff=144364&oldid=144363 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-6) /* Calculator */ 23:36:45 [[$]] https://esolangs.org/w/index.php?diff=144365&oldid=134220 * Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * (-8) /* Interpreter */