00:25:25 -!- ArthurStrong has joined. 00:27:25 -!- arseniiv has quit (Ping timeout: 250 seconds). 00:44:58 -!- xkapastel has joined. 00:47:49 -!- hppavilion[1] has joined. 01:17:38 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 02:44:26 -!- Melvar has quit (Ping timeout: 246 seconds). 02:52:49 -!- oerjan has joined. 02:58:15 -!- Melvar has joined. 03:03:26 @tell kspalaiologos How did it rejoin I didn't implement it <-- that was a netsplit. it looks like a mass quit and rejoin but in reality it's just an in-between irc server doing that. (except for those unfortunate enough to be logged in directly to that server.) 03:03:26 Consider it noted. 03:06:22 -!- imode has joined. 03:10:06 It's easier to test for nick characters [-0-9A-}] because those are the same on all networks <-- except then we need to worry about the LC_COLLATE setting or whatever it was. 03:12:39 hm there's a globasciiranges shell option. 03:12:50 *bash 03:51:21 `cat bin/@ 03:51:22 ​#!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +([^ ]*) +//) { print "$1: "; exec $2, $_; } 03:53:33 `cat bin/nur 03:53:34 if grep -q \ <<<"$1"; then "${1%% *}" "${1#* }"; else "$1"; fi 03:54:15 `echo test 03:54:15 ​ test 03:54:35 -!- ArthurStrong has quit (Quit: leaving). 03:55:25 it looks like @ implements its own nur 03:56:03 which is slightly incompatible 03:56:21 `@ oerjan test 03:56:22 No output. 03:56:26 `test 03:56:26 Killed 03:56:46 `@ oerjan quote 03:56:46 No output. 03:56:50 `quote 03:56:51 818) we have PR? the good news is we have PR. the bad news is we borrowed haskell's motto for it. [...] [...] "avoid success at all costs" 03:58:31 so `@ doesn't work with a command with no argument 04:03:01 it's also a bit complicated by wanting to work both in shell commands and with ` 04:05:49 `sled bin/@//2s!+.*!+//) { print "$1: "; exec "nur", $_; }! 04:05:51 bin/@//#!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +//) { print "$1: "; exec "nur", $_; } 04:06:11 `@ oerjan quote 04:06:12 oerjan: /hackenv/bin/nur: 1: /hackenv/bin/nur: Syntax error: redirection unexpected 04:06:16 darn 04:06:38 `nur quote 04:06:39 636) Astrological ages don't work. Instead, say what you mean. 04:08:40 `/bin/echo hi 04:08:41 hi 04:08:54 `sled bin/@//s,nur,echo, 04:08:56 bin/@//#!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +//) { print "$1: "; exec "echo", $_; } 04:09:03 `@ oerjan quote 04:09:04 oerjan: quote 04:09:20 `@ oerjan quote hi 04:09:20 oerjan: quote hi 04:09:30 hm echo has no problem. 04:10:19 `revert 04:10:20 Done. 04:10:26 `@ oerjan quote hi 04:10:27 oerjan: /hackenv/bin/nur: 1: /hackenv/bin/nur: Syntax error: redirection unexpected 04:10:39 oh duh 04:10:55 `sled bin/nur//1i#!/bin/bash 04:10:57 bin/nur//#!/bin/bash \ if grep -q \ <<<"$1"; then "${1%% *}" "${1#* }"; else "$1"; fi 04:11:03 `@ oerjan quote hi 04:11:04 oerjan: 5) His body should be given to science. He's alive :P Even so. \ 8) Lil`Cube: you had cavity searches? not yet trying to thou, just so I can check it off on my list of things to expirence \ 13) Finally I have found some actually useful purpose for it. \ 14) oerjan: are you a man, if th 04:11:11 `@ oerjan quote 04:11:12 oerjan: 4) GKennethR: he should be told that you should always ask someone before killing them. 04:11:18 there you go. 04:11:53 `? nur 04:11:54 nur? ¯\(°​_o)/¯ 04:19:45 `learn nur "command argument" is a convenience wrapper for invoking user-given commands with the same argument splitting as HackEso's top level. (Mnemonic: opposite of `run) 04:19:47 Learned 'nur': nur "command argument" is a convenience wrapper for invoking user-given commands with the same argument splitting as HackEso's top level. (Mnemonic: opposite of `run) 04:20:11 `whatis nur 04:20:14 nur(1hackeso) - no description 04:20:46 `? `@ 04:20:47 ​@ is an OS made out of only the finest vapour. 04:21:36 seems like there's a story behind that. 04:23:55 `? scapegoat 04:23:56 scapegoat? ¯\(°​_o)/¯ 04:24:11 `grWp scapegoat 04:24:13 No output. 04:25:08 i suppose we don't have that in wisdom. @ was the perfect imaginary OS and scapegoat was the perfect imaginary revision control system, iirc 04:25:24 `grWp goat 04:25:25 ​🐐:🐐 <(Unicode goat laments your inability to render Unicode goat.) \ goat:Goats will eat and drink anything, except tea. Solain is unavailable for details. \ stume:A stume cowears and goatears you. That is the main reason why the often look so ackward. 04:26:06 hm i thought that unicode had something relevant but apparently not. 04:26:34 i think possibly ais523 has still something ongoing inspired by scapegoat. 04:27:38 `learn `@ [] is a wrapper for running a HackEso command with a "nick:" prepended. 04:27:40 Learned '`@': `@ [] is a wrapper for running a HackEso command with a "nick:" prepended. 04:28:17 How do you combine `1 and `@ ? 04:28:32 `slwd `@//s,:,: , 04:28:34 ​`@//`@ [] is a wrapper for running a HackEso command with a "nick: " prepended. 04:29:28 `@ `1 quote shachaf 04:29:29 ​`1: 838) GreyKnight, shachaf is like a high-level Forth \ 1057) <@elliott> well, I think if you don't think figuring out who the opposite of shachaf is requires thought, then you don't know shachaf very well 04:29:35 oops 04:29:46 `@ shachaf `1 quote shachaf 04:29:47 shachaf: /hackenv/bin/nur: line 2: `1: command not found 04:29:53 oh 04:30:00 `@ shachaf 1 quote shachaf 04:30:02 shachaf: 1/15:594) VMS Mosaic? I hope that's not Mosaic ported to VMS. Hmm. It's Mosaic ported to VMS. \ 604) * Sgeo|web wants to see elliott be wrong about something Sgeo|web: That literally never happens. Sgeo|web: There you go. A great example. \ 608) You should get kmc in this channel. kmc has good quotes. `quote kmc 686) COCKS [...] truly coc 04:30:28 of course it only prepends the first line shown 04:30:37 oh and won't split correctly 04:31:51 what does `@ do 04:32:06 `? `@ 04:32:09 ​`@ [] is a wrapper for running a HackEso command with a "nick: " prepended. 04:32:12 hth 04:32:43 * oerjan failed to apply the obvious demonstration 04:33:03 `@ int-e `welcome oerjan 04:33:04 int-e: /hackenv/bin/nur: line 2: `welcome: command not found 04:33:11 `@ int-e welcome oerjan 04:33:12 int-e: oerjan: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 04:33:32 yay for abuse 04:34:02 `url bin/@ 04:34:05 https://hack.esolangs.org/repo/file/tip/bin/%40 04:34:28 i think `welcome uses it internally, anyway 04:34:37 (and i may have written that.) 04:34:46 (or rewritten.) 04:35:01 oh it's a nitia thing 04:35:37 exec "bin/@", $_ . " ? welcome" 04:35:46 yeah it uses it all right 04:35:58 not in the most obvious way... because perl 04:37:05 `welcome int-e oerjan 04:37:06 int-e: oerjan: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 04:37:16 * int-e shrugs 04:37:28 I didn't know it did that though. 04:39:10 hm maybe it wasn't me. 04:39:44 `culprits bin/welcome 04:39:46 oerjän oerjän ellioẗt nitïa 04:40:10 huh 04:40:22 i wonder why the `hurl link doesn't show more than the initial 04:40:39 exactly 04:41:00 although the rest were cleanups i think 04:41:27 `hoag bin/welcome 04:41:28 chmod +x bin/*elcom* \ mv *elcom* bin \ rm bin/*elcom* \ Initïal import. 04:42:31 Maybe hoag should replace that last one by import. 04:44:54 22222222222222222222222 04:45:07 boring cat 04:45:17 oerjan: I meant the correct splitting, yep. 04:45:52 int-e: hoag? 04:46:08 `1 @ shachaf quote shachaf 04:46:10 1/15:shachaf: 594) VMS Mosaic? I hope that's not Mosaic ported to VMS. Hmm. It's Mosaic ported to VMS. \ 604) * Sgeo|web wants to see elliott be wrong about something Sgeo|web: That literally never happens. Sgeo|web: There you go. A great example. \ 608) You should get kmc in this channel. kmc has good quotes. `quote kmc 686) COCKS [...] truly coc 04:46:11 I assume hoag, hog, hoat, etc. should just be deleted. 04:46:15 that should work 04:46:25 oerjan: But some IRC clients only hilight a line if your nick is at the beginning. 04:46:32 ah 04:46:45 EWONTFIX 04:47:02 shachaf: that would just sow confusion 04:47:11 Don't you hate it when a function sets errno to EWONTFIX? 04:48:03 `rot13 sow hoag 04:48:06 fbj ubnt 04:48:32 So my SAT solver does 2-watched literals. 04:48:41 Shockingly, it doesn't help that much for 3SAT. 04:48:42 not very pronouncible, sadly 04:48:53 (Without CDCL, anyway.) 04:48:55 ... 04:49:36 It's almost like int-e isn't that shocked. 04:49:44 it may be cheaper to just statically by literal for 3SAT 04:49:54 +index 04:50:06 What do you mean? 04:50:11 Just watch all three, or something else? 04:50:20 because the difference between walking 2 lists or 3 lists is small and you save the maintenance overhead 04:50:37 But I'd expect indexing to still be important. 04:50:43 Sure. 04:50:54 But if you learn clauses by resolution they can get much longer presumably. 04:51:06 Of course they can 04:51:14 look at the reduction from SAT to 3SAT 04:51:29 Yep. 04:51:38 Sorry 04:51:52 I read a negation into that and there wasn't any. 04:51:56 I mean, in practice, I imagine that 2WL could plausibly help quite a bit for 3SAT once I learn clauses. 04:52:05 Ah. 04:54:03 Do RL SAT solvers bother with maintaining extra data structures for clauses of size 2? 04:54:36 -!- xkapastel has quit (Quit: Connection closed for inactivity). 04:54:39 (I'm sure Minisat doesn't. But others may...) 05:00:19 shachaf: Btw, actually the ... was me being confused. Mainly I was wondering whether you just walk all clauses instead, which I imagine would be quite inefficient. 05:01:37 Oh, I meant 2-watch being a small optimization over 3-watch. 05:01:57 It's certainly a big optimization over entire-instance-watch. 05:02:11 I assume no solver does that. 05:02:27 yeah 05:02:59 Though I'd add "practical" or "competetive" to the mix :) 05:03:27 Oh, sure. 05:03:36 In fact I wrote a solver that did that before upgrading it to 2WL. 05:03:51 What should I implement next? 05:03:55 . o O ( generate all assignments and check... could be a viable approach for golfing ) 05:04:06 * CDCL * Restarts * Variable-choosing heuristics like VSIDS 05:04:19 * backjumping? Probably that makes more sense after CDCL 05:04:30 restarts make no sense without heuristics 05:04:36 Yes they do. 05:04:41 or clause learning 05:04:57 oh you mean because you actually learn polarities 05:04:58 hmm 05:05:01 No, not even that. 05:05:12 hmm? 05:05:16 Even if you restart fresh each time. 05:05:28 do you select variables at random? 05:05:41 That's what I had in mind. 05:05:45 oh. 05:05:48 Of course if it's deterministic you don't get too much. 05:06:00 right 05:06:01 But your choices (variable order, initial assignment) have a huge impact. I was surprised at how much. 05:06:26 but I think there's still a grain of truth 05:06:26 The original Luby paper was about Las Vegas algorithms, of course, which don't share any state. 05:06:46 restarts need a heuristic whether your current run is a lucky or an unlucky one? 05:07:03 Or you just do Luby. 05:07:16 I bet Luby would speed up an extremely naive solver that made random choices quite a bit on a lot of problems. 05:10:46 Hmm. Sounds reasonable. 05:15:42 http://www.cs.toronto.edu/~fbacchus/csc2512/Lectures/2013Readings/Skallah_Empirical_Study_SAT_Solvers.pdf answers this question, I guess. 05:15:53 CDCL has the biggest impact. 05:37:41 -!- oerjan has quit (Quit: Nite). 05:58:21 -!- atslash has joined. 06:51:29 oerjan: nice 07:00:47 oerjan: also, the welcome scripts using bin/@ is nicely esoteric and overcomplicated. I assumed they'd just echo -n "$1${1+: }" until I read the code. 07:00:53 -!- b_jonas has quit (Quit: leaving). 07:43:44 [[User:Quadril-Is]] N https://esolangs.org/w/index.php?oldid=67073 * Quadril-Is * (+259) Created page with "Hello. I actually use many usernames, one for every site. Mostly, just one exception. No, it's not here. I would put some brainffffffffffffffff.....you know...anyways, i would..." 07:51:36 -!- imode has quit (Ping timeout: 240 seconds). 07:53:15 Hmm, that November Ponder This challenge... I'm finding that getting to 900,000,000 fairly easy, but reaching the actual target 923,062,279 is not. 07:58:27 But I guess that's fine... the October challenge was pretty easy. 08:09:05 in my sat solver, I handle binary clauses completely separately, i.e. for each literal I have a binary clause watchlist and a binary clause is only stored by being present in both its literals binary clause watchlists 08:10:07 IIRC some other solvers do a similar thing but use their normal watch lists, having a special clause reference value for binary clauses to indicate that the clause isn't actually stored anywhere else 08:11:16 (there already is a place to store the other literal in the watchlist when blocking literals are used) 08:28:56 [[Whitespace]] https://esolangs.org/w/index.php?diff=67074&oldid=50543 * Quadril-Is * (+1504) Actually adding information. 08:34:29 -!- xkapastel has joined. 08:44:47 [[Whitespace]] https://esolangs.org/w/index.php?diff=67075&oldid=67074 * Quadril-Is * (+134) /* I/O */ Completed the section 08:47:56 [[Whitespace]] https://esolangs.org/w/index.php?diff=67076&oldid=67075 * Quadril-Is * (+231) /* Stack manipulation */ Started working on the section 08:48:12 [[Whitespace]] https://esolangs.org/w/index.php?diff=67077&oldid=67076 * Quadril-Is * (-85) /* Ending the program */ Deleted section, it was part of flow control 08:51:12 [[Whitespace]] https://esolangs.org/w/index.php?diff=67078&oldid=67077 * Quadril-Is * (+71) /* Stack manipulation */ Resumed and completed after deleting end of program section 08:53:22 [[Whitespace]] https://esolangs.org/w/index.php?diff=67079&oldid=67078 * Quadril-Is * (+170) /* Arithmetic */ Started on this section. Gonna take a break for now. 09:16:24 -!- LKoen has joined. 09:36:41 `? device 09:36:42 device? ¯\(°​_o)/¯ 09:38:00 `learn A device is a browser session. Please verify your device. 09:38:05 Learned 'device': A device is a browser session. Please verify your device. 10:03:26 `complain 10:05:25 No output. 10:14:36 -!- LKoen has quit (Remote host closed the connection). 10:15:55 `5 ' 10:15:56 ​/hackenv/bin/`: eval: line 5: unexpected EOF while looking for matching `'' \ /hackenv/bin/`: eval: line 6: syntax error: unexpected end of file \ /hackenv/bin/`: eval: line 5: unexpected EOF while looking for matching `'' \ /hackenv/bin/`: eval: line 6: syntax error: unexpected end of file \ /hackenv/bin/`: eval: line 5: unexpected EOF while looking for matching `'' \ /hackenv/bin/`: eval: line 6: syntax error: unexpected end of file \ /ha 10:16:09 `5 \' 10:16:11 1/2:1085) No, you are mix up. Universe is the, made of spacetime, and of mathematics; not "kind of a dick" and so on. \ 904) the pokémon theme is very similar to eye of the tiger and not as good \ 353) Something about faiing a asanity check sanity faliling failing \ 625) i don't lie, i tell stories there's no difference *a \ 58) Warrigal: what do you me 10:16:27 `n 10:16:28 2/2:an by 21? 10:17:27 -!- LKoen has joined. 10:24:08 -!- LKoen has quit (Remote host closed the connection). 10:25:51 -!- arseniiv has joined. 10:27:21 -!- LKoen has joined. 10:29:43 `le//rn source//Sources for HackEso can be found at https://github.com/fis/hackbot + https://github.com/fis/multibot + https://github.com/fis/umlbox . 10:29:45 Relearned 'source': Sources for HackEso can be found at https://github.com/fis/hackbot + https://github.com/fis/multibot + https://github.com/fis/umlbox . 10:32:22 (Context: Gregor had moved the official homes of all three projects to github, so I forked them there and rebased my local modifications on top. Bitbucket is sunsetting Mercurial support next year anyway.) 10:34:47 [[Whitespace]] https://esolangs.org/w/index.php?diff=67080&oldid=67079 * Quadril-Is * (+258) /* Arithmetic */ Sorry, I was busy trying to make a quine. 10:38:45 [[Whitespace]] M https://esolangs.org/w/index.php?diff=67081&oldid=67080 * Quadril-Is * (+1) /* Flow Control */ Oh no this is going to be a lot 10:40:44 [[Whitespace]] https://esolangs.org/w/index.php?diff=67082&oldid=67081 * Quadril-Is * (+155) /* Heap Access */ 10:46:13 -!- LKoen has quit (Remote host closed the connection). 10:46:32 [[Whitespace]] https://esolangs.org/w/index.php?diff=67083&oldid=67082 * Quadril-Is * (+308) /* Flow Control */ 10:47:16 -!- LKoen has joined. 10:47:20 [[Whitespace]] https://esolangs.org/w/index.php?diff=67084&oldid=67083 * Quadril-Is * (+18) /* Flow Control */ 10:50:27 [[Whitespace]] https://esolangs.org/w/index.php?diff=67085&oldid=67084 * Quadril-Is * (+15) /* Flow Control */ 10:52:54 -!- b_jonas has joined. 11:01:42 [[Whitespace]] https://esolangs.org/w/index.php?diff=67086&oldid=67085 * Quadril-Is * (+171) /* Flow Control */ Done. 11:18:39 -!- kspalaiologos has joined. 11:25:18 [[Whitespace]] M https://esolangs.org/w/index.php?diff=67087&oldid=67086 * Quadril-Is * (-11) Removed the stub. 11:25:47 -!- kspalaiologos has quit (Read error: Connection reset by peer). 11:29:37 -!- sebbu2 has changed nick to sebbu. 11:47:40 [[Earfuck]] N https://esolangs.org/w/index.php?oldid=67088 * Quadril-Is * (+434) My esolang. 11:48:31 [[Language list]] https://esolangs.org/w/index.php?diff=67089&oldid=67060 * Quadril-Is * (+14) /* E */ 11:58:40 -!- kspalaiologos has joined. 12:07:36 -!- kspalaiologos has quit (Ping timeout: 240 seconds). 12:11:04 -!- xkapastel has quit (Quit: Connection closed for inactivity). 12:47:28 -!- kspalaiologos has joined. 13:12:32 . o O ( Is there a longer word for "prolific"? ) 13:14:51 -!- arseniiv has quit (Ping timeout: 250 seconds). 13:18:32 -!- arseniiv has joined. 13:19:14 -!- Melvar has quit (Ping timeout: 240 seconds). 13:19:37 -!- Melvar has joined. 13:21:01 [[Whitespace]] https://esolangs.org/w/index.php?diff=67090&oldid=67087 * Quadril-Is * (+1371) Added examples. 13:23:31 [[D]] https://esolangs.org/w/index.php?diff=67091&oldid=63929 * Quadril-Is * (+29) /* Introduction */ 13:26:44 [[B sharp]] N https://esolangs.org/w/index.php?oldid=67092 * Quadril-Is * (+304) Created page with "== Introduction == In music, there are a couple marks known as "sharp" or "flat". They raise or lower the pitch half a tone, respectively. Since B is half a tone below C, B sh..." 13:27:54 [[Joke language list]] https://esolangs.org/w/index.php?diff=67093&oldid=66669 * Quadril-Is * (+9) /* General languages */ 13:28:07 [[Joke language list]] https://esolangs.org/w/index.php?diff=67094&oldid=67093 * Quadril-Is * (+5) /* General languages */ 13:39:42 -!- LKoen has quit (Remote host closed the connection). 14:01:16 -!- xkapastel has joined. 14:23:58 -!- LKoen has joined. 14:26:20 [[Special:Log/newusers]] create * PythonshellDebugwindow * New user account 14:35:47 [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=67095&oldid=67048 * PythonshellDebugwindow * (+232) 14:38:22 [[Talk:Whitespace]] N https://esolangs.org/w/index.php?oldid=67096 * Quadril-Is * (+209) Created page with "Well, I think I've completed the page. Actually, maybe I can add a truth machine, but don't tell me to add a quine.--~~~~" 14:39:35 [[Whitespace]] https://esolangs.org/w/index.php?diff=67097&oldid=67090 * Quadril-Is * (+23) /* Examples */ 14:44:19 -!- LKoen has quit (Remote host closed the connection). 14:44:47 -!- LKoen has joined. 14:50:31 [[Whitespace]] https://esolangs.org/w/index.php?diff=67098&oldid=67097 * Quadril-Is * (-23) /* Truth machine */ 14:53:17 [[Whitespace]] https://esolangs.org/w/index.php?diff=67099&oldid=67098 * Quadril-Is * (+15) /* Hello, world! */ 14:57:20 -!- arseniiv has quit (Ping timeout: 276 seconds). 15:12:19 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”). 15:20:43 [[Whitespace]] https://esolangs.org/w/index.php?diff=67100&oldid=67099 * Quadril-Is * (+289) /* Examples */ Truth machine. 15:20:52 [[Whitespace]] https://esolangs.org/w/index.php?diff=67101&oldid=67100 * Quadril-Is * (-23) /* Truth machine */ 15:21:02 [[Whitespace]] https://esolangs.org/w/index.php?diff=67102&oldid=67101 * Quadril-Is * (+2) /* Hello, world! */ 15:30:56 -!- imode has joined. 15:43:27 [[IBC]] N https://esolangs.org/w/index.php?oldid=67103 * Quadril-Is * (+384) Created page with "'''IBC''', which stands for '''Impose Bill City'''. It was meant to never be coded in. ==Instructions== The file will always delete itself after it is run. {| class="wikitable..." 16:18:34 [[Talk:IBC]] N https://esolangs.org/w/index.php?oldid=67104 * Palaiologos * (+195) Created page with "If we could set randomize seed for the random generator, the language would be trivial to program --~~~~" 16:21:40 -!- arseniiv has joined. 16:46:06 it seems like concurrency primitives are the 16:46:14 -!- laerling_ has joined. 16:46:25 "missing link" for concatenative languages. 16:46:38 or at the very least languages like PostScript, Forth, etc. 16:47:25 to the point of treating small processes as the values you want to work with rather than smaller inconsequential pieces of data (raw numbers, etc.) 16:47:32 -!- laerling has quit (Quit: ZNC - https://znc.in). 16:48:24 -!- laerling_ has changed nick to laerling. 16:48:59 -!- laerling has quit (Client Quit). 16:52:58 -!- laerling has joined. 17:01:24 -!- ArthurStrong has joined. 17:15:03 If anyone is interested 17:15:22 new asm2bf release, featuring RLE de/compression built into the assembler 17:25:45 https://www.youtube.com/watch?v=iuC_DDgQmsM 17:30:17 -!- LKoen has joined. 17:44:51 [[Special:Log/newusers]] create * Js-on * New user account 17:52:41 [[Truth-machine]] https://esolangs.org/w/index.php?diff=67105&oldid=66233 * Palaiologos * (+609) 17:55:20 [[Brainfuck code generation]] https://esolangs.org/w/index.php?diff=67106&oldid=35781 * Palaiologos * (+60) 18:00:13 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67107&oldid=67095 * Js-on * (+220) /* Introductions */ 18:00:25 -!- Cale has quit (Ping timeout: 250 seconds). 18:01:29 -!- LKoen has quit (Remote host closed the connection). 18:05:34 -!- LKoen has joined. 18:11:48 [[User:Js-on]] N https://esolangs.org/w/index.php?oldid=67108 * Js-on * (+612) About the user js-on 18:13:45 -!- Cale has joined. 18:32:47 -!- grumble has quit (Read error: Connection reset by peer). 18:34:17 -!- grumble has joined. 18:38:45 new brainfuck programs to waste time on? 18:38:46 any ideas? 18:53:09 -!- ArthurStrong has quit (Quit: leaving). 19:06:44 -!- ArthurStrong has joined. 19:51:02 -!- unlimiter has joined. 19:58:54 -!- unlimiter has quit (Quit: Thanks all!). 20:08:22 -!- kspalaiologos has quit (Quit: Leaving). 20:15:09 -!- ArthurStrong has quit (Quit: leaving). 20:16:18 -!- LKoen has quit (Remote host closed the connection). 20:18:39 -!- LKoen has joined. 20:57:28 someone knows how the art/sculpture genre is called where combinatorial objects of a particular kind are explored? 20:58:18 for a primitive example, a hypothetical exhibition of Set cards 21:00:23 I think I saw an en.wikipedia article about that with many pictures but I can’t find anything! Combinator(y|ic|ial) art, serial art, systems art, permutation art all seem to be near but not exactly what I look for 21:00:44 it was called something, maybe someone heard 21:12:38 was it a physical sculpture? 21:17:55 imode: let me check! 21:19:32 imode: seems like it’s not; kinetic sculpture also isn’t that :( 21:25:10 I've been searching and found nothing of the sort, sorry. :( 21:26:41 imode: thank you anyway! 21:27:46 that’s a mystery 21:29:14 `` pwd # <- I've changed this at least temporarily, let's see what all breaks. 21:29:15 ​/hackenv/tmp 21:31:59 Well, found one thing that broke already. 21:32:08 `sled /hackenv/bin/paste//s|url tmp|url $HACKENV/tmp| 21:32:12 ​/hackenv/bin/paste//#!/bin/bash \ if [ "$1" ] && url "$1" 2>/dev/null # Save making a file when it already exists. \ then \ true \ else \ PASTENUM="$RANDOM" \ \ mkdir -p $HACKENV/tmp/paste \ \ url $HACKENV/tmp/paste/paste."$PASTENUM" \ cat -- "${1--}" > $HACKENV/tmp/paste/paste."$PASTENUM" \ fi 21:35:15 `sled /hackenv/bin/sport//s|tmp/|$HACKENV/tmp/|g 21:35:17 ​/hackenv/bin/sport//cat "${2:-/dev/stdin}" >$HACKENV/tmp/spout.raw; distort $HACKENV/tmp/spout.raw | spore "${1-1}" 21:35:55 `sled /hackenv/bin/spore//s|/hackenv/tmp/|$HACKENV/tmp/|g 21:35:57 ​/hackenv/bin/spore//cat "${2:-/dev/stdin}" > $HACKENV/tmp/spout; spam "${1-1}" 21:36:41 (That one was correct already, just made it a little more abstract. Maybe I'll do a LSC to do the ${HACKENV:-/hackenv} as suggested at some point.) 21:37:12 `sled /hackenv/bin/spam//s|/hackenv/tmp/|$HACKENV/tmp/|g 21:37:14 ​/hackenv/bin/spam//line="${1-$(cat $HACKENV/tmp/spline)}"; len="$(awk 'END{print NR}' $HACKENV/tmp/spout)"; echo -n "$line/$len:"; sed -n "${line}{p;q}" $HACKENV/tmp/spout; echo "$((line $HACKENV/tmp/spline 21:38:29 `sled /hackenv/bin/just//s| tmp/| $HACKENV/tmp/|g 21:38:31 ​/hackenv/bin/just//grwp '\(is\|are\) just' | sed -e 's/:/ ::= /;s/$/\n/' > $HACKENV/tmp/just && url $HACKENV/tmp/just 21:42:40 `` rm /hackenv/bin/8$'\x0f'ball # I've no idea what this one was about 21:42:42 No output. 21:43:32 `sled /hackenv/bin/cbt//s|cat bin|cat $HACKENV/bin| 21:43:34 ​/hackenv/bin/cbt//cat $HACKENV/bin/"$1" 21:44:22 `sled /hackenv/bin/gs2c//s|python bin|python $HACKENV/bin| 21:44:24 ​/hackenv/bin/gs2c//echo "$@" | python $HACKENV/bin/gs2c.py 21:44:37 `sled /hackenv/bin/gs2x//s|python bin|python $HACKENV/bin| 21:44:38 ​/hackenv/bin/gs2x//python $HACKENV/bin/gs2.py "$@" 21:45:27 `sled /hackenv/bin/makelist//s|bin/|$HACKENV/bin/| 21:45:28 ​/hackenv/bin/makelist//if [[ "$1" == *" "* ]]; then exec makelist $@; fi; name="$1"; file="$HACKENV/bin/$name"; makelistlist "$name"; shift; cp bin/emptylist "$file"; for n in "$@"; do echo "$n" >> "$file"; done 21:45:33 `sled /hackenv/bin/makelist//s|bin/|$HACKENV/bin/|g 21:45:35 ​/hackenv/bin/makelist//if [[ "$1" == *" "* ]]; then exec makelist $@; fi; name="$1"; file="$HACKENV/$HACKENV/bin/$name"; makelistlist "$name"; shift; cp $HACKENV/bin/emptylist "$file"; for n in "$@"; do echo "$n" >> "$file"; done 21:45:40 ...whoops. 21:46:02 `sled /hackenv/bin/makelist//s|$HACKENV/$HACKENV/|$HACKENV/| 21:46:09 ​/hackenv/bin/makelist//if [[ "$1" == *" "* ]]; then exec makelist $@; fi; name="$1"; file="$HACKENV/bin/$name"; makelistlist "$name"; shift; cp $HACKENV/bin/emptylist "$file"; for n in "$@"; do echo "$n" >> "$file"; done 21:46:15 Computers are hard. 21:46:43 `` rm /hackenv/bin/script /hackenv/bin/scriptadd # executive override 21:46:45 No output. 21:47:53 `sled /hackenv/bin/?//s|cd wisdom|cd $HACKENV/wisdom| 21:47:55 ​/hackenv/bin/?//#!/bin/bash \ topic=$(echo "$@" | lowercase | sed "s/noo\+dl/nooodl/;s/ *$//") \ topic1=$(echo '`'"$topic" | sed 's/^`\(`\|$\)//') \ topic2=$(echo "$topic" | sed "s/s$//") \ cd $HACKENV/wisdom \ if [ \( "_$topic2"_ = "_ngevd"_ \) -a \( -e ngevd \) ]; \ then cat /dev/urandom; \ elif [ -e "$topic" ]; \ then cat "$topic"; \ elif [ -e "$topic1" ]; \ then cat "$topic1"; \ elif [ -e "$topic2" ]; \ then 21:48:28 `sled /hackenv/bin/grwp//s|cd wisdom|cd $HACKENV/wisdom| 21:48:30 ​/hackenv/bin/grwp//#! /bin/bash \ cd $HACKENV/wisdom; shopt -s dotglob; grep -R "$@" -- * 21:48:50 `sled /hackenv/bin/gwn//s|cd wisdom|cd $HACKENV/wisdom| 21:48:52 ​/hackenv/bin/gwn//cd $HACKENV/wisdom; shopt -s dotglob; grep -ERls "$@" -- * 21:48:59 `sled /hackenv/bin/gwni//s|cd wisdom|cd $HACKENV/wisdom| 21:49:01 ​/hackenv/bin/gwni//cd $HACKENV/wisdom; shopt -s dotglob; grep -ERlis "$@" -- * 21:49:24 `sled /hackenv/bin/pastewisdom//s|url wisdom|url $HACKENV/wisdom| 21:49:26 ​/hackenv/bin/pastewisdom//#!/bin/sh \ url $HACKENV/wisdom 21:49:48 `sled /hackenv/bin/plwd//s|cd wisdom|cd $HACKENV/wisdom| 21:49:49 ​/hackenv/bin/plwd//cd $HACKENV/wisdom; pled "$1" | sed '1s/^Rosebud!$/Roswbud!/' 21:50:07 `sled /hackenv/bin/slwd//s|cd wisdom|cd $HACKENV/wisdom| 21:50:14 ​/hackenv/bin/slwd//cd $HACKENV/wisdom; sled "$1" | sed '1s/^Rosebud!$/Roswbud!/' 21:51:27 `sled /hackenv/bin/wisdom//s|wisdom|$HACKENV/wisdom|g 21:51:28 ​/hackenv/bin/wisdom//#!/bin/sh \ f=$(find $HACKENV/wisdom -ipath "$HACKENV/wisdom/*$1*" -type f -print0 | shuf --random-source=/dev/urandom -z -n1); if [ -n "$f" ]; then echo -n "${f#$HACKENV/wisdom/}//"; cat "$f"; else echo "That's not wise."; fi | rnooodl 21:52:43 `sled /hackenv/bin/wiseguys//s|wisdom|$HACKENV/wisdom| 21:52:45 ​/hackenv/bin/wiseguys//hlnp -T '{desc}\n' $HACKENV/wisdom | cut -d' ' -f1 | sort | uniq -c | sed -e 's/^ *//' | sort -nr | head -n ${1:-10} 21:52:53 `wiseguys 21:52:55 1713 \ 689 \ 309 \ 300 \ 241 \ 158 \ 142 \ 139 \ 98 \ 72 21:53:00 Still maintaining a healthy lead, I see. 21:54:14 `sled /hackenv/bin/slashlearn//s|wisdom/|$HACKENV/wisdom/|g 21:54:16 ​/hackenv/bin/slashlearn//sep="//" \ [[ "$1" == ?*"$sep"* ]] || { echo 'Usage: `le/[/]rn //' >&2 ; exit 1; } \ key="$(echo "${1%%$sep*}" | lowercase)" \ value="${1#*$sep}" \ [ -e "$HACKENV/wisdom/$key" ] && verb="Relearned" || verb="Learned" \ echo "$value" > "$(echo-p "$HACKENV/wisdom/$key")" && echo -n "$verb '$key': $(echo "$value" | sed 's.^[ ].&.')" 21:54:48 `sled /hackenv/bin/wrl//s|wisdom/|$HACKENV/wisdom/| 21:54:50 ​/hackenv/bin/wrl//url "$HACKENV/wisdom/$1" 21:55:08 `sled /hackenv/bin/wdit//s|wisdom/|$HACKENV/wisdom/| 21:55:10 ​/hackenv/bin/wdit//edit "$HACKENV/wisdom/$1" 21:56:14 `sled /hackenv/bin/whoops//s|wisdom/|$HACKENV/wisdom/| 21:56:16 ​/hackenv/bin/whoops//OLD="$HACKENV/wisdom/$1"; [ -z "$1" ] && OLD="$(lastfiles)"; NEW="${OLD}s"; if [ -f "$NEW" ]; then echo "«${NEW}» already exists"; exit 1; fi; mv "$OLD" "$NEW" && echo "«${OLD}» -> «${NEW}»" 21:57:15 In retrospect, it might have been smart to add one layer of indirection, to make the wisdom location independent of $HACKENV. Oh well. 21:57:30 `sled /hackenv/bin/cwlprits//s|wisdom/|$HACKENV/wisdom/| 21:57:32 ​/hackenv/bin/cwlprits//culprits "$HACKENV/wisdom/$1" 21:58:13 `sled /hackenv/bin/dowg//s|wisdom/|$HACKENV/wisdom/| 21:58:15 ​/hackenv/bin/dowg//doag "$HACKENV/wisdom/$1" 21:58:33 `sled /hackenv/bin/footnote//s|wisdom/|$HACKENV/wisdom/| 21:58:35 ​/hackenv/bin/footnote//cat "$HACKENV/wisdom/footnote $1" 21:59:36 `sled /hackenv/bin/forget//s|wisdom/|$HACKENV/wisdom/|g 21:59:37 ​/hackenv/bin/forget//#!/bin/sh \ for n; do if [ lethe = "$n" ]; then rm -f "$HACKENV/wisdom/$n"; else rm-p "$HACKENV/wisdom/$n"; fi && echo "Forget what?"; done 22:00:06 `sled /hackenv/bin/howg//s|wisdom/|$HACKENV/wisdom/| 22:00:14 ​/hackenv/bin/howg//hoag "$HACKENV/wisdom/$1" 22:00:34 `sled /hackenv/bin/hwrl//s|wisdom/|$HACKENV/wisdom/| 22:00:35 ​/hackenv/bin/hwrl//hurl "$HACKENV/wisdom/$1" 22:07:33 `sled /hackenv/bin/lastwisdoms//s|find .hg|find $HACKENV/.hg|;s|s=\^\.hg|s=^.*?.hg| 22:07:35 ​/hackenv/bin/lastwisdoms//find $HACKENV/.hg/store/data/wisdom -type f -print0 | xargs -0 /bin/ls -t | perl -pe 'use POSIX;chop;$d=strftime("%F",localtime((stat($_))[9]));s=^.*?.hg/store/data/wisdom/(.*).i$=\1 // =;s=^=/$d/ = if$d ne$p;$p=$d;s=_(.)=uc($1)=eg;s=~([0-9a-f][0-9a-f])=chr hex$1=eg' 22:08:33 `sled /hackenv/bin/leann//s|wisdom/|$HACKENV/wisdom/| 22:08:34 ​/hackenv/bin/leann//(($#==1)) && set -- "${1% *}" "${1#* }"; key=${1,,}; shift; cat <<< "${*,,}" > "$HACKENV/wisdom/$key" && echo "Learned «$key»" 22:09:31 `sled /hackenv/bin/learn//s|wisdom/|$HACKENV/wisdom/| 22:09:33 ​/hackenv/bin/learn//#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\?[:;,.!?]\? .*//') \ [ -e "$HACKENV/wisdom/$topic" ] && verb="Relearned" || verb="Learned" \ echo "$1" >"$(echo-p "$HACKENV/wisdom/$topic")" \ echo "$verb '$topic': $1" 22:13:31 `` for w in benvenuto bienvenido bienvenue bonvenon tervetuloa välkommen velkomin velkommen welcome welkom wercome willkommen добро-пожаловать; do sed -i -e 's|bin/[@?]|$HACKENV/&|g' /hackenv/bin/$w; done 22:13:34 No output. 22:14:11 -!- arseniiv has quit (Ping timeout: 252 seconds). 22:19:52 (That one wasn't actually correct; fixed it in post.) 22:20:54 `sled /hackenv/bin/!//s|exec ibin|exec $HACKENV/ibin| 22:20:56 ​/hackenv/bin/!//#!/bin/bash \ CMD=`echo -n "$1" | cut -d' ' -f1` \ ARG="$(echo -n "$1" | cut -d' ' -f2-)" \ exec $HACKENV/ibin/$CMD "$ARG$2" 22:21:56 `` rm '/hackenv/bin/*' # this one is just too dangerous 22:21:58 No output. 22:22:46 `sled /hackenv/bin/cmds//s|url bin|url $HACKENV/bin| 22:22:48 ​/hackenv/bin/cmds//url $HACKENV/bin 22:23:11 `sled /hackenv/bin/dobg//s|bin/|$HACKENV/bin/| 22:23:13 ​/hackenv/bin/dobg//doag "$HACKENV/bin/$1" 22:25:05 `sled /hackenv/bin/gs2c.py//s|bin/gs2.py|/hackenv/bin/gs2.py| 22:25:07 ​/hackenv/bin/gs2c.py//# gs2 compiler (version 0.2) \ # (c) nooodl 2014 \ \ import re \ import struct \ import sys \ \ if sys.platform == "win32": \ import os, msvcrt \ msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) \ \ mnemonics = {} \ with open('/hackenv/bin/gs2.py') as f: \ for line in f: \ if '#=' in line: \ a, b = line.split('#=') \ a = re.findall(r'\\x(..)', a.strip()) \ b = 22:25:46 `sled /hackenv/bin/interp//s|exec ibin/|exec $HACKENV/ibin/| 22:25:48 ​/hackenv/bin/interp//#!/bin/bash \ CMD=`echo -n "$1" | cut -d' ' -f1` \ ARG="$(echo -n "$1" | cut -d' ' -f2-)" \ exec $HACKENV/ibin/$CMD "$ARG$2" 22:26:42 `sled /hackenv/bin/newcmd//s|bin/|$HACKENV/bin/|g 22:26:43 ​/hackenv/bin/newcmd//if [ -a "$HACKENV/bin/${1%% = *}" ];then exec echo "${1%% = *}: Already exists.";fi;echo "${1#* = }" > "$HACKENV/bin/${1%% = *}";chmod +x "$HACKENV/bin/${1%% = *}" 22:27:22 `` rm /hackenv/bin/randbin # for consistency with * 22:27:24 No output. 22:29:38 `` rm /hackenv/bin/show /hackenv/lib/dcc # this one just won't work 22:29:40 No output. 22:31:26 `sled /hackenv/bin/words//s|share/WordData|$ENV{'HACKENV'}/&| 22:31:27 ​/hackenv/bin/words//#!/usr/bin/perl \ use strict; use warnings; \ use v5.10; \ use open qw( :encoding(UTF-8) :std); \ use File::Basename 'dirname'; \ use Storable 'retrieve'; \ use List::Util qw(sum min); \ use Getopt::Long qw(:config gnu_getopt); \ BEGIN { \ eval { \ require Math::Random::MT::Perl; Math::Random::MT::Perl->import('rand'); \ }; \ #warn "Optional module Math::Random::MT::Perl not found.\n" if $@; \ } \ \ #con 22:32:03 `sled /hackenv/bin/8ball//s|share/|$HACKENV/share/| 22:32:09 ​/hackenv/bin/8ball//#!/bin/sh \ shuf -n 1 $HACKENV/share/8ballreplies 22:32:28 `sled /hackenv/bin/acronym//s|share/|$HACKENV/share/| 22:32:30 ​/hackenv/bin/acronym//w="${1:-tla}"; (for (( i=0;i<${#w};i++ )); do grep -i "^${w:$i:1}[a-z]*\$" $HACKENV/share/dict-words | shuf -n 1; done) | xargs 22:32:53 fizzie: whoa, what's all this? 22:33:10 `sled /hackenv/bin/addscowrevs//s|share/|$HACKENV/share/|g 22:33:12 ​/hackenv/bin/addscowrevs//echo $@ | xargs -n 1 | sort -n - $HACKENV/share/scowrevs -o $HACKENV/share/scowrevs 22:33:16 Is it for when people experiment with making files in the cwd? 22:33:24 shachaf: Yes, I'm trying out /hackenv/tmp as the work directory. 22:34:54 For the most part making things relative to $HACKENV, though for Python I can't've been bothered; anyway, there's definitely a lot of stuff already hardcoding /hackenv, so good enough. 22:34:58 `sled /hackenv/bin/airport-lookup//s|share/airports.dat|/hackenv/share/airports.dat| 22:35:00 ​/hackenv/bin/airport-lookup//#! /usr/bin/env python \ \ import csv \ import sys \ \ if len(sys.argv) < 3: sys.stderr.write('usage: airport-lookup any|name|iata|icao key\n'); sys.exit(1) \ kind, q = sys.argv[1], ' '.join(sys.argv[2:]) \ \ fieldnames = dict(name=1, iata=4, icao=5) \ if kind == 'any': fields = [1, 4, 5] \ elif kind in fieldnames: fields = [fieldnames[kind]] \ else: sys.stderr.write('unknown search type: %s\n' % kind); sys.e 22:36:42 `sled /hackenv/bin/autowelcome//s|share/|$HACKENV/share/|g 22:36:44 ​/hackenv/bin/autowelcome//[ "$1" == "on" ] && echo enabled > $HACKENV/share/autowelcome_status; [ "$1" == "off" ] && echo disabled > $HACKENV/share/autowelcome_status; echo "Autowelcome $(cat $HACKENV/share/autowelcome_status)." 22:37:14 `sled /hackenv/bin/complain//s|share/|$HACKENV/share/| 22:37:16 ​/hackenv/bin/complain//print_args_or_input "$@" >> $HACKENV/share/Complaints.mp3; echo Complaint filed. Thank you. 22:37:35 `sled /hackenv/bin/complaints//s|share/|$HACKENV/share/| 22:37:36 ​/hackenv/bin/complaints//wc -l $HACKENV/share/Complaints.mp3 22:38:04 `sled /hackenv/bin/list//s|share/|$HACKENV/share/|g 22:38:09 ​/hackenv/bin/list//date > $HACKENV/share/conscripts; culprits $HACKENV/share/conscripts | xargs -n 1 | awk '!x[$0]++' | xargs 22:38:49 `sled /hackenv/bin/maim//s|share/|$HACKENV/share/| 22:38:51 ​/hackenv/bin/maim//shuf -n 1 $HACKENV/share/maimery | sed "s/\$target/$1/" 22:42:51 `` rm -r /hackenv/good /hackenv/evil /hackenv/bin/good /hackenv/bin/evil # sorry 22:42:53 No output. 22:45:56 `sled /hackenv/bin/bookofeso//s|esobible|$HACKENV/esobible|g 22:45:58 ​/hackenv/bin/bookofeso//F="$(find $HACKENV/esobible -name "*$(echo "$1" | lowercase)*" -type f | shuf -n1)"; echo -n "${F#$HACKENV/esobible/}/" | rnooodl; cat "$F" | rnooodl 22:46:14 (Almost removed that, don't think it really gets used.) 22:48:33 `sled /hackenv/bin/mislearn//s|tmflry/|$HACKENV/tmflry/| 22:48:35 ​/hackenv/bin/mislearn//#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\?[:;,.!?]\? .*//') \ echo "$1" >"$HACKENV/tmflry/$topic" \ echo "Was lied to about '$topic': $1" 22:53:51 `fetch /hackenv/bin/tomfoolery https://hack.esolangs.org/get/bin/tomfoolery 22:53:52 2019-11-16 22:53:52 URL:https://hack.esolangs.org/get/bin/tomfoolery [327/327] -> "bin/tomfoolery" [1] 22:54:07 hi fizzie. 22:54:23 If we want to keep this, I will also need to fix edit at some point, otherwise it generates broken `fetch examples. 22:54:32 fizzie: addquote and delquote would definitely break 22:54:48 oh nice 22:54:55 I see you're fixing some of the scripts 22:55:08 fizzie: I meant to fix more scripts, but haven't got there yet 22:55:10 was too slow 22:55:12 thanks for helping 22:55:38 Yes, I've used some heuristics to pick up things that would likely break for bin, share, wisdom, ibin references. 22:56:01 (Didn't do quotes yet.) 22:56:07 fizzie: I generally use "${HACKENV-/hackenv}/" to make them more robust in case future HackE?o incarnations don't set the variable or have whitespace in the value 22:57:04 Yeah, I saw that suggestion, just remembered it a little late. I might make a single out-of-band mega-patch for that. 22:57:18 (You mean "${HACKENV:-/hackenv}", right?) 22:58:09 fizzie: shouldn't matter. if $HACKENV is set then it should be an absolute path, that's the point, so it can't be empty 22:58:26 the colon makes a difference only if the var is set but empty 23:00:01 `` A=""; echo "[${A-foo}] [${A:-foo}] [${B-foo}] [${B:-foo}]" 23:00:08 ​[] [foo] [foo] [foo] 23:00:32 oh darn it, now I keep typing commands in private message that don't owrk 23:00:46 because I reference wisdom or quotes or bin with relative path 23:01:00 `cat /hackenv/bin/card-by-name 23:01:01 ​#!/bin/sh \ exec perl -e 'open$I,"<",($ENV{HACKENV}//"/hackenv")."/share/mtg/allsets.txt"or die;$/=""; while(<$I>){/\A(?i)\Q$ARGV[0]/ and print}' "$1" 23:01:05 `cat /hackenv/bin/whatis 23:01:06 ​#!/usr/bin/python3 \ import sys, os, re \ if len(sys.argv) <= 1: \ print("whatis what?") \ sys.exit(1) \ else: \ argorg = [] \ argfoldv = [] \ foundv = [] \ for arg in sys.argv[1:]: \ argorg.append(arg) \ argfoldv.append(arg.casefold()) \ foundv.append(False) \ with open(os.environ.get("HACKENV","/hackenv") + "/share/whatis", errors="surrogateescape") as whatisdb: \ for line in wha 23:01:09 Yes, it's kind of annoying. 23:01:24 ^ template for when the directory is referenced in perl scripts or python scripts 23:01:34 I mean, one kind of fix would be to symlink /hackenv/tmp/bin -> /hackenv/bin and so on. 23:01:59 fizzie: eww no 23:02:01 too easy to break 23:02:15 fizzie: have you consider what it would break if you made /hackenv not writable? 23:02:44 I mean, make it not writable with chmod only, at the start of every command, but allow commands to chmod it writable explicitly 23:04:16 any change would probably break _something_ 23:05:31 Yes. Well, at least making the scripts $HACKENV-relative is not going to hurt even if we go back to cwd /hackenv. I don't know about the explicit writability. It might be a little weird. 23:05:38 `sled /hackenv/bin/addquote//s|quotes|${HACKENV-/hackenv}/quotes| 23:05:39 ​/hackenv/bin/addquote//#!/bin/sh \ [ "$1" ] || exit 1 \ printf "%s\n" "$1" >>${HACKENV-/hackenv}/quotes \ printf "%d) %s" $(qc | cut -d' ' -f1) "$1" 23:05:49 sure, fixing the scripts is good 23:08:23 `fetch /hackenv/bin/delquote https://hack.esolangs.org/get/bin/delquote 23:08:24 2019-11-16 23:08:24 URL:https://hack.esolangs.org/get/bin/delquote [271/271] -> "bin/delquote" [1] 23:09:41 `sled /hackenv/bin/pastequotes//s|url quotes|url ${HACKENV-/hackenv}/quotes| 23:09:43 ​/hackenv/bin/pastequotes//#!/bin/sh \ if [ "$1" ]; then quote "$1" | paste; else url ${HACKENV-/hackenv}/quotes; fi 23:10:22 `sled /hackenv/bin/qc//s|quotes|${HACKENV-/hackenv}/quotes| 23:10:23 ​/hackenv/bin/qc//#!/bin/sh \ wc -l ${HACKENV-/hackenv}/quotes 23:11:58 `sled /hackenv/bin/quotenums//s|quotes|${HACKENV-/hackenv}/quotes| 23:13:07 ​/hackenv/bin/quotenums//#!/bin/sh \ grep -P -i -n "$1" ${HACKENV-/hackenv}/quotes | cut -d : -f 1 | xargs 23:13:47 `sled /hackenv/bin/whoq//s|quotes|${HACKENV-/hackenv}/quotes| 23:13:49 ​/hackenv/bin/whoq//if [[ "$1" =~ ^[0-9]+$ ]]; then \ rev="$(hg blame ${HACKENV-/hackenv}/quotes | sed "$1{s/^ *//;s/:.*//;q};d")" \ if [[ -n "$rev" ]]; then \ hg log -r "$rev" -T "{desc}" \ else \ echo "$1: no such quote" \ fi \ else \ echo "usage: \`whoq N" \ fi 23:14:16 Incidentally, whoq should probably be using the scowrevs system. 23:15:17 `help 23:15:18 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $HACKENV are persistent, and $HACKENV/bin is in $PATH. $HACKENV is a mercurial repository, "`revert " can be used to revert, https://hack.esolangs.org/repo/ to browse. $PWD ($HACKENV/tmp) is persistent but unversioned, /tmp is ephemeral. 23:15:46 Heh, I never really remember `run is actually a thing, because everyone always uses ``. 23:26:08 fizzie: sure, but `run can be useful if you're somehow locked out because people delete the entire bin directory or something 23:26:15 mind you, you can still `/bin/bash -csome command here 23:27:14 As far as I can tell, you can't, because it wants the command in a different argument. If an argument starts with -, it must be all options. 23:27:20 `/bin/bash -c"echo foo" 23:27:21 ​/bin/bash: -": invalid option \ Usage:/bin/bash [GNU long option] [option] ... \ /bin/bash [GNU long option] [option] script-file ... \ GNU long options: \ --debug \ --debugger \ --dump-po-strings \ --dump-strings \ --help \ --init-file \ --login \ --noediting \ --noprofile \ --norc \ --posix \ --rcfile \ --restricted \ --verbose \ --version \ Shell options: \ -ilrsD or -c command or -O shopt_option(invocation only) \ - 23:27:28 `/bin/bash -cecho foo 23:27:29 ​/bin/bash: - : invalid option \ allexport off \ braceexpand on \ emacs on \ errexit on \ errtrace off \ functrace off \ hashall on \ histexpand on \ history off \ ignoreeof off \ interactive-commentson \ keyword off \ monitor off \ noclobber off \ noexec off \ noglob off \ nolog off \ notify off \ nounset o 23:28:11 (I'm sure it's *possible* to unbork with sufficient effort, though.) 23:31:59 ah ok 23:32:30 in that case, perl -esystem'some command' 23:35:49 or like `/usr/bin/perl -esystemq(some command) 23:35:51 no 23:35:55 like `/usr/bin/perl -esystem q(some command) 23:40:22 -!- sleepnap has joined.