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 <oerjan> @tell kspalaiologos <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:06:22 -!- imode has joined.
03:10:06 <oerjan> <b_jonas> 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 <oerjan> hm there's a globasciiranges shell option.
03:51:22 <HackEso> #!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +([^ ]*) +//) { print "$1: "; exec $2, $_; }
03:53:34 <HackEso> if grep -q \ <<<"$1"; then "${1%% *}" "${1#* }"; else "$1"; fi
03:54:35 -!- ArthurStrong has quit (Quit: leaving).
03:55:25 <oerjan> it looks like @ implements its own nur
03:56:03 <oerjan> which is slightly incompatible
03:56:51 <HackEso> 818) <olsner> we have PR? <oerjan> the good news is we have PR. the bad news is we borrowed haskell's motto for it. [...] <oerjan> [...] "avoid success at all costs"
03:58:31 <oerjan> so `@ doesn't work with a command with no argument
04:03:01 <oerjan> it's also a bit complicated by wanting to work both in shell commands and with `
04:05:49 <oerjan> `sled bin/@//2s!+.*!+//) { print "$1: "; exec "nur", $_; }!
04:05:51 <HackEso> bin/@//#!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +//) { print "$1: "; exec "nur", $_; }
04:06:12 <HackEso> oerjan: /hackenv/bin/nur: 1: /hackenv/bin/nur: Syntax error: redirection unexpected
04:06:39 <HackEso> 636) <zzo38> Astrological ages don't work. Instead, say what you mean.
04:08:54 <oerjan> `sled bin/@//s,nur,echo,
04:08:56 <HackEso> bin/@//#!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +//) { print "$1: "; exec "echo", $_; }
04:09:30 <oerjan> hm echo has no problem.
04:10:27 <HackEso> oerjan: /hackenv/bin/nur: 1: /hackenv/bin/nur: Syntax error: redirection unexpected
04:10:55 <oerjan> `sled bin/nur//1i#!/bin/bash
04:10:57 <HackEso> bin/nur//#!/bin/bash \ if grep -q \ <<<"$1"; then "${1%% *}" "${1#* }"; else "$1"; fi
04:11:04 <HackEso> oerjan: 5) <Quas_NaArt> His body should be given to science. <GKennethR> He's alive :P <GreenReaper> Even so. \ 8) <Madelon> Lil`Cube: you had cavity searches? <Lil`Cube> not yet <Lil`Cube> trying to thou, just so I can check it off on my list of things to expirence \ 13) <fizzie after embedding some of his department research into fungot> Finally I have found some actually useful purpose for it. \ 14) <fungot> oerjan: are you a man, if th
04:11:12 <HackEso> oerjan: 4) <Warrigal> GKennethR: he should be told that you should always ask someone before killing them.
04:19:45 <oerjan> `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 <HackEso> 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:14 <HackEso> nur(1hackeso) - no description
04:20:47 <HackEso> @ is an OS made out of only the finest vapour.
04:21:36 <imode> seems like there's a story behind that.
04:25:08 <oerjan> 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:25 <HackEso> 🐐:🐐 <(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 <oerjan> hm i thought that unicode had something relevant but apparently not.
04:26:34 <oerjan> i think possibly ais523 has still something ongoing inspired by scapegoat.
04:27:38 <oerjan> `learn `@ <nick> <command> [<argument>] is a wrapper for running a HackEso command with a "nick:" prepended.
04:27:40 <HackEso> Learned '`@': `@ <nick> <command> [<argument>] is a wrapper for running a HackEso command with a "nick:" prepended.
04:28:17 <shachaf> How do you combine `1 and `@ ?
04:28:34 <HackEso> `@//`@ <nick> <command> [<argument>] is a wrapper for running a HackEso command with a "nick: " prepended.
04:29:29 <HackEso> `1: 838) <sgeo> 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:46 <oerjan> `@ shachaf `1 quote shachaf
04:29:47 <HackEso> shachaf: /hackenv/bin/nur: line 2: `1: command not found
04:30:00 <oerjan> `@ shachaf 1 quote shachaf
04:30:02 <HackEso> shachaf: 1/15:594) <shachaf> VMS Mosaic? <shachaf> I hope that's not Mosaic ported to VMS. <shachaf> Hmm. It's Mosaic ported to VMS. \ 604) * Sgeo|web wants to see elliott be wrong about something <elliott> Sgeo|web: That literally never happens. <shachaf> Sgeo|web: There you go. A great example. \ 608) <shachaf> You should get kmc in this channel. kmc has good quotes. <shachaf> `quote kmc <HackEgo> 686) <kmc> COCKS [...] <kmc> truly coc
04:30:28 <oerjan> of course it only prepends the first line shown
04:30:37 <oerjan> oh and won't split correctly
04:31:51 <kmc> what does `@ do
04:32:09 <HackEso> `@ <nick> <command> [<argument>] is a wrapper for running a HackEso command with a "nick: " prepended.
04:32:43 * oerjan failed to apply the obvious demonstration
04:33:03 <int-e> `@ int-e `welcome oerjan
04:33:04 <HackEso> int-e: /hackenv/bin/nur: line 2: `welcome: command not found
04:33:11 <int-e> `@ int-e welcome oerjan
04:33:12 <HackEso> int-e: oerjan: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <https://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
04:34:05 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/%40
04:34:28 <oerjan> i think `welcome uses it internally, anyway
04:34:37 <oerjan> (and i may have written that.)
04:35:01 <int-e> oh it's a nitia thing
04:35:37 <int-e> exec "bin/@", $_ . " ? welcome"
04:35:46 <int-e> yeah it uses it all right
04:35:58 <int-e> not in the most obvious way... because perl
04:37:05 <int-e> `welcome int-e oerjan
04:37:06 <HackEso> int-e: oerjan: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <https://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
04:37:28 <int-e> I didn't know it did that though.
04:39:10 <oerjan> hm maybe it wasn't me.
04:39:44 <int-e> `culprits bin/welcome
04:39:46 <HackEso> oerjän oerjän ellioẗt nitïa
04:40:22 <oerjan> i wonder why the `hurl link doesn't show more than the initial
04:41:00 <oerjan> although the rest were cleanups i think
04:41:28 <HackEso> <oerjän> chmod +x bin/*elcom* \ <oerjän> mv *elcom* bin \ <ellioẗt> rm bin/*elcom* \ Initïal import.
04:42:31 <int-e> Maybe hoag should replace that last one by <nitia> import.
04:44:54 <kmc> 22222222222222222222222
04:45:17 <shachaf> oerjan: I meant the correct splitting, yep.
04:46:08 <oerjan> `1 @ shachaf quote shachaf
04:46:10 <HackEso> 1/15:shachaf: 594) <shachaf> VMS Mosaic? <shachaf> I hope that's not Mosaic ported to VMS. <shachaf> Hmm. It's Mosaic ported to VMS. \ 604) * Sgeo|web wants to see elliott be wrong about something <elliott> Sgeo|web: That literally never happens. <shachaf> Sgeo|web: There you go. A great example. \ 608) <shachaf> You should get kmc in this channel. kmc has good quotes. <shachaf> `quote kmc <HackEgo> 686) <kmc> COCKS [...] <kmc> truly coc
04:46:11 <shachaf> I assume hoag, hog, hoat, etc. should just be deleted.
04:46:25 <shachaf> oerjan: But some IRC clients only hilight a line if your nick is at the beginning.
04:47:02 <int-e> shachaf: that would just sow confusion
04:47:11 <shachaf> Don't you hate it when a function sets errno to EWONTFIX?
04:48:32 <shachaf> So my SAT solver does 2-watched literals.
04:48:41 <shachaf> Shockingly, it doesn't help that much for 3SAT.
04:48:42 <int-e> not very pronouncible, sadly
04:49:36 <shachaf> It's almost like int-e isn't that shocked.
04:49:44 <int-e> it may be cheaper to just statically by literal for 3SAT
04:50:11 <shachaf> Just watch all three, or something else?
04:50:20 <int-e> because the difference between walking 2 lists or 3 lists is small and you save the maintenance overhead
04:50:37 <int-e> But I'd expect indexing to still be important.
04:50:54 <shachaf> But if you learn clauses by resolution they can get much longer presumably.
04:51:06 <int-e> Of course they can
04:51:14 <int-e> look at the reduction from SAT to 3SAT
04:51:52 <int-e> I read a negation into that and there wasn't any.
04:51:56 <shachaf> I mean, in practice, I imagine that 2WL could plausibly help quite a bit for 3SAT once I learn clauses.
04:54:03 <int-e> 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 <int-e> (I'm sure Minisat doesn't. But others may...)
05:00:19 <int-e> 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 <shachaf> Oh, I meant 2-watch being a small optimization over 3-watch.
05:01:57 <shachaf> It's certainly a big optimization over entire-instance-watch.
05:02:11 <shachaf> I assume no solver does that.
05:02:59 <int-e> Though I'd add "practical" or "competetive" to the mix :)
05:03:36 <shachaf> In fact I wrote a solver that did that before upgrading it to 2WL.
05:03:51 <shachaf> What should I implement next?
05:03:55 <int-e> . o O ( generate all assignments and check... could be a viable approach for golfing )
05:04:06 <shachaf> * CDCL * Restarts * Variable-choosing heuristics like VSIDS
05:04:19 <shachaf> * backjumping? Probably that makes more sense after CDCL
05:04:30 <int-e> restarts make no sense without heuristics
05:04:41 <int-e> or clause learning
05:04:57 <int-e> oh you mean because you actually learn polarities
05:05:16 <shachaf> Even if you restart fresh each time.
05:05:28 <int-e> do you select variables at random?
05:05:41 <shachaf> That's what I had in mind.
05:05:48 <shachaf> Of course if it's deterministic you don't get too much.
05:06:01 <shachaf> But your choices (variable order, initial assignment) have a huge impact. I was surprised at how much.
05:06:26 <int-e> but I think there's still a grain of truth
05:06:26 <shachaf> The original Luby paper was about Las Vegas algorithms, of course, which don't share any state.
05:06:46 <int-e> restarts need a heuristic whether your current run is a lucky or an unlucky one?
05:07:16 <shachaf> 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 <int-e> Hmm. Sounds reasonable.
05:15:42 <shachaf> http://www.cs.toronto.edu/~fbacchus/csc2512/Lectures/2013Readings/Skallah_Empirical_Study_SAT_Solvers.pdf answers this question, I guess.
05:15:53 <shachaf> CDCL has the biggest impact.
05:37:41 -!- oerjan has quit (Quit: Nite).
05:58:21 -!- atslash has joined.
07:00:47 <b_jonas> 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 <esowiki> [[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 <int-e> 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 <int-e> But I guess that's fine... the October challenge was pretty easy.
08:09:05 <jix> 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 <jix> 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 <jix> (there already is a place to store the other literal in the watchlist when blocking literals are used)
08:28:56 <esowiki> [[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 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67075&oldid=67074 * Quadril-Is * (+134) /* I/O */ Completed the section
08:47:56 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67076&oldid=67075 * Quadril-Is * (+231) /* Stack manipulation */ Started working on the section
08:48:12 <esowiki> [[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 <esowiki> [[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 <esowiki> [[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:38:00 <int-e> `learn A device is a browser session. Please verify your device.
09:38:05 <HackEso> Learned 'device': A device is a browser session. Please verify your device.
10:14:36 -!- LKoen has quit (Remote host closed the connection).
10:15:56 <HackEso> /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:11 <HackEso> 1/2:1085) <zzo38> No, you are mix up. Universe is the, made of spacetime, and of mathematics; not "kind of a dick" and so on. \ 904) <kmc> the pokémon theme is very similar to eye of the tiger and not as good \ 353) <Sgeo_> Something about faiing a asanity check <Sgeo_> sanity <Sgeo_> faliling <Sgeo_> failing \ 625) <oklopol> i don't lie, i tell stories <oklopol> there's no difference <oklopol> *a \ 58) <oklopol> Warrigal: what do you me
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 <fizzie> `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 <HackEso> 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 <fizzie> (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 <esowiki> [[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 <esowiki> [[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 <esowiki> [[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 <esowiki> [[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 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67084&oldid=67083 * Quadril-Is * (+18) /* Flow Control */
10:50:27 <esowiki> [[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 <esowiki> [[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 <esowiki> [[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 <esowiki> [[Earfuck]] N https://esolangs.org/w/index.php?oldid=67088 * Quadril-Is * (+434) My esolang.
11:48:31 <esowiki> [[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 <int-e> . 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 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67090&oldid=67087 * Quadril-Is * (+1371) Added examples.
13:23:31 <esowiki> [[D]] https://esolangs.org/w/index.php?diff=67091&oldid=63929 * Quadril-Is * (+29) /* Introduction */
13:26:44 <esowiki> [[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 <esowiki> [[Joke language list]] https://esolangs.org/w/index.php?diff=67093&oldid=66669 * Quadril-Is * (+9) /* General languages */
13:28:07 <esowiki> [[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 <esowiki> [[Special:Log/newusers]] create * PythonshellDebugwindow * New user account
14:35:47 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=67095&oldid=67048 * PythonshellDebugwindow * (+232)
14:38:22 <esowiki> [[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 <esowiki> [[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 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67098&oldid=67097 * Quadril-Is * (-23) /* Truth machine */
14:53:17 <esowiki> [[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 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67100&oldid=67099 * Quadril-Is * (+289) /* Examples */ Truth machine.
15:20:52 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67101&oldid=67100 * Quadril-Is * (-23) /* Truth machine */
15:21:02 <esowiki> [[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 <esowiki> [[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 <esowiki> [[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 <imode> it seems like concurrency primitives are the
16:46:14 -!- laerling_ has joined.
16:46:25 <imode> "missing link" for concatenative languages.
16:46:38 <imode> or at the very least languages like PostScript, Forth, etc.
16:47:25 <imode> 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:22 <kspalaiologos> new asm2bf release, featuring RLE de/compression built into the assembler
17:25:45 <imode> https://www.youtube.com/watch?v=iuC_DDgQmsM
17:30:17 -!- LKoen has joined.
17:44:51 <esowiki> [[Special:Log/newusers]] create * Js-on * New user account
17:52:41 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=67105&oldid=66233 * Palaiologos * (+609)
17:55:20 <esowiki> [[Brainfuck code generation]] https://esolangs.org/w/index.php?diff=67106&oldid=35781 * Palaiologos * (+60)
18:00:13 <esowiki> [[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 <esowiki> [[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: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 <arseniiv> someone knows how the art/sculpture genre is called where combinatorial objects of a particular kind are explored?
20:58:18 <arseniiv> for a primitive example, a hypothetical exhibition of Set cards
21:00:23 <arseniiv> 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 <arseniiv> it was called something, maybe someone heard
21:12:38 <imode> was it a physical sculpture?
21:19:32 <arseniiv> imode: seems like it’s not; kinetic sculpture also isn’t that :(
21:25:10 <imode> I've been searching and found nothing of the sort, sorry. :(
21:29:14 <fizzie> `` pwd # <- I've changed this at least temporarily, let's see what all breaks.
21:31:59 <fizzie> Well, found one thing that broke already.
21:32:08 <fizzie> `sled /hackenv/bin/paste//s|url tmp|url $HACKENV/tmp|
21:32:12 <HackEso> /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 <fizzie> `sled /hackenv/bin/sport//s|tmp/|$HACKENV/tmp/|g
21:35:17 <HackEso> /hackenv/bin/sport//cat "${2:-/dev/stdin}" >$HACKENV/tmp/spout.raw; distort $HACKENV/tmp/spout.raw | spore "${1-1}"
21:35:55 <fizzie> `sled /hackenv/bin/spore//s|/hackenv/tmp/|$HACKENV/tmp/|g
21:35:57 <HackEso> /hackenv/bin/spore//cat "${2:-/dev/stdin}" > $HACKENV/tmp/spout; spam "${1-1}"
21:36:41 <fizzie> (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 <fizzie> `sled /hackenv/bin/spam//s|/hackenv/tmp/|$HACKENV/tmp/|g
21:37:14 <HackEso> /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<len?line+1:1))" > $HACKENV/tmp/spline
21:38:29 <fizzie> `sled /hackenv/bin/just//s| tmp/| $HACKENV/tmp/|g
21:38:31 <HackEso> /hackenv/bin/just//grwp '\(is\|are\) just' | sed -e 's/:/ ::= /;s/$/\n/' > $HACKENV/tmp/just && url $HACKENV/tmp/just
21:42:40 <fizzie> `` rm /hackenv/bin/8$'\x0f'ball # I've no idea what this one was about
21:43:32 <fizzie> `sled /hackenv/bin/cbt//s|cat bin|cat $HACKENV/bin|
21:43:34 <HackEso> /hackenv/bin/cbt//cat $HACKENV/bin/"$1"
21:44:22 <fizzie> `sled /hackenv/bin/gs2c//s|python bin|python $HACKENV/bin|
21:44:24 <HackEso> /hackenv/bin/gs2c//echo "$@" | python $HACKENV/bin/gs2c.py
21:44:37 <fizzie> `sled /hackenv/bin/gs2x//s|python bin|python $HACKENV/bin|
21:44:38 <HackEso> /hackenv/bin/gs2x//python $HACKENV/bin/gs2.py "$@"
21:45:27 <fizzie> `sled /hackenv/bin/makelist//s|bin/|$HACKENV/bin/|
21:45:28 <HackEso> /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 <fizzie> `sled /hackenv/bin/makelist//s|bin/|$HACKENV/bin/|g
21:45:35 <HackEso> /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:46:02 <fizzie> `sled /hackenv/bin/makelist//s|$HACKENV/$HACKENV/|$HACKENV/|
21:46:09 <HackEso> /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:43 <fizzie> `` rm /hackenv/bin/script /hackenv/bin/scriptadd # executive override
21:47:53 <fizzie> `sled /hackenv/bin/?//s|cd wisdom|cd $HACKENV/wisdom|
21:47:55 <HackEso> /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 <fizzie> `sled /hackenv/bin/grwp//s|cd wisdom|cd $HACKENV/wisdom|
21:48:30 <HackEso> /hackenv/bin/grwp//#! /bin/bash \ cd $HACKENV/wisdom; shopt -s dotglob; grep -R "$@" -- *
21:48:50 <fizzie> `sled /hackenv/bin/gwn//s|cd wisdom|cd $HACKENV/wisdom|
21:48:52 <HackEso> /hackenv/bin/gwn//cd $HACKENV/wisdom; shopt -s dotglob; grep -ERls "$@" -- *
21:48:59 <fizzie> `sled /hackenv/bin/gwni//s|cd wisdom|cd $HACKENV/wisdom|
21:49:01 <HackEso> /hackenv/bin/gwni//cd $HACKENV/wisdom; shopt -s dotglob; grep -ERlis "$@" -- *
21:49:24 <fizzie> `sled /hackenv/bin/pastewisdom//s|url wisdom|url $HACKENV/wisdom|
21:49:26 <HackEso> /hackenv/bin/pastewisdom//#!/bin/sh \ url $HACKENV/wisdom
21:49:48 <fizzie> `sled /hackenv/bin/plwd//s|cd wisdom|cd $HACKENV/wisdom|
21:49:49 <HackEso> /hackenv/bin/plwd//cd $HACKENV/wisdom; pled "$1" | sed '1s/^Rosebud!$/Roswbud!/'
21:50:07 <fizzie> `sled /hackenv/bin/slwd//s|cd wisdom|cd $HACKENV/wisdom|
21:50:14 <HackEso> /hackenv/bin/slwd//cd $HACKENV/wisdom; sled "$1" | sed '1s/^Rosebud!$/Roswbud!/'
21:51:27 <fizzie> `sled /hackenv/bin/wisdom//s|wisdom|$HACKENV/wisdom|g
21:51:28 <HackEso> /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 <fizzie> `sled /hackenv/bin/wiseguys//s|wisdom|$HACKENV/wisdom|
21:52:45 <HackEso> /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:55 <HackEso> 1713 <oerjän> \ 689 <shachäf> \ 309 <b_jonäs> \ 300 <boil̈y> \ 241 <int-̈e> \ 158 <rdocöc> \ 142 <hppavilion[1̈]> \ 139 <wob_jonäs> \ 98 <tsweẗt> \ 72 <mromän>
21:53:00 <fizzie> Still maintaining a healthy lead, I see.
21:54:14 <fizzie> `sled /hackenv/bin/slashlearn//s|wisdom/|$HACKENV/wisdom/|g
21:54:16 <HackEso> /hackenv/bin/slashlearn//sep="//" \ [[ "$1" == ?*"$sep"* ]] || { echo 'Usage: `le/[/]rn <key>//<wisdom>' >&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 <fizzie> `sled /hackenv/bin/wrl//s|wisdom/|$HACKENV/wisdom/|
21:54:50 <HackEso> /hackenv/bin/wrl//url "$HACKENV/wisdom/$1"
21:55:08 <fizzie> `sled /hackenv/bin/wdit//s|wisdom/|$HACKENV/wisdom/|
21:55:10 <HackEso> /hackenv/bin/wdit//edit "$HACKENV/wisdom/$1"
21:56:14 <fizzie> `sled /hackenv/bin/whoops//s|wisdom/|$HACKENV/wisdom/|
21:56:16 <HackEso> /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 <fizzie> 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 <fizzie> `sled /hackenv/bin/cwlprits//s|wisdom/|$HACKENV/wisdom/|
21:57:32 <HackEso> /hackenv/bin/cwlprits//culprits "$HACKENV/wisdom/$1"
21:58:13 <fizzie> `sled /hackenv/bin/dowg//s|wisdom/|$HACKENV/wisdom/|
21:58:15 <HackEso> /hackenv/bin/dowg//doag "$HACKENV/wisdom/$1"
21:58:33 <fizzie> `sled /hackenv/bin/footnote//s|wisdom/|$HACKENV/wisdom/|
21:58:35 <HackEso> /hackenv/bin/footnote//cat "$HACKENV/wisdom/footnote $1"
21:59:36 <fizzie> `sled /hackenv/bin/forget//s|wisdom/|$HACKENV/wisdom/|g
21:59:37 <HackEso> /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 <fizzie> `sled /hackenv/bin/howg//s|wisdom/|$HACKENV/wisdom/|
22:00:14 <HackEso> /hackenv/bin/howg//hoag "$HACKENV/wisdom/$1"
22:00:34 <fizzie> `sled /hackenv/bin/hwrl//s|wisdom/|$HACKENV/wisdom/|
22:00:35 <HackEso> /hackenv/bin/hwrl//hurl "$HACKENV/wisdom/$1"
22:07:33 <fizzie> `sled /hackenv/bin/lastwisdoms//s|find .hg|find $HACKENV/.hg|;s|s=\^\.hg|s=^.*?.hg|
22:07:35 <HackEso> /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 <fizzie> `sled /hackenv/bin/leann//s|wisdom/|$HACKENV/wisdom/|
22:08:34 <HackEso> /hackenv/bin/leann//(($#==1)) && set -- "${1% *}" "${1#* }"; key=${1,,}; shift; cat <<< "${*,,}" > "$HACKENV/wisdom/$key" && echo "Learned «$key»"
22:09:31 <fizzie> `sled /hackenv/bin/learn//s|wisdom/|$HACKENV/wisdom/|
22:09:33 <HackEso> /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 <fizzie> `` 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:14:11 -!- arseniiv has quit (Ping timeout: 252 seconds).
22:19:52 <fizzie> (That one wasn't actually correct; fixed it in post.)
22:20:54 <fizzie> `sled /hackenv/bin/!//s|exec ibin|exec $HACKENV/ibin|
22:20:56 <HackEso> /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 <fizzie> `` rm '/hackenv/bin/*' # this one is just too dangerous
22:22:46 <fizzie> `sled /hackenv/bin/cmds//s|url bin|url $HACKENV/bin|
22:22:48 <HackEso> /hackenv/bin/cmds//url $HACKENV/bin
22:23:11 <fizzie> `sled /hackenv/bin/dobg//s|bin/|$HACKENV/bin/|
22:23:13 <HackEso> /hackenv/bin/dobg//doag "$HACKENV/bin/$1"
22:25:05 <fizzie> `sled /hackenv/bin/gs2c.py//s|bin/gs2.py|/hackenv/bin/gs2.py|
22:25:07 <HackEso> /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 <fizzie> `sled /hackenv/bin/interp//s|exec ibin/|exec $HACKENV/ibin/|
22:25:48 <HackEso> /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 <fizzie> `sled /hackenv/bin/newcmd//s|bin/|$HACKENV/bin/|g
22:26:43 <HackEso> /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 <fizzie> `` rm /hackenv/bin/randbin # for consistency with *
22:29:38 <fizzie> `` rm /hackenv/bin/show /hackenv/lib/dcc # this one just won't work
22:31:26 <fizzie> `sled /hackenv/bin/words//s|share/WordData|$ENV{'HACKENV'}/&|
22:31:27 <HackEso> /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 <fizzie> `sled /hackenv/bin/8ball//s|share/|$HACKENV/share/|
22:32:09 <HackEso> /hackenv/bin/8ball//#!/bin/sh \ shuf -n 1 $HACKENV/share/8ballreplies
22:32:28 <fizzie> `sled /hackenv/bin/acronym//s|share/|$HACKENV/share/|
22:32:30 <HackEso> /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 <shachaf> fizzie: whoa, what's all this?
22:33:10 <fizzie> `sled /hackenv/bin/addscowrevs//s|share/|$HACKENV/share/|g
22:33:12 <HackEso> /hackenv/bin/addscowrevs//echo $@ | xargs -n 1 | sort -n - $HACKENV/share/scowrevs -o $HACKENV/share/scowrevs
22:33:16 <shachaf> Is it for when people experiment with making files in the cwd?
22:33:24 <fizzie> shachaf: Yes, I'm trying out /hackenv/tmp as the work directory.
22:34:54 <fizzie> 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 <fizzie> `sled /hackenv/bin/airport-lookup//s|share/airports.dat|/hackenv/share/airports.dat|
22:35:00 <HackEso> /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 <fizzie> `sled /hackenv/bin/autowelcome//s|share/|$HACKENV/share/|g
22:36:44 <HackEso> /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 <fizzie> `sled /hackenv/bin/complain//s|share/|$HACKENV/share/|
22:37:16 <HackEso> /hackenv/bin/complain//print_args_or_input "$@" >> $HACKENV/share/Complaints.mp3; echo Complaint filed. Thank you.
22:37:35 <fizzie> `sled /hackenv/bin/complaints//s|share/|$HACKENV/share/|
22:37:36 <HackEso> /hackenv/bin/complaints//wc -l $HACKENV/share/Complaints.mp3
22:38:04 <fizzie> `sled /hackenv/bin/list//s|share/|$HACKENV/share/|g
22:38:09 <HackEso> /hackenv/bin/list//date > $HACKENV/share/conscripts; culprits $HACKENV/share/conscripts | xargs -n 1 | awk '!x[$0]++' | xargs
22:38:49 <fizzie> `sled /hackenv/bin/maim//s|share/|$HACKENV/share/|
22:38:51 <HackEso> /hackenv/bin/maim//shuf -n 1 $HACKENV/share/maimery | sed "s/\$target/$1/"
22:42:51 <fizzie> `` rm -r /hackenv/good /hackenv/evil /hackenv/bin/good /hackenv/bin/evil # sorry
22:45:56 <fizzie> `sled /hackenv/bin/bookofeso//s|esobible|$HACKENV/esobible|g
22:45:58 <HackEso> /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 <fizzie> (Almost removed that, don't think it really gets used.)
22:48:33 <fizzie> `sled /hackenv/bin/mislearn//s|tmflry/|$HACKENV/tmflry/|
22:48:35 <HackEso> /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 <fizzie> `fetch /hackenv/bin/tomfoolery https://hack.esolangs.org/get/bin/tomfoolery
22:53:52 <HackEso> 2019-11-16 22:53:52 URL:https://hack.esolangs.org/get/bin/tomfoolery [327/327] -> "bin/tomfoolery" [1]
22:54:23 <fizzie> 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 <b_jonas> fizzie: addquote and delquote would definitely break
22:54:55 <b_jonas> I see you're fixing some of the scripts
22:55:08 <b_jonas> fizzie: I meant to fix more scripts, but haven't got there yet
22:55:38 <fizzie> Yes, I've used some heuristics to pick up things that would likely break for bin, share, wisdom, ibin references.
22:56:01 <fizzie> (Didn't do quotes yet.)
22:56:07 <b_jonas> 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 <fizzie> 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 <fizzie> (You mean "${HACKENV:-/hackenv}", right?)
22:58:09 <b_jonas> 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 <b_jonas> the colon makes a difference only if the var is set but empty
23:00:01 <fizzie> `` A=""; echo "[${A-foo}] [${A:-foo}] [${B-foo}] [${B:-foo}]"
23:00:32 <b_jonas> oh darn it, now I keep typing commands in private message that don't owrk
23:00:46 <b_jonas> because I reference wisdom or quotes or bin with relative path
23:01:00 <b_jonas> `cat /hackenv/bin/card-by-name
23:01:01 <HackEso> #!/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:06 <HackEso> #!/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 <fizzie> Yes, it's kind of annoying.
23:01:24 <b_jonas> ^ template for when the directory is referenced in perl scripts or python scripts
23:01:34 <fizzie> I mean, one kind of fix would be to symlink /hackenv/tmp/bin -> /hackenv/bin and so on.
23:02:15 <b_jonas> fizzie: have you consider what it would break if you made /hackenv not writable?
23:02:44 <b_jonas> 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 <b_jonas> any change would probably break _something_
23:05:31 <fizzie> 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 <fizzie> `sled /hackenv/bin/addquote//s|quotes|${HACKENV-/hackenv}/quotes|
23:05:39 <HackEso> /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 <b_jonas> sure, fixing the scripts is good
23:08:23 <fizzie> `fetch /hackenv/bin/delquote https://hack.esolangs.org/get/bin/delquote
23:08:24 <HackEso> 2019-11-16 23:08:24 URL:https://hack.esolangs.org/get/bin/delquote [271/271] -> "bin/delquote" [1]
23:09:41 <fizzie> `sled /hackenv/bin/pastequotes//s|url quotes|url ${HACKENV-/hackenv}/quotes|
23:09:43 <HackEso> /hackenv/bin/pastequotes//#!/bin/sh \ if [ "$1" ]; then quote "$1" | paste; else url ${HACKENV-/hackenv}/quotes; fi
23:10:22 <fizzie> `sled /hackenv/bin/qc//s|quotes|${HACKENV-/hackenv}/quotes|
23:10:23 <HackEso> /hackenv/bin/qc//#!/bin/sh \ wc -l ${HACKENV-/hackenv}/quotes
23:11:58 <fizzie> `sled /hackenv/bin/quotenums//s|quotes|${HACKENV-/hackenv}/quotes|
23:13:07 <HackEso> /hackenv/bin/quotenums//#!/bin/sh \ grep -P -i -n "$1" ${HACKENV-/hackenv}/quotes | cut -d : -f 1 | xargs
23:13:47 <fizzie> `sled /hackenv/bin/whoq//s|quotes|${HACKENV-/hackenv}/quotes|
23:13:49 <HackEso> /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 <fizzie> Incidentally, whoq should probably be using the scowrevs system.
23:15:18 <HackEso> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $HACKENV are persistent, and $HACKENV/bin is in $PATH. $HACKENV is a mercurial repository, "`revert <rev>" 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 <fizzie> Heh, I never really remember `run is actually a thing, because everyone always uses ``.
23:26:08 <b_jonas> 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 <b_jonas> mind you, you can still `/bin/bash -csome command here
23:27:14 <fizzie> 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 <fizzie> `/bin/bash -c"echo foo"
23:27:21 <HackEso> /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:29 <HackEso> /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 <fizzie> (I'm sure it's *possible* to unbork with sufficient effort, though.)
23:32:30 <b_jonas> in that case, perl -esystem'some command'
23:35:49 <b_jonas> or like `/usr/bin/perl -esystemq(some command)
23:35:55 <b_jonas> like `/usr/bin/perl -esystem q(some command)
23:40:22 -!- sleepnap has joined.