00:08:00 <oerjan> have you tried rotating it 4 times in 24 hours hth
00:13:19 <fizzie> b_jonas: It's just https://twitter.com/fungot
00:13:19 <fungot> fizzie: he fnord unable, and in any event the government were more often the man, and understandably, brexit.
00:20:08 -!- oerjan has quit (Quit: Nite).
00:20:27 <fizzie> Error while checkign syntax automatically: (irony-server-error "irony-server is broken! Cannot open load file: No such file or directory, lisp-mnt")
00:20:40 <fizzie> Nothing ever works right if you don't keep using it. :/
00:53:10 <fizzie> Welp. Now there are no logs. :/
00:54:03 <fizzie> My deploy.sh is based on building at home and rsync'ing the binaries to the server. Turns out there's too much version shift between the systems now for that to work:
00:54:10 <fizzie> /home/esowiki/esologs: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /home/esowiki/esologs)
00:55:01 <fizzie> Well, at least I found this out by trying to restart the server component, so *collecting* logs should keep working.
00:55:20 <fizzie> I guess I can just build it on the server it needs to go to then.
00:56:15 -!- b_jonas has quit (Quit: leaving).
00:56:49 <fizzie> (Of course it doesn't have any of the necessary dependencies for building things.)
01:21:54 -!- xkapastel has quit (Quit: Connection closed for inactivity).
01:38:37 <fizzie> ...and of course the GCC 6.x available on the server's Debian version is too old to support <optional>...
01:50:12 <j4cbo> it might be <experimental/optional>
02:53:21 -!- salpynx has joined.
02:54:05 <fizzie> Also managed to work around it by producing a statically linked binary.
02:54:27 <fizzie> It has the usual "Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking" warnings, but seems like it was good enough.
02:56:41 <fizzie> Maybe by the next time this becomes an issue, buster has become the new stable.
02:58:44 <fizzie> (Also, there's no <experimental/variant>, so...)
03:21:00 -!- dauie_ has quit (Remote host closed the connection).
03:38:19 -!- salpynx has quit (Quit: Page closed).
05:14:57 -!- atslash has joined.
05:33:46 <esowiki> [[Talk:Eodermdrome]] https://esolangs.org/w/index.php?diff=59662&oldid=59497 * Salpynx * (+2398) answering my own question
05:49:29 -!- FreeFull has quit.
05:51:55 <esowiki> [[Talk:EsoScript]] N https://esolangs.org/w/index.php?oldid=59663 * Cortex * (+130) Created page with "== ... == This is literally just MediaWiki syntax. ~~~~"
06:26:20 -!- nfd9001 has joined.
06:31:23 -!- nfd9001 has quit (Ping timeout: 246 seconds).
06:31:35 <esowiki> [[Talk:Eodermdrome]] https://esolangs.org/w/index.php?diff=59664&oldid=59662 * Salpynx * (+534) /* Computational class / -completeness */
08:14:47 -!- arseniiv has joined.
09:00:40 -!- sebbu has quit (Read error: Connection reset by peer).
09:01:11 -!- sebbu has joined.
09:04:56 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
09:09:57 -!- Lord_of_Life has joined.
09:20:26 -!- heroux has quit (Ping timeout: 250 seconds).
09:21:28 -!- heroux has joined.
09:38:56 -!- AnotherTest has joined.
10:22:00 -!- wob_jonas has joined.
10:22:10 <wob_jonas> fizzie: are you trying to install something to the server that runs HackEso?
11:09:11 <fizzie> I was trying to update the bit that runs esolangs.org/logs, though it's the same server, sure.
11:12:45 <wob_jonas> so it at least doesn't have to run inside the hackeso sandbox
11:13:28 <fizzie> Yes. Although that does share userland with... well, the intermediate layer of sandboxing.
11:16:18 <wob_jonas> sure, a large part of the file system is shared read only
11:17:28 <fizzie> HackEso really goes at least three levels deep -- there's the (I think KVM-based) Bytemark VPS, which runs a systemd-nspawn namespace-container-style "chroot on steroids" thing, which then has HackEso's UML kernel.
11:18:52 <HackEso> processor: 0 \ vendor_id: User Mode Linux \ model name: UML \ mode: skas \ host: Linux dysnomia.zem.fi 4.9.0-5-amd64 #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04) x86_64 \ bogomips: 5134.74
11:19:01 <wob_jonas> it doesn't even tell what instruction set it supports anywhere
11:19:21 <wob_jonas> mind you, you can still find that out the intel way
11:19:27 <wob_jonas> it's just funny how sparse that cpuinfo is
11:19:45 <wob_jonas> it does say x86_64 as the base cpu arch
11:20:45 <fizzie> Yeah. The middle level shares a kernel with the top level, while the bottom level shares the userland. Although those are both just Debian stable installations, so they're more or less identical.
11:22:21 <fizzie> s/shares the userland/& with the middle level/
11:22:42 <fizzie> That's also why it says "dysnomia.zem.fi" -- that's the hostname in the container, though it has no presence in the public DNS since it's not directly reachable. The VPS itself is called something else.
11:22:52 <wob_jonas> isn't the top level also running on a virtual machine by a hosting provider?
11:23:04 <wob_jonas> so it's like four level deep at leat
11:23:04 <fizzie> Top level from my perspective, I guess.
11:23:24 <wob_jonas> at what level does the chat log script and chat http server run?
11:25:02 <wob_jonas> is the network of the middle layer already restricted by namespaces, with holes only to tunnel the irc connection, the http interface for the version control contents, and fetch?
11:25:22 <fizzie> The "esobot" (the IRC client and log-writer) and "esologs" (the esolangs.org/logs web server) binaries both run on the top level together with MediaWiki, though not for any particular reason.
11:25:53 <fizzie> HackEso's own machinery (so multibot, hackbot, the `fetch command and so) run on the middle one, and the `commands on the bottom one.
11:27:50 <fizzie> And yes, the container networking is namespaced. Outgoing, it allows TCP to ports 80, 443 and 6665 to any host (for `fetch and the IRC connection) and UDP 53 to the VPS provider's DNS servers.
11:28:13 <wob_jonas> so they're not tunneled, those are just passed through
11:28:27 <wob_jonas> I thought they were connected to an external fetch server
11:28:50 <wob_jonas> and an external http server for the version control interface
11:29:17 <wob_jonas> and then the hg repository lives in the middle level?
11:31:24 <fizzie> There's a virtual ethernet interface that's a point-to-point link between interfaces 'host0' in the container, and 've-dysnomia' in the top level, and there's iptables NAT rules. So not really tunneled, no.
11:31:58 <fizzie> There's no networking out of the UML, but historically on HackEgo (when it was still working) that was based on a tunnel to a proxy server.
11:33:09 <fizzie> And yeah, the hg repository is on the middle level (and mounted read-only to the bottom), although the filesystem hierarchy of the middle level is accessible from the top.
11:33:24 <wob_jonas> yeah, so you can back it up from the top
11:33:33 <esowiki> [[2/9 of an esolang]] https://esolangs.org/w/index.php?diff=59665&oldid=59526 * Cortex * (+1)
11:33:40 <wob_jonas> how much of this was inherited from hackego?
11:34:20 <fizzie> In fact, I think I might have the hgweb server running on the top level directly, though that's also for no special reason.
11:35:41 <fizzie> HackEgo was broadly similar, but in place of the container setup it just had a conventional chroot.
11:40:45 -!- Lord_of_Life_ has joined.
11:42:27 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
11:43:05 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:48:58 <HackEso> 2019-02-01 11:48:58.062828658 +0000 UTC February 1 Friday 2019-W05-5
12:34:03 -!- PaddyF has joined.
13:10:13 -!- PaddyF has left ("bbl").
13:34:09 -!- john_metcalf has joined.
13:39:41 -!- xkapastel has joined.
14:03:27 -!- atslash has quit (Ping timeout: 240 seconds).
14:07:30 -!- atslash has joined.
14:13:53 -!- atslash has quit (Ping timeout: 268 seconds).
14:14:22 -!- atslash has joined.
14:49:59 -!- Essadon has joined.
15:20:07 -!- Sgeo_ has joined.
15:23:02 -!- Sgeo has quit (Ping timeout: 246 seconds).
15:40:59 -!- sleepnap has joined.
16:15:42 -!- mniip has quit (Ping timeout: 604 seconds).
16:35:24 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
17:45:22 -!- dre has joined.
17:46:06 -!- dre has quit (Read error: Connection reset by peer).
18:42:25 -!- b_jonas has joined.
18:43:44 -!- b_jonas has set topic: Welcome to the international cloning factory for esoteric programming language discussion, design, development and deployment! | https://esolangs.org | logs: https://esolangs.org/logs/ http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | https://www.dropbox.com/s/fyhqyvy3i8oh25m/wisdom.pdf.
18:50:29 <fizzie> It's a shame other languages don't really have a Hoogle/Hayoo-like thing, at least as far as I know. Maybe it wouldn't work so well, but in Go I'm not so familiar with the standard(/quasistandard) libs and could easily look up some functions by type signature.
18:51:30 <b_jonas> how much "deployment" do we really do?
18:54:34 <orin> b_jonas: well fungot is arguably a "deployed" befunge progam
18:54:35 <fungot> orin: we are in the process of what i suppose the minister can, preferably, the termination, of his now even more counterproductive fiscal rule, but
18:55:06 -!- oerjan has joined.
19:01:51 <fizzie> b_jonas: Not much. Back when the cloud at cost system was still running, I was considering using it as a staging server for MediaWiki upgrades.
19:05:58 <fizzie> Other than that, I have a homegrown configuration pusher I use for all my systems (a git repo for configs, plus a bunch of Python to SSH in, verify that the live file matches the last-pushed revision and replace that with the latest) that also takes care of updating all the config files on both the top and middle levels. It's got a special case to use machinectl/nsenter to inject itself into the
19:06:04 <fizzie> container, so the container doesn't need to be SSH-reachable.
19:06:21 <fizzie> (The mounts are visible outside, but the UID/GID lookup is easier inside the container.)
19:07:56 <fizzie> It basically runs "ssh ... sudo [nsenter ...] python3 -" and feeds in a program that contains both the config file payload and the logic to insert it in place.
19:10:11 <fizzie> For code changes to esologs/esobot, there's just a shell script to do "bazel build -c opt //esologs //esobot" + rsync to put the binaries and the static files (.css, .js) in the right place. Didn't feel right putting those in the config pusher.
19:11:24 -!- mniip has joined.
19:11:28 <fizzie> I think that's about it. I'm always a little bit nervous when it comes time to update MediaWiki (it probably actually is way past time) because even though it's backed up, I haven't really ran any disaster recovery tests, and don't have a test environment to try on.
19:12:50 <fizzie> At least for the esologs/esobot binaries I can run them locally. There's actually a dozen lines of code in the esologs web server that if it's built without NDEBUG, it can serve the CSS/JS files for local testing. Normally that's done by nginx and it answers only for the dynamic parts.
19:27:23 <oerjan> b_jonas: has IOCCC ended, since you removed it from the topic?
19:35:32 <oerjan> someone should ask doctor rakethorn why he keeps not wearing shirts - although my obvious guess is that he's got orders to try to seduce agatha, but he could be a bit more subtle about it especially if he wants others not to interfere
19:35:41 -!- b_jonas has set topic: 2019 IOCCC ends March 15th -- http://www.ioccc.org/2019/rules.txt | Welcome to the international cloning factory for esoteric programming language discussion, design, development and deployment! | https://esolangs.org | logs: https://esolangs.org/logs/ http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | https://www.dropbox.com/s/fyhqyvy3i8oh25m/wisdom.pdf.
19:35:59 -!- Phantom_Hoover has joined.
19:35:59 -!- Phantom_Hoover has quit (Changing host).
19:36:00 -!- Phantom_Hoover has joined.
19:48:32 <oerjan> well, "guess", i think his conversation with wooster pretty much implied it.
19:57:23 -!- LKoen has joined.
20:27:25 -!- leonheart has quit (Ping timeout: 256 seconds).
20:34:23 <esowiki> [[Talk:Eodermdrome]] https://esolangs.org/w/index.php?diff=59666&oldid=59664 * Oerjan * (+416) Not that simple
20:57:36 -!- Phantom_Hoover has quit (Remote host closed the connection).
20:59:33 -!- leonheart has joined.
21:02:17 -!- Phantom_Hoover has joined.
21:02:17 -!- Phantom_Hoover has quit (Changing host).
21:02:17 -!- Phantom_Hoover has joined.
21:03:23 -!- FreeFull has joined.
21:03:59 -!- LKoen has quit (Remote host closed the connection).
21:08:35 -!- FreeFull has quit (Quit: kernel update).
21:09:26 -!- FreeFull has joined.
21:10:11 -!- LKoen has joined.
21:17:59 <lambdabot> ENVA 012050Z 09009KT CAVOK M04/M10 Q1013 RMK WIND 670FT 12009KT
21:32:01 -!- leonheart has quit (Ping timeout: 256 seconds).
21:37:29 -!- leonheart has joined.
21:47:19 -!- leonheart has quit (Ping timeout: 256 seconds).
21:51:27 -!- arseniiv has quit (Read error: Connection reset by peer).
21:51:27 -!- arseniiv has joined.
21:59:28 <lambdabot> EGLL 012150Z AUTO 36007KT 320V030 5000 -RASN BKN010 OVC029 02/01 Q0995
22:01:43 <lambdabot> KOAK 012153Z 14016KT 10SM SCT046 BKN055 OVC100 15/09 A2978 RMK AO2 RAB2058E19 SLP084 P0000 T01500089
22:03:58 <oerjan> ...I can't claim much better on that :P
22:26:59 -!- b_jonas has quit (Quit: leaving).
22:39:51 <kmc> wish i was cool enough to be able to read metar
22:43:30 <fizzie> The temperature (in celsius) is the first half of the M04/M10, 02/01, 15/09 pair.
22:44:21 <kmc> so it's 2°C at EGLL and 15°C at KOAK?
22:44:42 <fizzie> Yes. And -4°C at ENVA.
22:44:50 <kmc> ah, M = minus
22:45:05 <kmc> what's the second number?
22:45:25 <fizzie> When it's M00/M00, that's called "cow temperatures".
22:45:31 <fizzie> Because that's how a cow goes.
22:45:48 <fizzie> (Not official METAR jargon.)
22:45:53 <oerjan> or swims, in that case
22:46:29 -!- 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.”).
22:46:36 <oerjan> actually, more like gets stuck in ice, i guess
22:46:58 <fizzie> The 012153Z part is a partial timestamp in DDHHMMZ format, so the report was 21:53 UTC on the 1st day of some unspecified month.
22:48:34 <fizzie> And the 14016KT is wind direction 140°, 16 knots. Sometimes it has extra stuff, like "...10G20KT" is 10 knots, gusts of 20, or "VRB" in place of a direction.
22:52:08 <fizzie> 10SM and 5000 are visibilities, in statute miles and metres respectively. SCT046, BKN055 OVC100 are cloud covers (scattered, broken, overcast) with heights in 100s of feet. A2987 and Q0995 are the air pressure in some units (mmHg and hPa?), and that's pretty much all I remember.
22:52:10 -!- leonheart has joined.
22:52:40 <fizzie> Oh, and precipitation is various codes, so -RASN is weak (-) rain (RA) and snow (SN).
22:53:53 <fizzie> I think I've only seen DZ, RA, SN, GR, BR, FG and HZ (drizzle, rain, snow, hail, mist, fog, haze), but there's a lot more.
22:56:27 -!- AnotherTest has quit (Ping timeout: 264 seconds).
23:01:23 <shachaf> definitely had that one here tdnh
23:05:43 <fizzie> Smoke, apparently. Haven't seen that here.
23:05:47 <fizzie> Also no code for drones.
23:07:58 <FireFly> They might have to add one soon
23:08:24 <FireFly> how else would UK airports report the condition at the runway accurately...
23:08:43 <lambdabot> EGPH 012250Z VRB02KT 9999 FEW022 BKN038 01/00 Q1002
23:09:57 <fizzie> Does the "PH" there mean Phantom_Hoover? Is it your own airport?
23:10:03 -!- leonheart has quit (Ping timeout: 256 seconds).
23:16:46 <Phantom_Hoover> i don't actually live in edinburgh any more but i don't know the icao for glasgow airport
23:16:58 <HackEso> Glasgow (GLA, EGPF) \ Wokal Field Glasgow International Airport (GGW, KGGW) \ Glasgow Railway Station (?, ?) \ Glasgow Buchanan Bus Station (?, ?) \ Glasgow City Heliport (?, EGEG) \ Glasgow Industrial (?, 07MT)
23:17:08 <fizzie> Very close, lexicographically.
23:17:26 <lambdabot> EGPF 012250Z AUTO 28007KT 9999 NCD 01/M03 Q1004
23:18:03 <lambdabot> EGLC 012250Z AUTO 34005KT 280V010 8000 -RA SCT010 BKN018 OVC024 02/01 Q0995
23:18:16 <fizzie> I flew from that place the other day for the first time.
23:18:24 -!- leonheart has joined.
23:18:32 -!- leonheart has quit (Client Quit).
23:22:08 <fizzie> `fetch share/airports.dat https://raw.githubusercontent.com/jpatokal/openflights/master/data/airports-extended.dat
23:22:09 <HackEso> 2019-02-01 23:22:09 URL:https://raw.githubusercontent.com/jpatokal/openflights/master/data/airports-extended.dat [1632638/1632638] -> "share/airports.dat" [1]
23:22:15 <HackEso> London City Airport (LCY, EGLC)
23:22:54 <fizzie> (airports-extended.dat is the one with also train stations and ferry terminals, so maybe the plain airports.dat would've been better.)
23:38:25 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:41:36 -!- Lord_of_Life_ has joined.
23:42:58 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
23:43:02 <kmc> `icao ksfo
23:43:03 <HackEso> San Francisco International Airport (SFO, KSFO)
23:43:28 <kmc> usa gets the best icao codes cause we're the best
23:43:41 <kmc> that's also why our phone country code is 1
23:43:57 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
23:44:41 <fizzie> Canada has the same deal when it comes to ICAO codes, it's just XXX <-> CXXX.
23:45:20 <fizzie> And aren't they in the +1 area too?
23:45:28 <kmc> but their 3 letter codes are gibberish
23:45:30 <kmc> YYZ, give me a break
23:48:26 -!- arseniiv has quit (Ping timeout: 246 seconds).
23:49:03 <HackEso> Lester B. Pearson International Airport (YYZ, CYYZ)
23:49:33 <fizzie> Maybe that should print the city as well.
23:49:44 <fizzie> When it's not a substring of the airport name, say.
23:50:05 <fizzie> `` grep CYYZ share/airports.dat
23:50:07 <HackEso> 193,"Lester B. Pearson International Airport","Toronto","Canada","YYZ","CYYZ",43.6772003174,-79.63059997559999,569,-5,"A","America/Toronto","airport","OurAirports"
23:51:23 <kmc> it has train stations too? how does that work?
23:51:53 <fizzie> That's just what they said on the download page.
23:52:16 <fizzie> `` grep Euston.Railway share/airports.dat
23:52:17 <HackEso> 7393,"London Euston Railway Station","London","United Kingdom",\N,\N,51.5284,-0.1331,0,0,"U","Europe/London","station","User"
23:52:36 <fizzie> Nulls (with the \N CSV encoding) on the ICAO and IATA columns, I guess.
23:53:16 <fizzie> (I don't think it has more than a small fraction of railway stations.)
23:53:23 <kmc> some US train stations have codes
23:53:27 <kmc> `icao kzfv
23:53:36 <HackEso> Philadelphia 30th St Station (ZFV, ?)
23:55:28 <fizzie> The internet alleges that there's actually an ICAO code ("EGGO") for the London Metropolitan Area.
23:56:35 <kmc> some airlines in the US will sell you a ticket which includes a rail connection
00:36:01 -!- copumpkin has quit (Ping timeout: 244 seconds).
00:51:10 -!- oerjan has quit (Quit: Nite).
01:32:02 -!- sleepnap has left.
02:01:30 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:18:26 -!- Essadon has quit (Quit: Qutting).
02:30:32 -!- moei has joined.
02:31:46 -!- yaewa has quit (Ping timeout: 250 seconds).
02:56:59 -!- imode has joined.
03:41:51 -!- FreeFull has quit.
05:48:34 -!- user24 has joined.
05:54:06 -!- yaewa has joined.
05:56:09 -!- moei has quit (Ping timeout: 268 seconds).
06:04:07 -!- sebbu has quit (Ping timeout: 246 seconds).
06:58:55 -!- sebbu has joined.
08:42:02 -!- sleffy has joined.
08:42:11 -!- sleffy has quit (Read error: Connection reset by peer).
09:23:14 <esowiki> [[Golfuck]] N https://esolangs.org/w/index.php?oldid=59667 * A * (+1332) Created page with "{{lowercase}} [[golfuck]] is an extension of [[brainfuck]]. It is created in order to write short programs. In addition to brainfuck, golfuck adds a stack. =Commands added= <p..."
09:31:19 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59668&oldid=59667 * A * (+263)
09:32:07 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59669&oldid=59668 * A * (+26)
09:32:53 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59670&oldid=59669 * A * (+1) /* Quine(Directly translated from Golfscript) */
09:38:04 -!- Sgeo_ has quit (Read error: Connection reset by peer).
09:38:28 -!- Sgeo_ has joined.
09:39:39 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59671&oldid=59670 * A * (+650)
09:40:46 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59672&oldid=59671 * A * (+8) /* Implementation in C++ */
09:44:52 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59673&oldid=59672 * A * (-2) /* Partial implementation in C++ */
09:45:34 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59674&oldid=59673 * A * (-8) /* Commands added */
09:45:52 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59675&oldid=59674 * A * (-38) /* Commands added(still extending) */
09:46:22 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59676&oldid=59675 * A * (-6) /* Cat program(string version, hexdump) */
09:48:08 -!- moei has joined.
09:49:07 -!- yaewa has quit (Ping timeout: 240 seconds).
09:51:11 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59677&oldid=59676 * A * (+72)
09:53:16 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=59678&oldid=59630 * A * (+24) /* GolfScript */
09:53:37 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=59679&oldid=59678 * A * (+1) whoops
09:55:06 <esowiki> [[List of quines]] https://esolangs.org/w/index.php?diff=59680&oldid=59592 * A * (+26) /* Glass */
09:56:52 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=59681&oldid=59577 * A * (+32) /* Goldfish */
09:58:34 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59682&oldid=59677 * A * (-862) Too lazy to write an interpreter
09:59:33 <esowiki> [[Talk:Eodermdrome]] https://esolangs.org/w/index.php?diff=59683&oldid=59666 * Salpynx * (+2805) /* Computational class / -completeness */ my mistake on input matching, but open-node identity preserving is not that restrictive
09:59:38 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59684&oldid=59682 * A * (+862) Undo revision 59682 by [[Special:Contributions/A|A]] ([[User talk:A|talk]])
10:04:10 -!- imode has quit (Ping timeout: 250 seconds).
10:05:08 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59685&oldid=59684 * A * (+0) fix a problem
10:19:57 -!- arseniiv has joined.
10:32:01 -!- AnotherTest has joined.
10:48:04 -!- user24 has quit (Quit: Leaving).
10:56:53 <esowiki> [[Talk:Eodermdrome]] https://esolangs.org/w/index.php?diff=59686&oldid=59683 * Salpynx * (+948) /* Computational class / -completeness */ stating my argument for the Eodermdrome command superset calculation
11:41:14 -!- Lord_of_Life_ has joined.
11:43:56 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
11:44:00 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:49:31 <HackEso> 268) <Gregor> I use LiGNUXFCE+apps <Gregor> That's pronounced by saying "Linux" and then vomiting, btw. \ 48) <Madelon> both of you, quit it with the f-bombs. <Madelon> kaelis: what's the matter? something censoring stuff you're interested in?
11:55:57 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59687&oldid=59685 * A * (+281) /* Partial implementation in C */
12:04:14 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59688&oldid=59687 * A * (+70) /* Partial implementation in C++ */
12:06:47 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59689&oldid=59688 * A * (+113) /* Commands added(still extending) */
12:07:14 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59690&oldid=59689 * A * (-85) /* Commands added(still extending) */
12:07:45 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59691&oldid=59690 * A * (-7) /* Commands added(still extending) */
12:16:21 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59692&oldid=59691 * A * (-39) /* Commands added(still extending) */
12:18:01 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59693&oldid=59692 * A * (+2) /* Commands added(still extending) */
12:19:56 -!- AnotherTest has quit (Ping timeout: 240 seconds).
12:20:42 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59694&oldid=59693 * A * (+226) /* Partial implementation in C++ */
12:22:05 -!- Sgeo_ has quit (Read error: Connection reset by peer).
12:22:31 -!- Sgeo_ has joined.
12:31:32 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59695&oldid=59694 * A * (-25) /* Cat program(string version, hexdump) */
12:31:52 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59696&oldid=59695 * A * (+5) /* Computational class */
12:35:27 -!- Essadon has joined.
12:36:40 -!- Essadon has quit (Max SendQ exceeded).
12:39:56 -!- b_jonas has joined.
13:14:15 <b_jonas> Is a comedian the same as a median?
13:29:58 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59697&oldid=59696 * A * (+193) /* Partial implementation in C++ */
13:32:49 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59698&oldid=59697 * A * (+46) Fix nested parenthases
13:37:25 -!- ais523 has joined.
13:39:03 <lambdabot> EGBB 021320Z 35013KT 9999 FEW024 04/M02 Q1010
13:40:46 <ais523> fizzie: in object-oriented languages, it's often hard to know what's a method versus a function versus a builder
13:40:55 <ais523> so a hoogle-alike would either have to check all possibilities or require the user to do so
13:41:04 <ais523> (also the problem is often working out what object to use, not what method to use)
13:41:38 <ais523> meanwhile, in languages like C, there often aren't /enough/ types to narrow the results down, and very few higher-order functions anyway (which is where hoogle works best)
13:42:23 <ais523> b_jonas: re esolang deployment, I'd say TIO is probably the leader in that at the moment
13:52:04 <b_jonas> why does OEIS not find this?
13:52:57 <b_jonas> ais523: that seems likely. is TIO associated with freenode/#esoteric in some way?
13:54:11 <ais523> b_jonas: it has a chat room on chat.stackexchange.com
13:54:55 <ais523> `learn TIO is Try It Online!, <https://tio.run/>, a web-based interpreter for over 600 languages, including hundreds of esolangs
13:54:57 <HackEso> Learned 'tio': TIO is Try It Online!, <https://tio.run/>, a web-based interpreter for over 600 languages, including hundreds of esolangs
13:55:05 <arseniiv> @oeis 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5
13:55:11 <lambdabot> https://oeis.org/A001511 The ruler function: 2^a(n) divides 2n. Or, a(n) = 2...
13:55:12 <lambdabot> [1,2,1,3,1,2,1,4,1,2,1,3,1,2,1,5,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1,6,1,2,1,3,1,2...
13:56:48 <b_jonas> perlbot used to have an oeis search primitive built in too, but it's bitrotten since
14:01:10 <arseniiv> how do you accent “abacaba”? I seem to gravitate to the third syllable
14:02:41 <int-e> > fix((1:).(>>=(:[1]).succ))
14:02:43 <lambdabot> [1,2,1,3,1,2,1,4,1,2,1,3,1,2,1,5,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1,6,1,2,1,3,1,2...
14:06:21 <int-e> I guess the pattern continues like this: ,aba'caba,aba"daba,aba'caba
14:07:01 <int-e> (or maybe the next step is a short pause... ,aba'caba,aba daba,aba'caba)
14:14:58 -!- FreeFull has joined.
14:15:22 <arseniiv> int-e: there’s something wrong, no two adjacent letters should be the same
14:18:14 <j-bot> b_jonas: 1 1 1 1 1 1 1 1
14:18:14 <j-bot> b_jonas: 1 1 1 1 1 1 1 0
14:18:14 <j-bot> b_jonas: 1 1 1 1 1 1 0 1
14:18:14 <j-bot> b_jonas: 1 1 1 1 1 1 0 0
14:18:14 <j-bot> b_jonas: 1 1 1 1 1 0 1 1
14:18:14 <j-bot> b_jonas: 1 1 1 1 1 0 1 0
14:18:14 <j-bot> b_jonas: 1 1 1 1 1 0 0 1
14:18:15 <j-bot> b_jonas: 1 1 1 1 1 0 0 0
14:21:05 <int-e> arseniiv: yeah I realized that a minute later but didn't bother to fix it.
14:21:45 <j-bot> b_jonas: 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 4 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 5 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 4 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 6 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 4 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 5 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 4 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 7 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 4 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 5 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 4 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 6 ...
14:22:00 <b_jonas> [ a.{~97+1 i.~"1|."1 #:}.i.2^8
14:22:01 <j-bot> b_jonas: abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacaba
14:22:53 <int-e> > fix(('a':).(>>=(:['a']).succ))
14:22:55 <lambdabot> "abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadaba...
14:23:38 <int-e> yay I have a shorter nick so I get two extra characters for golfing ;-)
14:24:02 <b_jonas> throw in a (var) to remove the double quote :-)
14:24:03 <int-e> > fix$('a':).(>>=(:['a']).succ)
14:24:05 <lambdabot> "abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadaba...
14:24:13 <b_jonas> or does var not work for infinite strings?
14:24:44 <int-e> according to oerjan, `var` works for infinite strings whereas `text` does not.
14:25:09 <int-e> > fix$('a':).(>>=(:"a").succ)
14:25:11 <lambdabot> "abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadaba...
14:25:12 <b_jonas> @run var (cycle "long string ")
14:25:14 <lambdabot> long string long string long string long string long string long string long...
14:25:32 <b_jonas> also, it turns out that lambdabot gives a much longer result in private message
14:26:11 <int-e> Yes, you only have yourself to blame if it spams you privately...
14:27:44 <j-bot> b_jonas: abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabaiabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabah...
14:28:59 <j-bot> b_jonas: abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabaiabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabah...
14:29:27 <b_jonas> J doesn't handle infinite expressions, so this output is only 512 bytes long
14:34:50 <arseniiv> now we should invent an esolang with infinite expressions
14:35:10 <arseniiv> (as if it wasn’t invented yet… I bet it was)
14:35:42 <b_jonas> many programming languages already have an interactive repl, which can evaluate partial programs up to the first top-level semicolon or similar
14:35:55 <b_jonas> some esolangs have such a thing too
14:36:06 <arseniiv> . o O ( hm, could I golf abacaba in C# in a reasonable amount of code )
14:37:26 <b_jonas> even among esolangs that aren't brainfuck-alikes
15:00:47 <arseniiv> okay I’m not a golfer at all, so the result is this long:
15:00:50 <arseniiv> class A{static void Main(){B(106);}static void B(int c){if(c>96){B(c-1);System.Console.Write((char)c);B(c-1);}}}
15:01:14 <arseniiv> > length "class A{static void Main(){B(106);}static void B(int c){if(c>96){B(c-1);System.Console.Write((char)c);B(c-1);}}}"
15:02:12 <arseniiv> oh, sorry, TIO shows the length in plain sight
15:07:12 <b_jonas> hmm, would that be shorter in J than the one I showed above? let me see
15:10:09 <j-bot> b_jonas: abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabaiabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabah...
15:10:21 <j-bot> b_jonas: abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabaiabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabah...
15:10:36 <j-bot> b_jonas: abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabahabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabaiabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabah...
15:11:30 <b_jonas> arseniiv: you're right, writing it that way is shorter if you don't have infinite lists
15:11:51 <b_jonas> infinite lists might not be the discriminator
15:12:15 <b_jonas> I wonder how long a Haskell this would translate to.
15:12:31 <b_jonas> it would be some fold or another
15:15:21 <int-e> > foldl(\x y->x++y:x)[]['a'..'j']
15:15:23 <lambdabot> "abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadaba...
15:15:26 <int-e> > foldr(ap(++).(:))[]"jihgfedcba"
15:15:29 <lambdabot> "abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadaba...
15:16:15 <b_jonas> > foldl(\x y->x++y:x)[]['a'..'j']
15:16:17 <lambdabot> "abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadaba...
15:17:52 <int-e> > foldl(\x y->x++y:x)[]['a'..] -- probably too slow
15:19:06 <int-e> it's a finite list, just a pretty long one.
15:19:10 <b_jonas> > foldr(ap(++).(:))[]"gfedcba"
15:19:12 <lambdabot> "abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadaba...
15:19:48 <b_jonas> so the fold would be two to that power long, which is greater than 2**256 so it never terminates
15:20:09 <int-e> well... theoretically I disagree :)
15:21:29 <int-e> In practice it will run out of memory in a reasonable amount of time.
15:21:59 <b_jonas> sorry, I'm thinking about cryptography heuristics, like how attacks can use up to about 2**128 bits of memory and about 2**128 runtime and 2**256 total computation
15:22:10 <int-e> (it will also print a few million characters because of laziness)
15:23:09 <int-e> yeah both these numbers seem to be reasonably safe upper bounds. :)
15:23:54 <b_jonas> int-e: we need reasonably safe because we want to add some luck, eg. we don't want to design cryptosystems for which the strongest attack works with exactly 1/2 probability
15:24:16 <b_jonas> we want the crypto to be unbreakable even if Eve is somewhat lucky
15:27:18 <b_jonas> so we use 512-bit keys if we're certain that the trap function has no vulnerability but you can do a square root speed and fourth root memory attack, such as for digests where we don't want collisions even if the attacker can choose a plaintext, and 256 bit keys when the trap function has no vulnerability and we're certain that no such square root attack is feasable with only cube root memory,
15:27:52 <b_jonas> and the heuristic gets harder for public key crypto because we can't use just trap functions to implement them
15:28:27 <arseniiv> b_jonas: I’m glad my long code helped you shorten the J one :)
15:28:41 <b_jonas> arseniiv: it's not long. it fits in an irc line.
15:29:25 <b_jonas> it'd still fit in an irc line if you translated it to java.
15:30:28 <arseniiv> but I thought it should be as small as possible
15:31:12 <arseniiv> I even tried to write some cleverness like "using C = System.Console", but it proved to be longer
15:31:46 <b_jonas> yeah, that doesn't help if you only have one reference to System.Console in the code
15:31:53 <arseniiv> s/as small as possible/smaller than I think it’s really possible
15:35:40 <int-e> Hmm maybe not millions... it was up to 24GB after printing 451 characters.
15:35:52 <arseniiv> `learn ASAP, in code golf, means as small as possible
15:35:54 <HackEso> Learned 'asap': ASAP, in code golf, means as small as possible
15:36:20 <int-e> I have no good mental model for how this should grow over time.
15:39:43 <int-e> > foldl(\x y->x.(y:).x)id['a'..][]
15:39:46 <lambdabot> "abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadaba...
15:47:56 <b_jonas> > map(\x->chr$97+popCount(x.&.(-x)-1))[1..]
15:47:58 <lambdabot> "abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadaba...
15:48:06 <b_jonas> ^ how do you golf this one?
15:49:25 <b_jonas> and do the libraries that lambdabot import have a count trailing zeroes function somewhere, so that we don't have to write it in terms of popcount?
15:51:28 <b_jonas> @pl map(\x->chr$97+popCount(x.&.(-x)-1))[1..]
15:51:28 <lambdabot> map (chr . (97 +) . popCount . subtract 1 . ap (.&.) negate) [1..]
15:57:27 <b_jonas> @pl map(\x->chr$97+popCount(-1-(-x.|.x)))[1..]
15:57:27 <lambdabot> map (chr . (97 +) . popCount . negate . (-) 1 . negate . join (.|.)) [1..]
15:58:03 <lambdabot> expecting lambda abstraction or expression
15:58:11 <lambdabot> expecting white space, "()", natural, identifier, lambda abstraction or expression
16:03:20 <b_jonas> > map(\x->chr$97+popCount((-1)-(-x.|.x)))[1..]
16:03:22 <lambdabot> "abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadaba...
16:03:24 <b_jonas> @pl map(\x->chr$97+popCount((-1)-(-x.|.x)))[1..]
16:03:25 <lambdabot> map (chr . (97 +) . popCount . (-) -1 . negate . join (.|.)) [1..]
16:04:15 <b_jonas> that still doesn't quite look right
16:07:19 <int-e> oh well, @pl being buggy is not exactly a new thing.
16:08:40 <int-e> I wasn't thinking clearly or I would not even have tried that.
16:10:36 <b_jonas> meh, with haskell you never know
16:11:04 <b_jonas> I think in ruby the spaces can matter in some expression involving unary negation
16:13:09 <b_jonas> yeah, (f -2) is a method call (f(-2)), but (f-2) is a subtraction (f.-2)
16:14:02 <b_jonas> and that's just the simplest case
16:14:06 <b_jonas> ruby syntax is complicated
16:14:48 <b_jonas> also (f - 2) and (f- 2) are also subtraction
16:16:05 <b_jonas> and by the way, (-x) desugars to the method call (x.-@)
16:17:25 <b_jonas> try with different numbers, for (-(1`mod`2)) and ((-1)`mod`2) are equal
16:18:00 <b_jonas> oh, maybe that's one of the other mod operations
16:18:25 <b_jonas> there's like seven or so of them, even if you don't count the behavior for overflow or division by zero
16:18:34 <lambdabot> expecting white space, "()", natural, identifier, lambda abstraction or expression
16:19:57 <lambdabot> • No instance for (Num Bool) arising from a use of ‘negate’
16:23:01 <int-e> Basically, to parse unary - correctly one needs to be aware of the precedence level of nearby infix oerators... and @pl's parser is not. So things are broken, and it's not obvious how to do it correctly on top of http://hackage.haskell.org/package/parsec-3.1.13.0/docs/Text-ParserCombinators-Parsec-Expr.html.
16:23:14 <int-e> (which the @pl parser is using)
16:23:28 <int-e> Arguably it should use haskell-src-exts instead.
16:26:55 <int-e> -- TODO, use Language.Haskell
16:27:43 -!- arseniiv has quit (Read error: Connection reset by peer).
16:28:00 -!- arseniiv has joined.
16:30:32 -!- probablymoony has joined.
16:30:40 -!- moony has quit (Quit: Bye!).
16:54:52 <b_jonas> wow, strange. apparently Knuth uses the notation "sec" in chapter 7.1.3, and doesn't define it anywhere, not even in appendix B. he's using it in a context where it's possible to reverse engineer what he means, but still, it's strange.
16:56:20 <ais523> @pl \x y z -> ((x z) (y z))
17:07:47 <int-e> b_jonas: well that narrows it down to 69 pages.
17:10:06 <int-e> Yeah I see. So it is the standard trigonometric function.
17:13:56 <int-e> Nah, I think they are standard. Programming languages make a bad measuring stick for what constitutes a standard function in mathematics.
17:20:23 <arseniiv> first it’s a secant, and then there are haversines all over the place
17:25:37 -!- sleepnap has joined.
17:31:32 <HackEso> a-é-ro-g-liss-e-ur. If you mention eels, you'll get smacked with one of them in a most unappropriate manner.
17:33:28 <b_jonas> int-e: yeah, I have to admit, Abramowitz & Stegun defines it on http://www.convertit.com/Go/ConvertIt/Reference/AMS55.asp?Res=150&Page=72 , which is close to making it a standard notation
17:34:18 <b_jonas> (and that's carried on to https://dlmf.nist.gov/4.14 )
17:35:56 <b_jonas> are there definitions for ver-hyperbolic functions?
17:42:30 <b_jonas> and is there any relation to were-creatures?
18:08:11 -!- xkapastel has joined.
18:22:14 -!- sleepnap has quit (Ping timeout: 268 seconds).
18:42:04 <ais523> versinh doesn't make much sense because sinh isn't bounded
18:42:46 <ais523> there isn't a vertan for the same reason
18:43:42 <b_jonas> ais523: there's an extan, but sure
18:45:25 <b_jonas> I don't know, I usually just use sin, cos, tan, sinh, cosh, tanh for formulas, or exp(i*x). I don't know how the other stuff work.
18:48:18 <shachaf> I'm skeptical of defining too many special-case names.
18:48:43 <shachaf> Maybe it made sense back in the day when people had tables of all these functions.
18:48:44 -!- imode has joined.
19:04:26 <kmc> shachaf: do you think sin or cos is more fundamental?
19:04:42 <kmc> i think cos but i forgot why
19:04:47 <kmc> some stuff with fourier series comes out nicer?
19:11:01 <ais523> shachaf: the main reason to use versine is because of rounding errors, if you happen to need (1 - cos x) and the resulting value is near 0 you can't calculate that from cos x, because values near 1 have far fewer significant figures
19:11:49 <ais523> but modern computers can calculate it as 2((sin(x/2))²) without losing much accuracy, so having it as a separate primitive is less important
19:13:06 <kmc> shachaf: do you know the thing about RF mixing and trig identities and nonlinear devices and taylor series?
19:13:13 <kmc> which basically describes how all modern radios work
19:13:41 <kmc> ok i will tell you whether you like it or not!
19:13:53 <kmc> because it is some Cool Math
19:15:23 <kmc> suppose you have a radio which can tune frequencies over a wide range
19:16:07 <kmc> for various engineering reasons, you often want to shift the signals of interest into a fixed frequency range
19:17:01 <kmc> (one is that it's easier to build circuits which perform well on a fixed range; another is that you might want to sample the signal digitally and it's easier when you reduce the frequency first)
19:17:54 <kmc> to do this you use a local oscillator to generate a frequency near the frequencies of interest
19:17:58 <ais523> the main reason is that high-frequency circuitry is a pain to design and shield correctly, all sorts of weird things happen at high frequencies
19:18:17 <kmc> and then multiply that time-varying signal by the RF input to generate an "intermediate frequency" (IF) signal
19:18:20 <ais523> so you want to reduce the input to intermediate frequency as quickly as possible
19:19:00 <kmc> if the RF signal has frequency w_0 and the LO has frequency w_1 then you get IF at w_0 - w_1, plus another at w_0 + w_1 which is ignored
19:19:20 <kmc> cos(w_0 * t) * cos(w_1 * t) = (cos((w_0 + w_1) *t) + cos((w_0 - w_1)*t))/2
19:19:24 <kmc> that's a trig identity
19:19:30 <ais523> well, it's not so much ignored as filtered out
19:19:52 <ais523> the sum frequency is so high that your IF circuitry likely can't transmit it at all, and even if it could you'd just stick a low-pass filter on it
19:20:08 <kmc> and if you're sampling then you always need to LPF an ADC input or else you get aliasing
19:20:16 <ais523> filtering out RF (the sum frequency) from IF (the difference frequency) is trivial
19:20:18 <kmc> shachaf: with me so far?
19:22:45 <kmc> the next question is how to multiply two analog signals, and this seemed mysterious to me for a long time
19:22:59 <kmc> but you can actually use any nonlinear component
19:23:03 <kmc> for example a diode
19:23:26 <kmc> a diode has an exponential current vs. voltage response
19:23:37 <kmc> so it has an x^2 term in its taylor series
19:23:48 <kmc> and of course (a + b)^2 = a^2 + b^2 + 2ab
19:25:53 <kmc> shachaf: the last thing is, by shifting the spectrum around w_1 down to be centered at 0, you now have both positive and negative frequencies in your IF signal
19:26:03 <kmc> and of course cos(x) = cos(-x) so those will alias
19:26:10 <kmc> the solution is "quadrature sampling"
19:26:46 <kmc> you mix the signal with cos(w_1 * t), and a separate copy with sin(w_1*t) (or cos(w_1*t + pi/2) if you prefer)
19:27:02 <kmc> this is called I/Q sampling (in-phase vs. quadrature)
19:27:19 <kmc> and those values are conveniently represented as complex numbers
19:27:44 <kmc> so, while the RF signal is real-valued, the IF signal is complex-valued
19:28:08 <kmc> and of course you can fourier transform complex-valued signal just fine
19:28:27 <kmc> anyway that's how a superheterodyne radio works, and the stuff about digital sampling describes how a software-defined radio works
19:28:39 <kmc> and i was mostly talking in terms of receiving there but the same idea applies in reverse for transmission
19:30:58 -!- ais523 has quit (Quit: quit).
19:31:55 -!- AnotherTest has joined.
19:32:46 <kmc> glad you like
19:39:33 <b_jonas> kmc: all that sounds like it both needs a lot of simple electronic components, and that it's probably impossible to actually implement from components that exist in the real world rather then theoretical idealized components
19:39:56 <b_jonas> but in practice we know that it's not so, because people have built radios and televisions when electronics was primitive
19:40:03 <kmc> ...this is how most modern radios work
19:40:05 <kmc> so it's not impossible
19:40:11 <kmc> of course there are a ton of details in going from theory to practice
19:40:35 <b_jonas> kmc: modern radios can use modern electronics, which have a lot of components in a single chip, so that's sort of different
19:40:47 <kmc> old radios did not work this way
19:40:53 <kmc> but the superhet was invented in 1918
19:41:03 <kmc> like I said, all you need for a mixer is a diode
19:41:10 <kmc> and all you need for filters is inductors and capacitors
19:41:36 <kmc> and all you need for an amplifier or a local oscillator is a few vacuum tubes and some other simpler components
19:41:47 <kmc> of course radios back then were not doing digital sampling
19:41:54 <kmc> they were doing analog demodulation of AM or FM
19:41:58 <kmc> but that's also not too hard
19:41:59 <kmc> especially AM
19:43:03 <imode> crystal radios seem to be god damn magic to people.
19:43:19 <kmc> you can build an AM radio with passives and a single diode
19:43:28 <kmc> and no external power besides the incoming signal
19:43:58 <b_jonas> there's been old radios built from just vacuum tubes, with no semiconductor
19:43:58 <kmc> and solid state diodes existed long before the modern semiconductor era
19:44:45 <kmc> you can make a diode with a small wire contacting a lead sulfide crystal, or a graphite contact on a specially treated razor blade
19:45:00 <kmc> look up foxhole radios
19:45:02 <b_jonas> kmc: no external power? isn't that only possible with near field, which is limited to a few ten meters from an AM antenna?
19:45:16 <kmc> these are semiconductors, but not in the modern fabricated doped silicon sense
19:45:28 <kmc> they exhibit semiconducting physics but are made out of simple readily available materials
19:45:38 <kmc> b_jonas: no, any EM wave has power by definition
19:45:50 <imode> b_jonas: no, you can pick up AM signals pretty far away provided you have a reasonable antenna.
19:46:07 <kmc> a far field AM broadcast doesn't have much power but it has enough to power high-impedance earpiece
19:46:14 <kmc> I had a crystal set kit as a kid
19:46:39 <b_jonas> hmm, can you clarify what "pretty far away" and "reasonable antenna" mean?
19:46:50 <kmc> reasonable antenna = few meters long wire
19:47:26 <kmc> oh and the placement matters
19:47:29 <b_jonas> the near field for AM radios extends to about a kilometer, so "few ten meters" was an underestimate
19:47:30 <kmc> preferably above any obstructions
19:47:30 <imode> positioned at a reasonably high elevation or in the path of a broadcast, which usually means "be in the giant bubble of reception".
19:48:19 <kmc> AM stations put out tens of thousands of watts
19:48:23 <kmc> in fact it's a problem for us hams
19:48:39 <kmc> because they create interference on other nearby bands
19:48:53 <j4cbo> also it requires an extremely small amount of power to make audible noise in a headphone stuck into your ear
19:49:17 <kmc> I have a passive filter on my SDR which blocks AM broadcast band before it goes into the other circuitry (which could create intermodulation products)
19:49:21 <b_jonas> kmc: yeah, but there aren't many such bands. I think there's only one AM radio station remaining that's broadcast from Hungary.
19:49:35 <kmc> what? there's AM radio all over the USA
19:49:39 <b_jonas> that one is here to stay probably, at 540 kHz, to serve stuff abroad
19:49:42 <kmc> oh hey j4cbo fancy seeing you here
19:49:47 <kmc> b_jonas: are you thinking of longwave specifically?
19:49:49 <b_jonas> kmc: it is *all over* Hungary and more
19:50:06 <b_jonas> kmc: I don't think so. I think it's called middle wave
19:50:10 <kmc> 540 is the very bottom of the MW (normal broadcast AM) range
19:50:36 <kmc> I'd believe that hungary only has one station b/c it's a small country
19:50:54 <b_jonas> two about a decade ago, and more before
19:51:30 <b_jonas> they got rid of them because FM radio, digital television, satellite, and internet superceded it
19:52:32 <b_jonas> I think terrestrial analog television broadcasts in Hungary used AM sound, and lived slightly longer than any but that one AM radio station
19:52:57 <b_jonas> but I'm not really sure, I think most of them actually used FM sound
19:53:01 <b_jonas> I don't really know how that works
19:53:36 <b_jonas> there used to be multiple television bands, and one of them used FM sound between the two FM radio frequency ranges, but I'm not sure if that was the most common analog television band
19:54:51 <kmc> there are still hundreds of AM stations in the USA though
19:55:09 <b_jonas> the 540 kHz radio broadcast is kept mostly because it serves neighboring countries where it may be difficult to buy FM radio bands
19:55:15 <kmc> they are mostly sports, religious, and talk radio (predominantly right wing assholes)
19:55:32 <b_jonas> kmc: in what frequency range are those hundreds?
19:55:35 <j4cbo> also traffic alerts and the like
19:55:46 <kmc> oh yeah there are low power local stations when you like approach a bridge or w/e
19:55:49 <b_jonas> kmc: and at most how many are there receivable in any one location?
19:56:17 <kmc> b_jonas: 540-1600
19:56:28 <kmc> b_jonas: depends on location obviously, in a big city maybe 10
19:56:33 <kmc> in the middle o' nowhere one or two
19:56:51 <kmc> most of the music's on FM of course
19:57:16 <kmc> b_jonas: hungary uses DVB-T so audio and video are digital
19:57:20 <b_jonas> actually the internet says that there are more than one active AM radio stations in Hungary
19:57:21 <kmc> I assume the legacy analog TV was PAL
19:57:25 <b_jonas> I guess the others are less powerful
19:57:54 <b_jonas> kmc: yes, they stopped the analog television broadcasts several days ago, to free up frequencies especially for digital television
19:58:24 <b_jonas> analog radio is still used, but it's mostly on the western FM frequencies
19:58:47 <j4cbo> e.g. http://www.theradiosource.com/images/fas6000-icon2018.png
19:59:01 <kmc> google is failing me but I'm guessing PAL sound is FM on a subcarrier, like NTSC
19:59:06 <j4cbo> my car doesn't even have an AM radio
19:59:33 <b_jonas> kmc: I think it's tricky, they modulate the mono sound and the stereo term differently
19:59:43 <kmc> yes, the same is done for FM broadcast audio
19:59:53 <kmc> you send the sum of the channels, and then the difference on a subcarrier
19:59:57 <kmc> so a mono receiver gets the sum
20:00:02 <kmc> a lot of AM/FM radios can also tune TV audio
20:00:07 <kmc> nobody's mentioned shortwave yet!
20:00:10 <kmc> shortwave isn't dead!
20:00:16 <kmc> I've received all kinds of fun stuff at my house
20:00:25 <kmc> including cuban numbers stations from the other side of the continent
20:00:39 <kmc> also public broadcast programs from asia
20:00:46 <kmc> b_jonas: pretty much every time i've tried in the past year
20:00:57 <kmc> I am using a cheap SDR setup?
20:00:59 <kmc> I am using a cheap SDR setup
20:01:03 <b_jonas> received is certainly true, I've received radio on short wave and long wave within my life
20:01:10 <b_jonas> using consumer radio equipment
20:01:30 <kmc> I am licensed to transmit 1,500 watts on the nearby ham HF frequencies
20:02:22 <kmc> hams transmit TV sometimes, but you can only do full motion tV on the higher frequncy bands due to bandwidth limits
20:02:32 <kmc> so it's mostly "slow scan TV" which is really sending still images, slowly
20:03:43 <b_jonas> as for single diode, there are anecdotes that there have been messed up metal amalgam tooth fillings or braces or something that accidentally worked as a near field AM radio if the wearer went close enough to the high powered 540 kHz radio tower near Solt, but I don't know if this is true
20:04:54 <b_jonas> kmc: yes, and some hobby quadcopter people send analog television from a camera on their small flying machines to the ground
20:04:55 <kmc> I believe it
20:05:05 <kmc> b_jonas: yeah! FPV quadcopter
20:05:07 <kmc> sounds super fun
20:05:13 <kmc> that's usually on 2.4 or 5 GHz
20:05:16 <kmc> range is limited
20:06:22 <b_jonas> this works because you can get pretty close to the Solt radio tower on a paved road
20:06:59 <b_jonas> and it has a very high broadcast power, especially in the day
20:06:59 <zzo38> I do not have any shortwave bands radio but do have AM and FM. I sometimes listen to the CBC radio (including today), on 690 kHz AM radio.
20:07:12 <b_jonas> I think they decreased it some years ago, but it's still relatively high
20:08:11 <b_jonas> I used to listen to the 540 kHz Kossuth back long ago, but these days it has better FM broadcasts so it's no longer necessary unless you're receiving from outside Hungary
20:08:35 <b_jonas> (you can also listen to it on internet, but that doesn't make the AM broadcast redundant)
20:09:41 <kmc> poland for a long time operated a longwave station for the polish community abroad
20:10:24 <kmc> the warsaw radio mast was the tallest structure in the world 1974 - 1991
20:10:25 <b_jonas> yeah, https://www.ahrt.hu/hu/100-mhz-es-kozephullam confirms that there are multiple AM broadcasts done by Antenna Hungária alone. AH doesn't handle all FM broadcasts, so there might be more, but there probably aren't.
20:10:27 <kmc> then it collapsed :(
20:10:48 <kmc> shortwave can reach further than longwave, but not reliably as it's dependent on ionospheric conditions
20:11:03 <b_jonas> apparently they also have digital radio broadcasts, but I've never seen a digital radio receiver that wasn't built into a television
20:11:22 <kmc> there is an 11 year sunspot cycle which affects that, and is currently at a minimum
20:11:31 <kmc> so right now long distance ham stuff is harder than it will be in a few years
20:11:37 <kmc> b_jonas: my car receives digital radio
20:11:44 <kmc> they have multiple broadcasts per ferquency
20:11:48 <kmc> and muchbetter quality
20:11:52 <b_jonas> apparently the digital radio broadcast is still sort of experimental
20:11:56 <kmc> you can easily hear when it switches from analog to digital
20:11:58 <kmc> interesting
20:12:21 <kmc> btw. if you wanna see something really weird, it is possible to build a diode and even a triode using FIRE http://www.sparkbangbuzz.com/flame-amp/flameamp.htm
20:12:30 <kmc> basically it's like a vacuum tube, without the vacuum or the tube
20:13:09 <b_jonas> FM radio is very well spread because these days they put it in many mobile phones
20:13:37 <b_jonas> which they can do because you need only a very small antenna and a small chip
20:13:42 <kmc> im' not sure how many people use that
20:13:49 <kmc> I think they typically use the headphone cable as an antenna?
20:13:57 <b_jonas> yes, usually, but not exclusively
20:14:19 <b_jonas> it's still possible without a headphone, but most mobile phones don't support that
20:14:42 <b_jonas> and it works with any headphone cable, no need for any fancy addition in it
20:14:48 <b_jonas> so third party headphones work too
20:15:27 <kmc> you wouldn't need any different headphone cable though
20:15:27 <b_jonas> I sometimes use it because I always carry a mobile phone anyway, so this lets me receive radio easily
20:15:37 <kmc> it's just a wire
20:15:46 <kmc> well it's a few wires wired together, but you can deal with that easily enough
20:15:52 <kmc> i've never used it tho
20:15:56 <kmc> maybe i should install the app
20:15:58 <kmc> for emergencies
20:16:05 <kmc> I wish my portable ham radio could receive FM broadcast :(
20:16:13 <kmc> my old one did, but the new one is better in a lot of ways, but can't do that :(
20:16:31 -!- oerjan has joined.
20:16:36 <kmc> it can receive weather radio tho
20:16:39 <b_jonas> kmc: you can also buy a separate tiny FM radio that doesn't include a mobile phone
20:16:44 <b_jonas> for cheaper than a mobile phone
20:17:07 <b_jonas> they don't use much battery either
20:17:16 <b_jonas> I used those before they put them in mobile phones
20:17:43 <zzo38> I would want a portable radio that can receive AM too, not only FM. And preferably also other bands
20:17:56 <b_jonas> zzo38: AM is harder because it needs a larger antenna
20:18:09 <kmc> b_jonas: yeah but i carry the ham radio every day and don't want to carry another radio
20:18:15 <kmc> wife's parents are here, bbl
20:18:26 <b_jonas> kmc: how tiny is your ham radio?
20:18:47 <kmc> it's a yaesu ft-60r
20:18:49 <zzo38> b_jonas: Yes, with the lower frequency it would, I suppose, but you can have a antenna that you can extend when needed and collapse when it is not in use.
20:18:50 <kmc> normal walkie talkie size
20:19:15 <b_jonas> kmc: right, and FM radios are significantly smaller than that, so you could attach the two and get a device that does both
20:21:04 <b_jonas> zzo38: I'm not sure, but I think you need a wire coil over a decimeter in diameter with both ends connected to the radio to get an AM antenna: that fit easily in old portable radios, but you can't really fit them in a mobile phone
20:21:34 <b_jonas> kmc: yes, if you allow for the headphone wire as an antenna as with a mobile phone
20:21:42 <zzo38> That is fine; I don't have a mobile phone
20:21:53 <kmc> b_jonas: link?
20:22:14 <b_jonas> hmm, let me try to find one on ebay
20:22:31 <b_jonas> I used to own one before ebay existed, but I can't link to that
20:24:35 <b_jonas> apparently these days they're built together with music players that play from either a micro-SD card or a soldered-on solid state memory, and they have a small battery charged by USB
20:25:33 <b_jonas> I'm trying to find one that includes a clear picture to show its size
20:25:51 <oerjan> <b_jonas> Is a comedian the same as a median? <-- hm yes it would appear so
20:29:54 <b_jonas> kmc: https://www.ebay.com/itm/121963260758 at least includes a picture clearly showing the USB A port connector on it
20:31:05 <b_jonas> that one is not ideal, because it probably has a rather short battery life, but ones with a non-rechargable button battery and a longer life used to exist
20:36:37 <b_jonas> https://www.ebay.com/itm/173405038518 is battery-powered, is of size 0.09x0.04, and does AM middle wave too, which sort of proves me wrong about the large coil
20:36:54 <b_jonas> portable radio that receives AM
20:37:03 <b_jonas> uses headphone, doesn't include speaker
20:37:36 <b_jonas> so it's a bit larger if you include the size of a headphone and cable
20:45:17 <b_jonas> https://www.ebay.com/itm/170850268747 is a rather small FM one that can be powered from non-rechargable batteries
20:45:39 <b_jonas> I don't see how to find one with a small non-rechargable battery though
20:45:44 <b_jonas> even though I think those used to exist
20:49:10 <b_jonas> zzo38: https://www.ebay.com/itm/263754834261 is a smaller AM/FM one
20:51:48 <b_jonas> https://www.ebay.com/itm/183264250655 is an AM/FM one that's both small and cheap
20:53:21 <b_jonas> there probably exist one somewhere that doesn't include a built-in battery or battery holder but takes only external power, which is what you'd want for combining in an existing HAM radio, and it's possible that you can get one from one of the consumer ones sold on ebay by forcibly cutting off the battery compartment
20:53:47 <b_jonas> or possibly by cutting off the battery compartment and attaching an antenna
20:54:12 <b_jonas> not necessarily the ones I linked above, there are more variations of these on ebay
21:06:38 -!- arseniiv has quit (Ping timeout: 246 seconds).
21:12:26 <zzo38> I thought of some variant of rule of Scrabble. One is that the next letter to be drawn is exposed to both players (even if it is not your turn), but if you have to draw more than one letter still only one is exposed.
21:23:05 <b_jonas> zzo38: hmm. IIRC that works differently from M:tG, because in M:tG if there's a static effect that reveals the top of a library, and its owner draws multiple cards from it, then each of them will be revealed on the library
21:27:02 <b_jonas> this doesn't come up often, because those static effects don't occurr on common cards, and there are very few uncommons that use it
21:27:52 <HackEso> Goblin Spy \ R \ Creature -- Goblin Rogue \ 1/1 \ Play with the top card of your library revealed. \ IN-U \ \ Goblin Spymaster \ 2R \ Creature -- Goblin Rogue \ 2/1 \ First strike \ At the beginning of each opponent's end step, that player creates a 1/1 red Goblin creature token with "Creatures you control attack each combat if able." \ C16-R
21:28:05 <b_jonas> `card-by-name Lantern of Insight
21:28:06 <HackEso> Lantern of Insight \ 1 \ Artifact \ Players play with the top card of their libraries revealed. \ {T}, Sacrifice Lantern of Insight: Target player shuffles their library. \ 5DN-U
21:31:10 <b_jonas> and I don't think there's any simple effect that makes just your opponent play with the top card of their library revealed
21:35:27 <b_jonas> I wonder what an enchantment with just "Opponents play with their hand and the top card of their library revealed." would cost. It would probably cost something between U and 1UUU, but I don't know how much.
21:49:15 -!- Cale has quit (Ping timeout: 250 seconds).
21:59:44 -!- Bob has quit (Read error: Connection reset by peer).
22:00:54 -!- bobby has joined.
22:02:18 -!- Cale has joined.
22:03:53 -!- bobby has quit (Excess Flood).
22:04:22 -!- bobby has joined.
22:15:54 -!- wumpus1 has joined.
23:12:56 -!- AnotherTest has quit (Ping timeout: 240 seconds).
23:44:13 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
23:45:16 -!- Lord_of_Life has joined.
00:10:26 <esowiki> [[Talk:Eodermdrome]] https://esolangs.org/w/index.php?diff=59699&oldid=59686 * Oerjan * (+471) /* Computational class / -completeness */ Talking past each other?
00:12:45 <esowiki> [[Talk:Eodermdrome]] M https://esolangs.org/w/index.php?diff=59700&oldid=59699 * Oerjan * (+3) sub-
00:19:47 <b_jonas> https://www.perlmonks.com/?node_id=1008395 the game of life perl code is probably the obfuscated code I'm the most proud of
00:20:56 <b_jonas> it's not clear, there are a few other good ones I wrote
00:25:52 <b_jonas> others include https://www.perlmonks.com/?node_id=813859 catalan numbers with regexen, https://www.perlmonks.com/?node_id=863110 GF(128)
00:28:09 <b_jonas> hehe, this one is evil. I barely remembered it. https://www.perlmonks.com/?node_id=1032776
00:40:11 -!- b_jonas has quit (Quit: leaving).
00:58:03 -!- wumpus1 has quit (Quit: wumpus1).
01:19:29 -!- MDead has joined.
01:20:07 -!- MDude has quit (Ping timeout: 240 seconds).
01:20:14 -!- MDead has changed nick to MDude.
01:22:04 -!- oerjan has quit (Quit: Nite).
02:27:51 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:32:44 <shachaf> kmc: sin has the property that sin(x) ~ x for small x, which is pg
02:39:14 <shachaf> Also it doesn't have a "co" in front of its name, is more evidence that it's the fundamental one.
02:39:28 <shachaf> Which one is more fundamental, products or coproducts?
02:46:36 <j4cbo> who the f decided the “kilogram” was a base unit
02:47:36 <shachaf> What, you'd prefer to use the millikilogram?
02:53:28 <kmc> you used to see micromicrofarads on schematics
02:54:50 <shachaf> Since mass = energy = distance = time, what unit should we use to measure all of them?
03:13:41 -!- xkapastel has joined.
03:27:09 <esowiki> [[User:Cortex/test1]] N https://esolangs.org/w/index.php?oldid=59701 * Cortex * (+31) Redirected page to [[User:Cortex/test2]]
03:27:30 <esowiki> [[User:Cortex/test2]] N https://esolangs.org/w/index.php?oldid=59702 * Cortex * (+31) Redirected page to [[User:Cortex/test1]]
03:39:19 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59703&oldid=59698 * A * (+321)
03:41:44 <j4cbo> https://en.wikipedia.org/wiki/Natural_units
03:42:01 <shachaf> Right, that's why you get one unit for all of those.
03:42:04 <shachaf> The question is which one.
03:42:16 <shachaf> But I guess Planck length or whatever is as good as anything.
03:47:02 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59704&oldid=59703 * A * (-13) /* 99 bottles of beer program, where CR stands for the carriage return character */
03:49:09 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59705&oldid=59704 * A * (+189) /* Commands added(still extending) */
03:49:41 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59706&oldid=59705 * A * (-51) /* 99 bottles of beer program, where CR stands for the carriage return character */
03:53:07 <esowiki> [[Golfuck]] https://esolangs.org/w/index.php?diff=59707&oldid=59706 * A * (+64)
04:22:08 -!- FreeFull has quit (Ping timeout: 245 seconds).
04:25:28 -!- MDude has quit (Ping timeout: 245 seconds).
07:44:07 -!- imode has quit (Ping timeout: 240 seconds).
09:02:27 -!- xkapastel has quit (Quit: Connection closed for inactivity).
10:26:01 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
11:05:49 <rain1> about data compression
11:06:05 <rain1> most compression formats are designed to compress data reasonably well and do it efficiently
11:06:49 <rain1> I was wondering if there's a (non lossy) compression technique which you can basically leave it arbitrarily long and it will compress better and better (of course this will have diminishing returns)
11:17:20 -!- arseniiv has joined.
11:41:08 -!- ais523 has joined.
11:41:24 <ais523> rain1: you need to distinguish between compression /formats/ and compression /encoders/
11:42:00 <ais523> any format will have some maximally dense representation of the input, but for suffiiciently complex formats (and sufficiently complex is not very complex), typical encoders won't be able to find it
11:42:16 <int-e> . o O ( Kolmogorov complexity )
11:42:18 <ais523> so what you're looking for is an encoder that puts in extra effort looking for particularly short representations of the input, but can be stopped at any time
11:43:28 <ais523> the extreme is when the compression format is TC, in which case it'll be within a linear transformation of any other format in efficiency (and within a constant-sized offset if it can read literals encoded using the entire alphabet of the character set with no escaping)
11:43:45 <ais523> that's what Kolmogorov complexity measures, i.e. the shortest possible program that generates the output you want
11:43:55 <ais523> but finding /that/ is likely to be impossible in the general case
11:44:24 -!- Lord_of_Life has quit (Ping timeout: 272 seconds).
11:45:52 <ais523> if the Church-Turing thesis turns out to be false, it could be possible
11:45:58 <int-e> Rice's theorem should give you an impossibility result...
11:46:08 <int-e> Oh I didn't consider that angle. True.
11:46:12 -!- Lord_of_Life has joined.
11:49:01 -!- b_jonas has joined.
11:50:37 <int-e> But the TC encoding gives you something recursively enumerable (the program+data that you provide is supposed to terminate with the decompressed data as output) so it does fit into rain1's description... you can enumerate basically forever, finding better and better encodings along the way, until eventually you reach a best one. You never know when to stop, of course.
11:51:18 <int-e> And yes, it's completely infeasible.
11:51:54 <b_jonas> yeah, but you don't really need anything near TC to meet the distinction. Even when you're compressing large real world images to PNG, you have a choice to compress slower but get a smaller file, or compress faster but get a larger file. I've experienced that all too much at my previous job, when working with images.
11:52:24 -!- ais523 has quit (Remote host closed the connection).
11:53:01 <int-e> Oh yes, brotli was a good demonstration of that phenomenon.
11:53:05 <b_jonas> The same happens when you're compressing stuff with a sane modern compressor like 7z -- not really when you're compressing with the ancient gzip format, we have encoders that are good and as fast as you go with gzip.
11:53:59 <b_jonas> you use 7z a -mx=3 foo.7z to compress fast, or 7z a -mx=5 foo.7z to compress normally (-mx=5 is actually the default for 7z output), or 7z a -mx=0 to not compress at all.
11:54:06 <int-e> (Hmm, or which was the zlib compatible compressor that traded compression speed for size? I may be mixing those up.)
11:54:30 <b_jonas> ok, admittedly with gzip you still have an option to not compress at all, and that is faster
11:54:50 <b_jonas> int-e: nope, you get 7z which compresses gzip both slightly better and slightly faster
11:55:17 <b_jonas> int-e: the problem with gzip is that it's really old, the tradeoff built into it is that you could compress worse if you have very little RAM, but these days nobody has that little RAM
11:55:35 <int-e> (the other Swiss bakery product)
11:56:29 <int-e> "Under default settings, the output of Zopfli is typically 3–8% smaller than zlib's maximum compression, but takes around 80 times longer."
11:57:50 <int-e> (I believe PNG was the main target, as you basically wrote.)
11:59:05 <int-e> Ah I had not heard of Guetzli.
12:00:57 <int-e> Hmm. What does "little RAM" mean nowadays... a 256MB VPS?
12:01:56 <int-e> (up from, I guess, less than 64kb when zlib was developed)
12:08:06 <int-e> I've found 128MB VPS offers, and talk about 64MB VPS offers but no live specimens...
12:12:44 <b_jonas> int-e: PNG is a bit more complicated, it has both a zlib layer, and a transformation layer before it, but suret
12:16:46 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
12:20:39 -!- Lord_of_Life has joined.
13:07:11 -!- atslash has quit (Read error: Connection reset by peer).
13:07:19 -!- atslash has joined.
13:08:38 -!- FreeFull has joined.
13:08:54 -!- FreeFull has quit (Client Quit).
13:08:54 -!- FreeFull_ has joined.
13:08:57 -!- FreeFull_ has quit (Client Quit).
13:09:18 -!- FreeFull has joined.
13:54:31 <int-e> `learn The password of the month is eigthy-three characters long but contains no special characters except for a hyphen.
13:54:33 <HackEso> Relearned 'password': The password of the month is eigthy-three characters long but contains no special characters except for a hyphen.
14:05:47 <b_jonas> [ 83{.'eigthy-three characters long but contains no special characters except for a hyphen.0123456789'
14:05:48 <j-bot> b_jonas: eigthy-three characters long but contains no special characters except for a hyphen
14:13:32 <b_jonas> `bobadventureslist http://bobadventures.comicgenesis.com/d/20190203.html
14:13:33 <HackEso> bobadventureslist http://bobadventures.comicgenesis.com/d/20190203.html: b_jonas
14:29:27 -!- atslash has quit (Ping timeout: 240 seconds).
14:30:06 -!- atslash has joined.
14:32:38 -!- xkapastel has joined.
14:34:45 -!- atslash has quit (Ping timeout: 245 seconds).
14:35:11 -!- atslash has joined.
14:52:02 -!- MDude has joined.
15:31:42 -!- b_jonas has quit (Quit: leaving).
15:42:31 <myname> what would you consider an integral part of df-likes
16:09:10 -!- AnotherTest has joined.
16:16:31 -!- Mediphira has joined.
16:16:37 -!- Mediphira has left.
16:24:27 <int-e> df = swarf fortress?
16:25:12 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: : not found
16:25:21 <HackEso> Filesystem 1K-blocks Used Available Use% Mounted on \ - 0 0 0 - /
16:29:24 <myname> what comes to my mind is high level of simulation and a macro-managing spectator
16:29:34 <myname> but i do find that pretty vague
16:29:51 <myname> whereas i do have quite some points for roguelikes
17:46:44 -!- imode has joined.
17:53:16 -!- ais523 has joined.
18:02:55 <fizzie> Heh, that's a little odd.
18:03:20 <fizzie> Per df, on HackEso there's nothing mounted at /, just in specific subdirectories.
18:03:56 <fizzie> Which probably just follows from /proc/mounts. But it's still a bit odd.
18:04:24 <int-e> `` echo $(cut -d\ -f2 /proc/mounts)
18:04:25 <HackEso> /bin /usr /dev /lib /sbin /lib64 /hackenv /hackenv/.hg /etc/alternatives /srv/hackeso-code/multibot_cmds/lib /tmp /proc /sys
18:04:50 <HackEso> Filesystem 1K-blocks Used Available Use% Mounted on \ none 24733776 10662056 12802216 46% /bin
18:05:25 <fizzie> That's reflecting the filesystem where it's actually coming from.
18:05:38 <HackEso> bin \ dev \ etc \ hackenv \ lib \ lib64 \ proc \ sbin \ srv \ sys \ tmp \ usr
18:05:43 <int-e> he I didn't expect /etc/alternatives
18:05:57 <ais523> I didn't expect it to be a /mount point/
18:06:00 <fizzie> We call umlbox with --base-mounts --mount lib --translate-write /hackenv ... --translate /hackenv/.hg ... --cwd /hackenv.
18:06:06 <ais523> but presumably that makes it writable when most of /etc is read-only?
18:06:13 <fizzie> No, it's read-only still.
18:06:23 <ais523> don't mount points have to be over existent directories, anyway?
18:06:26 <ais523> if so you'd need /something/ at /
18:06:26 <fizzie> I think it's mounted because some commands in /usr go through symlink in /etc/alternatives.
18:06:31 <int-e> ais523: yes. that's what I meant. but it makes sense if you aim to borrow as much as possible from a surrounding system
18:06:32 <ais523> or can you mount on top of a nonexistent directory?
18:06:46 <ais523> `` update-alternatives --config editor
18:06:47 <HackEso> update-alternatives: error: no alternatives for editor
18:07:15 <ais523> HackEso has no installed editors?
18:07:17 <fizzie> Full conents of etc: https://hack.esolangs.org/tmp/paste/paste.24182
18:08:39 <fizzie> As for mounts, yes, it needs to be into an existing directory, umlbox creates the target directory (recursively) when it mounts somthing.
18:08:50 <fizzie> There is a root file system, apparently it's just too special to show up in /proc/mounts.
18:09:18 <fizzie> (It's an initrd read from a cpio archive on kernel boot.)
18:09:47 <fizzie> Well, it makes some sense, it's not like there's really a device node for that.
18:09:52 <int-e> ais523: it's a bit weird... if you have a chroot like container, / may not be a mount point according to /proc/mounts.
18:10:11 <ais523> oh, because the root filesystem is /below/ /
18:10:14 <ais523> and thus you can't see the mount point
18:10:37 <fizzie> This is different, though: the command isn't running in a chroot.
18:10:49 <int-e> but it's a container?
18:11:00 <fizzie> No, I mean, the program is running under the UML kernel.
18:11:10 <fizzie> From that perspective, there are no containers involved, there's nothing below /.
18:11:19 <ais523> now I'm reminded of when you have a shell running in a directory all of whose names have been deleted
18:11:22 <ais523> the shell can get rather confused
18:11:51 <ais523> (actually, simply deleting the name for the directory that the shell knows could be enough)
18:12:00 <int-e> So UML is lying about its root file system. Yay :)
18:12:02 <fizzie> The whole VFS abstraction is that of the UML kernel, and it starts from / which is an initrd, on top of which have been mounted stuff from the host system under the special "hostfs" thing.
18:12:35 <fizzie> I don't know if that's how initrd always works. On normal systems / usually gets pivoted into some real filesystem on a block device.
18:13:54 <fizzie> So you rarely get to actually experience the initrd environment.
18:15:20 <int-e> I had that experience recently... but no working keyboard, so I didn't get the chance to actually explore...
18:16:41 <int-e> (I later realized that I do still have a PS/2 keyboard which would have worked... but by then I had resolved my problem, which was udev not initializing the host controller or something similarly desastrous.)
18:17:11 <int-e> (no host controller -> no USB, no SATA, no root device... no system boot.)
18:18:21 -!- copumpkin has joined.
18:21:10 <fizzie> On the container (using systemd-nspawn) where the UML kernel runs, seems like there's an entry in /proc/mounts that says /dev/vda2 is mounted as /, even though that's really just the /var/lib/machines/dysnomia directory of that filesystem. But it's a separate mount namespace, which I think is a little different from a chroot.
18:21:34 <ais523> mount namespaces are more thorough than chroots
19:34:37 -!- b_jonas has joined.
19:51:50 -!- LKoen has joined.
19:54:19 <esowiki> [[Special:Log/newusers]] create * Sollyucko * New user account
20:22:27 -!- ais523 has quit (Quit: quit).
20:40:20 <kmc> can anyone recommend an OSS project I might enjoy contributing to that has a predominantly non-US user/contributor/maintainerbase?
20:40:39 -!- oerjan has joined.
20:44:20 <oerjan> <j4cbo> who the f decided the “kilogram” was a base unit <-- iirc it was done because if you use the gram, a lot of the derived units get very inconvenient size scales - so it was either adding a kilo- to that one, or other prefixes to a lot of others.
20:44:54 <pikhq_> Or using the centimeter as a base unit.
20:45:47 <pikhq_> Though honestly many of those derived units were inconvenient.
20:45:53 <b_jonas> they could have given a new name to the kilogram. like, call it a "ton" or a "pound" or an "ounce" or something.
20:46:17 <b_jonas> or a "euro", that word was still free back then, they'd have priority
20:46:23 <kmc> we used cgs in undergrad E&M
20:46:28 <kmc> it's a little wacky
20:46:39 <b_jonas> obviously then we'd end up having to have a currency with a bad name, like "european union kilogram" or something
20:46:44 <kmc> the units don't directly correspond to SI because the physical constants are folded in differently
20:46:51 <pikhq_> Bit tricky though, since the derived units only started getting used much by the time the kilogram was already well-established.
20:46:54 <kmc> kilogrexit
20:47:05 <kmc> bring back micromicrofarads
20:47:55 <b_jonas> kmc: yeah, I know. they have units with square root of meter times square root of second in them
20:48:15 <kmc> there's an important measure in EE which is like dB / sqrt(Hz)
20:48:31 <kmc> or is it V / sqrt(Hz)
20:49:29 <j4cbo> “ohms per square” is a good one
20:51:56 <b_jonas> but CGS is internally consistent, so it's at least better than measuring blood pressure in micrometers of mercury, car speed in kilometers per hour, electricity bill in kilowatt hour, airplane height in feet, airplane distance in miles,
20:53:05 <j4cbo> sometimes aviation uses statute miles
20:53:35 <j4cbo> and sometimes it uses feet
20:54:02 <b_jonas> and sometimes meters or kilometers
20:55:21 <kmc> blood hormone levels are measured in units like pg/mL and ng/dL
20:55:21 <b_jonas> and then we have food energy in kilocalories, astronomical distances within the solar system in astronomical units, outside the solar system in light years,
20:55:49 <kmc> i used to think kWh was stupid, and especially kWh/day, but they are very convenient in practice
20:55:55 <kmc> same with Wh vs J
20:56:35 <b_jonas> oh, and the phone bill counts call lengths in minutes
20:56:38 <j4cbo> kWh/day is nice because it implies that it’s an average instead of instantaneous
20:57:20 <zzo38> kmc: I don't know what kind of project you would enjoy to contributing to. And by non-US what country you may mean? Some projects (such as my own) currently have only myself as contribution/maintenance and I am Canadian. But I don't know if that is what you want or not. Nor am I sure how to find out.
20:57:33 <kmc> i'm thinking larger projects
20:57:35 <kmc> j4cbo: yeah
20:58:44 <zzo38> I don't know much of larger projects about if it is predominantly non-US or not. (Unless you can read/write in languages other than English, in which case you might more easily find some)
21:00:27 <zzo38> Words "ton", "pound", "ounce" mean different units than kilogram. However, there is another word for kilogram is "grave"
21:01:10 <kmc> but a metric ton is the same as a Mg
21:01:32 <zzo38> kmc: Yes, although I don't like the term "metric ton" or "tonne". I prefer to call that a "megagram"
21:01:41 <kmc> you know what unit's really annoying? "mil" i.e. 1/1000 in
21:01:53 <kmc> it's used in electronics and locksmithing and some other fields
21:02:02 <kmc> but i prefer "thou" to avoid confusiong with mm
21:03:16 <j4cbo> yeah that’s a weird one
21:03:39 <j4cbo> 6 mil trace, 6 mil plastic sheeting, 6 thou tolerance
21:04:12 <j4cbo> also “tenth” apparently means 0.0001in
21:04:22 <zzo38> (It should be obvious to know what "megagram" means even if you have not seen it before. I used "megagram" before I have seen it used, too. This is contrary to "tonne" which I don't like.)
21:04:53 <j4cbo> which i guess puts it in the same group as “fifth” and “eighth” of fractional words that have a specific meaning c.c
21:05:14 <zzo38> Why do you care if the OSS project is predominantly non-US?
21:05:35 <kmc> long story
21:05:41 <kmc> so never mind that
21:49:30 <imode> cellular automata are not a good model for general turing complete computation because they require infinite space. network automata/communicating automata are, however, because they only require unbounded queues.
21:51:08 <b_jonas> kmc: yeah, I've heard of those US units.
21:52:04 <kmc> imode: what's the important difference? you can easily emulate a TM with an unbounded queue
21:52:07 <kmc> (or two stacks, but not one)
21:52:25 <kmc> at any point in time only a finite number of TM / CA cells are non-blank
21:52:31 <kmc> just as only a finite number of elements exist in the queue
21:52:50 <kmc> how do network automata work
21:55:01 <shachaf> You could have a rule that would set all CA cells to something non-blank. But it'd still be a finite amount of information.
21:56:56 <imode> kmc: that's my point. imagine you were to simulate a cellular automata with infinite space. you'd need to start at the "top left" of the world (assuming a 2D CA), and you'd need to traverse to the "bottom right", but in order for you to encode a turing machine within a CA, it needs to have the ability to propagate to the bottom-right, right?
21:57:21 <imode> well, blank cells have the potential to become non-blank cells, which means we need to traverse every cell naively.
21:57:42 <imode> so that means a single update, again naively, of a CA with infinite space... never completes.
21:58:03 <kmc> i mean that's the most naive algorithm
21:58:14 <shachaf> There's no top left of an infinite grid, so you can't start there
21:58:26 <kmc> but you can easily keep track of a bound on the non-blank region of each timestep
21:58:35 <kmc> and expand it by the window size on each iteration
21:58:46 <zzo38> If you make it infinite only in one direction then there can be one top left
21:58:50 <imode> shachaf: I take the turing machine model. turing originally specified that his tape was left-bounded, right-unbounded.
21:58:59 <imode> same applies to a theoretical turing-complete CA
21:59:14 <shachaf> Maybe I missed the first half of the conversation
21:59:23 <imode> kmc: right. you could totally do that. but that implies some extra information than _just_ the things you need to simulate the CA.
21:59:45 <kmc> well if you're saying that queue automata are slightly easier to implement than TMs / CAs
21:59:48 <kmc> then I guess I agree
21:59:51 <kmc> but it doesn't seem very important
21:59:54 <imode> now you need to keep track of how much of that space you realistically need to cover.
22:00:10 <kmc> shachaf: were you trying to explain HashLife sometime?
22:00:22 <kmc> i forgot how it works
22:00:34 <oerjan> . o O ( he made a hash out of it )
22:01:02 <imode> network automata are essentially CAs (if you see CAs as networks of finite state machines that can read neighboring people's states), but the difference is each cell has a queue (or a pair of queues) sitting between it and its neighboring cells.
22:01:15 <kmc> smoke hashlife erryday
22:01:23 <shachaf> I won't explain it on this scow phone keyboard, though
22:01:28 <imode> we can say that the distance (or queue length) needs to be unbounded to simulate a TM, so we can make due with a finite amount of cells.
22:03:07 <imode> network automata as informally defined above represent a generalization of both queue automata and cellular automata: you can imagine two sliders for queue length and number/topology of cells, and depending on the slider position (say, queue length 1, lattice topology, infinite cells) you either get CAs, or regular queue automata (unbounded queue, single queue, single node).
22:04:03 <imode> regular queue automata with just a single queue and a single "processing node"/FSM/cell/whatever hooked up to it are an extreme case. FSMs linked in a lattice or some other topology, i.e a CA, represent another extreme case.
22:05:59 -!- Remavas has joined.
22:06:57 -!- Remavas has quit (Remote host closed the connection).
22:07:24 -!- Remavas has joined.
22:08:01 -!- Remavas has quit (Remote host closed the connection).
22:09:34 -!- Remavas has joined.
22:17:37 -!- Remavas has quit (Read error: Connection reset by peer).
22:18:01 -!- Remavas has joined.
22:31:18 -!- AnotherTest has quit (Ping timeout: 245 seconds).
22:33:25 -!- moei has quit (Quit: Leaving...).
22:39:14 -!- Phantom_Hoover has joined.
22:39:14 -!- Phantom_Hoover has quit (Changing host).
22:39:14 -!- Phantom_Hoover has joined.
22:46:53 <shachaf> kmc: Hashlife is easier to understand with a 1D automaton, I think.
22:48:20 -!- Remavas has quit (Quit: Leaving).
22:58:12 -!- 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.”).
22:59:38 <HackEso> The password of the month is eigthy-three characters long but contains no special characters except for a hyphen.
22:59:45 <kmc> shachaf: oh?
23:11:00 <b_jonas> that wasn't me this time, I swear
23:11:13 <b_jonas> I set last month's password, not this month's
23:18:59 <j-bot> b_jonas: _0.877439j0.744862 _0.877439j_0.744862 0.754878
23:22:21 -!- b_jonas has quit (Quit: Reconnecting).
23:22:22 <j-bot> b_jonas: 1.32472 _0.662359j0.56228 _0.662359j_0.56228
23:22:28 -!- b_jonas_ has joined.
23:23:04 -!- b_jonas_ has changed nick to b_jonas.
23:23:10 <j-bot> b_jonas: 1.32472 _0.662359j0.56228 _0.662359j_0.56228
23:25:23 -!- arseniiv_ has joined.
23:25:40 -!- arseniiv has quit (Read error: Connection reset by peer).
23:27:42 <shachaf> kmc: So say you have a 1D automaton, where every tick, every cell updates based on its state and its two neighbors.
23:28:37 <shachaf> You can store a chunk of size 2^n as a complete binary tree, where the left and right children point to chunks of size 2^(n-1)
23:28:52 <shachaf> And you just have 1 and 0 cells for the 2^0 case.
23:30:31 <shachaf> Hashlife calls that a "macro cell".
23:31:17 <shachaf> These things are immutable, so you can make it a graph instead of a tree with sharing. That's the "hash" in "hashlife".
23:32:12 <shachaf> It's called a "macro cell" because it's a bit like a big cell. In particular, it has two neighbors, and its state after one tick depends only on its own state and the state of its two neighbors.
23:33:56 <shachaf> But the nice thing about macro cells is that after a small number of ticks, most of the internal cells don't depend on the state of the neighboring cells, because information can only propagate at the "speed of light".
23:34:49 <shachaf> So you can compute part of the future of a macro cell in isolation, regardless of its environment. (This is useful because macro cells are shared, so they might exist in multiple environments.)
23:35:08 <shachaf> Does that part make sense?
23:39:17 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:43:49 <HackEso> 11708:2019-02-03 <int-̈e> learn The password of the month is eigthy-three characters long but contains no special characters except for a hyphen. \ 11684:2019-01-01 <b_jonäs> learn The password of the month is "overreachtorridbittenmandible". \ 11653:2018-12-01 <int-̈e> learn The password of the month is "SCALNATUAS". \ 11646:2018-11-01 <int-̈e> learn The password of the month is most forgettable. \ 11622:2018-10-02 <oerjän> learn The password of th
23:45:53 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
23:48:08 <oerjan> int-e: *you should be scared*
23:48:31 <oerjan> (although i fear you haven't even noticed why)
23:48:42 -!- Lord_of_Life has joined.
23:48:52 <shachaf> I haven't noticed why either.
23:48:57 <shachaf> The "." isn't part of the password, is it?
23:49:03 <kmc> shachaf: ah so it's hash as in hash consing
23:49:13 <kmc> and lazy eval
23:49:30 <shachaf> Well, there's no laziness so far.
23:49:31 <kmc> at least the idea of in place updates for data that is potentially shared
23:49:50 <zzo38> Some more possible variant for Scrabble can be alternate geometry, such as hex or cylinder. Some more possibilities include other kind of multipliers on squares. In addition to letter multipliers and word multipliers, can also have turn multipliers. Also, the multipliers could also be negative and/or fractions. A variation I recommend is memoryless wildcards.
23:49:50 <kmc> well, go on
23:50:07 <zzo38> Do you like memoryless wildcards variant?
23:50:16 <shachaf> So you can compute some extra data for these nodes and easily compute it for the entire graph.
23:50:28 <shachaf> For example you can put a count on each node which is the sum of the counts of the left and right nodes.
23:50:41 <shachaf> And even if you have 2^100 cells or something you can compute it pretty quickly.
23:50:53 <oerjan> shachaf: well the . isn't what i'm twitching at, anyway
23:51:55 <fizzie> Maybe that's a clever trick to mitigate against dictionary attacks.
23:52:11 <kmc> shachaf: count of what?
23:52:21 <kmc> shachaf: is there a good pseudocode of this algorithm?
23:52:31 <shachaf> kmc: The number of active cells, sorry.
23:52:40 <kmc> and why does that help?
23:53:02 <shachaf> I guess count doesn't help but the point is that you can annotate these things with extra data based on their children.
23:53:14 <b_jonas> zzo38: and another variation is that wildcards can be reclaimed if you spend a turn to replace it with the same letter tile from your hand. plus there's a scrabble-like game that requires a different hardware,
23:53:22 <shachaf> Not sure about pseudocode. I think it's best explained by drawing.
23:53:58 <b_jonas> where you can stack a tile over another tile, only the letters written on the top tile on each square must valid words in every segment, and the scoring is changed.
23:54:03 <shachaf> int-e: next month make one of these hth https://news.ycombinator.com/item?id=19003644
23:54:17 <zzo38> b_jonas: Yes, I have read about the variation with reclaiming. You can even combine that with memoryless wildcards
23:54:57 <shachaf> kmc: So if you have a macro-cell, say of size 8, [abcdefgh]
23:54:59 <kmc> anyone here played bananagrams?
23:55:08 <kmc> it's like scrabble but with no board and also not very much like scrabble
23:55:16 <kmc> I think writing an AI for it would be pretty hard. I've thought about it some
23:55:30 <shachaf> You can think of uncertainty coming in from the sides tick by tick:
23:55:53 <b_jonas> zzo38: wait, which kind of memoryless wildcard? the one where you can count the wildcard tile as any letter of your choice after each move you make, or the one where in addition you can make it count as different letters horizontally and vertically?
23:56:13 <b_jonas> zzo38: but yes, reclaiming the joker works better with memoryless joker
23:57:39 <zzo38> b_jonas: The rule I was thinking of (I made up, although others may have made it up independently) is: It has to represent the same letter horizontally and vertically, but you can change what letter it is during your turn as long as it still forms a valid word. If you extend the word, the same letter must be valid in both the old and new words.
23:59:55 <b_jonas> zzo38: oh, that's even more restricted than what I thought of
00:00:27 <zzo38> OK. What are the exact rules of what you thought?
00:01:09 <b_jonas> I thought you'd choose the new letter each wildcard represents simultaneously with placing letters on the board, and valid words are only checked after the whole thing is done
00:01:55 <b_jonas> each wildcard on the board that is
00:03:11 <zzo38> O, I forgot to mention, with my rule, you can still change both wildcards simultaneously (so you do not need to remember what letter was originally assigned, which is the point of this rule).
00:12:05 <int-e> oerjan: I had not noticed... it's definitely not intentional.
00:13:17 <int-e> shachaf: cute, but not overly impressive
00:13:35 <b_jonas> int-e: wait, he hasn't gotten to the end yet
00:13:53 <shachaf> int-e: Sure, there's not too much you can do.
00:14:07 <shachaf> i,i http://bada55.cr.yp.to/
00:16:39 <int-e> oerjan: so... is it okay to update the potm to fix a typo?
00:51:30 <oerjan> int-e: it may have been done previously
00:51:45 <HackEso> https://hack.esolangs.org/repo/log/tip/wisdom/password
00:54:40 <oerjan> there have been corrections, although i'm not sure any of them count as typos in the password itself...
00:54:50 -!- arseniiv_ has changed nick to arseniiv.
00:55:42 <oerjan> hm the "more" button no longer works for me
00:56:04 <oerjan> i suppose it's neither
01:31:44 -!- oerjan has quit (Quit: Nite).
01:37:44 -!- xkapastel has quit (Quit: Connection closed for inactivity).
01:43:40 -!- b_jonas has quit (Quit: leaving).
01:51:25 -!- sleffy has joined.
01:51:39 -!- sleffy has quit (Remote host closed the connection).
04:00:53 -!- zzo38 has quit (Ping timeout: 245 seconds).
04:59:23 -!- arseniiv has quit (Ping timeout: 246 seconds).
05:19:00 -!- FreeFull has quit.
06:36:44 <imode> a queue's no-op operation is not immediately obvious unless your queue automata supports no-op transitions.
07:18:02 -!- Vorpal has joined.
07:18:03 -!- Vorpal has quit (Changing host).
07:18:03 -!- Vorpal has joined.
07:52:54 -!- john_metcalf has quit (Quit: http://corewar.co.uk).
08:12:16 -!- xkapastel has joined.
08:25:40 -!- imode has quit (Ping timeout: 246 seconds).
08:59:53 -!- AnotherTest has joined.
09:17:50 -!- Sgeo_ has quit (Read error: Connection reset by peer).
09:18:15 -!- Sgeo_ has joined.
10:20:46 -!- xkapastel has quit (Quit: Connection closed for inactivity).
10:53:26 -!- xkapastel has joined.
11:09:50 -!- Sgeo_ has quit (Read error: Connection reset by peer).
11:10:16 -!- Sgeo_ has joined.
11:44:31 -!- Lord_of_Life_ has joined.
11:47:08 -!- Lord_of_Life has quit (Ping timeout: 272 seconds).
11:47:11 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:14:20 -!- Sgeo_ has quit (Read error: Connection reset by peer).
12:14:47 -!- Sgeo_ has joined.
14:43:08 -!- xkapastel has quit (Quit: Connection closed for inactivity).
14:48:47 -!- MDude has quit (Ping timeout: 240 seconds).
15:10:13 -!- MDude has joined.
15:18:41 -!- arseniiv has joined.
15:23:19 -!- oerjan has joined.
15:27:49 -!- Essadon has joined.
15:28:05 -!- Essadon has quit (Max SendQ exceeded).
15:29:27 <int-e> `slwd password//s=...-=hty-=
15:29:28 <HackEso> password//The password of the month is eighty-three characters long but contains no special characters except for a hyphen.
15:29:57 -!- sleepnap has joined.
15:48:39 -!- sleepnap has quit (Ping timeout: 250 seconds).
16:04:00 -!- sleepnap has joined.
16:04:23 -!- danieljabailey has joined.
16:24:02 -!- b_jonas has joined.
16:24:49 -!- imode has joined.
16:43:23 -!- oerjan has quit (Quit: Later).
17:24:51 <esowiki> [[Special:Log/newusers]] create * FLeckami * New user account
17:30:21 <imode> it looks like, in the absence of a 'keep' operation for queue automata, you need to expand the alphabet or 'simulated' alphabet by at least one symbol, one that indicates a 'useless' or 'marker' symbol that you seek to.
18:03:45 -!- xkapastel has joined.
18:40:36 -!- Phantom_Hoover has joined.
18:47:06 <orin> suppose that `ary' is an operator that changes the arity of the given function
18:47:31 <orin> e.g. `ary 2 f x y' applies f to x and y
18:49:08 <orin> can `ary' replace parentheses in all cases?
18:52:13 <orin> further, what default behaviours might be useful with this syntax
18:55:14 <Phantom_Hoover> is f just the standard arithmetic functions? actually how does that work with division then?
19:09:22 -!- arseniiv_ has joined.
19:09:26 -!- arseniiv has quit (Ping timeout: 240 seconds).
19:11:24 -!- sleepnap has quit (Ping timeout: 250 seconds).
19:25:01 -!- sleepnap has joined.
19:56:34 <b_jonas> orin: you could probably do that with one of these crazy haskell syntax hacks, but I don't think it's a good idea because it sort of abuses the existing syntax, in the same way as the almost BASIC interpreter where you put the almost BASIC code directly as haskell code with some prelude does
20:02:51 <orin> b_jonas: I was more envisioning it as a lisp hack
20:03:10 <orin> taking the parentheses out of lisp
20:03:32 <orin> replacing them essentially with Hollerith-Expressions
20:13:27 -!- xkapastel has quit (Quit: Connection closed for inactivity).
20:19:44 <orin> stupid english i mean it's got a fucking "qu" at the start can we at least pronounce that in a consistent manner? NO APPARENLY NOT, it is pronounces "kyoo"
20:22:07 -!- aloril has quit (Ping timeout: 240 seconds).
20:35:45 <b_jonas> orin: "deque" is even worse
21:15:30 <int-e> . o O ( did you ever run out of memory when playing with a full deque... )
21:17:13 <kmc> a few cards short of a full deque
21:23:59 <shachaf> kmc: did you know visual c++'s deque implementation uses 16-byte chunks?
21:24:16 -!- Cale_ has joined.
21:28:00 <kmc> why? cache shit?
21:31:32 -!- b_jonas has quit (Quit: leaving).
21:31:59 -!- FreeFull has joined.
21:37:58 <shachaf> also did you know p. much all of the c++ stl is scow
21:41:53 <kmc> I did know that
21:42:23 <kmc> C++ has a lot of properties (especially exceptions) which make it necessary to heap-allocate when you might not think you should need to
21:42:46 <kmc> making an exception safe sum type class template is really hard :/
21:42:51 <kmc> without allocating
21:43:19 <kmc> did you know that std::vector resize has to call the copy constructor on every element, then the destructor on every old element
21:43:28 <kmc> (or if there's a noexcept move constructor it can use that)
21:43:36 <kmc> in rust the resize is just a memcpy
21:45:14 <j4cbo> std::variant went through a LOT of iteration around that
21:46:30 -!- Cale_ has quit (Remote host closed the connection).
21:54:51 <shachaf> Did you know unordered_map/set more or less specifies that hash tables have to use linked lists instead of open addressing?
21:55:24 <shachaf> exceptions are scow, i'm p. sure
21:55:37 <shachaf> and maybe destructors are scow too??
21:55:47 <kmc> re exceptions
21:55:53 <kmc> destructors are necessary for RAII, which is great
21:55:59 <kmc> so I think they're a necessary evil
21:56:00 <shachaf> I'm not sure RAII is great.
21:56:05 <kmc> well you're wrong
21:56:08 <kmc> change_my_mind.jpg
21:56:14 <shachaf> I mean, I think RAII might be the wrong thing.
21:56:31 <shachaf> A thing that runs some code at the end of a scope is great. But that doesn't mean it needs to be associated with an object.
21:56:33 <kmc> RAII is defiitely the right thing for a systems language
21:56:43 <kmc> no it doesn't have to be, but it works out very nicely when it is
21:56:57 <kmc> it's a variation on "make invalid states impossible to represent"
21:57:10 <kmc> and often the RAII guards have some value level content
21:57:20 <kmc> in Rust, the only way to access the contents of a mutex is through a raii lock object
21:57:29 <shachaf> I used to be more pro-RAII than I am now. I'm not sure about it.
21:57:30 <kmc> plus which, you can use raii with non lexical scope just as well
21:58:16 <shachaf> Also destructors are scow with arenas (?)
21:58:28 <shachaf> And arenas should be used more. But they're kind of scow in Rust.
22:02:08 <shachaf> I'm not sure the objects-with-destructors-composed-of-smaller-objects-with-destructors thing is great anyway
22:02:18 <shachaf> I don't even know how to write good software
22:02:40 <shachaf> Maybe you gotta statically allocate everything
22:06:49 <shachaf> kmc: You know the C++ bug where instead ofe "{ WithLock unused_nam(lock); ... }" you write "{ WithLock(lock); ... }"?
22:07:50 <kmc> same happens in rust
22:07:59 <kmc> with either "x.lock();" or "let _ = x.lock();"
22:08:05 <kmc> but "let _foo = x.lock();" is fine
22:08:15 <kmc> I believe the compiler will error on the first two
22:09:01 <shachaf> The RAII lock object is not a real object, it's a control structure.
22:09:17 <kmc> why shouldn't i think of it as a real object?
22:09:22 <kmc> it has methods, it has capabilities
22:09:30 <kmc> whether it has extent in memory is an implementation detail
22:09:45 <kmc> in rust it's a smart pointer, and smart pointers are definitely objects
22:09:48 <shachaf> I mean, that's the OO thing, thinking about everything as a real object.
22:10:33 -!- aloril has joined.
22:10:47 <shachaf> In Python you'd write "with lock: ..." or something and it would be pretty clear what's going on, with no object.
22:11:40 <shachaf> Or you'd write "with foo() as x: ..." if you need an object inside the scope to do things with it.
22:13:32 <kmc> meh, i don't want to talk about this any further at the moment
22:15:05 <shachaf> I've been trying to figure out better things for a while, it's not just criticism.
22:29:40 -!- xkapastel has joined.
22:31:24 -!- arseniiv_ has changed nick to arseniiv.
22:41:39 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:44:38 -!- AnotherTest has quit (Ping timeout: 246 seconds).
23:47:26 -!- Lord_of_Life has quit (Ping timeout: 250 seconds).
23:48:20 -!- Lord_of_Life has joined.
00:43:20 -!- sleepnap has left.
01:03:28 -!- xkapastel has quit (Quit: Connection closed for inactivity).
01:51:07 -!- arseniiv has quit (Ping timeout: 246 seconds).
02:43:45 <imode> (a rare occurrence.)
03:02:34 <imode> if your queue automata have states formatted like this: (state, symbol) -> (new state, [enqueue symbol/dequeue])
03:03:08 <imode> without 'keep', you have to add new symbols to your alphabet or new states in order to encode 'keep'.
03:04:12 <imode> because you can enqueue a throwaway symbol, swap to a state that seeks to that throwaway symbol, dequeue it and swap to a new state after the desired 'keep' operation.
03:06:21 <imode> states for your queue automata still have to be a 5-tuple, too.
03:08:03 <imode> (state, symbol, new state, new symbol, enqueue/dequeue).
03:12:36 <imode> unless you encode them as seperate instructions... (state, symbol, new state, [enqueue 0/enqueue 1/dequeue])
03:12:55 <imode> that's pretty standard.
03:13:44 <kmc> how does the automaton find out the result from dequeue
03:13:52 <imode> so you'd have (state, symbol, new state, [enqueue 0/enqueue 1/enqueue blank/dequeue]).
03:14:23 <kmc> is it the 'new symbol' field
03:14:39 <imode> dequeue just throws away the top item in the queue. you already know what the item is because in order to execute the dequeue, you have to look at the top of the queue and your current state.
03:16:56 <imode> encoding a 'no-op' wouldn't be too terrible either. just roll the queue until you recognize the sequence, enqueue a blank, then seek to the blank, dequeue, and you're back where you were in a new state.
03:22:59 -!- FreeFull has quit.
03:25:17 <imode> https://ptpb.pw/ON3X/text something like this.
03:26:09 <imode> whup, line 11 is wrong. that first lone `1` should be replaced with a B.
04:24:07 <imode> I'm still pre-occupied with the idea of the most aesthetically pleasing model of computation. I've been oscillating between queue automata and stock turing machines.
04:25:08 <imode> both are essentially labeled transition systems with finite states.
04:25:24 <imode> and thus can be composed and stitched together fairly easily.
05:15:51 <esowiki> [[Brainfuck implementations]] https://esolangs.org/w/index.php?diff=59708&oldid=58023 * A * (+13) Simplified my implementation
07:54:06 <esowiki> [[Special:Log/upload]] overwrite * Sifoobar * uploaded a new version of "[[File:Snigl logo.png]]"
07:54:55 <esowiki> [[Snigl]] https://esolangs.org/w/index.php?diff=59710&oldid=58475 * Sifoobar * (-48)
09:09:32 -!- imode has quit (Ping timeout: 246 seconds).
09:57:12 <myname> oh dear. i am reading a flight booking confirmation and stumble across this diamond: "Special Services: OXYGEN"
09:58:12 <Taneb> myname: as much as possible I like to make sure when I fly I have oxygen
09:59:09 <myname> there also is "AIRLINE SUPPLIED OXYGEN - pending"
10:28:13 -!- AnotherTest has joined.
11:05:29 -!- pikhq_ has quit (Ping timeout: 245 seconds).
11:05:39 -!- pikhq has joined.
11:39:07 -!- arseniiv has joined.
11:46:47 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
11:49:36 -!- Lord_of_Life has joined.
12:06:14 <int-e> "Recommend extensions as you browse"... WTF, Firefox?
12:06:58 <int-e> This is getting too close to "display relevant ads as you browse".
12:13:01 -!- sebbu2 has joined.
12:16:13 <myname> i hate it when software tries to become too smart
12:16:14 -!- sebbu has quit (Ping timeout: 250 seconds).
12:16:50 <myname> like, MUAs tend to scan your mails for mentions of attachments and warns you if you don't have any
12:22:46 <izabera> i used to like that, but then i got to work on debuggers, and warning for 'attach' became much less useful
12:25:14 <myname> i hate that almost as much as i hate messengers that make sent code unreadable by automatically converting text into emojis
12:25:43 <int-e> I've been saved by the attachment feature often enough that I don't particularly mind it.
12:25:56 <int-e> But it is a borderline case.
12:27:29 <myname> you could just re-send it if it really matters
12:27:47 <int-e> One thing in favor of this feature is that it's not really smart (it's just looking for a fixed set of keywords) and it's not trying to get me to download or buy anything.
12:28:52 <myname> that particular symptom is not that bad, yeah, but somehow it ended up being my goto example
12:29:36 <myname> i also hate spell checkers
12:30:11 <int-e> Maybe more fundamentally, I don't have the impression that it's trying to make decisions on my behalf. This is in stark contrast to... suggesting extensions... ads... search suggestions... etc.
12:57:22 -!- Essadon has joined.
12:57:38 -!- Essadon has quit (Max SendQ exceeded).
13:43:56 -!- LKoen has joined.
13:54:53 <esowiki> [[Analogia]] N https://esolangs.org/w/index.php?oldid=59711 * Ais523 non-admin * (+4983) about time I defined this and put it onto the wiki
13:55:11 <esowiki> [[User:Ais523]] https://esolangs.org/w/index.php?diff=59712&oldid=59359 * Ais523 non-admin * (+14) +[[Analogia]]
13:55:28 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=59713&oldid=59525 * Ais523 non-admin * (+15) /* A */ +[[Analogia]]
14:16:07 -!- oerjan has joined.
14:23:10 <esowiki> [[David Madore]] https://esolangs.org/w/index.php?diff=59714&oldid=57645 * B jonas * (+120)
14:52:49 <orin> I hate how Slack isn't plaintext
14:53:39 <orin> a messenging system designed for real work shouldn't require ``` ``` around code
14:55:15 <orin> I've tried discord, slack, and hipchat, and all of them are inferior to IRC
15:01:04 <myname> i thought about writing an irssi-like libpurple client to better work with slack
15:05:47 <myname> like, i need some meta-tabs, man
15:06:23 <myname> i'd love to use slack more often, but i absolutely cannot let it flood me with like a dozen channels per group
15:08:13 <orin> or even, why not have a toggle switch between "send this message plaintext" and "replace :pizza: with a picture of the ninja turtles or some shit"
15:10:38 <myname> i am more okay with that way of replacing than the way msn/icq/skype/whatever other bastards do that
15:11:31 <myname> like, you cannot write i<8 without having an ice cream cone on the receiving end which might yield to something completely different than <8 if he copy&pastes it
15:11:50 <orin> slack replaces <3 with heart
15:13:54 <orin> then when you copypaste that, you get :heart:
15:14:27 <orin> rather than the actual heart emoji
15:19:35 -!- xkapastel has joined.
15:23:49 <esowiki> [[SORTA]] https://esolangs.org/w/index.php?diff=59715&oldid=8568 * B jonas * (+98)
15:28:44 -!- wob_jonas has joined.
15:30:00 <wob_jonas> orin: oh nice, I haven't seen that yet. I've seen :p and :D getting replaced by smilies, and anything with an @ sign in it getting replaced by (e-mail address obscured for your protection), both of which are great to mess up code. the first one is from mibbit web-irc, the second is from gnu.org's mailing list archives web interface.
15:31:31 <wob_jonas> oh, and there was that web-based form thing that evaluates a line of J on the server for you, but if the line has a less than sign followed by a letter anywhere, then it gives an error complaining something about how it stopped a cross-site html injectino or something
16:19:36 -!- Essadon has joined.
16:26:59 <orin> I hate C++ queue::pop
16:27:24 <orin> it should be named "drop", since it doesn't return the removed element
16:28:04 -!- 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.”).
16:29:16 <wob_jonas> orin: there's a reason why it doesn't return the removed element, a C++-specific one; and it shouldn't be called drop, pop is fine because it pops just the one topmost element, just like how std::deque::pop_front and std::deque::pop_back pops just the one front or back element resp.
16:29:50 <wob_jonas> drop would do something with the whole stack, probably drop it to the floor so the elements end up getting all mixed up and you can't reconstruct the original order, like in that IOCCC submission
16:30:38 <wob_jonas> http://www.ioccc.org/years.html#2001_westley that is
16:31:05 <orin> but it doesn't "pop" anything
16:31:11 <orin> it drops the removed element
16:31:27 <orin> you have to return it for it to be a "pop"
16:31:48 <wob_jonas> it's pop because the top element is removed from the stack
16:32:19 <wob_jonas> a toaster that ejects the toast with such velocity that you can't catch it still counts as popping the toast, even if you don't get your toast nicely on your plate, but landing on the floor instead
16:32:39 <wob_jonas> (those toasters might only exist in cartoons, but still)
16:33:14 <wob_jonas> heck, even with a deck of cards a magician might pop the deck by making the top card fly away to the floor, and not catch it on a sword if that's not required for the trick
16:33:29 <orin> C++'s usage of the word "pop" is inconsistent with every other language's native "pop" methods
16:33:54 <wob_jonas> orin: what every other language, and how many of those methods even existed before early forms of C++ containers?
16:34:54 <wob_jonas> I use pop in the sense of discarding the top element at https://esolangs.org/wiki/Blindfolded_Arithmetic , but let me try to find a more independent source
16:35:11 <orin> well for starters Lisp
16:35:21 <wob_jonas> where does lisp have a pop method?
16:35:55 <orin> http://jtra.cz/stuff/lisp/sclr/pop.html
16:36:00 <wob_jonas> it has a car function to return the top element, and a cdr function for non-destructively discard the top element
16:36:29 <orin> pop works on a cell
16:37:40 <wob_jonas> ok, that macro in the HUGE cltl library https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node149.html is admittedly possibly older than C++ containers
16:38:00 <wob_jonas> let me look up TAOCP ch. 2 for how it uses pop
16:39:25 <orin> I mean forth uses DROP to mean, remove an element from the stack and discard it
16:39:37 <orin> forth is definitely older than C++
16:39:53 <wob_jonas> and? it doesn't use "pop" in a different sense, does it?
16:40:01 <j4cbo> wob_jonas: the PDP-6 in 1964 had PUSH and POP instructions
16:40:17 <j4cbo> where POP specifically transfers a value to a register
16:40:17 <wob_jonas> j4cbo: ok, now that's a better example
16:41:00 <wob_jonas> 6502 gets closed but I think the pop instructions are called PL, where does that come from incidentally?
16:41:33 <orin> yeah probaby pull
16:42:56 <orin> can't be having a four-character instruction name lol
16:42:59 <wob_jonas> (I'm not sure about the ARM by the way, I don't recall its mnemonics)
16:43:08 <wob_jonas> orin: sure, but it could be PP or PO or something instead
16:45:51 <orin> Actually what they could have done to avoid the entire issue with copy cost and stuff is
16:45:54 <wob_jonas> Knuth 2.2 is inconclusive, from a quick glance
16:46:21 <orin> have queue::pop() be remove an element
16:46:47 <orin> and have queue::pop(&x) be remove and store it into x
16:47:12 <orin> rather than return
16:48:23 <orin> this would be totally consistent with assembly language usage of pop
16:48:54 <orin> and also exception safe
16:50:27 <wob_jonas> orin: http://www.ioccc.org/1991/brnstnd.hint DJB's entry implements a stack-based esolang, the description says "d: drop (pop) top of i stack", as in the command "d" discards the top element
16:50:54 <wob_jonas> so at least some respectable people use "pop" that way too
16:51:11 <wob_jonas> respectable people other than whoever made that part of the C++ stdlib that is
16:52:04 <wob_jonas> the description at https://esolangs.org/wiki/GolfScript also describes a command as "Pop, discard"
16:52:36 <esowiki> [[Analogia]] M https://esolangs.org/w/index.php?diff=59716&oldid=59711 * Oerjan * (+5) Surprisingly not policy
16:53:01 <wob_jonas> I think "pop" is just used both ways
16:58:43 -!- moei has joined.
17:04:38 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
17:19:53 <fizzie> The Befunge-93 spec uses "pop" as the name of the $ "discard topmost element of stack" instruction.
17:19:57 <fizzie> So you're in good company.
17:20:06 <fizzie> Granted, personally I've always called that instruction "drop".
17:21:16 <fizzie> (Where "as well" means pop.)
17:22:06 -!- oerjan has quit (Quit: Once you pop, you can't stop).
17:40:20 <esowiki> [[Analogia]] https://esolangs.org/w/index.php?diff=59717&oldid=59716 * Ais523 * (+180) we can have circularity of the term being integrated, but not the term it's integrated with respect to (at least, as long as we want the language to stay deterministic and avoid values that never change because they have no reason to)
17:40:51 -!- imode has joined.
17:44:19 <fizzie> Oh, and many x87 FPU instructions have a "...P" variants that say they "pop" the register stack, meaning discarding the top element.
18:08:36 <esowiki> [[ElemScript]] https://esolangs.org/w/index.php?diff=59718&oldid=59498 * Areallycoolusername * (+357)
18:09:19 -!- xkapastel has quit (Quit: Connection closed for inactivity).
18:17:42 -!- b_jonas has joined.
18:29:05 -!- xkapastel has joined.
18:34:38 <int-e> . o O ( programming is understanding negations. :P )
18:37:51 -!- Sgeo_ has quit (Read error: Connection reset by peer).
18:38:19 -!- Sgeo_ has joined.
19:10:09 <esowiki> [[Talk:Analogia]] N https://esolangs.org/w/index.php?oldid=59719 * Ais523 * (+583) /* Did I use the right derivative symbol? */ new section
21:04:32 -!- Phantom_Hoover has joined.
21:04:32 -!- Phantom_Hoover has quit (Changing host).
21:04:32 -!- Phantom_Hoover has joined.
21:04:54 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59720&oldid=51758 * Orby * (+0)
21:41:25 <b_jonas> oh, there's something I could ask here
21:41:58 <b_jonas> apparently google is finally starting a site in Hungary with developers. there were plans for this like ten years ago already, but eventually they cancelled it.
21:42:23 <b_jonas> fizzie: there are some people on this channel who work in google. can you comment on this thing?
21:43:14 -!- sebbu2 has changed nick to sebbu.
21:43:14 <shachaf> I suspect fizzie cannot comment on this thing.
21:44:20 <b_jonas> shachaf: maybe someone else on the channel can
21:44:38 <b_jonas> there are, I think, three or four people working at google here, I just don't recall who exactly
21:45:14 <shachaf> I mean, I suspect that people working at Google cannot comment on that kind of thing publicly.
21:51:26 <j4cbo> I used to work at google
21:51:43 <j4cbo> commenting on things was generally a big no-no
21:51:57 <j4cbo> except for the team whose job it is to do so
21:52:16 <j4cbo> (commenting on things publicly, that is)
21:53:30 <shachaf> i,i the team whose job it is to do the big no-nos
21:53:47 <b_jonas> and that team is the marketing team?
21:55:32 <shachaf> I assume it's teams with names like communications or public relations or investor relations or something. And I guess also marketing, but I doubt they'd talk about offices.
21:56:04 <b_jonas> "investor relations"? I'm not an investor, but sure
21:56:13 <shachaf> I also used to work at Google but I don't really know any specifics about these things other than that they exist.
21:56:26 <b_jonas> that's a lot of divisions by the way
21:56:49 <j4cbo> I recall being told many times that a reporter asks you to talk about anything, decline to comment and direct them to press@google.com
21:57:02 <j4cbo> (I know you’re not a reporter either, but)
22:00:25 <shachaf> b_jonas: You could be an investor if you wanted to.
22:00:58 <shachaf> I have some small amount of exposure to GOOG, I guess, though I don't own any directly.
22:01:49 <b_jonas> oh, that's true, I could be an investor indirectly by buying funds backed by the stock market
22:08:41 <fizzie> I think I wouldn't be supposed to comment, if I knew anything, which I don't.
22:09:05 <b_jonas> so since you don't know anything, you can comment?
22:09:20 <shachaf> Not knowing anything is in fact a comment.
22:09:43 <fizzie> I guess it's a bit of a comment.
22:10:03 <fizzie> I was probably supposed to say that I can neither confirm nor deny, which would be equally true.
22:10:40 <shachaf> i,i I can neither confirm nor deny, nor not confirm nor deny.
22:11:13 <fizzie> At least one reason why I shouldn't comment is that it would be material nonpublic information, and telling it to anyone could constitute tipping. (I had the occasion to read our insider trading policy recently.)
22:11:36 <shachaf> Hmm, insider trading laws in Europe are pretty different from in the US.
22:11:43 <shachaf> I guess you're probably bound by both.
22:12:21 <b_jonas> I've no clue how insider trading laws work at all, anywhere
22:12:37 <shachaf> You gotta read Money Stuff
22:12:39 <fizzie> Probably. The existence of an Insider Trading Policy is public, by the way -- it's section 3 of https://abc.xyz/investor/other/google-code-of-conduct/
22:13:05 <shachaf> Here are some laws for insider trading: https://www.bloomberg.com/opinion/articles/2018-08-12/the-10-laws-of-insider-trading
22:13:34 <shachaf> Law #1, don't do it, is probably the most important one to know, but the others are pretty relevant too.
22:14:09 <fizzie> "If you didn’t insider trade, don’t forget and accidentally confess to insider trading."
22:14:25 <j4cbo> best thing about leaving google: no more blackout windows
22:15:22 <j4cbo> (the existence of which is also public, buried in the above insider trading policy)
22:15:48 <shachaf> Blackout windows are useful when you want to sleep during the daytime.
22:16:06 <b_jonas> j4cbo: presumably those can be seen from public streets
22:16:23 <fizzie> The lack of them was the #1 complaint from university visitors in the summertime in Finland.
22:16:25 <b_jonas> what does a blackout window mean?
22:16:31 <shachaf> b_jonas: (A blackout window is a time period that you're not allowed to trade Google stock during.)
22:16:44 <shachaf> That is an awkward sentence.
22:17:09 <b_jonas> in that case they probably can't be seen from public streets, despite that other windows usually can
22:17:34 <j4cbo> it’s not a google (or alphabet) specific term
22:20:26 <b_jonas> (and other blackouts usually can)
22:39:48 -!- AnotherTest has quit (Ping timeout: 252 seconds).
22:58:33 <shachaf> I was sad about sourcereal going down so I'm rehosting it at http://sour-cereal.com/
23:01:38 -!- moei has quit (Quit: Leaving...).
23:05:10 <b_jonas> I should download more valuable websites to potentially be able to do this -- not necessarily host them, but also give the backup to someone else who hosts it
23:05:23 <b_jonas> currently I have too few downloaded, and most of them are out of date too
23:05:28 <esowiki> [[User:BradensEsolangs]] https://esolangs.org/w/index.php?diff=59721&oldid=58697 * BradensEsolangs * (+33)
23:05:33 <b_jonas> and lots of candidates for what to download
23:05:47 <b_jonas> I also have a few that I should download and reformat and host or distribute in a saner format
23:06:04 <shachaf> I downloaded someone's website recently after he died. :-(
23:06:14 <shachaf> I'm keeping a copy just in case, because it's full of interesting things.
23:17:20 -!- Essadon has quit (Quit: Qutting).
23:32:42 -!- oerjan has joined.
23:42:49 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:47:34 -!- Lord_of_Life_ has joined.
23:49:20 -!- Lord_of_Life has quit (Ping timeout: 272 seconds).
23:49:49 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:05:33 -!- FreeFull has joined.
00:06:42 <oerjan> . o O ( putting a hyphen in sourcereal is a bit scow, but i guess better than nonexistence. )
00:22:40 <shachaf> I feel like this is better than going with a .org or something.
00:22:57 <shachaf> If you have a better domain I can use that instead.
00:58:57 -!- b_jonas has quit (Quit: leaving).
01:19:18 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:15:16 -!- nfd9001 has joined.
02:47:19 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59722&oldid=59720 * Orby * (+0) /* Examples */
02:48:32 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59723&oldid=59722 * Orby * (-1) /* Examples */
03:00:12 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59724&oldid=59723 * Orby * (+0) /* Instructions */
03:24:43 <shachaf> kmc: https://www.reddit.com/r/QuantumComputing/comments/anawy4/alpha_testers_needed_for_quantum_computing_for/
03:25:42 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59725&oldid=59724 * Orby * (+131)
03:26:51 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59726&oldid=59725 * Orby * (-3) /* See Also */
03:27:06 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59727&oldid=59726 * Orby * (+0) /* See Also */
03:27:57 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59728&oldid=59727 * Orby * (-41) /* See Also */
03:54:15 <oerjan> `le/rn quantum leap//A quantum leap is a very small leap. See dragons.
03:54:17 <HackEso> Learned 'quantum leap': A quantum leap is a very small leap. See dragons.
04:02:58 -!- nfd9001 has quit (Ping timeout: 268 seconds).
04:23:13 -!- oerjan has quit (Quit: Nite).
04:31:48 -!- nfd9001 has joined.
04:42:58 -!- nfd9001 has quit (Ping timeout: 245 seconds).
04:46:58 -!- nfd9001 has joined.
05:31:56 <esowiki> [[Talk:Eodermdrome]] https://esolangs.org/w/index.php?diff=59729&oldid=59700 * Salpynx * (+963) /* Computational class / -completeness */ oops, I now see what you mean, thanks for clarifying!
05:58:00 -!- arseniiv has quit (Quit: gone completely :o).
06:34:36 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=59730&oldid=59585 * A * (+272) /* TeXnicard */
06:36:15 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=59731&oldid=59730 * A * (+8) /* This=That */
06:41:41 -!- moei has joined.
07:07:40 <myname> the more edits i see from that A, the more i wish he needed to be here at least once
08:59:49 <esowiki> [[Print Function Deluxe]] N https://esolangs.org/w/index.php?oldid=59732 * Cortex * (+1496) Created page with "'''Print Function Deluxe''' is an esolang made by [[User:Cortex|]] designed to have very small code and many useful commands, but the only way to see what it actually did thro..."
09:02:05 -!- imode has quit (Ping timeout: 246 seconds).
09:02:45 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=59733&oldid=59679 * Cortex * (+65)
09:12:01 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=59734&oldid=59713 * Salpynx * (+22) /* Non-alphabetic */ (Rna)
09:35:18 -!- AnotherTest has joined.
10:07:35 <esowiki> [[]] https://esolangs.org/w/index.php?diff=59735&oldid=59022 * Salpynx * (+216) /* Commands */ fill in missing commands (based on Buslubn, istil formula code)
10:15:41 <esowiki> [[]] https://esolangs.org/w/index.php?diff=59736&oldid=59735 * Salpynx * (+25) /* Commands */
10:25:53 -!- nfd9001 has quit (Ping timeout: 245 seconds).
11:10:39 -!- wob_jonas has joined.
11:12:40 <wob_jonas> Taneb invented the fulgurator, an explosive with such destructive power that any military who knew its secret could single-handedly rule the world. Taneb tried to sell the super-weapon to several governments, but the representatives all said no. They called Taneb mad, they laughed at him.
11:13:45 <wob_jonas> But Taneb would show them, he'd show them all. Even if he had to sell the weapon to the shadiest criminal through the underground, the fulgurator would be produced and its dominance over traditional weapons would rule the world. The government representatives won't be laughing then!
11:14:10 -!- Essadon has joined.
11:14:31 -!- Essadon has quit (Max SendQ exceeded).
11:15:12 <wob_jonas> myname: meh, A1 one is at least more interesting and partially specified to a higher degree than some of A's other languages. I mean, come on, he's even wrote a page about a brainfuck derivative.
11:15:53 <wob_jonas> I'm speaking relatively here, mind you.
11:16:15 <myname> i didn't mean A1 in particular
11:16:58 <wob_jonas> indeed you didn't specifically mention A1
11:17:15 <myname> it just looks like he makes trivial substitutes of anything obscure he can find
11:20:50 <wob_jonas> certainly, but his edits don't seem significantly different than that of the boring newcomers that the wiki sometimes gets, A just edits in a higher quantity
11:23:41 <myname> yeah, he certainly does not lack motivation, but imho he could do much better if he'd get direct feedback from here
11:27:21 <wob_jonas> ``` grep -REi "fu[lr]?gu[rl]" wisdom
11:27:36 <HackEso> wisdom/fugal:Fugals are fictitious flower parts. \ wisdom/fug:Fug is the opposite of Unfug (german: un-fug).
11:30:49 <wob_jonas> my hon. and learned friend fungot, has Taneb invented the fulgurator?
11:30:50 <fungot> wob_jonas: what is the minister going to the press, and to be in, the hospital in copeland, that the conservatives. he slightly missed to give us the best possible support, compared to a national average of just 1.5 prosecutions per council.
11:31:48 <HackEso> wisdom/marmite:Marmite is a hive mind of fungal microorganisms spreading throughout the supermarkets of the Commonwealth. \ wisdom/deewiant:Deewiant is the world expert on Befunge conformance testing. \ wisdom/children:Children are a fungible commodity. \ wisdom/mycology:mycology is a Befunge-98 (also -93 to some extent) testsuite that can be found at https://deewiant.iki.fi/projects/mycology/ \ wisdom/füngöt:Füngöt is the German pronunciation of fungo
11:32:13 <wob_jonas> ``` grep -REi "fung" wisdom | tail -n+5
11:32:14 <HackEso> wisdom/füngöt:Füngöt is the German pronunciation of fungot. \ wisdom/zzo38:zzo38 is not actually the next version of fungot, much as it may seem. \ wisdom/pietbot:Pietbot is the only thing that can defeat fungot. \ wisdom/prefixes:Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ . \ wisdom/fnordcore:Fnordcore is fungot's favorite music genre. \ wisdom/fungot:fungot is our beloved ch
11:32:33 <wob_jonas> ``` grep -REi "fung" wisdom | tail -n+10
11:32:34 <HackEso> wisdom/fungot:fungot is our beloved channel mascot and voice of reason. \ wisdom/befunge:In the Beginning was Befunge. And Befunge begot Fungot. And Fungot got Taneb. And Taneb tanebvented All the Things. Fnord. \ wisdom/page:The smallest floating-point number is known as pages. Fungot discovered it. \ wisdom/word salad detector:Our only word salad detectors before fungot proposed bright full speed under the mediterranean guadalope a light sauce impertinen
11:33:00 <wob_jonas> ``` grep -REi "fung" wisdom | tail -n+13
11:33:02 <HackEso> wisdom/word salad detector:Our only word salad detectors before fungot proposed bright full speed under the mediterranean guadalope a light sauce impertinent used the best brains of codeine fragments emerge from the red arrow shark-repellant housewife a smattering and yes I said yes I will Yes.
11:49:33 -!- Lord_of_Life has quit (Ping timeout: 244 seconds).
11:51:36 -!- Lord_of_Life has joined.
11:51:44 -!- ais523 has joined.
11:56:45 -!- ais523 has quit (Remote host closed the connection).
11:57:57 -!- ais523 has joined.
12:00:35 <wob_jonas> ais523: I know very little of ordinary differential equations, probably less than what was required to get the passing grade on the mandatory course on them back lots of years ago. those fundamental theorems about existance and uniqueness and smoothness of ODE solutions, what do they say about the system you can write in Analogia?
12:01:30 <wob_jonas> also, how are the input and output functions supposed to work?
12:03:04 <wob_jonas> the way how Analogia allows you to put any variable on the right hand side of the differential operator makes this system real strange, I don't think I can even define what they're supposed to mean
12:03:30 <wob_jonas> (plus they look incorrect without a parenthesis around those sums, but that's a different matter)
12:08:42 <wob_jonas> I mean, if they always said dt, that would be nice and simpler
12:15:15 <ais523> being able to put anything on the RHS is the main advantage that mechanical analog computers have
12:15:29 <ais523> it's not too hard to understand if you think about it in terms of rates of change
12:15:58 <ais523> for a given integrator, the sum tells you how fast the value of the integrator changes in response to a change in the differential variable
12:16:32 <wob_jonas> I don't know how mechanical analog computers worked, and I don't even really like the idea of mechanical analog computers. computers should be electronical.
12:16:38 <ais523> a mechanical integrator is basically a varying-ratio gear, there's a gear-like system set up between the differential variable and the integrator's value, and the value being integrated sets the ratio
12:17:33 <ais523> I think viewing Analogia as a differential equation is a bit of a red herring, it's much easier to understand using integrals than derivatives
12:17:48 <wob_jonas> yeah, but there's the problem that the stuff after the dee can turn back (have a zero derivative) in which case the simple implementation runs into a division by zero
12:18:09 <ais523> (incidentally, electronic analog computers require dt in all their integrators, but I think you lose a lot of computational power doing that and have to add it back using extra primitives; however, electronic analog computers can easily implement derivatives, which mechanical analog computers can't)
12:18:45 <ais523> wob_jonas: nah, while the thing after the d isn't changing, the value of the integrator doesn't change either, and when it's running backwards, the integrator runs backwards
12:19:43 <ais523> think of it like a definite integral, integral(0 to 2)(y dx) is basically saying "x changes from 0 to 2"; so if x changes from 0 to 2 and back to 0 there's no real conceptual problem, you'll end up back where you started unless y also changes in an asymmetrical way
12:27:10 <wob_jonas> but you have a whole system of multiple equations that influence each other
12:27:27 <ais523> but it's all continuous, this is the whole reason analog computers work
12:28:19 <ais523> changing the value of an integrator never affect anything /right now/ apart from integrators that it's the differential of (which is why Analogia requires no cycles in the differential term)
12:28:25 <wob_jonas> that is... what you hope. maybe it is, but I don't know those theorems properly.
12:28:28 <ais523> all it does is change the rate of change, which is something that only affects the future, not the present
12:29:14 <ais523> so I guess you can think of Analogia as a really complex machine for changing its own future evolution
12:29:20 <wob_jonas> they guarantee that they work in an open environment of 0 for certain conditions. I don't know what the conditions are, there's like a dozen different versions of the theorem
12:29:22 <ais523> but any given present state is easy to understand
12:29:53 <ais523> if you stop thinking about it as a system of differential equations the language is much simpler (although solving the differential equations is probably the easiest way to bring a program into "closed form")
12:30:50 <wob_jonas> I don't need a closed form, and certainly those usually don't exist except for some very special programs
12:31:19 <ais523> well, an optimizer would likely try to closed-form as much as possible
12:31:57 <ais523> e.g. integrating x+x dx means that the output of the integrator will be the square of the input of the integrator, you'd want to optimize that into just using x² directly
12:32:03 <wob_jonas> sure, and a programmer will write interesting programs, not simple linear ones where all the dee variables are t
12:33:23 <wob_jonas> maybe the functions can't even turn back, at least for 0<t, because there's no way to introduce a minus sign? I don't know how this works
12:34:43 <izabera> has anyone seen elliott in the past few years?
12:41:57 <int-e> heh, https://hackage.haskell.org/package/prettyprinter-1.2.0.1/docs/Data-Text-Prettyprint-Doc.html#t:Pretty has a cute law.
12:47:03 <ais523> I'm amused at the instance for Pretty Void
12:47:38 <ais523> which I think only exists so that empty containers of Voids are treated as having an appropriate type to be prettified
12:48:17 <int-e> oh it says that it's pretty absurd.
12:48:43 <int-e> (ignoring special characters: 'instance Pretty Void where pretty = absurd')
12:49:11 <int-e> I did wonder why there's no instance Pretty Doc.
12:50:08 <int-e> (I had an auxiliary function of type Pretty p => [p] -> Doc and tried feeding it a list of Docs)
12:50:09 <ais523> hmm, how useful are Void-producing monad actions?
12:50:44 <int-e> they may still have an effect in a monad transformer
12:51:05 <int-e> (ignoring laziness that means that Void values actually exist)
12:55:01 <int-e> So perhaps not so useful in Haskell; you can document the intent that subsequent actions will never be performed, but it's not enforced.
12:55:22 <int-e> :t System.Exit.exitSuccess
12:56:03 <int-e> (you can think of that as having "absurd" already built in)
13:06:03 <ais523> oh, so it's similar to ! in Rust, which makes sense
13:06:22 <ais523> monads give sequencing so "nothing ever happens after this in sequence" is a useful thing to be able to say
13:20:09 <esowiki> [[Csub]] N https://esolangs.org/w/index.php?oldid=59737 * A * (+210) Created page with "[[Csub]] is a "subset" of C. ==Syntax== ==Implementation== [https://github.com/Btup/C-Subset Official compiler to C] ==Turing-completeness== [[Category:Turing-complete]] Cat..."
13:22:45 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59738&oldid=59737 * A * (+250)
13:23:15 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59739&oldid=59738 * A * (+640)
13:24:41 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59740&oldid=59739 * A * (+100) /* Syntax */
13:25:16 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
13:28:54 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59741&oldid=59740 * A * (+167) /* Turing-completeness */
13:29:07 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59742&oldid=59741 * A * (+0) /* Hello, world! Program */
13:30:22 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59743&oldid=59742 * A * (+25)
13:31:44 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59744&oldid=59743 * A * (+73)
13:38:16 -!- wob_jonas has joined.
13:44:06 <myname> wait, is that the github profile of A or does he just link to other peoples languages?
14:08:43 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59745&oldid=59744 * A * (-336)
14:09:47 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
15:19:26 -!- ais523 has quit (Ping timeout: 240 seconds).
15:51:47 -!- xkapastel has joined.
16:01:29 <esowiki> [[Special:Log/newusers]] create * Superiumentarius * New user account
16:21:20 -!- arseniiv has joined.
16:33:04 <Taneb> I should really learn how to properly touchtype
16:35:25 <orin> https://upload.wikimedia.org/wikipedia/commons/b/bb/First_Image_from_Mariner_4_-_GPN-2003-00060.jpg
16:35:53 <orin> ^ employee of Nasa hand-decoding image from Mars
17:34:13 <HackEso> 246) * Received a CTCP VERSION from nyuszika7h * VERSION Microsoft IRC# 2011 64-bit (Windows 8 Beta, x64, 2GB RAM) <nyuszika7h> Gregor: Windows 8 Beta? o_O <Gregor> A small benefit of my brief time as an intern at MS. \ 114) <ivancastillo75> Oh I get it you guys just use this space to do nothing ?
17:46:56 -!- LKoen has joined.
17:51:52 -!- LKoen has quit (Remote host closed the connection).
18:01:31 -!- xkapastel has quit (Quit: Connection closed for inactivity).
18:12:27 -!- xkapastel has joined.
18:23:41 -!- Phantom_Hoover has joined.
18:23:41 -!- Phantom_Hoover has quit (Changing host).
18:23:41 -!- Phantom_Hoover has joined.
18:50:42 -!- LKoen has joined.
19:32:47 -!- LKoen has quit (Remote host closed the connection).
19:52:50 -!- imode has joined.
20:21:31 -!- xkapastel has quit (Quit: Connection closed for inactivity).
20:26:23 -!- xkapastel has joined.
21:03:25 -!- b_jonas has joined.
21:06:23 <esowiki> [[User:BradensEsolangs]] https://esolangs.org/w/index.php?diff=59746&oldid=59721 * BradensEsolangs * (+107)
22:00:21 <esowiki> [[User:Cortex]] https://esolangs.org/w/index.php?diff=59747&oldid=59524 * Cortex * (+28) /* Languages I made */
22:01:25 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=59748&oldid=59734 * Cortex * (+28)
22:06:08 <shachaf> Is there a language that makes generating code the primary thing, rather than a special case like a preprocessor?
22:06:23 <shachaf> It seems like quite a lot of code would be better generated than handwritten, if a language made it convenient.
22:06:52 <shachaf> Also most metaprogramming mechanisms people use, like CPP and C++ templates and so on, are quite bad.
22:07:28 <shachaf> C++ templates are ridiculously bad for what people use them for.
22:08:37 <shachaf> (Except for the relatively limited original use. Maybe.)
22:12:19 <kmc> everyone knows C++ is a hot mess
22:14:23 <kmc> shachaf: anyway metaprogramming is bad, fexprs are the future
22:15:56 <shachaf> Lisp doesn't really have a notion of compile-time
22:16:17 <shachaf> Or does it? I don't know. I want a language for C-level things.
22:16:27 <rain1> fexprs is one of those awful things i never understand why people care bout, like shen and wisp
22:17:02 -!- john_metcalf has joined.
22:17:30 <kmc> i think they're neat and wrote a long blog post about them http://mainisusuallyafunction.blogspot.com/2012/04/scheme-without-special-forms.html
22:17:36 <kmc> but they probably aren't practical
22:17:58 <shachaf> Most metaprogramming schemes are victims of the esolang disease.
22:18:14 <shachaf> Someone adds some feature, like C++ templates or Haskell type classes, or whatever, for a pretty limited purpose.
22:18:35 <shachaf> Then people start using them for other purposes, because metaprogramming is TG, even though the particular mechanism is a pretty bad one.
22:18:57 <shachaf> So then language designers see people use the mechanism for these things, and extend it in all sorts of ways that make it moderately easier to do things.
22:19:09 <b_jonas> shachaf: the problem is that it's hard to design a good one
22:19:13 <shachaf> But it's all quite a bad system for achieving the end goal, compared to a regular programming language.
22:19:18 <b_jonas> the rust guys are still trying, but still
22:19:25 <b_jonas> it's just hard to make it work well
22:19:31 <kmc> i used to have so much fun writing scheme
22:19:48 <shachaf> It can be a lot of fun writing in these accidental esolangs.
22:19:52 <shachaf> But it's not actually good.
22:20:01 <shachaf> (I mean, Scheme is less in this category than a lot of other things, probably.)
22:20:22 <b_jonas> I was also considering trying to make an esolang that's just meta-programming all the way down, as in, the main effect your program does is make another program of the same language but at a lower level, and all the levels are equivalent and there's one for every rational number or something
22:20:28 <b_jonas> but I couldn't yet figure out how to do it well
22:20:43 <b_jonas> I have ideas but they don't really work
22:20:51 <rain1> oh wow that code is really elegant, i like qoppa quite a lot
22:22:16 <shachaf> what if it's not eso but actually useful though
22:22:18 <kmc> thanks rain1
22:22:54 <kmc> it is fun how the bootstrap code is like an evolution from qoppa to scheme
22:23:38 <kmc> maybe it should have an esolangs wiki page
22:24:47 <shachaf> kmc: Hmm, maybe this operative thing is similar to the block thing I've been trying to figure out.
22:25:42 <esowiki> [[Special:Log/newusers]] create * Kmc * New user account
22:25:54 <kmc> I think I'll make one
22:27:34 <kmc> maybe it's not quite an esolang but i think it's in the same general spirit
22:27:37 <kmc> it is a tarpit of sorts
22:28:06 <kmc> is "lambda tarpit" a thing
22:28:11 <kmc> I declare it to be a thing
22:29:32 <rain1> unlambda is the king there then
22:29:42 <rain1> and maybe combinator ones too
22:29:44 <shachaf> b_jonas: I think I discussed it before.
22:29:48 <rain1> theres a few that fit in that set
22:30:02 <b_jonas> shachaf: probably. this channel had a lot of things going on.
22:30:04 <shachaf> Something like, what should a {} block be, as a pseudo-first-class thing.
22:30:21 <shachaf> The "argument" to if/for/etc.
22:30:24 <b_jonas> uh, that really depends on the language
22:30:35 <shachaf> One answer is that those things are just macros.
22:30:43 <shachaf> But I thought there would be a nicer answer.
22:30:55 <b_jonas> I know what a block is in underload and consumer society, and what it is in postscript,
22:31:23 <b_jonas> in some languages (like perl) they're more or less anonymous closure bodies
22:31:45 <b_jonas> which is how you define functions in perl that take a block, although they don't quite work the same as the built-in stuff that takes a block, but still
22:31:53 <b_jonas> you can define a control structure like if
22:31:55 <shachaf> This is for a language with, let's say, no runtime notion of closure.
22:32:01 <b_jonas> and if you take the condition in a block, you can also define a while
22:32:05 <shachaf> It's supposed to compile to efficient code.
22:32:28 <shachaf> Also the primary use was supposed to be things that take "the rest of the block" as an argument, which I think I've discussed here before.
22:32:34 <b_jonas> shachaf: they still work if they're closures that are only allowed to capture the stack frame as a reference
22:32:39 <kmc> shachaf: did you know there are multiple implementations of qoppa https://github.com/timfel/qoppy
22:32:44 <b_jonas> those compile to efficient code
22:32:49 <b_jonas> well, more efficient than normal anyway
22:33:06 <b_jonas> smalltalk and ruby take the closure thing even further than perl of course
22:33:10 <shachaf> b_jonas: Yes, but I want it to compile to efficient code, not things with indirect jumps and whatever.
22:33:46 <shachaf> Also I don't know many languages that have closures implemented in terms of a stack frame pointer.
22:33:49 <b_jonas> shachaf: there are no indirect jumps in this. there might be dereferences though, which is bad.
22:33:55 <kmc> wow, it ended up in an ACM published paper?? https://www.researchgate.net/publication/306013530_Multi-level_Debugging_for_Interpreter_Developers
22:34:01 <kmc> life is funny
22:34:05 <b_jonas> no indirect jumps because the closure type is known exactly
22:34:21 <shachaf> Is while/if/whatever inlined?
22:34:47 <b_jonas> you mean like in smalltalk or ruby?
22:35:01 <shachaf> Wherever you said there are no indirect jumps.
22:35:04 <b_jonas> perl and ruby actually has built-in if and while statements that don't actually work with a closure
22:35:15 <b_jonas> shachaf: oh, that's always true if you put this in a strongly typed compiled language
22:35:24 <shachaf> Because "if" etc. is inlined?
22:35:43 <b_jonas> oh, you mean the if function itself
22:35:46 <b_jonas> yes, that would have to be inlined
22:35:59 <b_jonas> but it would be because I assume a strongly typed language, and if would be a generic
22:36:03 <b_jonas> like a C++ template or rust generic
22:36:12 <b_jonas> so it must be instantiated for the specific closure type
22:36:19 <b_jonas> in which case it will certainly be inlined
22:36:21 <shachaf> The other thing is that you might have a thing take a block as an argument and change its scope.
22:36:52 <shachaf> If you have something like "using namespace foo { ... }", things inside the block would implicitly have name resolution in foo::.
22:36:59 <shachaf> That's certainly a compile-time thing, not a closure.
22:37:43 <b_jonas> when it compiles code, each part of the code that needs it remembers the active package, the enabled warnings, and certain pragmas, from compile time
22:38:03 <b_jonas> the relevant values either modify compilation, or are tracked somewhere in the compiled code so that the runtime can access it
22:38:18 <b_jonas> the active package is needed when you access a global variable or sub by name without qualification
22:38:41 <b_jonas> so if $foo isn't a local and you reference $foo, then it will mean $foo in the active package, which is fixed at compile time for any mention of $foo
22:41:20 <shachaf> I don't think Perl's separation between compiletime and runtime is as clear as I'd like, though maybe I can still get some ideas from it.
22:41:40 <b_jonas> you can run any runtime code at compile time, or compile anything at runtime
22:41:46 <b_jonas> nested to any number of levels
22:41:53 -!- LKoen has joined.
22:45:01 -!- AnotherTest has quit (Ping timeout: 250 seconds).
22:55:24 -!- oerjan has joined.
22:56:26 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=59749&oldid=59501 * Kmc * (+187)
22:56:36 <esowiki> [[Qoppa]] N https://esolangs.org/w/index.php?oldid=59750 * Kmc * (+1121) Create page
23:09:47 <orin> namspace template
23:10:12 <shachaf> I do think templated namespaces would be reasonable in C++
23:10:21 <shachaf> template<typename T> namespace N { ... }
23:10:21 <orin> declared like namespace foo<class T> { ....
23:11:37 <orin> shachaf: they would be useful in my current project since I need to be able to easily compile the same stuff with two different backends
23:12:19 <orin> yeah I'm using a #define but still
23:12:46 <orin> wouldn't it be more ceeplusplussy to use templates?
23:13:15 <shachaf> but more ceeplusplussy is more badder
23:21:35 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:29:27 <kmc> shachaf's wrong
23:29:30 <kmc> templates all the way
23:29:50 <kmc> it depends on the details of course
23:48:39 -!- Lord_of_Life_ has joined.
23:51:17 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
23:51:18 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
23:51:31 -!- xkapastel has quit (Quit: Connection closed for inactivity).
00:08:41 -!- b_jonas has quit (Quit: leaving).
00:23:38 -!- xkapastel has joined.
00:44:48 -!- oerjan has quit (Quit: Oh for... tmux is broken again).
00:45:34 -!- oerjan has joined.
00:50:53 <oerjan> `slwd quantum leap//s,dragons,dragon,
00:50:55 <HackEso> quantum leap//A quantum leap is a very small leap. See dragon.
00:51:33 <oerjan> maybe `wisdom should strip plural endings, although it feels a bridge too far.
00:52:04 <HackEso> Dragons are fractal creatures of magic, capable of shrinking or expanding to any size. Taneb invented them to live inside his string diagrams, but they prefer to hover around pinheads and feed on angels.
00:52:22 <shachaf> I thought spiders live inside string diagrams.
01:02:10 <oerjan> i guess they jumped into the open niche left by the dragons, then
01:02:58 <shachaf> https://pbs.twimg.com/media/DqGpNl9X4AAZaSR.jpg:large
01:13:21 -!- Cullran has joined.
01:13:22 -!- Cullran has left.
02:11:31 <imode> deques are just rebadged tapes.
02:32:28 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=59751&oldid=59731 * Oerjan * (+71) /* This=That */ Fix fatal bug
02:43:03 -!- 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.”).
03:08:24 -!- ingrens has joined.
03:08:25 -!- ingrens has left.
03:11:31 -!- xkapastel has quit (Quit: Connection closed for inactivity).
03:20:55 -!- arseniiv_ has joined.
03:24:22 -!- arseniiv has quit (Ping timeout: 246 seconds).
03:24:45 -!- arseniiv has joined.
03:24:45 -!- arseniiv_ has quit (Read error: Connection reset by peer).
03:35:54 -!- FreeFull has quit.
03:39:26 -!- ghalnuls has joined.
03:39:27 -!- ghalnuls has left.
03:41:49 -!- oerjan has quit (Quit: Nite).
03:46:26 -!- yaewa has joined.
03:47:33 -!- moei has quit (Ping timeout: 245 seconds).
04:19:49 <Sgeo_> "(before you freak out, monadic here is of the Mathematics definition, and not the Haskell variant )
04:23:32 <Sgeo_> Reading an APL tutorial
04:23:59 <kmc> ah, so they mean arity 1
04:29:39 <Sgeo_> I tried to learn J a few times, I think most of the knowledge left my head. But apparently APL doesn't support J's pointfree stuff?
05:14:53 <shachaf> Sgeo_: just read https://code.jsoftware.com/wiki/Essays/Incunabulum hth
05:19:00 <Sgeo_> Instead of reading APL stuff, I am now reading J stuff again
05:48:00 -!- imode has quit (Ping timeout: 272 seconds).
05:59:26 -!- imode has joined.
06:14:26 -!- Sgeo_ has quit (Read error: Connection reset by peer).
06:14:52 -!- Sgeo_ has joined.
06:21:05 <FireFly> Sgeo_: I think Dyalog supports a lot of the tacit/pointsfree things
06:22:28 <FireFly> but historially APL hasn't (I think IPSA's APL introduced them in the 90s, and it carried over into J
06:48:25 <shachaf> Hmm, http://terralang.org/ might be similar to the kind of thing I was talking about.
06:49:26 <shachaf> Though not really the same
07:10:29 -!- Essadon has joined.
07:13:42 -!- john_metcalf has quit (Quit: http://corewar.co.uk).
07:35:01 -!- imode has quit (Ping timeout: 268 seconds).
07:44:13 -!- arseniiv has quit (Ping timeout: 245 seconds).
08:10:19 -!- sftp has quit (Ping timeout: 250 seconds).
08:37:08 -!- tromp has joined.
08:49:25 -!- AnotherTest has joined.
08:53:51 -!- sftp has joined.
09:13:09 <Taneb> I remember when I tried to learn APL
09:13:29 <Taneb> I find a tutorial that began "Plug in your telephone to your typewriter and dial the number for your computer"
09:13:44 <Taneb> Decided I should maybe try something a little more modern
09:24:25 <FireFly> I like that AVX512 introduced some opcodes on bits that distinctly remind me of 60s APL
09:25:33 <Taneb> I couldn't figure out how to plug in my smartphone into my mechanical typewriter
09:27:29 <FireFly> that would be an insanely awesome piece of tech for someone to hack up, though
09:27:33 -!- LKoen has joined.
09:29:34 <Taneb> A tad above my ability :(
09:36:11 -!- tromp has quit (Remote host closed the connection).
09:49:56 -!- tromp has joined.
10:07:09 -!- wob_jonas has joined.
10:07:36 <wob_jonas> `pbflist https://pbfcomics.com/comics/scorchy/
10:07:37 <HackEso> pbflist https://pbfcomics.com/comics/scorchy/: shachaf Sgeo quintopia ion b_jonas Cale
10:10:33 <wob_jonas> `bobadventureslist http://bobadventures.comicgenesis.com/d/20190206.html
10:10:34 <HackEso> bobadventureslist http://bobadventures.comicgenesis.com/d/20190206.html: b_jonas
10:11:46 <wob_jonas> also, either that comic is unrealistic or I grew up with a lie. I told that when a ladder breaks, you get two ten-foot poles.
10:12:10 <Taneb> If it breaks badly you get two five-foot ladders
11:48:30 -!- Lord_of_Life_ has joined.
11:51:33 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
11:51:33 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:20:56 -!- AnotherTest has quit (Ping timeout: 240 seconds).
12:27:44 <int-e> this is what happens when you use a ladder as a bridge
12:39:55 <fizzie> `learn A ladder is just a vertical bridge.
12:39:57 <HackEso> Learned 'ladder': A ladder is just a vertical bridge.
12:47:59 <wob_jonas> fizzie: it's a bit more complicated than that. a ladder is a bridge that goes *up*. if it goes down, then we call it a snake instead of a ladder.
12:55:32 -!- xkapastel has joined.
13:01:12 -!- danieljabailey has quit (Ping timeout: 272 seconds).
13:06:31 <fizzie> `slwd ladder//s/vertical bridge/directed & in the positive orientation/
13:06:33 <HackEso> ladder//A ladder is just a directed vertical bridge in the positive orientation.
13:41:06 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59752&oldid=59745 * A * (+178)
13:51:00 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59753&oldid=59752 * A * (+1380) /* Example programs */
14:03:42 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59754&oldid=59753 * A * (+346) /* DIV(division) function */
14:11:36 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59755&oldid=59754 * A * (+446) /* Example programs */
14:11:46 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59756&oldid=59755 * A * (+1) /* =Fibonacci sequence */
14:21:09 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59757&oldid=59756 * A * (+840) /* Fibonacci sequence */
14:24:57 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59758&oldid=59757 * A * (+289) /* 99 bottles of beer */
15:22:23 -!- oerjan has joined.
15:25:14 <oerjan> <Sgeo_> "(before you freak out, monadic here is of the Mathematics definition, and not the Haskell variant ) <-- how amortized
15:25:29 * oerjan couldn't think of the actual word he wanted hth hth
15:25:44 <oerjan> but something about poor deluded fools
15:25:50 <Taneb> oerjan: did you turn off the thing that means you need to say hth twice to say it once
15:26:02 <oerjan> no, but i forget it doesn't trigger on /me
15:26:45 <wob_jonas> oerjan: J has a lot of unique terminology, different from earlier APLs. the normal term is "unary".
15:27:06 <wob_jonas> IJ went out of his way to find obscure words
15:27:41 <wob_jonas> RH may have taken some part, but I think it was mostly KI
15:27:45 <Taneb> wob_jonas: I thought APL used the monadic/dyadic thing?
15:27:52 <Taneb> As in, those names
15:28:11 <wob_jonas> I know that APL calls "operators" what J calls "verbs"
15:28:20 <wob_jonas> let me check some other APL manuals
15:28:22 <Taneb> Although I guess KI was around for APL too
15:32:13 <wob_jonas> APL has been using "monadic" and "dyadic" for a long time
15:32:30 <wob_jonas> that's not one of the terms KI has invented specifically for J
15:32:54 <wob_jonas> also I think the correct initials are KEI
15:37:07 <wob_jonas> and I'm wrong about "operator" too. APL calls "functions" what J calls "verbs"
16:05:26 <oerjan> fizzie: i don't think wob_jonas was entirely serious about the snakes hth
16:06:58 <oerjan> are you suggesting wisdom entries are not supposed to be accurate tdnh
16:07:52 <oerjan> also i'm pretty sure it's possible to descend ladders, at least if you don't look down first.
16:07:55 <wob_jonas> accurate doesn't have to do with this. we're talking about serious vs frivolous (whatever that latter one is spelleD)\
16:08:21 <oerjan> remarkably, i think that spelling's correct
16:27:20 <FireFly> APL also uses monad/dyad terminolgy
16:28:07 <FireFly> the terms that are new in J are mainly the linguistically inspired ones I think
16:29:08 <FireFly> and if he went for that originally, the *-adic terms might've been valency (univalent etc) instead, I think
16:29:32 <Taneb> Univalent foundations to J theory
16:29:47 <FireFly> yeah: https://en.m.wikipedia.org/wiki/Valency_(linguistics)
16:34:42 <FireFly> the modern common terminolgy is a bit of a mix of origins anyway: you typically say unary, but also variadic
16:40:27 -!- arseniiv has joined.
16:44:39 -!- xkapastel has quit (Quit: Connection closed for inactivity).
16:50:35 -!- AnotherTest has joined.
16:53:11 -!- imode has joined.
16:56:06 -!- sebbu has quit (Ping timeout: 250 seconds).
16:59:43 -!- sebbu has joined.
17:10:26 -!- tromp has quit (Remote host closed the connection).
17:20:35 -!- tromp has joined.
17:32:28 -!- oerjan has quit (Quit: Later).
17:33:41 <shachaf> but what about a möbius ladder twh
17:47:56 <wob_jonas> shachaf: you mean from that Escher picture with the ants?
17:50:52 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
18:13:31 -!- LKoen has quit (Remote host closed the connection).
18:24:11 <imode> deque automata are really just turing machines under a different projection. it looks like you can map the operations of a turing machine _directly_ onto that of a deque automaton.
18:25:49 <imode> my reasoning: a regular queue automaton is just a right-moving circular TM tape. a deque automaton is thus a queue automaton that can move in either direction with a circular tape.
18:26:30 <izabera> Taneb: how offline are you right now?
18:27:19 -!- xkapastel has joined.
18:54:18 -!- LKoen has joined.
19:18:17 -!- b_jonas has joined.
19:19:41 <b_jonas> wtf, the xkcd Randal published another book? what's this with every webcomic author publishing books other than comic books? (qwantz and smbc are previous examples)
19:20:34 <LKoen> yeah, authors publishing books, bleh, what an idea
19:20:48 -!- FreeFull has joined.
19:22:42 <b_jonas> more strangely, https://xkcd.com/how-to/ uses a bad map projection
20:10:40 <kmc> what's with it is $$$
20:10:48 <kmc> besides, the comic has sucked for a long time
20:11:13 <kmc> i used to be very much a member of the xkcd haters club
20:11:21 <kmc> but now it's not everywhere all the time so i just don't care either way
20:11:41 <shachaf> sounds like you're more a member of the xkcd fan club haters club
20:11:48 <kmc> well i guess
20:11:53 <kmc> the fandom is always worse than the work
20:12:02 <shachaf> i'm p. sympathetic to that, it's a scow fan club
20:12:07 <kmc> whether it's xkcd, rick and morty, nietzsche, jesus
20:12:45 <kmc> tho i don't think R&M is that good of a show either
20:12:53 <shachaf> you know the kind of person who always links to xkcd every time someone talks about sql injection or whatever
20:12:56 <kmc> but maybe if I would watch more I would like it
20:13:44 <j4cbo> I liked rick and morty way less after watching venture bros
20:14:43 <b_jonas> shachaf: I do keep linking to webcomics, but not about SQL injection in particular
20:15:17 <shachaf> I mean, linking to webcomics is fine.
20:15:27 <b_jonas> how about linking to SMSM?
20:16:00 <b_jonas> I sometimes do that, but not always, because I don't have a transcript for either of them, and it's hard to find the right strip
20:16:07 <b_jonas> https://stickman.qntm.org/index.php
20:16:13 <HackEso> smlist 493: shachaf monqy elliott mnoqy Cale
20:16:33 <shachaf> it's just people who always try to tie any possible topic to xkcd just because it was brought up once that's annoying
20:16:47 <HackEso> smlist 492: shachaf monqy elliott mnoqy Cale
21:14:55 -!- danieljabailey has joined.
21:29:14 -!- arseniiv has quit (Read error: Connection reset by peer).
21:29:32 -!- arseniiv has joined.
21:59:04 -!- ^vandall^ has joined.
22:00:15 -!- ^vandall^ has left.
22:07:37 -!- ^vandall^1 has joined.
22:07:53 -!- ^vandall^1 has left.
22:11:42 -!- 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.”).
22:57:00 -!- Sgeo__ has joined.
22:59:56 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
23:08:44 -!- ^vandall^1 has joined.
23:09:21 -!- ^vandall^1 has left.
23:10:21 -!- ^vandall^ has joined.
23:13:18 -!- ^vandall^ has left.
23:20:26 -!- AnotherTest has quit (Ping timeout: 240 seconds).
23:24:29 -!- b_jonas has quit (Quit: leaving).
23:32:38 -!- MDude has quit (Ping timeout: 272 seconds).
23:41:40 -!- MDude has joined.
23:43:48 -!- Essadon has quit (Quit: Qutting).
23:48:25 -!- Lord_of_Life_ has joined.
23:51:12 -!- MDude has quit (Ping timeout: 268 seconds).
23:51:26 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
23:51:26 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:02:25 -!- oerjan has joined.
00:03:02 -!- MDude has joined.
00:48:22 <HackEso> 1/2:flabberghast//Flabberghast is the recurring hunting one gets after too indulgent feast where one partook too liberaly \ chicken//Chicken have capital words. boily leaves them. \ rainbow//Rainbows are spectral creatures said to be powered by the Daystar. \ degenerate//Degenerate things are those that have been featured on the Ellen DeGeneres Show. The subjects of this sui degeneris program include spaghoti sauce, talking spheres of zero volume,
00:48:23 <HackEso> 2/2:and watches without mustard. \ amiga//Amiga is Spanish for a female friend.
00:58:28 <oerjan> `slwd chicken//s;leaves them;used to leave them, then he left;
00:58:30 <HackEso> chicken//Chicken have capital words. boily used to leave them, then he left.
00:59:17 <HackEso> 10050:2016-12-31 <Zarutiän> learn Flabberghast is the recurring hunting one gets after too indulgent feast where one partook too liberaly
00:59:39 <oerjan> is this a reference i don't get
01:02:47 <oerjan> `learn The flabberghast is the most confusing type of undead.
01:02:49 <HackEso> Relearned 'flabberghast': The flabberghast is the most confusing type of undead.
01:08:32 <oerjan> @tell imode A deque automaton viewed that way is more efficient than a turing machine: it can easily insert new cells between cells.
01:10:09 <oerjan> @tell imode (or delete)
01:12:17 <oerjan> <kmc> the fandom is always worse than the work <-- . o O ( there has to be an exception to that somewhere. )
01:12:48 <oerjan> . o O ( that thought bubble was a bit redundant )
01:14:29 <kmc> perhaps very obscure works with very tiny fandoms
01:21:53 <int-e> . o O ( . o O ( are we thinking thoughts? ) )
01:22:36 <shachaf> are thought bubbles a monad?
01:22:52 <shachaf> in the mathematical sense, not the APL sense hth
01:24:15 <kmc> thinking of thinking a thought is not the same as thinking a thought
01:24:34 <kmc> also simpsons did it
01:24:35 <shachaf> a list of lists of things is not the same as a list of things hth
01:24:47 <kmc> what about dreams? can you collapse nested dreams?
01:25:19 <shachaf> unicode has both THOUGHT BUBBLEs and a THOUGHT BALLOON
01:25:45 <shachaf> do you ever have imaginary conversation with people
01:26:07 <shachaf> if so, do you sometimes inform those people that they aren't the real person but only the imaginary person create for the purposes of conversation
01:27:18 <kmc> a) yes but b) no
01:27:21 <kmc> maybe I should
01:27:24 <kmc> how do they usually react?
01:27:39 <kmc> how would i react?
01:27:41 <esowiki> [[Brainfuck minus -]] https://esolangs.org/w/index.php?diff=59759&oldid=57020 * Oerjan * (+32) Add See also to similar language
01:27:43 <shachaf> it can be difficult to keep the simulation running in the face of absurdity
01:28:06 <kmc> I think if I told you, you'd pretty much shrug it off
01:28:23 <shachaf> Because I wouldn't believe you?
01:28:35 <shachaf> Because I'm just an offshrugger in general?
01:28:40 <kmc> the latter
01:29:07 <kmc> i mean it doesn't actually give you any information even if i'm telling the truth
01:29:11 <kmc> because what is being real, etc
01:29:21 <kmc> it might tip you off that the simulation is of poor quality
01:29:25 <esowiki> [[Brainfuck--]] https://esolangs.org/w/index.php?diff=59760&oldid=54922 * Oerjan * (+22) Add See also to Brainfuck minus - and fix sections case
01:30:01 <shachaf> I mean, I might not have a coherent definition of real but I still have a sense for it.
01:30:15 <kmc> "i know it when i see it"
01:30:31 <int-e> shachaf: it fells more like a modality than a functor to me... so the question is whether it's transitive (◇◇P ⟹ ◇P, usually written ◻P ⟹ ◻◻P)
01:30:50 <shachaf> Are modalities not monadic?
01:31:01 <kmc> shachaf: I used to have a problem where I would often argue with people in my head, and they'd be more of a jerk in my head than in actuality, and then i'd be mad at that person for absolutely no actual reason
01:31:02 <shachaf> I mean, it might be a functor in some sense, but not in an internal sense.
01:31:07 <kmc> i don't think it happens much anymore?
01:31:18 <shachaf> kmc: https://www.youtube.com/watch?v=Cs2y6O6N9Ks
01:31:44 <int-e> shachaf: I'm not someone to shoehorn everything into a categorical setting.
01:32:00 <shachaf> it is a categorical imperative
01:32:35 <kmc> shachaf: that show is tg
01:33:00 <pikhq> I may have been in some Places of late, because how you meant that is not how I read it.
01:33:00 <kmc> i don't think so
01:33:14 <shachaf> Weren't you asking for shows to watch the other day?
01:33:24 <shachaf> imo start with the known-tg ones
01:33:24 <kmc> i didn't think of this one tho
01:33:27 <kmc> but now i have :)
01:34:31 <kmc> in addition to nested dreams i have also had nested sex fantasies
01:34:48 <kmc> the effort required to maintain that makes it somewhat hard to enjoy
01:37:31 <shachaf> https://pdfs.semanticscholar.org/24f1/b508d93c7b06f2af713b14078c8b25b90586.pdf is ontopic for both modal logic and wholesomeness
01:37:45 <shachaf> ("A non-judgmental reconstruction of drunken logic")
01:39:29 <kmc> that reminds me, I clicked "Random page" a few times on the esolang wiki and came across https://esolangs.org/wiki/PUBERTY
01:39:40 <kmc> which is definitely wholesome
01:40:30 <kmc> shachaf: sounds like a SIGBOVIK paper
01:41:00 <shachaf> "As Bovik has famously noted in [2], nowhere outside of undergraduate lectures are scholars are more prone to sweeping generalizations than at the bar."
01:41:29 <kmc> has a SIGBOVIK paper ever been cited by a "serious" paper?
01:42:34 <shachaf> I think so, though I don't remember the specific case.
01:42:42 <shachaf> Maybe an NP-completeness proof or something?
01:58:22 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59761&oldid=59758 * A * (+672) /* Implementing other operators */
01:59:02 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59762&oldid=59761 * A * (+59) /* Syntax */
02:22:29 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59763&oldid=59762 * A * (+1) /* =continue */
02:23:42 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59764&oldid=59763 * A * (+111) /* Syntax */
02:33:00 <imode> that 256 core brainfuck machine has me thinking.
02:34:40 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:35:00 <imode> oerjan: just got your message... that's interesting, actually. making me think.
02:37:09 <imode> a deque automata is equivalent, at that point, to a TM with an "insert" operation to create new tape cells.
02:37:22 -!- FreeFull has quit.
03:30:36 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59765&oldid=59764 * A * (+33) /* continue */
03:50:14 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59766&oldid=59765 * A * (-5) /* Syntax */
03:51:17 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59767&oldid=59766 * A * (+0) /* Example programs */
03:54:18 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59768&oldid=59767 * A * (+1) /* Implementing other operators */
04:05:17 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59769&oldid=59768 * A * (-18)
04:05:33 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59770&oldid=59769 * A * (-84) /* Syntax */
04:14:50 <esowiki> [[WII2D]] N https://esolangs.org/w/index.php?oldid=59771 * Cortex * (+1331) Created page with "'''WII2D''' is a 2D esolang created by [[User:Cortex|]]. Its name stands for "'''W'''hy '''I'''s '''I'''t '''2D'''?" It was clearly inspired by [[Befunge]]. It is probably eve..."
04:15:00 <esowiki> [[WII2D]] https://esolangs.org/w/index.php?diff=59772&oldid=59771 * Cortex * (-6) /* Hello, World! */
04:24:19 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59773&oldid=59770 * A * (+13) /* Syntax */
04:24:32 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59774&oldid=59773 * A * (+4) /* 99 bottles of beer */
04:24:44 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59775&oldid=59774 * A * (+3) /* NOT function */
04:25:42 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59776&oldid=59775 * A * (+3) /* Turing-completeness */
05:16:59 -!- Sgeo_ has joined.
05:20:03 -!- Sgeo__ has quit (Ping timeout: 245 seconds).
05:25:21 -!- oerjan has quit (Quit: Nite).
05:47:50 -!- moei has joined.
05:49:07 -!- yaewa has quit (Ping timeout: 240 seconds).
07:28:09 -!- tromp has quit (Remote host closed the connection).
07:36:37 -!- arseniiv has quit (Ping timeout: 246 seconds).
08:02:30 -!- tromp has joined.
08:06:01 -!- xkapastel has joined.
08:06:58 -!- tromp has quit (Ping timeout: 250 seconds).
08:08:16 -!- imode has quit (Ping timeout: 250 seconds).
08:11:37 -!- atslash has quit (Quit: This computer has gone to sleep).
08:17:40 -!- atslash has joined.
08:43:45 -!- nfd9001 has joined.
08:44:59 -!- tromp has joined.
08:49:08 -!- tromp has quit (Ping timeout: 244 seconds).
09:34:46 -!- AnotherTest has joined.
09:54:21 -!- tromp has joined.
09:58:48 -!- tromp has quit (Ping timeout: 245 seconds).
10:25:42 -!- xkapastel has quit (Quit: Connection closed for inactivity).
10:38:18 -!- Essadon has joined.
10:38:55 -!- Essadon has quit (Max SendQ exceeded).
11:11:08 -!- Essadon has joined.
11:23:21 -!- tromp has joined.
11:27:45 -!- tromp has quit (Ping timeout: 244 seconds).
11:52:05 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
11:53:46 -!- Lord_of_Life has joined.
12:00:40 -!- tromp has joined.
13:32:52 -!- john_metcalf has joined.
14:48:46 -!- tromp has quit (Remote host closed the connection).
14:50:56 -!- tromp has joined.
14:52:04 -!- john_metcalf has quit (Quit: http://corewar.co.uk).
15:28:18 -!- wob_jonas has joined.
15:34:10 <rain1> http://shinh.skr.jp/elvm/8cc.js.html
15:52:19 -!- oerjan has joined.
16:42:05 -!- atslash has quit (Quit: This computer has gone to sleep).
16:51:57 -!- xkapastel has joined.
16:53:27 -!- arseniiv has joined.
17:09:46 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
17:14:07 -!- imode has joined.
17:25:45 -!- oerjan has quit (Quit: Later).
17:56:10 <esowiki> [[Special:Log/newusers]] create * Amcgregor * New user account
18:10:40 -!- b_jonas has joined.
18:25:54 <esowiki> [[User:BradensEsolangs]] https://esolangs.org/w/index.php?diff=59777&oldid=59746 * BradensEsolangs * (-14) Tested and fixed code
18:28:52 <esowiki> [[User:BradensEsolangs]] https://esolangs.org/w/index.php?diff=59778&oldid=59777 * BradensEsolangs * (-9)
18:34:35 <imode> whoever mentioned the idea of a space that you couldn't encode TC computations in, thanks. that idea about circular tapes and not being able to go "back" led me to some interesting results about ring networks.
18:40:51 <esowiki> [[Talk:Silly Emplosions]] https://esolangs.org/w/index.php?diff=59779&oldid=45843 * BradensEsolangs * (+149)
18:48:17 -!- FreeFull has joined.
19:01:32 -!- xkapastel has quit (Quit: Connection closed for inactivity).
19:38:37 <kmc> imode: go on?
19:42:21 <imode> kmc: just about how ring networks are really nice when dealing with network partitions because they represent the simplest case. the 256-core brainfuck chip used an on-chip ring network.
19:43:46 <imode> if a single node in a network faults, you don't end up with a partition, you end up with a smaller ring. if your faults then just occur on the edges of that ring, your ring just shrinks. partitions, however, result in multiple sub-rings and can "mesh" together again when the links between those sub-rings are restored.
19:52:46 <kmc> can you define "ring network"?
19:53:03 <imode> sure, a network of nodes arranged in a ring topology.
20:08:32 <kmc> if one node faults
20:08:37 <kmc> wouldn't you have a line and not a smaller ring?
20:08:41 <kmc> is it a self healing ring
20:08:51 <kmc> i'm confused
20:09:01 <imode> yeah, a self-healing ring.
20:09:14 <imode> because between two nodes, there's a bidirectional communication link.
20:09:40 <imode> so instead of a node forwarding communications to its successive neighbors, it just echoes it back to the neighbor it can reach.
21:43:46 -!- atslash has joined.
21:53:30 -!- atslash has quit (Quit: This computer has gone to sleep).
22:04:59 -!- Remavas has joined.
22:11:27 <HackEso> Ā macron is what you put ōver ā long vowel in order to mark it as ā long vowel. Macrons will bēcome mandatory in English on Octōber 14, 2016.
22:13:39 <b_jonas> ``` perl -pi -e "s/will\b/have/;print STDERR $_" wisdom/macron
22:13:51 <HackEso> Ā macron is what you put ōver ā long vowel in order to mark it as ā long vowel. Macrons have bēcome mandatory in English on Octōber 14, 2016.
22:14:11 <b_jonas> oh right, double quote, not single quote
22:24:21 <b_jonas> the macrons seem to be in the wrong places in that sentence though
22:24:51 <b_jonas> int-e: nah, on digits you put overbars, meaning negation or complement or something, not macrons
22:25:58 <int-e> b_jonas: I was thinking about claiming that the '1' is pronounced 'teen' :P
23:11:26 -!- AnotherTest has quit (Ping timeout: 240 seconds).
23:40:31 -!- oerjan has joined.
23:48:38 <lambdabot> ENVA 082320Z 12009KT CAVOK M01/M03 Q0988 RMK WIND 670FT 11012KT
23:49:42 -!- Lord_of_Life_ has joined.
23:52:56 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
23:52:56 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:19:13 -!- arseniiv has quit (Ping timeout: 245 seconds).
00:22:25 -!- tromp has quit (Remote host closed the connection).
00:56:49 -!- tromp has joined.
01:03:41 -!- tromp has quit (Ping timeout: 246 seconds).
01:09:19 -!- b_jonas has quit (Quit: leaving).
01:17:34 -!- Remavas has quit (Remote host closed the connection).
01:24:00 -!- Essadon has quit (Quit: Qutting).
01:42:34 -!- Sgeo__ has joined.
01:45:36 -!- Sgeo_ has quit (Ping timeout: 250 seconds).
01:51:42 -!- tromp has joined.
01:56:18 -!- tromp has quit (Ping timeout: 268 seconds).
02:19:49 <imode> on-chip ring networks of processors could actually be really, really nice. if you use a space-filling curve, you could compact a bunch of nodes in a very small space.
02:20:44 <imode> you'd need one that loops, though.
02:20:50 <imode> maybe a moore curve.
02:41:54 -!- zzo38 has joined.
02:45:59 -!- tromp has joined.
02:46:11 -!- Remavas has joined.
02:51:04 -!- tromp has quit (Ping timeout: 272 seconds).
03:11:58 -!- zzo38 has quit (Ping timeout: 272 seconds).
03:31:46 -!- zzo38 has joined.
03:36:04 -!- zzo38 has quit (Ping timeout: 246 seconds).
03:39:50 -!- tromp has joined.
03:44:50 -!- tromp has quit (Ping timeout: 268 seconds).
03:51:03 -!- Remavas has quit (Quit: Leaving).
04:00:05 -!- FreeFull has quit (Quit: rebooting).
04:00:53 -!- FreeFull has joined.
04:01:02 -!- nfd9001 has quit (Read error: Connection reset by peer).
04:41:57 -!- zzo38 has joined.
04:42:14 -!- FreeFull has quit.
04:48:26 -!- zzo38 has quit (Ping timeout: 240 seconds).
04:56:17 <esowiki> [[Vague]] N https://esolangs.org/w/index.php?oldid=59780 * Cortex * (+596) Created page with "'''Vague''' is an esolang. == Commands == {| class="wikitable" |- ! Character !! What it does |- | <code>+</code> || Add |- | <code>-</code> || Decrement |- | <code>!</code>..."
04:56:37 <esowiki> [[User:Cortex]] https://esolangs.org/w/index.php?diff=59781&oldid=59747 * Cortex * (+12)
04:57:53 <esowiki> [[Joke language list]] https://esolangs.org/w/index.php?diff=59782&oldid=59459 * Cortex * (+28)
05:28:02 -!- tromp has joined.
05:32:16 -!- tromp has quit (Ping timeout: 246 seconds).
05:43:32 -!- arseniiv has joined.
05:47:23 -!- zzo38 has joined.
05:59:47 -!- oerjan has quit (Quit: Nite).
06:44:18 <esowiki> [[Thue-Mirr]] N https://esolangs.org/w/index.php?oldid=59783 * Zzo38 * (+545) Created page with "[[Category:Languages]][[Category:2019]] Thue-Mirr is a 2D programming language with the following commands: * <tt>\ /</tt> - Mirrors * <tt>x</tt> - Output X coordinate of til..."
06:58:08 <esowiki> [[Thue-Mirr]] https://esolangs.org/w/index.php?diff=59784&oldid=59783 * Zzo38 * (+57)
07:16:10 -!- tromp has joined.
07:20:27 -!- tromp has quit (Ping timeout: 240 seconds).
07:44:43 -!- imode has quit (Ping timeout: 268 seconds).
08:07:04 -!- tromp has joined.
08:21:53 -!- nfd9001 has joined.
11:18:57 -!- AnotherTest has joined.
11:25:17 <zzo38> Maybe the sequel of XYZABCDE.ZZT game can be made as a text adventure game instead; I don't know?
11:25:36 <rain1> I haven't tried XYZABCDE
11:26:06 <rain1> http://zzo38computer.org/ZZT/xyzabcde.zip
11:26:49 <zzo38> Yes, that one. If you have ZZT in your computer then you can try to play game.
11:28:17 <zzo38> And maybe also a sequel may be a different operetta too (I think someone on this IRC suggested something like that, maybe)
11:53:26 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
11:54:19 -!- Lord_of_Life has joined.
11:57:26 -!- xkapastel has joined.
12:11:37 -!- AnotherTest has quit (Ping timeout: 244 seconds).
12:37:51 -!- atslash has joined.
12:56:07 -!- b_jonas has joined.
13:50:37 <b_jonas> I'd like a book like Warren's Hacker's Delight, only updated to more modern to tell about how to do things well on actual modern cpus and the kind of vector instructions they have
13:51:20 <b_jonas> Knuth doesn't fill that hole, probably because the specifics are moving too quickly and may have to be rewritten every eight years.
14:03:03 -!- FreeFull has joined.
14:07:10 -!- xkapastel has quit (Quit: Connection closed for inactivity).
14:57:17 -!- atslash has quit (Quit: Leaving).
15:45:38 -!- Essadon has joined.
17:34:08 -!- feeb has joined.
17:38:20 <zzo38> How to do best might depend what kind of instruction set; x86 is difference from ARM, and ARM is difference from RISC-V, and so on.
17:38:29 -!- AnotherTest has joined.
18:10:30 <kmc> b_jonas: yeah, that's a cool book
18:19:40 -!- zzo38 has quit (Ping timeout: 250 seconds).
18:21:18 <kmc> zzo38: [who left] indeed
18:21:26 <kmc> that's a good reason to use compiler intrinsics for bitops
18:21:43 <kmc> it will either have some arch-specific trick, or a pretty good generic impl
18:21:53 <kmc> x86 and ARM have some fancy bit ops
18:22:01 <kmc> whereas RISC-V is very simple
18:22:49 <shachaf> kmc: the mill is where it's at hth
18:22:55 <shachaf> you should watch the mill videos
18:23:05 <kmc> it has xor, or, and, logical and arithmetic shifts
18:23:07 <kmc> and that's about it
18:23:32 <kmc> no negation (I suppose you xor with 0xFFFF...FFFF)
18:24:38 <kmc> RISC-V also has no condition flags. there are instructions to branch on the contents of a register, and comparisons which set a register to 0/1
18:24:55 <kmc> i suppose this makes out of order execution easier. no need to track the flags register as another implicit dependency
18:31:04 -!- zzo38 has joined.
18:34:11 <b_jonas> zzo38: it certainly depends a bit, but we still need good books on it
18:34:32 <b_jonas> I mean, different instruction sets applies to the actual Warren book and Knuth too, but they're still very useful
18:40:17 <shachaf> zzo38: Do you like the multiple OR and multiple XOR instructions?
18:40:56 <zzo38> shachaf: I think the MOR and MXOR instructions in MMIX is good.
18:43:47 <zzo38> (Although MOR seems to be generally more useful than MXOR, but MXOR can be useful too sometimes.)
18:47:42 <zzo38> Such as you can swap endian (including PDP-endian).
18:55:47 <kmc> how do those work?
18:57:13 -!- imode has joined.
18:58:10 <zzo38> kmc: http://mmix.cs.hm.edu/doc/instructions-en.html#MOR
19:05:31 -!- zzo38 has quit (Ping timeout: 268 seconds).
19:12:11 -!- zzo38 has joined.
19:28:07 <esowiki> [[Bitwise Trance]] N https://esolangs.org/w/index.php?oldid=59785 * Hakerh400 * (+6077) Added Bitwise Trance
19:28:59 <myname> anybody an idea for a good thesis topic about zkp?
19:30:24 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=59786&oldid=59748 * Hakerh400 * (+21) Added "Bitwise Trance" to the language list
19:38:26 -!- arseniiv has quit (Ping timeout: 246 seconds).
19:38:55 <esowiki> [[Bitwise Trance]] M https://esolangs.org/w/index.php?diff=59787&oldid=59785 * Hakerh400 * (+0) /* First example */
19:39:49 <esowiki> [[Bitwise Trance]] M https://esolangs.org/w/index.php?diff=59788&oldid=59787 * Hakerh400 * (+6) /* First example */
20:23:02 -!- xkapastel has joined.
20:41:06 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
21:35:35 -!- Cale has quit (Ping timeout: 250 seconds).
21:48:45 -!- Cale has joined.
21:59:09 <rain1> how often do spaceships occur at random in game of life
22:03:33 -!- Remavas has joined.
22:10:59 <shachaf> Starting from an empty board, 0% of the time
22:11:02 <zzo38> I don't know. Did you try implementing it to see how often (approximately)?
22:12:04 <rain1> I didn't implement it
22:25:39 -!- Remavas has changed nick to Remavas[AFK].
22:27:55 -!- Remavas[AFK] has changed nick to Remavas.
22:28:19 -!- Remavas has quit (Read error: Connection reset by peer).
22:29:29 -!- Remavas has joined.
22:42:19 -!- Remavas has quit (Read error: Connection reset by peer).
22:43:13 -!- Remavas has joined.
22:44:07 -!- Remavas has changed nick to Remavas[AFK].
22:52:26 -!- AnotherTest has quit (Ping timeout: 240 seconds).
23:42:37 <imode> is a turing machine without states still turing complete? i.e instead of (state, symbol, newstate, newsymbol, direction), you have (symbol, newsymbol, direction)? doesn't seem like it would be.
23:53:54 <int-e> I would call that a single state TM. And as you suspect, those are not TC; the halting problem is decidable for single state TMs.
23:59:30 -!- tromp has quit (Remote host closed the connection).
00:01:07 <imode> figured as much. iirc two states with some fenangling makes you TC.
00:01:37 <int-e> yeah, two states and sufficiently many symbols... hmm
00:01:39 <b_jonas> right, but see ais523's language https://esolangs.org/wiki/StackFlow for when you have multiple tapes, and you choose which one to read from in the next step in each step
00:02:05 <imode> huh. that's interesting.
00:02:37 * imode wonders if a two-tape one-state TM could be TC...
00:02:41 -!- xkapastel has quit (Quit: Connection closed for inactivity).
00:02:55 <int-e> ais523 is involved in https://en.wikipedia.org/wiki/Wolfram%27s_2-state_3-symbol_Turing_machine :P
00:03:10 <imode> naively you could store your current state in that alternate tape.
00:03:24 <imode> wait really? lmao.
00:03:31 <int-e> imode: in that case you can certainly use one tape to store the state of an ordinary TM.
00:03:42 <HackEso> Agent “Iä” Smith is an alien with a strange allergy to avian body covering, which he is trying to retroactively prevent from ever evolving. On the 3rd of March, he's lawful good.
00:03:52 <imode> useful information.
00:04:09 <int-e> it's more useful than you may think... the "Smith" is accurate.
00:05:12 <imode> that two-tape one-state idea has me thinking about rewrite languages and CAs now..
00:05:43 <shachaf> I can think of a good reason to have two active stacks for coroutines/asynchronous code. Is there ever a reason to have more than two?
00:06:12 <int-e> hmm... define "active"
00:06:41 <shachaf> I mean something like, you pass two stack pointers to procedures in two registers, and it's part of the calling convention or something.
00:06:51 <shachaf> It's not really a precise word.
00:07:00 <imode> you could use one tape as a buffer to hold the CA state along with markers around the start end end of the state... and you could swap between them based on whether or not you read the marker.
00:07:16 <int-e> if you have coroutines more than two of those may be involved in any particular computation and they may each want to do their own recursive stuff
00:07:41 <shachaf> Right, that's the kind of thing I was trying to avoid with the vague word "active".
00:08:13 <shachaf> It seems like the compiler/calling only ever has to know about two stacks, and the switching between them would be done in user code or something.
00:08:14 <int-e> generator ( | transducer )* | consumer
00:08:39 <imode> "If you read X from tape A, write Y to tape B, move head A right.", "If you read X from tape B, write Y to tape A, move head B right."
00:08:46 <shachaf> Also does anyone actually implement coroutines using two stacks?
00:09:09 <imode> I tend to prefer cooperative multitasking and use state machines.
00:09:33 <shachaf> I'm talking about cooperative multitasking, and about ways of expressing these state machines nicely.
00:09:51 <shachaf> Well, they're not finite state machines, because there's a stack. But you could bound the size of the stack and prohibit recursion.
00:10:02 <int-e> shachaf: why *two*?
00:10:33 <shachaf> Well, the usual implementation technique for coroutines involves only one stack. Right?
00:10:34 <int-e> each coroutine should have its own stack, in principle...
00:10:42 <shachaf> And then the context switch switches to a new stack.
00:11:01 <int-e> I don't know why you want to use two.
00:11:16 <shachaf> But then various things are stored in the coroutine stack that could just go on the main stack because they never yield.
00:11:42 <shachaf> Which means you get a lot of unnecessary cache misses, and also the stacks need to be bigger for no real reason.
00:12:30 <shachaf> You also get things like https://marcan.st/2017/12/debugging-an-evil-go-runtime-bug/
00:12:49 <int-e> Well if you like, Haskell does that... the "main" stack is almost exclusively for FFI; all the coroutine stacks are managed on the heap.
00:13:10 <shachaf> Yes, but if you're using Haskell you've already given up on performance.
00:13:51 <int-e> No, not really. I've given up a factor of 3-10, depending on what I'm doing. Less when working with big integers.
00:14:15 <shachaf> If you think about the "optimal" way of writing an asynchronous task, it probably involves giving the task some fixed-size block of memory, and doing regular computation in the regular stack.
00:14:57 <shachaf> I want to approach something like that but with nicer code.
00:15:21 <imode> I've been trying to work on a small-scale network of automata that can communicate.
00:16:00 <imode> cooperative multitasking with round-robin scheduling is pretty much my go-to. instead of trying to cram code into an automata framework, I'd rather just use automata.
00:16:33 <shachaf> Automata can be awkward to write.
00:16:51 <imode> true, but so can assembly.
00:17:10 <imode> the difference is that automata are composable. state tables can be arbitrarily wired up.
00:17:33 <shachaf> That's why I want something which is neither automata nor assembly.
00:17:44 <imode> you can build simple machines from smaller state tables.
00:17:51 <imode> and then more complex machines from those simple machines.
00:18:32 <int-e> So compile to state machines. I suspect that this is something people actually do in this context (for tightly coupled coroutines. not threads.)
00:18:58 <imode> exactly my thought. I'm planning on not breaking that thread of modeling, though. LSL from Second Life does some similar stuff.
00:19:19 <imode> meaning, every script is a state machine with some internal stuff. you have to model things in terms of states.
00:20:59 <int-e> shachaf: I actually think that the principle of the Haskell analogy is sound, that is, to manage a coroutine local stack on a heap, possibly as a linked list. In many cases where you care about performance this will degenerate into doing a single allocation of a block that stores all the state for the whole lifetime of the coroutine invocation.
00:22:25 <shachaf> Sure, the thing GHC does is more or less reasonable at a high level.
00:22:27 <int-e> To my mind the stack switching approach is mainly attractive because it doesn't require much (if any) compiler support.
00:22:44 <shachaf> If you had compiler support and also cared about performance, what would you do?
00:23:18 <shachaf> I think the answer would look a lot like having two stacks. Though maybe you should care about performance even more, prohibit recursion, and statically bound the size of the stack.
00:25:23 <int-e> https://www.youtube.com/watch?v=j9tlJAqMV7U was inspiring in this context.
00:26:09 <int-e> yes, but it's more about the power of static analysis
00:26:20 <shachaf> I think that might be in the right direction though I haven't looked at the details.
00:26:42 <shachaf> LLVM has a coroutine thing that looked reasonable at a high level though the details might've been a bit weird. I don't remember anymore.
00:33:13 -!- tromp has joined.
00:34:44 <int-e> Oh he gives a lot of talks. https://www.youtube.com/watch?v=_fu0gx-xseY may be the one that I actually watched? I don't recall precisely.
00:35:25 <shachaf> I can't watch a talk right now but I'll look later.
00:35:36 <shachaf> Is there a spoiler for why the overhead is negative?
00:37:28 -!- tromp has quit (Ping timeout: 246 seconds).
00:37:41 <int-e> My vague idea was that the compiler gets more information from statically analysing the coroutines than it did from analysing a hand-written state machine. And it did its own state-machine, while preserving the improved static analysis information.
00:39:07 <int-e> And I didn't think that the talk fully explained it. It does make for an amazing punchline though. ("We wrote high-level code, and the compiled result was better than our hand-optimized low-level (but still C++) code.")
00:40:46 <int-e> As far as I recall, this falls into the category where the coroutines are tightly coupled, and only need finite state.
00:42:49 <shachaf> I was kind of wondering whether this kind of thing can be implemented well as a pretty straightforward macro, but I think the answer is no, you want compiler support to do it well.
00:43:57 <shachaf> In this one collection of language ideas I've been trying to figure out, stack memory allocation for variables is explicit, alloca-style.
00:44:06 <b_jonas> shachaf: yeah, just "a pretty straightforward macro" is where all the downwards spirals to crazy preprocessing magic starts with
00:44:28 <shachaf> b_jonas: well, that's not straightforward anymore, is it hth
00:44:35 <int-e> . o O ( just a simple recursively defined template )
00:44:58 <shachaf> Something like "x := Var(int)", where x is a (const) pointer to a stack-allocated memory location.
00:45:11 <shachaf> Or "x := Var(0)" or whatever
00:46:45 <shachaf> But a thing like that isn't enough.
00:48:03 -!- oerjan has joined.
00:49:21 <int-e> http://www.afjarvis.staff.shef.ac.uk/sudoku/sudoku2.cc features a template <int x, int y> static inline void search();
00:50:02 <int-e> Which inspired the "just a simple recursively defined template" thought.
00:50:12 <int-e> 2005, so long ago...
00:50:30 <shachaf> I wish C++ had a way to pass an argument either at compile-time or at runtime.
00:51:19 <shachaf> For some reason C++ people love to do complicated recursive things with templates.
00:51:25 <shachaf> Rather than just, y'know, a for loop
00:52:43 -!- tromp has joined.
00:53:20 <int-e> Well that particular thing generates up to 81 nested for loops.
00:53:53 <int-e> But I'm not sure I would do it quite that way anymore. Probably not :)
00:54:37 <shachaf> i,i,i for (int i = 0; i < 81; i++) { printf("for (int i%d = 0; i%d < k; i%d++) {\n", i, i, i); }
00:56:20 <shachaf> What language is good at doing things like that? Plus isn't lisp.
00:56:45 <int-e> I'd happily use Haskell to generate C code.
00:56:58 <shachaf> I mean something slightly nicer than string generation.
00:57:10 <shachaf> More like quasiquoting, I guess?
00:57:20 <rain1> quasiquoting but not lisp? i don't know any
00:57:23 <shachaf> But statically typed with a reasonable idea of eventually generating a compiled program.
00:57:33 <rain1> i suppose metaocaml
00:57:38 -!- tromp has quit (Ping timeout: 268 seconds).
00:59:37 <int-e> http://hackage.haskell.org/package/inline-c maybe?
01:00:01 <shachaf> Also it's the same language as the language you're generating code for.
01:00:35 -!- xkapastel has joined.
01:01:48 <int-e> Template Haskell isn't all that bad. But it would defeat the purpose of generating nested loops for sudoku enumeration in the first place, which was performance. :P
01:02:10 <shachaf> counterpoint: template haskell is all that bad
01:02:18 <int-e> http://hackage.haskell.org/package/haskell-src-meta
01:03:53 -!- Essadon has quit (Quit: Qutting).
01:04:40 <shachaf> Have you used the fancy variadic templates in C++11?
01:33:04 <shachaf> I guess more widespread coroutines might be useful for other uses.
01:33:28 <shachaf> Possibly nicer than using callbacks for a lot of things?
01:33:45 <shachaf> Say, a function that wants to request more memory from the caller mid-execution. Do people do things like that?
01:36:21 -!- Remavas[AFK] has changed nick to Remavas.
01:48:13 -!- Remavas has quit (Quit: Leaving).
01:51:14 <b_jonas> shachaf: either it just returns an error telling how much memory it needs, like snprintf, or it calls an allocator callback
01:51:40 <b_jonas> oh, you're asking about coroutine
01:52:11 -!- b_jonas has quit (Quit: leaving).
02:23:26 -!- tromp has joined.
02:27:33 -!- tromp has quit (Ping timeout: 245 seconds).
03:10:18 -!- xkapastel has quit (Quit: Connection closed for inactivity).
03:13:04 -!- tromp has joined.
03:15:38 <imode> a generalized version of finite automata would have transitions labeled with try/assett statements.
03:16:17 <shachaf> that sounds like a kind of scow generalization tdnh
03:17:17 -!- tromp has quit (Ping timeout: 246 seconds).
03:18:32 <imode> lemme elaborate: any given entry for a state table would look like `in <state> if <condition/action> then <assertion/action> and go to <state>`
03:18:59 <imode> I actually think someone's come up with that... abstract state machines or something.
03:27:51 -!- biscayne has joined.
03:34:42 -!- biscayne has left.
03:38:23 <esowiki> [[Bitwise Trance]] https://esolangs.org/w/index.php?diff=59789&oldid=59788 * Zzo38 * (-9)
03:49:40 <zzo38> I thought of one chess variant can be Thue-Morse chess, similar to Marseillais chess but you don't always get a extra turn.
03:49:49 <zzo38> (I don't know how well it is work)
03:50:30 <zzo38> Did you play this kind of chess?
04:12:44 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=59790&oldid=59751 * Zzo38 * (-6) Colon include syntax in glasm
04:23:28 -!- FreeFull has quit.
04:49:11 <oerjan> https://esolangs.org/wiki/Vague <-- i think Cortex may be parodying certain other users...
04:50:15 <shachaf> oerjan: oh man, this is tg
05:00:56 -!- tromp has joined.
05:05:28 -!- tromp has quit (Ping timeout: 245 seconds).
05:09:27 <esowiki> [[Joke language list]] M https://esolangs.org/w/index.php?diff=59791&oldid=59782 * Oerjan * (+0) abcelmrs
05:16:53 <esowiki> [[Hurgusburgus]] M https://esolangs.org/w/index.php?diff=59792&oldid=58667 * BradensEsolangs * (-197) It's really a deque, I will continue tomorrow, don't touch
05:44:44 -!- ashirase_ has joined.
05:49:08 <shachaf> int-e: Watching the video now. Compared to this std::future lambda code, sure, I can see that coroutines would be faster.
05:49:31 <shachaf> Oh, he's writing it as a state machine, never mind.
05:55:43 -!- tromp has joined.
06:00:05 -!- tromp has quit (Ping timeout: 244 seconds).
06:20:08 <shachaf> int-e: I bet if you were comparing to C code rather than C++ code it would go the other way.
06:21:29 -!- oerjan has quit (Quit: Nite).
07:22:14 -!- tromp has joined.
07:26:36 -!- tromp has quit (Ping timeout: 250 seconds).
07:30:38 -!- liuqingyao has joined.
07:36:19 -!- liuqingyao has quit.
08:05:54 -!- tromp has joined.
09:18:24 -!- heroux has quit (Ping timeout: 250 seconds).
09:19:13 -!- heroux has joined.
09:23:01 -!- tromp has quit (Remote host closed the connection).
09:40:50 -!- arseniiv has joined.
09:43:56 -!- tromp has joined.
09:48:34 -!- Arsal has joined.
10:02:05 -!- Arsal1 has joined.
10:04:37 -!- ashirase_ has quit (Ping timeout: 268 seconds).
10:05:28 -!- Arsal has quit (Ping timeout: 245 seconds).
10:13:27 -!- ashirase has joined.
10:23:56 -!- Arsal1 has quit (Quit: Leaving).
10:47:34 -!- AnotherTest has joined.
10:49:42 <int-e> shachaf: I'll make no bets. What I see is a potential to do better lifetime analysis of variables when starting out with coroutines (if you loop over { A; yield x; B; yield y; } then you know exactly which variables need to be preserved over the course of the first and second yield respectively. A C compiler would have to basically recover the coroutines to do that. That is, given a state...
10:49:48 <int-e> ...machine, it has to figure out that after the basic block A, it will never reach A again without first reaching B. That's doable in theory, sure, but I doubt it's done.
11:16:36 -!- b_jonas has joined.
11:19:44 -!- imode has quit (Ping timeout: 250 seconds).
11:25:00 <b_jonas> zzo38: I still think that any version that adds extra turns without serious limitations to chess probably makes it less interesting. In fact, the creators of chess knew this, yet wanted to speed up the early game,
11:25:38 <b_jonas> so they didn't just add unlimited extra turns, but a restricted variant where you can move the same pawn forward twice from the starting position.
11:26:45 <b_jonas> The problems include that pieces often attack too much of the board if you can take two moves with them; and that if you have two moves and the opponent then has one, then it's very easy to set up a double attack that the opponent can't defend.
12:47:38 -!- FreeFull has joined.
12:51:58 <esowiki> [[Talk:Bitwise Trance]] N https://esolangs.org/w/index.php?oldid=59793 * Plokmijnuhby * (+709) Created page with "== Turing completeness == I'm not sure this really is a Turing complete language. Sure, it works fine as an FSM, but you run into problems when you start storing data. You wil..."
13:00:57 <esowiki> [[Bitwise Trance]] https://esolangs.org/w/index.php?diff=59794&oldid=59789 * Plokmijnuhby * (+109) /* Empty program */
13:04:10 -!- Sgeo__ has quit (Read error: Connection reset by peer).
13:04:36 -!- Sgeo__ has joined.
13:12:05 <esowiki> [[Talk:Bitwise Trance]] https://esolangs.org/w/index.php?diff=59795&oldid=59793 * Plokmijnuhby * (+183) /* Turing completeness */
13:12:42 -!- Lord_of_Life has joined.
13:22:42 -!- Essadon has joined.
14:42:56 -!- xkapastel has joined.
15:11:57 <esowiki> [[Talk:Bitwise Trance]] https://esolangs.org/w/index.php?diff=59796&oldid=59795 * Ais523 * (+1610) bignum arithmetic seems impossible to directly implement; however you could probably get a program to copy itself in memory and expand the addresses in the process, despite not being able to address things much larger than itself
16:03:40 <b_jonas> In the scifi future, when people won't have fridges and freezers that cool food, but will instead simply have a stasis box that sends food forwards in time to the next time the door is opened,
16:03:45 <b_jonas> will ice cubes in drinks turn from something ordinary that people make at home to something you only have in restaurants and bars?
16:04:36 <b_jonas> Or will people once again buy ice (or get it delivered to them in some futuristic way, whatever) and put it into the stasis box so it doesn't melt?
16:22:10 -!- oerjan has joined.
16:33:55 <esowiki> [[Hurgusburgus]] https://esolangs.org/w/index.php?diff=59797&oldid=59792 * BradensEsolangs * (-14) Done
17:07:48 <zzo38> Maybe people buying ice cubes might be less common then but some people might still have a use for it
17:12:41 -!- xkapastel has quit (Quit: Connection closed for inactivity).
17:37:16 <zzo38> You could certainly add restrictions into a chess variant that adds extra turns, and there are different ways to add how many extra turns
17:38:36 <b_jonas> maybe extra turns are overpowered in every well-designed multiplayer tabletop game, because if they weren't, then it would have been designed with more moves allowed per turn to make it more fluid
17:47:41 * oerjan wanted to use Esolang:Sandbox, and suddenly realizes it is not linked from any menus
17:52:17 <zzo38> You can also just to enter the name directly (or add it to some menu if you prefer that)
18:00:31 <b_jonas> I was wondering if I should modify the *list commands to know which strips have been listed, and refuse to list a strip again if it's been listed already
18:01:12 <shachaf> https://twitter.com/CreeepyJoe/status/1094656141173305344
18:01:59 <shachaf> int-e: Compilers already do the thing you're describing, don't they?
18:02:23 <shachaf> Maybe not for coroutines but for regular stack usage.
18:03:08 <b_jonas> so I'd change olist to do like echo -n "http://www.giantitp.com/comics/oots$1.html"; if ! test "$1" || ! grep -qxFe "$1" var/list-ids/olist; then echo -n ": "; tail -n+3 "$0" ; else echo " was already listed"; exit 1; fi
18:03:24 <b_jonas> except I'd test the shell script and fix all the errors
18:03:39 <b_jonas> oh right, it also has to say echo "$1" > var/list-ids/olist somewhere
18:04:09 <b_jonas> so it would like save the strip numbers to a file in the version control, and not ping people unless the strip is new
18:04:26 <b_jonas> that way I wouldn't have to check the channel logs to tell if a strip has already been listed
18:04:32 <b_jonas> this applies not only to olist, but also pbflist
18:04:56 <b_jonas> what does my honorable and learned friend fungot think about that idea?
18:04:56 <fungot> b_jonas: this has not been very good, and i am? with putin! the european union at the time that is not without a cost, and the fact of the matter is of course is the best security that the nation is the party of not planning. may i, in the nicest.
18:07:10 <HackEso> :#,_@ \ a.out \ bin \ canary \ emoticons \ esobible \ etc \ evil \ factor \ good \ hw \ ibin \ interps \ izash.c \ karma \ le \ lib \ misle \ paste \ ply-3.8 \ quines \ quinor \ quotes \ share \ src \ test2 \ testfile \ tmflry \ tmp \ wisdom
18:07:51 <shachaf> I don't like a commit on every list
18:08:07 <shachaf> Except, y'know, `list, where it's unavoidable
18:09:59 <fizzie> Maybe like that but keep the state in unversioned storage.
18:10:23 -!- oerjan has quit (Quit: Later).
18:12:55 <shachaf> I've considered doing that before.
18:14:09 <b_jonas> shachaf: it could be on just certain lists
18:14:24 <b_jonas> and only on successful ones with an argument
18:14:32 <b_jonas> no need to commit for a failed or a no-arg one
18:14:42 <b_jonas> that would mean a three-way if but so what
18:15:49 <b_jonas> fizzie: how does unversioned state work these days? is it just persistent, but doesn't get reverted when the bot redoes a stateful command?
18:16:08 <b_jonas> and lost whenever hackego is migrated to a new owner?
18:16:44 <zzo38> Other possibility, using Netsubscribe, storing the state by adding objects into a Netsubscribe database; if the object ID is telling what is being notified then you can easily check for duplicates
18:16:49 <b_jonas> do we have a list that's triggered whenever the previous host or maintainer of hackego gives up and the next one reincarnates it from a backup with a slightly different name?
18:17:05 <b_jonas> zzo38: um, how would you put that in hackeso?
18:18:05 <zzo38> b_jonas: I don't think hackeso has that capability, although it would be possible to use with IRC.
18:18:32 <zzo38> But about hackeso, if you need to copy any unversioned files then I suppose you can do so before moving it
18:18:44 <zzo38> (if you have enough advance notice)
18:18:56 <fizzie> b_jonas: It's just a directory. It doesn't participate in the redo in any special way (so "mv" out from it is unsafe), and will be lost if you have to migrate without access to the previous instance.
18:20:23 -!- imode has joined.
18:24:07 <fizzie> Normally you could maintain independent backups in "wget -m" style (in parallel with cloning https://hack.esolangs.org/repo) but I had to turn off nginx "autoindex" option to avoid an information leak -- there's no way to turn off following symlinks for the generated index page, so it could be used to get sizes of files outside the directory.
18:34:04 <b_jonas> fizzie: but wouldn't that mean that if I tried to store this status there, and the *list command is re-ran, then it would falsely assume that the strip has been listed already, and we'd lose pings?
18:34:46 <b_jonas> fizzie: in theory, the bot could have a directory that is reverted when a command is redone, but that isn't version-controlled. I don't know if we'd want that though.
18:35:20 <b_jonas> we might abuse it, in exactly the ways that the version repo is supposed to prevent
18:36:02 <b_jonas> fizzie: if I put a file in hgignore, would it also behave just like a file in /tmp ?
18:38:45 <b_jonas> fizzie: also, if someone, uh, "accidentally" moved everything from /hackenv to /tmp in one command, then moved everything back but also set everything to be hgignored in the next command, in order to break version control, how quickly would people notice that?
18:38:58 <b_jonas> if, say, someone did that in private message
18:45:33 -!- pikhq has quit (Ping timeout: 252 seconds).
18:46:16 -!- xkapastel has joined.
18:48:14 <esowiki> [[Fractran]] https://esolangs.org/w/index.php?diff=59798&oldid=57538 * Oerjan * (+1324) Something I thought of when pondering [[Echo Tag]]: Squeezing fraction size
18:54:59 <fizzie> b_jonas: In the normal case a *list command wouldn't ever re-run, because the only modifications it would do would be in tmp/, so there would be nothing to commit. There might be some race conditions though; with concurrent commands you might indeed lose some pings.
18:55:05 <fizzie> b_jonas: And .hgignore is read-only now. Or, rather, automatically reverted to its pristine state right before any commit, since it couldn't really be made read-only, since it's not a directory.
18:57:16 <fizzie> (I think I was looking for an option to disable .hgignore and instead configure tmp/ in .hg/hgrc instead, but didn't find one.)
18:58:12 <fizzie> (Also the non-versioned persistent storage is tmp/ aka /hackenv/tmp/, plain /tmp is not persistent across commands.)
18:59:18 -!- pikhq has joined.
19:05:04 <b_jonas> it's automatically reverted? nice
19:05:28 <b_jonas> oh, hg doesn't have that? doesn't it have a way to, like, tell what the name of that file is? Istr git had some such config
19:06:22 <fizzie> It has a way to set up additional ignore files.
19:06:42 <fizzie> From the documentation, it didn't seem like there was a way to disable the default .hgignore though.
19:06:47 <fizzie> Didn't actually try this.
19:07:24 <b_jonas> hackeso is where I used it the most, plus I've used it to clone a few other repos from the internet where people distribute some files only that way
19:07:54 <fizzie> Under the [ui] section, there's a config key 'ignore': "A file to read per-user ignore patterns from. This file should be in the same format as a repository-wide .hgignore file. Filenames are relative to the repository root. This option supports hook syntax, so if you want to specify multiple ignore files, you can do so by setting something like ignore.other = ~/.hgignore2."
19:08:13 <fizzie> The "as a repository-wide .hgignore file" sounded like it meant that's always there.
19:08:46 <fizzie> Although it's possible setting ui.ignore in the per-repository .hgrc would actually control that.
19:08:51 <b_jonas> fizzie: but does hg at least not allow .hgignore files in any directory?
19:09:00 <b_jonas> only at the repo top, right?
19:09:47 <fizzie> Yes, only at the repository root. If you want to put a .hgignore in a subdirectory, the documentation recommends "subinclude"ing it in the root .hgignore.
19:10:33 <fizzie> Still, reverting the .hgignore file is a bit messy, it needs to manually remove it first if someone replaces it with a directory tree.
19:10:35 <b_jonas> makes sense, I guess. that you can put one anywhere is mostly useful for repos where you often do partial checkouts, eg. in cvs and svn
19:11:31 <b_jonas> yeah, recursively (chmod then remove)
19:13:57 <b_jonas> I wonder what happened if someone made tmp a symlink to .
19:15:06 <fizzie> (That kind of questions are exactly why we can't have nice things.)
19:15:29 <b_jonas> I don't think it would do anything really
19:15:34 <b_jonas> hg wouldn't even notice where it points
19:17:48 <b_jonas> fizzie: I know, I've ran bots too, but I think me just asking won't make it worse
19:24:47 <fizzie> FWIW, it's still on the TODO list (though not up top) to allow (whitelisted, proxied) HTTP requests out of HackEso. It was possible at HackEgo at some point, though not for the last years.
19:26:38 <zzo38> You may wish to later add other protocols too, although that would also need whitelisted too.
19:29:49 <b_jonas> fizzie: is hackeso intended to be a bot strictly for this channel, or is it on the todo list to allow it to join other channels where it's invited?
19:31:21 <fizzie> I don't know. It's pretty channel-agnostic, I know HackEgo was on more than one channel.
19:31:42 <fizzie> Feels like it should be only on channels I'm on, though, just to keep an eye on it.
19:32:00 <fizzie> And of course the repo and such are under the .esolangs.org domain.
19:32:13 <fizzie> So the answer is probably "don't know".
19:32:42 <b_jonas> hmm, I guess technically I could just make a proxy bot that forwards between a channel and HackEso private message both ways
19:49:28 <fizzie> At one point I was writing a "z80bot", which was to be a somewhat hackbot-style thing, except using an (emulated) Z80 core, with a system call API to a versioned filesystem (read/write-style, but also to map "ROM" pages from), and internet, and whatever else wouldn't be practical to implement internally.
19:50:18 <fizzie> I think I got that about three-quarters done, with the (homegrown) Z80 emulator, the filesystem bits, and yet another IRC client library done, before abandoing it.
19:51:09 <fizzie> Don't think very many people would've spent time using it though. It's a bit bigger barrier to entry than with hackbot.
19:51:25 <kmc> that sounds fun
19:51:30 <kmc> would it run CP/M?
19:52:06 <b_jonas> fizzie: hmm, how much RAM?
19:52:26 <b_jonas> I guess it might not matter since it has access to a file system
19:52:47 <fizzie> I'm sure some porting would be necessary, since it wouldn't have any of the expected hardware by those systems.
19:52:56 <b_jonas> the hard part with these bots is always figuring out what it's allowed to do on IRC by users' commands
19:53:46 <fizzie> I think I was intending it to have just the directly addressable 64k of RAM, with the top one quarter (C000..FFFF) mappable as a ROM page from the filesystem.
19:54:20 <b_jonas> z80 has a separate IO address space, right
19:54:53 <b_jonas> fizzie: what kind of interface would it use for accessing the filesystem? a "modern" unix/dos2 one with open, close, read, write calls?
19:55:09 <fizzie> b_jonas: Yes, it has a separate I/O space, though only with 8 bits of addressing.
19:56:00 <fizzie> The syscall API had the usual read/write/seek calls, so you could access large files with (relative) ease.
19:56:24 <fizzie> (With both 16- and 32-bit variants for seek/tell.)
19:57:15 <fizzie> Well, no. I would've had some sort of quota for it.
19:57:16 -!- FreeFull has quit.
19:59:03 <b_jonas> that would hit you back ten years later when most of the utilities developed up to that time can only deal with 32-bit files, and there's no sane way to recompile them to handle 64-bit files. like what's happend in unix.
19:59:41 <b_jonas> and then again when 2038 is nearing and you still have programs storing expoch second timestamps in int32_t
19:59:47 -!- FreeFull has joined.
20:00:06 <kmc> no problem
20:00:07 <kmc> robots will kill us all before then
20:00:12 -!- shikhin has quit (Ping timeout: 250 seconds).
20:00:20 <int-e> like we need robots for doing that
20:00:43 <b_jonas> then the robots using the bot will curse you for having made such a stupid design
20:00:46 -!- shikhin has joined.
20:00:50 <zzo38> What I think I have read is that 64-bit Linux uses 64-bit timestamps, but, the filesystem does not support 64-bit timestamps.
20:01:17 <b_jonas> zzo38: yes, that's more or less the current state, but it used to be worse
20:01:35 <b_jonas> also we're mostly past the 32 bit file offset problem too
20:01:38 <int-e> shachaf: I had a quick look at the LLVM optimization passes overview at https://llvm.org/docs/Passes.html and none of that sounds like it would be able to reconstruct the coroutine basic blocks (and their sequencing, which would then enable liveness analysis on that level) from a state machine.
20:01:49 <b_jonas> but both of them caused a lot of trouble some time ago
20:02:08 <b_jonas> obviously it's never anything as simple as "unix uses ... timestamps"
20:02:17 <b_jonas> there are like a hundred different ways things on unix use timestamps
20:02:27 <zzo38> How to upgrade the filesystem to one that does support 64-bit timestamps? I do not need it right now, but maybe in eighteen years, will help
20:02:38 <int-e> ICBMs with nuclear warheads are on the doomsday menu again.
20:02:46 <kmc> they always were
20:03:04 <b_jonas> zzo38: for the file system, I'm more afraid of when the FAT timestamps run out. there still seems to be no plan to fix that, and there's no obvious way to fix it
20:03:10 <kmc> I personally do not understand how anyone who works on nuclear weapons lives with themself
20:03:12 <int-e> Oh sure but they were not advertised as such :P
20:03:19 <int-e> You'd have to ask the chef.
20:03:26 <zzo38> When do the FAT timestamps run out?
20:03:27 <b_jonas> mostly because windows 95 OSR2 was so reckless as to use up all bytes in the 32 byte directory entries, so there's no place to extend them now
20:03:47 <b_jonas> that's the mtime, but nobody cares about the other two timestamps
20:03:49 <kmc> that goes double for things like Project Pluto which were explicitly designed to kill as many civilians as possible and poison the earth
20:04:32 <b_jonas> basically it started as a 7-bit year field within a 16-bit date field, and that 7-bit year field stores the date as an integer giving a two digit year
20:04:47 <kmc> what about ntfs
20:05:19 <fizzie> Were the FAT timestamps those with the odd (or, rather, even) two-second accuracy?
20:05:39 <b_jonas> perhaps we can change all the fs drivers to treat them rolling over, so 0 would get interpreted as 2028 instead of 1900
20:05:54 <b_jonas> fizzie: yes, because the time of day is also a 16-bit field
20:06:05 <b_jonas> and there's more than 65536 seconds in a day
20:06:23 <b_jonas> so they made it 5 bits for the hour, 6 bits for the minute, 5 bits for half of the second
20:07:27 <b_jonas> optimized for speed on the 8088 obviously
20:08:54 <b_jonas> and I think it might be DOS 2 after all, not DOS 3, that started to have unix-like read/write calls after all
20:35:16 <shachaf> int-e: No, not from a state machine, I mean that optimization already exists for stack allocation in non-coroutine code.
20:35:32 <shachaf> I imagine you can do it by hand if you really cared, though, instead of using a struct.
20:35:43 <kmc> how did file IO work before that
20:36:48 <int-e> shachaf: Yes that exists but I'm not interested in that. I'm interested in a mechanism that would help a compiler starting from coroutines compared to a compiler that is facing a manually crafted corresponding state machine.
20:37:01 <zzo38> I think old DOS uses file control blocks for file I/O
20:37:52 <shachaf> I mean, I think you can still craft a state machine manually that would be as good.
20:38:55 <shachaf> Each state could have its own memory layout and you'd do the liveness analysis and so on yourself. Or something.
20:40:10 <b_jonas> kmc: DOS1 had inherited the kind of IO from CP/M where (1) there's no close, the file descriptor is a fixed size structure, and more importantly, (2) read and write work in fixed size blocks, you can't choose how many bytes to read and write, (3) file size is tracked by the fs in block granularity, not byte granularity
20:40:43 <b_jonas> and that's on a floppy disk, so it's less strange than the tape IO, which has variable sized blocks
20:41:05 <b_jonas> it can have fixed sized blocks on tape too
20:41:30 <b_jonas> oh, and there were no directories, or rather, only one per drive
20:42:26 <b_jonas> that's why text files in DOS used to have an extra "EOF" byte at the end, so they can be read by very old programs that use the CP/M calls and wouldn't know how many characters there are in the last sector
20:42:33 <kmc> I had a computer that ran what I think was an old version of DOS, or similar
20:42:37 <kmc> the TRS-80 Model 100
20:42:43 <kmc> (which has nothing to do with the other trash-80s)
20:42:48 <kmc> such a cool machine
20:45:26 <kmc> a laptop from 1983 that's *actually portable*, all solid state storage, indestructable, instant boot, 16 hours battery life
20:45:55 <b_jonas> with the unix-like interface, DOS introduced the unix idea of how programs can use the console device with the same read/write calls as you use for disk files
20:46:16 <kmc> and a good keyboard
20:46:35 <kmc> of course, in terms of CPU and RAM it was quite underpowered compared to desktops of the day and the luggables
20:46:46 <kmc> and you couldn't run real business software
20:46:59 <kmc> but still very good at certain niches, such as traveling journalists
20:47:16 <b_jonas> why would a traveling journalist need a computer?
20:47:43 <kmc> you could write text with the built in word processor and then send it back to the home office at 300 baud, using an acoustic coupler in your hotel room :P
20:49:16 <int-e> . o O ( better bring a cart? :) )
20:49:19 <kmc> it had a basic BASIC too, you could do cool things like scripting the terminal program to log you in automatically, etc
20:49:42 <kmc> also I guess they envisioned it for portable POS use b/c it has a barcode reader, you could make your own POS software in BASIC i suppose
20:50:01 <kmc> I'm not sure if it had expansion ROMs for other programs
20:50:43 <kmc> iirc it did have PEEK and POKE, so you could probably have additional native code programs in RAM, and load them from the tape port with a BASIC stub
20:51:04 <kmc> however the RAM is limited and is also the only built-in 'nonvolatile' storage (via backup battery)
20:51:17 <kmc> that's why it had instant on, like a graphing calculator
20:51:57 <kmc> it was already obsolete by the time I was born, but I had a hand-me-down and got many hours of fun out of it
20:52:02 <kmc> I can still remember how the leather case smelled
20:52:14 <kmc> funny how smells stay with you for life.
20:52:47 <kmc> anyway, I loaded / saved programs into the Windows 95 sound recorder program, using the tape cable
20:53:35 <b_jonas> didn't you have a proper casette recorder?
20:53:41 <kmc> well, less wasteful than a real casette recorder
20:53:47 <kmc> although that'd be more authentic
20:53:54 <kmc> i mean, i didn't have to buy tapes :P
20:54:00 <kmc> i might have been able to do it on my dad's boombox
20:54:04 <b_jonas> it stores the wave forms uncompressed
20:54:08 <kmc> using a bunch of transistors you have sitting around anyway is not really waste
20:54:09 <b_jonas> you can't store much on a disk that way
20:54:11 <kmc> that is true
20:54:20 <kmc> however i didn't have that many programs
20:54:20 <b_jonas> a few casettes would store more
20:54:24 <kmc> and each one was < 30 seconds of audio
20:54:30 <kmc> also I bet you could dither them to 8 bits
20:54:32 <kmc> didn't try tho
20:54:38 <kmc> anyway even back then I had a 1 GB hard drive
20:54:57 <kmc> to get the cable, my dad took me to radio shack -- this would have been mid to late 90s -- and they were shocked that someone was there to buy an accessory for a 15 year old computer, and even more shocked that they actually had one in the back room, in decaying packaging
20:54:59 <b_jonas> sure, but even with one gigabyte of hard drive
20:55:03 <zzo38> Do you have a program that can convert the sound files to/from a more compact recording of the programs?
20:55:06 <int-e> . o O ( did it come on a truck? )
20:55:06 <b_jonas> that's not more than a few recordable tapes
20:55:12 <kmc> zzo38: no, but it would probably be pretty easy to make
20:55:13 <b_jonas> I mean, you can only record an hour or two on that
20:55:23 <b_jonas> I had more recordable casettes than that when I was a child
20:55:35 <int-e> oh mid to late 90s... fine
20:56:18 <kmc> but i did much more BASIC programming on TI calcs
20:56:19 <int-e> IIRC around that time HDD sizes doubled every two years.
20:56:40 <kmc> because I could easily take it to school, and mess around in math class while pretending to work on the material I'd already finished :P
20:56:43 <kmc> int-e: I'd believe it
20:56:51 <kmc> the TI calculators were also more capable in many ways
21:05:47 -!- xkapastel has quit (Quit: Connection closed for inactivity).
21:06:19 -!- xkapastel has joined.
21:35:16 -!- ashirase has quit (Remote host closed the connection).
21:55:26 -!- arseniiv has quit (Ping timeout: 240 seconds).
22:04:33 -!- Remavas has joined.
22:06:08 -!- Remavas has changed nick to Remavas[AFK].
22:28:33 <b_jonas> `perl -eopen$F,">tmp/perm10"; @a=0..9;for$s(1..3628800){ print$F"@a\n";$k=$s;$m=2;$k/=$m++until$k%$m;@a[0,$m-1]=@a[$m-1,0]; }; warn "done"
22:28:34 <HackEso> String found where operator expected at -e line 1, near "$F"@a\n"" \ (Missing operator before "@a\n"?) \ File size limit exceeded
22:28:40 <b_jonas> `perl -eopen$F,">tmp/perm10"; @a=0..9;for$s(1..3628800){ print$F "@a\n";$k=$s;$m=2;$k/=$m++until$k%$m;@a[0,$m-1]=@a[$m-1,0]; }; warn "done"
22:28:55 <b_jonas> `perl -eopen$F,">tmp/perm10"; @a=0..9;for$s(1..3628800){ print$F join("",@a),"\n";$k=$s;$m=2;$k/=$m++until$k%$m;@a[0,$m-1]=@a[$m-1,0]; }; warn "done"
22:29:38 <b_jonas> is that ten megabytes or five megabytes?
22:29:56 <b_jonas> in any case, it's too small for this
22:31:14 <b_jonas> TAOCP 7.2.1 says "No sensible person would want to make a list of the 10! = 3,628,800 permutations of {0,1,2,3,4,5,6,7,8,9} by printing them out on thousands of sheets of paper, nor even by writing them all in a computer file."
22:31:31 <b_jonas> that sounds like the sort of thing #esoteric would want to do then
22:31:51 <b_jonas> but the 5 megabyte limit makes it impossible
22:33:31 <int-e> > length $ permutations [0..9] >>= (++ "\n") . (>>= show)
22:33:45 <int-e> > length $ permutations [1..9] >>= (++ "\n") . (>>= show)
22:33:57 <b_jonas> `perl -eopen$F,"|wc"; @a=0..9;for$s(1..3628800){ print$F "@a\n";$k=$s;$m=2;$k/=$m++until$k%$m;@a[0,$m-1]=@a[$m-1,0]; }; warn "done"
22:34:04 <HackEso> done at -e line 1. \ 3628800 36288000 72576000
22:34:20 <b_jonas> `perl -eopen$F,"|wc"; @a=0..9;for$s(1..3628800){ print$F join("",@a),"\n";$k=$s;$m=2;$k/=$m++until$k%$m;@a[0,$m-1]=@a[$m-1,0]; }; warn "done"
22:34:24 <HackEso> done at -e line 1. \ 3628800 3628800 39916800
22:35:06 <int-e> you should also consider the age of TAoCP.
22:35:37 <b_jonas> and it doesn't say that it can't be done, it says it's not worth
22:36:13 <b_jonas> or at least that it's not what you usually want when you're asking for generating all permutations
22:36:17 <int-e> it does make for a fun compression benchmark
22:36:26 <b_jonas> vol 4 handles some pretty big tasks
22:39:19 <int-e> gzip -9: 1620145, bzip2 -9: 1150986, xz -9: 48068 ... wow?!
22:39:45 <b_jonas> int-e: which order of permutations is that? the one I gave, or the one you gave?
22:40:08 <int-e> with spaces and newlines
22:40:46 <b_jonas> `perl -e@a=0..5;for$s(1..999){ print join("",@a),"\n";$k=$s;$m=2;$k/=$m++until$k%$m;@a[0,$m-1]=@a[$m-1,0]; };
22:40:47 <HackEso> 012345 \ 102345 \ 201345 \ 021345 \ 120345 \ 210345 \ 310245 \ 130245 \ 031245 \ 301245 \ 103245 \ 013245 \ 213045 \ 123045 \ 321045 \ 231045 \ 132045 \ 312045 \ 012345 \ 102345 \ 201345 \ 021345 \ 120345 \ 210345 \ 410325 \ 140325 \ 041325 \ 401325 \ 104325 \ 014325 \ 314025 \ 134025 \ 431025 \ 341025 \ 143025 \ 413025 \ 013425 \ 103425 \ 301425 \ 031425 \ 130425 \ 310425 \ 410325 \ 140325 \ 041325 \ 401325 \ 104325 \ 014325 \ 214305 \ 124305 \ 421305 \ 2
22:41:12 <b_jonas> `perl -e@a=0..4;for$s(1..120){ print join("",@a),"\n";$k=$s;$m=2;$k/=$m++until$k%$m;@a[0,$m-1]=@a[$m-1,0]; };
22:41:13 <HackEso> 01234 \ 10234 \ 20134 \ 02134 \ 12034 \ 21034 \ 31024 \ 13024 \ 03124 \ 30124 \ 10324 \ 01324 \ 21304 \ 12304 \ 32104 \ 23104 \ 13204 \ 31204 \ 01234 \ 10234 \ 20134 \ 02134 \ 12034 \ 21034 \ 41032 \ 14032 \ 04132 \ 40132 \ 10432 \ 01432 \ 31402 \ 13402 \ 43102 \ 34102 \ 14302 \ 41302 \ 01342 \ 10342 \ 30142 \ 03142 \ 13042 \ 31042 \ 41032 \ 14032 \ 04132 \ 40132 \ 10432 \ 01432 \ 21430 \ 12430 \ 42130 \ 24130 \ 14230 \ 41230 \ 31240 \ 13240 \ 23140 \ 3214
22:41:28 <b_jonas> `perl -e@a=0..4;for$s(1..120){ print join("",@a)," ";$k=$s;$m=2;$k/=$m++until$k%$m;@a[0,$m-1]=@a[$m-1,0]; };
22:41:29 <HackEso> 01234 10234 20134 02134 12034 21034 31024 13024 03124 30124 10324 01324 21304 12304 32104 23104 13204 31204 01234 10234 20134 02134 12034 21034 41032 14032 04132 40132 10432 01432 31402 13402 43102 34102 14302 41302 01342 10342 30142 03142 13042 31042 41032 14032 04132 40132 10432 01432 21430 12430 42130 24130 14230 41230 31240 13240 23140 32140 12340 21340 41320 14320 34120 43120 13420 31420 21430 12430 42130 24130 14230 41230 01234 10234 20134 02134 1203
22:41:46 <b_jonas> that's not even all permutations
22:42:36 <int-e> right I was going to check that... and that does explain the good compression, I guess.
22:44:32 <int-e> for the Haskell thing (newline, no spaces), gzip -9: 7913058; bzip2 -9: 9620381; xz -9: 1562180.
22:46:30 <int-e> and with spaces: gzip -9: 9525275; bzip2 -9: 9846341; xz -9: 2242728.
22:46:48 <b_jonas> how about with (7z a -mx=9 -sia kts-Ae6seFQj.7z; cat kts-Ae6seFQj.7z) ?
22:47:21 <b_jonas> (7z won't compress to a pipe, so I'm using a temporary file here)
22:47:47 <b_jonas> oh wait, you're saying gzip -9 rather than gzip -c9 so I don't have to cat it
22:48:11 <int-e> I'm piping into it.
22:48:34 <b_jonas> piping into it is fine, it can take the uncompressed input in a pipe
22:48:46 <b_jonas> it just can't put or take the compressed file from a pipie
22:49:05 <b_jonas> so for compressing, it can read from a pipe, for decompressing it can write to a pipe
22:49:14 <int-e> Archive size: 1759018 bytes (1718 KiB)
22:49:33 <b_jonas> ha! so it does sometimes win over xz
22:56:34 -!- tromp has quit (Remote host closed the connection).
23:09:14 <shachaf> int-e: I wonder whether there's a test program to run benchmarks with.
23:15:56 -!- AnotherTest has quit (Ping timeout: 240 seconds).
23:27:16 -!- tromp has joined.
23:29:46 -!- Essadon has quit (Quit: Qutting).
23:30:42 <fizzie> I think it's 10 megabytes; bash ulimit -f is in 1024 byte units, except when in Posix mode.
23:30:46 <fizzie> `` ulimit -f; sh -c "ulimit -f"
23:32:04 -!- tromp has quit (Ping timeout: 250 seconds).
23:32:40 <fizzie> Actually, what's sh there?
23:32:43 <HackEso> lrwxrwxrwx 1 0 0 4 Jan 24 2017 /bin/sh -> dash
23:35:36 <HackEso> ELF............>.....7......@.................@.8..@.........@.......@.......@..................................8......8......8......................................................................... ..................!.....!...........>........ ...........h......h!.....h!................................T......T......T......D.......D..............Ptd...f......f......f.........................Q
23:36:04 -!- Remavas[AFK] has quit (Quit: Leaving).
23:38:00 <HackEso> Cats are cool, but should be illegal.
23:38:11 <kmc> i disagree
23:38:13 <HackEso> 1/2:precision//78.75211317% of the time precision is totally overrated. \ gene ray//Dr Gene Ray is the Greatest Philosopher, and is the Greatest Mathematician. Cubic Harmonics. Only Cubic Harmonics can save humanity. Cubic Harmonics will pacify all religions. 96-hour Cubic Day debunks 1-day unnatural god. 96-hour day willdisprove disunity god. Academians are teaching - pseudocience. Worshipping a Word God will destroy the USA. \ web access//Sorry, Ha
23:38:19 <HackEso> 2/2:ckEgo's sandbox currently has no web access. However, see `? `fetch \ type system//type system = kitten \ bugbear//A bugbear is a teddy bear that you can explain your bugs to.
23:38:56 <HackEso> `fetch [<output-file>] <URL> downloads files, and is the only web access currently available in HackEgo. It is a special builtin that cannot be called from other commands. See also `edit.
23:41:12 <HackEso> `! \ `# \ `fetch \ guarantee \ hackego \ hackeso \ `help \ `hoag \ list \ med \ print_args_or_input \ ruddy \ `run \ source \ test \ tmp \ web access \ zarutian
23:42:05 <HackEso> You can trust Zarutian. He fixes, as an electronics technician, banal mistakes of electronics engineers. Rather cy(ph|b)erpunkish in outlook regarding the 'Net. Knows more about ocaps than you can imagine. Possesses an Icelandic unnerver that ejects freezingly hot lava out of its business end. Bears an 'Authentic fakes provider' seal from the guild of Realers. He is also known for making rather long HackEgo wisdom entries. Take for instance this entry. It
23:42:41 <int-e> . o O ( `pwste zarutian )
23:42:51 <int-e> `paste wisdom/zarutian
23:42:52 <HackEso> https://hack.esolangs.org/repo/file/tip/wisdom/zarutian
23:43:02 <HackEso> 2/2: It has a whole subentry just on Icelandic unnerver. Even though the Icelandic unnerver has its own.
23:43:20 <int-e> I also can't remember the proper repository URL command
23:43:38 <fizzie> I was just wondering if there was a `wrl.
23:44:52 <HackEso> come on, you can type seven characters
23:45:24 <HackEso> 9814:2016-12-02 <shachäf> mkx bin/hwrl//echo \'come on, you can type seven characters\'
23:45:46 <int-e> what a horrible, opinionated character
23:46:30 * int-e also wonders about the difference between `url and `hurl
23:46:37 <shachaf> I don't remember that. Maybe it was an impostor.
23:46:40 <fizzie> Also horrible: there are entirely independent scripts bin/url and bin/hurl, where the only difference is that only the former supports tmp.
23:46:51 <HackEso> #!/usr/bin/env python \ import sys, os.path, re, urllib \ if len(sys.argv) <= 1: \ print "https://hack.esolangs.org/repo/" \ else: \ f = os.path.abspath(sys.argv[1]) \ f = re.sub(r"^/+hackenv/", "", f) \ if re.match(r"/|(?:\.hg|tmp)(?:/|$)",f): \ sys.exit("File is outside web-viewable filesystem repository.") \ else: \ print ("https://hack.esolangs.org/repo/log/tip/" + \ urllib.quote(f))
23:47:00 <HackEso> 11469:2018-04-08 <fizzïe> sled bin/hurl//s,hackego.esolangs.org/fshg,hack.esolangs.org/repo,g;s,/index\\.cgi,, \ 10395:2017-03-11 <oerjän> sled bin/hurl//s,http,https,g \ 10316:2017-02-18 <fizzïe> sled bin/hurl//s,codu.org/projects/hackbot,hackego.esolangs.org, \ 9142:2016-10-02 <oerjän> ` cp bin/{,h}url; sed -i \'11s/file/log/\' bin/hurl
23:47:06 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: cblprits: not found
23:47:21 <HackEso> fizzïe oerjän fizzïe oerjän
23:47:32 <HackEso> fizzïe fizzïe oerjän fizzïe oerjän fizzïe fizzïe fizzïe oerjän oerjän oerjän oerjän oerjän oerjän oerjän oerjän fizzïe fizzïe fizzïe fizzïe oerjän oerjän oerjän oerjän oerjän oerjän nitïa
23:47:42 <fizzie> ...yeah, nobody else to blame.
23:47:57 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/url
23:48:22 <fizzie> Looks like I even fixed the paths in both url and hurl 10 months ago.
23:48:31 <shachaf> So these aren't totally separate, they're almost identical.
23:49:10 <fizzie> I guess you can argue that because of the "h" in "hurl", it should only work for repository contents, while "url" is okay to support tmp as well.
23:49:30 <shachaf> Wait, these aren't independent.
23:49:34 <shachaf> One of them is for the history of a file.
23:49:58 <int-e> `mkx hwrl//hurl "wisdom/$1"
23:50:06 <fizzie> I guess that makes sense.
23:50:09 <HackEso> come on, you can type seven characters
23:50:30 <HackEso> https://hack.esolangs.org/repo/log/tip/wisdom/zarutian
23:50:39 <int-e> `mkx bin/wrl//url "wisdom/$1"
23:50:46 <HackEso> https://hack.esolangs.org/repo/file/tip/wisdom/zarutian
23:50:47 <shachaf> I guess hurl can't support tmp. Oh well.
23:51:03 <fizzie> Yes, it makes sense, I just didn't realize what it was for.
23:51:28 <int-e> Yeah I was puzzled by the 'h' as well. So I learned something... useless. Yay.
23:52:23 <shachaf> If you didn't know what hurl was, why were you hwrling?
23:52:39 <int-e> because I looked at /bin in the repo browser
23:53:02 <HackEso> https://hack.esolangs.org/repo/file/tip/bin
23:53:20 <shachaf> Why is bin so full of nonsense?
23:53:36 <int-e> Because of the people. That is, us. :P
23:53:43 <HackEso> #!/bin/bash \ sha1sum "$@" | tr a-z n-za-m
23:53:52 <HackEso> 2666:2013-04-14 <km̈c> printf \'#!/bin/bash\\nsha1sum "$@" | tr a-z n-za-m\' > bin/shachaf1sum && chmod +x bin/shachaf1sum
23:54:20 <shachaf> kmc: SMILING CAT FACE WITH HEART-SHAPED EYES
23:54:33 <int-e> `culprits bin/<command>
23:54:38 <fizzie> HackEso: binaries of the people, by the people, for the people.
23:54:40 -!- Lord_of_Life_ has joined.
23:54:50 <HackEso> echo Stop taking everything literally!
23:54:59 <shachaf> fizzie: There's still a DNS entry for hackego.esolangs.org
23:55:00 <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 $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
23:55:07 <shachaf> Which was confusing when I tried to hg pull a little while ago.
23:55:14 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
23:55:41 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
23:55:57 <fizzie> shachaf: I guess it doesn't look too likely the Cloud at Cost host is coming back...
23:56:03 <HackEso> Shaventions include: before/now/lastfiles, culprits, hog/{h,d}oag, le//rn, tmp/, mk/mkx, {s,p}led/sedlast, spore/spam/speek/sport/1/4/5, edit. Taneb did not invent them yet.
23:56:13 <shachaf> No one ever uses things like before/now/lastfiles
23:56:51 <shachaf> I think edit is a fizzievention by now
23:57:25 <fizzie> int-e: I think that's for ruining an error quote.
23:57:44 <HackEso> 0:2012-02-16 Initïal import.
23:57:45 <fizzie> Or something along those lines.
23:57:56 <HackEso> nitia is the inventor of all things. The BBC invented her.
23:58:43 <shachaf> Probably https://en.wikipedia.org/wiki/BBC_Nitia
23:59:26 <HackEso> OLD="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}»"
23:59:35 <HackEso> 9714:2016-11-17 <oerjän> whoop ../bin/whoop \ 9713:2016-11-17 <shachäf> ` mv bin/whoop{s,} \ 9710:2016-11-17 <oerjän> ` mv bin/whoops{s,} \ 9709:2016-11-17 <oerjän> whoops \ 9708:2016-11-17 <oerjän> mkx bin/whoops//OLD="wisdom/$1"; [ -z "$1" ] && OLD="$(lastfiles)"; NEW="${OLD}s"; if [ -f "$NEW" ]; then echo "\xc2\xab${NEW}\xc2\xbb already exists"; exit 1; fi; mv "$OLD" "$NEW" && echo "\xc2\xab${OLD}\xc2\xbb -> \xc2\xab${NEW}\xc2\xbb" \ 5338:2015
00:00:02 -!- danieljabailey has quit (Quit: ZNC 1.6.6+deb1ubuntu0.1 - http://znc.in).
00:00:41 <HackEso> int-e: 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.)
00:01:03 <HackEso> 5184:2014-12-09 <FireFl̈y> ` sed -ir \'s/sed.*/tr -d aeoiu/\' bin/wlcm; cat bin/wlcm \ 5183:2014-12-09 <FireFl̈y> ` sed -ir \'s/.$/g&/\' bin/wlcm; cat bin/wlcm
00:01:29 <HackEso> FrFly: Wlcm t th ntrntnl hb fr strc prgrmmng lngg dsgn nd dplymnt! Fr mr nfrmtn, chck t r wk: <https://slngs.rg/>. (Fr th thr knd f strc, try #strc n EFnt r DALnt.)
00:02:21 <int-e> I ended up checking whether it's colorful... it wasn't.
00:02:43 <FireFly> I don't remember creating that
00:03:06 <shachaf> But it's only because of the confusing thing in the fshg browser where it shows the last commit message at the top, instead of the message of the last commit that affected the file you clicked on.
00:04:11 <int-e> why would you make a backup rather than just use -i ?
00:04:33 <FireFly> -r is how GNU sed spells -E
00:04:40 <int-e> FireFly: then use -ri
00:04:42 <shachaf> sed -ir is not sed -i -r hth
00:04:44 <b_jonas> ``` rm -v bin/preprocess-mtg # one less now
00:04:46 <HackEso> removed 'bin/preprocess-mtg'
00:05:11 <b_jonas> ``` rm -v bin/7z bin/7za # I added these, but they never worked
00:05:17 <HackEso> 5184:2014-12-09 <FireFl̈y> ` sed -ir \'s/sed.*/tr -d aeoiu/\' bin/wlcm; cat bin/wlcm \ 5183:2014-12-09 <FireFl̈y> ` sed -ir \'s/.$/g&/\' bin/wlcm; cat bin/wlcm
00:05:18 <HackEso> removed 'bin/7z' \ removed 'bin/7za'
00:05:30 <FireFly> but well I didn't even remember creating that to begin with
00:05:39 <shachaf> FireFly: nowadays you'd just use sled hth
00:05:52 -!- oerjan has joined.
00:06:10 <int-e> FireFly: It's a plausible mistake. It took me a moment to realize why the file was there at all :)
00:07:54 <b_jonas> I created bin/8-ball but then other people modified it in ways I don't approve with, and I would have used the original but now I can't trust it
00:08:19 <b_jonas> I apparently created wrlist, just in case the "we are robots" webcomic resurrects
00:08:32 <b_jonas> as for the rest, what I can do is use them so there aren't so many unused ones
00:08:47 <b_jonas> except for the lists that are for events that haven't happened of course, I won't use them
00:08:51 <HackEso> keenlist is notification for when Tom Hall acquires the necessary intellectual property rights to create the videogame series Commander Keen: The Universe is Toast
00:09:05 <b_jonas> ``` hg log -T "{desc}\0{file_adds}\n" bin/* | perl -ne '/^<[^>]*jonas.*\0(.+)/ and print "$1\n";' | sport
00:09:26 <b_jonas> shachaf: because if it happens, I'd like to notice, so it pings me
00:09:29 <HackEso> 1/2:bin/bobadventureslist \ bin/starwars \ bin/scheme \ bin/calesyta2016list \ bin/welkom \ bin/velkomin \ bin/velkommen \ bin/välkommen \ bin/hello \ bin/random-card \ bin/card-by-name \ bin/recipe \ bin/lastwisdoms \ bin/keenlist wisdom/keenlist \ bin/ioccclist \ bin/bardsworthlist \ bin/ehlist \ bin/revert \ bin/culprits-ng \ bin/aglist \ bin/listlist \ bin/wrlist \ bin/dateu \ bin/sqli \ bin/datei \ bin/culprits-c \ bin/Welcome \ bin/velcome \ bin/cto
00:09:32 <HackEso> 2/2:f \ bin/ftoc \ bin/toroman \ bin/fromroman \ bin/8-ball \ bin/8ball
00:09:34 <HackEso> echo -n "$(basename "$0")${@:+ }$@: "; tail -n+2 "$0" | xargs; exit \ b_jonas
00:09:39 <HackEso> Supreme Leader Snoke \ R2-D2 \ Moff Jerjerrod \ Galen Erso \ Qui-Gon Jinn \ Padmé Amidala \ Cassian Andor \ Ric Olié \ Doctor Cornelius Evazan \ C-3PO
00:09:41 <shachaf> But you're the only one on the list.
00:09:51 <b_jonas> shachaf: so far yes, but anyone can echo >> it
00:10:03 <b_jonas> I won't just add other people
00:10:18 <b_jonas> when you create a list, do you add anyone but yourself?
00:10:45 <b_jonas> hmm, the starwars should perhaps be updated to add characters from Solo
00:11:07 <b_jonas> or are those already in there?
00:11:43 <shachaf> No, but the main way people learn about lists is from seeing them being listed.
00:12:08 <int-e> `calesyta2016list never happened
00:12:09 <HackEso> calesyta2016list never happened: b_jonas
00:12:49 <HackEso> /2019-02-08/ macron // flabberghast // chicken // /2019-02-07/ ladder // quantum leap // /2019-02-04/ password // /2019-02-02/ asap // tio // /2019-01-30/ prefixes // /2019-01-29/ shannon // /2019-01-26/ fnord // /2019-01-01/ this ftp site // /2018-12-29/ standard // /2018-12-22/ ground water // /2018-12-11/ italian // grace period // tanebvention // /2018-12-09/ oren // /2018-12-07/ mꙮnqy // /2018-12-06/ oerjan // /2018-12-01/ `hello // tense formati
00:13:11 <int-e> `culprits-c wisdom/password
00:13:13 <HackEso> 29 oerjän 14 int-̈e 5 shachäf 1 mroman̈_ 1 mromän 1 gameman̈j 1 boil̈y 1 b_jonäs
00:13:35 <b_jonas> huh... what's bin/revert ?
00:14:21 <HackEso> fatal: Not a git repository (or any parent up to mount point /hackenv) \ Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
00:15:05 <int-e> b_jonas: you made it though
00:15:14 <b_jonas> int-e: yeah, that's the problem
00:15:23 <b_jonas> I listed the entries in bin that I made and that still exist
00:15:45 <b_jonas> hackego wasn't using git either, right?
00:16:24 <fizzie> <b_jonas> let's create a fake bin/revert !
00:16:37 <shachaf> hackego was using hg and now hackeso is using hs
00:16:47 <fizzie> There was discussion about how `revert is a builtin and not a real command.
00:17:00 <b_jonas> but I could have created a real one
00:17:33 <b_jonas> well, not an entirely real one
00:17:35 <fizzie> And whether it would be possible to make an actual non-builtin version of `revert, which sounds like it should be more or less possible.
00:17:57 <HackEso> #!/bin/sh \ hg diff -c "$@" | patch -p1 -R
00:18:01 <int-e> <oerjan> b_jonas: why are you using git commands, HackEgo is mercury / <b_jonas> oerjan: it's a fake command, so it doesn't matter, right? / <oerjan> OKAY
00:18:08 <int-e> <b_jonas> and I don't know mercurial
00:18:19 <HackEso> bin/revert//#!/bin/sh \ exec git checkout HEAD^ .
00:22:15 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: after: not found
00:22:20 <HackEso> bin/revert//cat: bin/revert: No such file or directory
00:22:31 <shachaf> Well, it doesn't do much for deletions.
00:22:57 <HackEso> Approach of the Second Sun \ 6W \ Sorcery \ If Approach of the Second Sun was cast from your hand and you've cast another spell named Approach of the Second Sun this game, you win the game. Otherwise, put Approach of the Second Sun into its owner's library seventh from the top and you gain 7 life. \ AKH-R
00:22:58 <HackEso> Ivory Gargoyle \ 4W \ Creature -- Gargoyle \ 2/2 \ Flying \ When Ivory Gargoyle dies, return it to the battlefield under its owner's control at the beginning of the next end step and you skip your next draw step. \ {4}{W}: Exile Ivory Gargoyle. \ AI-R, ME2-R
00:23:07 <HackEso> Emrakul, the Promised End \ 13 \ Legendary Creature -- Eldrazi \ 13/13 \ This spell costs {1} less to cast for each card type among cards in your graveyard. \ When you cast this spell, you gain control of target opponent during that player's next turn. After that turn, that player takes an extra turn. \ Flying, trample, protection from instants \ EMN-M
00:23:53 <HackEso> Hand of Emrakul \ 9 \ Creature -- Eldrazi \ 7/7 \ You may sacrifice four Eldrazi Spawn rather than pay this spell's mana cost. \ Annihilator 1 (Whenever this creature attacks, defending player sacrifices a permanent.) \ ROE-C
00:23:57 <HackEso> Prakhata Club Security \ 3B \ Creature -- Aetherborn Warrior \ 3/4 \ KLD-C
00:24:08 <HackEso> Your omnidryad saddle principal ideal golfing toe-obsessed "Darth Ook" oerjan the shifty evil grinch is a punctual expert in minor compaction. Also a Groadep who minces Roald Dahl. He could never remember the word "amortized" so he put it here for convenience. His ark-nemesis is Noah. He twice punned without noticing it.
00:24:32 <HackEso> stat: cannot stat 'bin/slwrjan': No such file or directory
00:24:33 <HackEso> oerjan//Your omnidryad saddle principal ideal golfing toe-obsessed "Darth Ook" oerjan the shifty eldrazi grinch is a punctual expert in minor compaction. Also a Groadep who minces Roald Dahl. He could never remember the word "amortized" so he put it here for convenience. His ark-nemesis is Noah. He twice punned without noticing it.
00:25:07 <int-e> `culrpits-c wisdom/oerjan
00:25:08 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: culrpits-c: not found
00:25:14 <int-e> `culprits-c wisdom/oerjan
00:25:16 <HackEso> 122 shachäf 53 oerjän 11 boil̈y 5 noloveinwaikik̈i 2 Jafët 2 int-̈e 1 nitïa 1 hppavilion[1̈]
00:25:41 <HackEso> nitia is the inventor of all things. The BBC invented her.
00:25:53 <HackEso> zzo38 is not actually the next version of fungot, much as it may seem.
00:25:58 <HackEso> Queen Shachaf of the Dawn sprø som selleri and cosplays Nepeta Leijon on weekends. He hates bell peppers with a passion. He doesn't know when to stop asking questions.
00:26:24 <int-e> I still don't get the bell peppers thing.
00:26:36 <shachaf> I don't like bell peppers.
00:26:48 <shachaf> I think the other bits are much harder to get, really.
00:27:02 <oerjan> int-e: noloveinwaikiki was one of hagb4rd's nicks, as i recall
00:27:26 <b_jonas> int-e: I still don't get some of the wisdom entry about me
00:27:35 <int-e> shachaf: I've never tried to decipher the first sentence, and I know all about the last one ;-)
00:27:35 <HackEso> b_jonas egy nagyon titokzatos személy. Hollétéről egyelőre nem ismertek.
00:28:16 <shachaf> What's going on with the last one?
00:29:24 <int-e> I'm pretty sure I added that after being subjected to the shachafian inquisition one day. I have to admit that I did forget the topic of that discussion.
00:29:34 <oerjan> b_jonas: 's okay i only get the first three words and the second last.
00:29:54 <shachaf> I thought oerjan added that, though.
00:29:55 <oerjan> int-e: i thought i added it...
00:29:58 <HackEso> 9872:2016-12-05 <boil̈y> slwd shachaf//s/^/Queen / \ 9869:2016-12-05 <oerjän> learn_append shachaf He doesn\'t know when to stop asking questions. \ 9116:2016-09-29 <shachäf> slwd shachaf//s# T.*## \ 8814:2016-07-14 <boil̈y> slwd shachaf//s#^shachaf#Shachaf of the Dawn# \ 8553:2016-06-21 <shachäf> ` hg cat -r 8343 wisdom/shachaf > wisdom/shachaf \ 8345:2016-06-05 <Elronn̈d> learn shachaf is a wise little gentleman. \ 8344:2016-06-05 <Elronn̈d> le
00:30:11 <int-e> did I at least suggest it?
00:30:20 <esowiki> [[Vague]] https://esolangs.org/w/index.php?diff=59799&oldid=59780 * Cortex * (+142)
00:30:25 <shachaf> I think I asked oerjan too many questions.
00:30:47 <int-e> Or did I just quote it on one occasion.
00:31:04 <int-e> My memory is what it used to be. All unreliable and forgetful :)
00:31:07 <esowiki> [[Vague]] https://esolangs.org/w/index.php?diff=59800&oldid=59799 * Cortex * (-27)
00:31:26 <shachaf> My memory is like a functor.
00:32:06 <oerjan> int-e: maybe it's one of those berenstoin things
00:32:56 <int-e> faithful, forgetful, adjoint...
00:33:52 <HackEso> Thanks, hackeso. Thackeso.
00:33:53 <shachaf> memory can be especially forgetful after adjoint
00:34:06 * oerjan swats shachaf -----###
00:34:52 <int-e> @google berenstoin
00:34:53 <lambdabot> https://me.me/i/no-normies-allowed-stan-jan-berenstoin-%3Cp%3Ememe-insiders-make-stance-22266978
00:35:34 <int-e> ... I have regrets.
00:38:48 <shachaf> I am not clicking that link.
00:39:00 <int-e> "Many people incorrectly remember the name of the series as the "Berenstein Bears". This confusion has generated multiple theories to explain the memories, including an unannounced name change, time travel, or parallel universes and has been described as an instance of the Mandela effect."
00:39:19 <int-e> oerjan: is that what you're alluding to?
00:40:53 <shachaf> Is there a way to do static linking on Linux and also use OpenGL?
00:42:18 <HackEso> This is something people on the channel like to talk about. We're often unsure what this is, though.
00:43:25 <shachaf> int-e may or may not be fan
00:44:03 <int-e> `quote indifference
00:44:04 <HackEso> 1320) <shachaf> int-e does not like this [...] <int-e> shachaf: I experience heightened levels of indifference :P <shachaf> Higher than your usual? <int-e> who cares?
00:44:13 <imode> you can statically link to whatever libraries you want but I don't think you can statically link to a single OpenGL library..
00:45:16 <kmc> shachaf: probably not a reasonable way, because part of the graphics driver is a shared library
00:45:41 <kmc> although you might be able to statically link the software only Mesa renderer
00:46:21 <shachaf> It's a shared library that links against libc which means I have to use libc and everything too, presumably.
00:47:42 -!- tromp has joined.
00:49:36 <HackEso> cat: invalid option -- 'r' \ Try 'cat --help' for more information.
00:49:40 <b_jonas> ``` hg cat -r 8821 wisdom/tg
00:49:41 <HackEso> TG is short for Turing-Gödel, the highest possible level of difficulty for a multiplayer game. At this level, it's undecidable whether you can manage to halt before losing or not. This gizmo talks gibberish too garbled to grasp.
00:51:35 <HackEso> @ is an OS made out of only the finest vapour.
00:52:37 -!- tromp has quit (Ping timeout: 244 seconds).
00:52:54 <pikhq> That's a blast from the past.
01:04:38 -!- b_jonas has quit (Quit: leaving).
01:06:02 <oerjan> . o O ( <game show host> And your final question for the $1,000,000 prize is: What's the Russian word for "province"? <contestant> Oh, blast! )
01:12:32 <shachaf> Is it confusing if I use the number of bytes instead of the number of bits for my numeric types?
01:12:44 <shachaf> So U1/U2/U4/U8 instead of U8/U16/U32/U64
01:13:31 <imode> yes, because how many bits to a byte?
01:13:55 <imode> 8 is conventional, but there are other byte sizes.
01:14:11 <shachaf> But do I care about architectures where bytes aren't octets?
01:15:47 -!- xkapastel has quit (Quit: Connection closed for inactivity).
01:20:53 <imode> I mean, that's your call.
01:21:06 <imode> you also have no way to specify a 4-bit type or a 2-bit type.
01:21:12 <imode> or a 7-bit type or something.
01:22:00 <shachaf> Yes. But on the other hand "8" is the same length as "1".
01:22:21 <shachaf> I don't know. Maybe I should stick to bits because everyone else does.
01:23:04 <shachaf> Also I tried writing code with this style and I kept getting confused and using U8 instead of U1.
01:25:52 <shachaf> Hmm. I think maybe that should be adjusted.
01:26:35 <fizzie> If you use 8/16/32/64, you can use 1 for a boolean type. That's what LLVM does.
01:28:39 <j4cbo> I don’t know of any non-8-bit-byte architectures that are relevant these days, but bits still seem more fundamental
01:29:24 <shachaf> kmc: is there any meaning to fractional qubits twh
01:30:28 <HackEso> #!/usr/bin/perl \ $_ = (join " ", @ARGV) || `words`; s/^\s+|\s+$//g; print "Hi $_. "; if (/[aeiouyAEIOUY]/) { s/^[^aeiouyAEIOUY]*/H/; } else { s/^./H/; } print "$_.";
01:30:51 <fizzie> TI's still making TMS320C55x chips for low-power applications, and their C compiler for those has a CHAR_BIT == 16 setup.
01:31:08 <shachaf> `sled bin/hi//s/OUY/OUY0134/g
01:31:10 <HackEso> bin/hi//#!/usr/bin/perl \ $_ = (join " ", @ARGV) || `words`; s/^\s+|\s+$//g; print "Hi $_. "; if (/[aeiouyAEIOUY0134]/) { s/^[^aeiouyAEIOUY0134]*/H/; } else { s/^./H/; } print "$_.";
01:31:56 <zzo38> TAVERN uses 16-bit memory cells (although if TAVERN32 or TAVERN64 is made, it might use 8-bit cells instead).
01:32:15 <shachaf> what kind of memory cell does TAVERN8 use
01:32:16 <fizzie> `` sled bin/thanks//s/OUY/OUY0134/g # for consistency
01:32:18 <HackEso> bin/thanks//#!/usr/bin/perl -CSDA \ $_ = (join " ", @ARGV) || `words`; s/^\s+|\s+$//g; print "Thanks, $_. "; if (/[aeiouyAEIOUY0134]/) { s/^[^aeiouyAEIOUY0134]*/Th/; } else { s/^./T/; } print "$_.";
01:32:28 <zzo38> shachaf: There is no TAVERN8
01:32:39 <shachaf> Maybe I should bug someone else.
01:33:02 <shachaf> But no one else uses digits that way.
01:33:17 <shachaf> Oh, wait, you can run this on a name that isn't a nick present in the channel. I forgot.
01:34:17 <HackEso> bin/h! \ bin/?h \ bin/thanks \ bin/hyphenate.fi \ bin/hi \ bin/blessyou \ bin/unh \ bin/?hh \ bin/shmify \ bin/h
01:34:18 <fizzie> By the way, I was thinking of exporting $NICK in the HackEso environment as the person who requested the thing to be done.
01:34:24 <HackEso> #!/usr/bin/perl \ $_ = (join " ", @ARGV) || `words`; s/^\s+|\s+$//g; print "Bless you, $_. "; if (/[aeiouyAEIOUY]/) { s/^[^aeiouyAEIOUY]*/Bl/; } else { s/^./B/; } print "$_.";
01:34:36 <shachaf> sled bin/blessyou//s/OUY/OUY0134/g
01:34:39 <shachaf> `sled bin/blessyou//s/OUY/OUY0134/g
01:34:41 <HackEso> bin/blessyou//#!/usr/bin/perl \ $_ = (join " ", @ARGV) || `words`; s/^\s+|\s+$//g; print "Bless you, $_. "; if (/[aeiouyAEIOUY0134]/) { s/^[^aeiouyAEIOUY0134]*/Bl/; } else { s/^./B/; } print "$_.";
01:34:46 <HackEso> Bless you, f1zz13. Bl1zz13.
01:35:11 <shachaf> Eh. That might be going too far.
01:35:44 <HackEso> fihzzie: Wehlcohme to the ihntehrnahtiohnahl huhb fohr ehsohtehrihc prohgrahmmihng lahnguahge dehsihgn ahnd dehployhmehnt! Fohr mohre ihnfohrmahtiohn, chehck ouht ouhr wihki: <https://ehsohlahngs.ohrg/>. (Fohr the ohthehr kihnd ohf ehsohtehrihca, try #ehsohtehrihc ohn EhFneht ohr DAhLneht.)
01:41:06 <kmc> shachaf: there probably is in quantum information theory, which I know nothing about
01:41:50 <oerjan> `` doag | grep 'sed -i[^ ]'
01:41:53 <HackEso> 10398:2017-03-11 <hppavilion̈1> ` sed -ie "s,\\\\n,\\n," bin/lowercase2 \ 6500:2016-01-03 <Melvär> ` sed -ie \'s/inp[)]$/unicode(inp, locale.getpreferredencoding())).encode(locale.getpreferredencoding())/\' -e \'2s/$/, locale/\' bin/loudly; \ 6484:2016-01-03 <oerjän> ` sed -ie \'s/inp[)]$/unicode(inp, locale.nl_langinfo(locale.CODESET))).encode(locale.nl_langinfo(locale.CODESET))/\' bin/loudly \ 5184:2014-12-09 <FireFl̈y> ` sed -ir \'s/sed.*/tr -d ae
01:41:56 <HackEso> Bless you, keegan. Bleegan.
01:42:23 <HackEso> cat: bin/dog: No such file or directory
01:42:29 <shachaf> I'm a bit surprised `dog doesn't exist.
01:42:38 <shachaf> i,i unless cat is lying to us
01:43:53 <HackEso> 10398:2017-03-11 <hppavilion̈1> ` sed -ie "s,\\\\n,\\n," bin/lowercase2
01:44:30 <HackEso> 10294:2017-02-16 <oerjän> rm bin/loudlye \ 6500:2016-01-03 <Melvär> ` sed -ie \'s/inp[)]$/unicode(inp, locale.getpreferredencoding())).encode(locale.getpreferredencoding())/\' -e \'2s/$/, locale/\' bin/loudly; \ 6491:2016-01-03 <oerjän> revert 6483 \ 6489:2016-01-03 <oerjän> revert 6486 \ 6488:2016-01-03 <oerjän> revert 6483 \ 6486:2016-01-03 <oerjän> revert \ 6485:2016-01-03 <oerjän> revert \ 6484:2016-01-03 <oerjän> ` sed -ie \'s/inp[)]$/
01:44:43 <shachaf> `2 doag | grep 'sed -i [^ ]'
01:44:47 <HackEso> 2/169:e\'s font https://github.com/fis/rfk86/tree/master/web/font|" wisdom/font \ 11200:2017-09-26 <int-̈e> ` sed -i \'$s=sha[c]haf=shach\x0faf=\' quotes > /dev/null \ 11198:2017-09-26 <int-̈e> ` sed -i \'$s=shachaf=sha\x0fchaf=\' quotes \ 11150:2017-08-08 <fizzïe> ` sed -i -e "s/head.*/grep \'^U+\'/" bin/singlecode \ 11149:2017-08-08 <fizzïe> ` sed -i -e \'1i\\#!/bin/bash\' bin/singlecode \ 11148:2017-08-08 <fizzïe> ` sed -i -e \'s/multicode/singl
01:44:56 <shachaf> `2 doag | grep 'sed -i[^ ]'
01:45:00 <HackEso> 2/6:d aeoiu/\' bin/wlcm; cat bin/wlcm \ 5183:2014-12-09 <FireFl̈y> ` sed -ir \'s/.$/g&/\' bin/wlcm; cat bin/wlcm \ 2257:2013-02-26 <Jafët> sed -i... -e \'s/grep/timeout 25 grep/\' bin/pastelog \ 2196:2013-02-21 <Sgëo> sed -ie "s/ shachaf//" bin/list \ 2157:2013-02-17 <Phantom_Hoovër> sed -ie "s/ shachaf//" bin/list \ 1891:2013-01-27 <Jafët> sed -ie \'s,UTF-32,UTF-16LE,\' bin/\\? \ 1890:2013-01-27 <Jafët> sed -ie \'s,UTF-16,UTF-32,\' bin/\\? \ 18
01:46:00 <fizzie> I didn't find any others with for f in bin/*e; do if [ -e "${f%e}" ]; then echo $f; fi; done if that was even right.
01:47:20 <fizzie> (I think it should've been.)
01:48:19 <shachaf> There's a lot of sed -ie in the lgs, I wonder why none of those files were created.
01:48:28 <HackEso> 2260:2013-02-26 <Jafët> rm bin/pastelog... \ 2257:2013-02-26 <Jafët> sed -i... -e \'s/grep/timeout 25 grep/\' bin/pastelog
01:49:29 <HackEso> 1906:2013-01-30 <oerjän> hg diff -r1891:1871 | patch -p1 \ 1890:2013-01-27 <Jafët> sed -ie \'s,UTF-16,UTF-32,\' bin/\\? \ 1889:2013-01-27 <Jafët> sed -ie \'s, | cat$,;,\' bin/\\? \ 1888:2013-01-27 <Jafët> sed -ie \'s,urandom,urandom | cat,\' bin/\\? \ 1887:2013-01-27 <Jafët> sed -ie \'2 s,$, | tr A-Z a-z | sed "s/ *$//"),\' bin/\\? \ 1886:2013-01-27 <Jafët> revert \ 1885:2013-01-27 <Jafët> revert \ 1884:2013-01-27 <Jafët> revert \ 1883:2013
01:49:49 <HackEso> cat: 'bin/?e': No such file or directory
01:51:02 <oerjan> `3 doag | grep 'sed -i[^ ]'
01:51:10 <HackEso> 1/18:10398:2017-03-11 <hppavilion̈1> ` sed -ie "s,\\\\n,\\n," bin/lowercase2 \ 6500:2016-01-03 <Melvär> ` sed -ie \'s/inp[)]$/unicode(inp, locale.getpreferredencoding())).encode(locale.getpreferredencoding())/\' -e \'2s/$/, locale/\' bin/loudly; \ 6484:2016-01-03 <oerjän> ` sed -ie \'s/inp[)]$/unicode(inp, locale.nl_langinfo(locale.CODESET))).encode(locale.nl_langinfo(locale.CODESET))/\' bin/loudly \ 5184:2014-12-09 <FireFl̈y> ` sed -ir \'s/sed.*/tr
01:51:13 <HackEso> eval "$(shuf -n 1 <<'END' \ \` "$@" |& sport 3 \ cmd="${1-quote}"; \`^ 3 "$cmd" \ END \ )"
01:52:15 <HackEso> 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
01:54:16 <HackEso> cat: 'bin/^': No such file or directory
01:54:27 <oerjan> huh i thought that existed
01:54:39 <HackEso> [[ $# == 2 ]] || { echo "Usage: $0 n cmd" >&2; exit 2; }; for ((i=0; i < $1; i++)); do \` "$2"; done | sport
01:56:31 <oerjan> `` doag | grep 'sed -i[^ ]' |& sport 3
01:56:34 <HackEso> 3/6:89:2013-01-27 <Jafët> sed -ie \'s, | cat$,;,\' bin/\\? \ 1888:2013-01-27 <Jafët> sed -ie \'s,urandom,urandom | cat,\' bin/\\? \ 1887:2013-01-27 <Jafët> sed -ie \'2 s,$, | tr A-Z a-z | sed "s/ *$//"),\' bin/\\? \ 1882:2013-01-27 <Jafët> sed -ie \'s, | tr.*,,\' bin/\\? \ 1881:2013-01-27 <Jafët> sed -ie \'s,tr -d .*,iconv -f UTF-16 -t UTF-8 -c /dev/urandom | tr -d "\\\\r",\' bin/\\? \ 1878:2013-01-27 <Jafët> sed -ie \'s,-c;,-c | head -c 1000;,
01:58:04 <oerjan> `` doag | grep 'sed -i[^ ]' |& sport 4
01:58:08 <HackEso> 4/6:\' bin/\\? \ 1877:2013-01-27 <Jafët> sed -ie \'s,-f UTF-8,-f UTF-16,\' bin/\\? \ 1876:2013-01-27 <Jafët> sed -ie \'s,/dev/urandom,/dev/urandom | iconv -f UTF-8 -t UTF-8 -c,\' bin/\\? \ 1875:2013-01-27 <Jafët> sed -ie \'s,\\[:print:\\],[:print:]\\\\r,\' bin/\\? \ 1874:2013-01-27 <Jafët> sed -ie \'s,cat /dev/urandom,tr -d "[:print:]" </dev/urandom,\' bin/\\? \ 1873:2013-01-27 <Jafët> sed -ie \'3 s,.*,if ! expr "$id" ">=" 0 "\\&" "$id" "<" $(wc
01:58:32 <oerjan> `` doag | grep 'sed -i[^ ]' |& sport 5
01:58:35 <HackEso> 5/6:-l <quotes) >/dev/null; then id=$(expr $RANDOM % $(wc -l <quotes); fi,\' bin/delquote \ 1866:2013-01-27 <monq̈y> sed -ie \'s/ monqy//\' bin/list \ 1865:2013-01-27 <Jafët> sed -ie \'s/$/ monqy/\' bin/list \ 1850:2013-01-26 <Jafët> sed -ie \'s/$/ Sgeo drives the bus./\' wisdom/narutoverse \ 1592:2013-01-22 <ellioẗt> sed -is \'s/grep/grep -P -i/\' bin/seen \ 1250:2013-01-04 <fizzïe> sed -ie \'s#-ne .print uc($_).#-pe \'\\\'\'$_ = uc\'\\\'\'#\' b
01:59:03 <HackEso> 1906:2013-01-30 <oerjän> hg diff -r1891:1871 | patch -p1 \ 1873:2013-01-27 <Jafët> sed -ie \'3 s,.*,if ! expr "$id" ">=" 0 "\\&" "$id" "<" $(wc -l <quotes) >/dev/null; then id=$(expr $RANDOM % $(wc -l <quotes); fi,\' bin/delquote \ 752:2012-10-04 <fizzïe> run sed -ie 's/echo "\*poof\*/printf "*poof*%s" "/' bin/delquote \ 0:2012-02-16 Initïal import.
01:59:40 <HackEso> 4210:2013-12-19 <oerjän> rm wisdom/narutoversee \ 1850:2013-01-26 <Jafët> sed -ie \'s/$/ Sgeo drives the bus./\' wisdom/narutoverse
02:00:06 <HackEso> 1592:2013-01-22 <ellioẗt> sed -is \'s/grep/grep -P -i/\' bin/seen
02:00:31 <shachaf> `` doag | grep '<oerjän> rm.*e$'
02:00:34 <HackEso> 11728:2019-02-11 <oerjän> rm bin/lowercase2e \ 10360:2017-03-07 <oerjän> rm lele lele \ 10295:2017-02-16 <oerjän> rm bin/disce \ 10294:2017-02-16 <oerjän> rm bin/loudlye \ 9083:2016-09-26 <oerjän> rm candide \ 8625:2016-06-27 <oerjän> rm quine \ 8540:2016-06-20 <oerjän> rm bin/e \ 8019:2016-05-11 <oerjän> rm wisdom/raspberrie \ 6001:2015-09-16 <oerjän> rm wisdom/toe \ 5813:2015-07-09 <oerjän> rm wisdom/he \ 5753:2015-06-25 <oerjän> rm
02:01:44 <oerjan> `` doag | grep 'sed -i[^ ]' |& sport 6
02:01:47 <HackEso> 6/6:in/WELCOME \ 1212:2012-12-28 <fizzïe> sed -ie \'889 s/hard drive/hard drive /\' quotes \ 783:2012-10-06 <fizzïe> run sed -ie 's/echo/echo -e/' bin/runc \ 752:2012-10-04 <fizzïe> run sed -ie 's/echo "\*poof\*/printf "*poof*%s" "/' bin/delquote \ 744:2012-10-04 <fizzïe> run cp bin/addquote bin/addquote_; sed -ie 's/echo/printf "%d) %s"/;s/") / "/' bin/addquote; cat bin/addquote
02:02:16 <HackEso> 1282:2013-01-07 <oerjän> rm bin/WELCOMEe \ 1250:2013-01-04 <fizzïe> sed -ie \'s#-ne .print uc($_).#-pe \'\\\'\'$_ = uc\'\\\'\'#\' bin/WELCOME
02:02:37 <fizzie> I did that quite a lot.
02:03:18 <shachaf> fortunately we invented sled
02:03:28 <shachaf> (Unfortunately sled still doesn't have a preview option. :-( )
02:04:21 <oerjan> `` dobg runce; dobg delquotee; dobg addquotee
02:04:24 <HackEso> 2111:2013-02-13 <oerjän> rm bin/runce \ 783:2012-10-06 <fizzïe> run sed -ie 's/echo/echo -e/' bin/runc \ 1906:2013-01-30 <oerjän> hg diff -r1891:1871 | patch -p1 \ 1873:2013-01-27 <Jafët> sed -ie \'3 s,.*,if ! expr "$id" ">=" 0 "\\&" "$id" "<" $(wc -l <quotes) >/dev/null; then id=$(expr $RANDOM % $(wc -l <quotes); fi,\' bin/delquote \ 992:2012-12-09 <ellioẗt> rm bin/delquotee \ 752:2012-10-04 <fizzïe> run sed -ie 's/echo "\*poof\*/printf "*poof
02:05:15 <HackEso> 993:2012-12-09 <ellioẗt> rm bin/addquotee \ 744:2012-10-04 <fizzïe> run cp bin/addquote bin/addquote_; sed -ie 's/echo/printf "%d) %s"/;s/") / "/' bin/addquote; cat bin/addquote
02:05:37 <oerjan> `` doag | grep 'sed -i[^ ]' |& sport 7
02:06:12 <oerjan> i guess we got most of the *e ones before
02:35:25 -!- tromp has joined.
02:39:27 -!- tromp has quit (Ping timeout: 240 seconds).
02:40:51 -!- FreeFull has quit.
02:53:33 <zzo38> Is there any operetta house near Mornington Crescent? In the XYZABCDE.ZZT game there is, but I don't know if actually there is or if only it is the computer game.
03:30:09 -!- tromp has joined.
03:34:18 -!- tromp has quit (Ping timeout: 250 seconds).
04:00:00 -!- Taneb has quit (Quit: I seem to have stopped.).
04:00:49 -!- danieljabailey has joined.
04:01:28 -!- Taneb has joined.
04:23:51 -!- tromp has joined.
04:28:14 -!- tromp has quit (Ping timeout: 246 seconds).
04:46:40 <zzo38> One idea of Magic: the Gathering is an effect that will double all counters on all objects and players (once).
04:50:39 <kmc> are there any interesting esolang applications of M:tG? I mean, I know it's TC
04:50:44 <kmc> but what else can be said / done with it
04:52:22 <shachaf> I'd be interested in an esolang suitable for describing cards in a MtG-style game
04:52:39 <shachaf> It's not obvious at all how to do it well, since the game can be self-modifying in all sorts of subtle ways
04:52:49 <kmc> is Pokémon card game TC?
04:53:19 <kmc> iirc, it is much simpler, but i haven't played these things in almost 20 years
04:53:28 <kmc> . o O ( how did I get so fucking old? )
05:01:37 <zzo38> shachaf: Yes, I wanted such thing too. I did have some ideas about it though
05:02:06 <zzo38> I don't know if Pokemon card is TC, but, probably there is not enough memory; it has limited memory while Magic: the Gathering has unlimited memory.
05:04:56 <kmc> because of unbounded counters?
05:05:34 <kmc> an automaton with 1 unbounded counter (and appropriate operations) is TC, right? because you can Gödel-encode a whole tape
05:05:50 <shachaf> You need two counters, I think.
05:05:57 <shachaf> Well, I guess it depends on your operations.
05:06:12 <shachaf> If it's incremenet/decrement/etc. you need a scratch counter.
05:06:17 <kmc> I guess with two counters you can do basically the two-stack-machine thing
05:07:14 <shachaf> You can encode a stack with two counters, and four counters with two counters
05:07:24 <shachaf> https://en.wikipedia.org/wiki/Counter_machine#Two-counter_machines_are_Turing_equivalent_(with_a_caveat)
05:18:02 -!- tromp has joined.
05:22:07 -!- tromp has quit (Ping timeout: 240 seconds).
05:45:21 -!- oerjan has quit (Quit: Nite).
06:01:28 -!- MDude has quit (Ping timeout: 272 seconds).
06:25:03 <imode> what would you need to add to the mcculloch and pitts model of neurons to make it turing complete? an infinite supply of neurons?
06:37:26 <zzo38> I don't know what is mcculloch and pitts model, therefore I don't know
07:05:41 -!- tromp has joined.
07:10:03 -!- tromp has quit (Ping timeout: 245 seconds).
07:16:57 <zzo38> I thought of making the program for cards of Magic: the Gathering using either Lisp-based or RDF-based; an example in the RDF-based format (I mentioned before) is [:counter [:target :spell]] for "counter target spell".
07:21:16 <zzo38> I am not sure about some other kind of effects, but one possibility might be [:edit [:target [:or :spell, :permanent]]; :match [:choice :color]; :replace [:choice :color]] or something like that, for Sleight of Mind
08:01:23 -!- tromp has joined.
08:06:08 -!- tromp has quit (Ping timeout: 268 seconds).
08:21:33 -!- imode has quit (Ping timeout: 268 seconds).
08:35:51 -!- tromp has joined.
08:36:53 -!- tromp has quit (Read error: Connection reset by peer).
08:37:18 -!- tromp has joined.
08:39:03 -!- tromp has quit (Read error: Connection reset by peer).
08:39:38 -!- tromp has joined.
09:23:19 -!- b_jonas has joined.
09:23:49 <b_jonas> shachaf: number of bytes instead of the number of bits for numeric types => I don't know, but I did that once in the names of library types in a small C++ library I wrote
09:26:14 <b_jonas> I think either the number of bytes or the number of bits is better than some kind of word sequence like "char, short, long, uh... long long?" or "byte, short, int, long" or "byte, word, doubleword, quadword" or "byte, halfword, word, doubleword". even "byte, wyde, tetra, octa" gets stuck once you want to name larger sizes.
09:27:07 <b_jonas> the x86 architecture has instructions with "quadruple quadword" in their name
09:29:38 -!- tromp has quit (Remote host closed the connection).
09:29:53 <b_jonas> especially because the letters can collide: "S" in the mnemonic is used for "signed", "single", "scalar" and "string"
09:30:26 <b_jonas> "D" is always "double", but it can be the "double" of a doubleword (4 bytes), a double quadword (16 bytes), or a double-precision float (8 bytes)
09:31:00 <shachaf> Isn't it up to octuple quadword with AVX-512?
09:31:33 <shachaf> The Intel convention of calling 16 bit values "words" is very annoying.
09:33:18 <b_jonas> shachaf: yes, but they gave up trying to give new names, and the only way such large data are manipulated is when you move a whole register worth of data, so the MOVDQA instruction can move not only 16 byte XMM registers, but also full 32 byte or 64 byte registers
09:33:25 <b_jonas> DQ stands for double quadword
09:33:54 <b_jonas> and the instruction name in the manual is "Move aligned packed integer values", which doesn't even mention "double quadwords" anymore
09:33:59 <b_jonas> they realized it's getting ridiculous
09:36:22 <b_jonas> well that, plus there's an unaligned version MOVDQUA and the strange SSE4_1 legacy instruction MOVNTDQA, and those can move 32 and 64 byte too now and in the future respectively
09:40:37 <b_jonas> oh, and the MOVNTDQ instruction too
09:43:28 <b_jonas> "I'd be interested in an esolang suitable for describing cards in a MtG-style game" => zzo38 wants a non-eso lang for that, since using it to model M:tG would be a useful thing and thus make the language non-eso
09:44:10 -!- tromp has joined.
09:44:26 <b_jonas> zzo38: as for doubling counters, you know there's a card in Ravnica Allg that doubles counters on one object, right?
09:45:23 <b_jonas> zzo38: https://scryfall.com/card/rna/123/biogenic-upgrade
09:45:40 <b_jonas> it's not really useful for programming though
09:52:03 -!- AnotherTest has joined.
09:57:34 <b_jonas> `bobadventureslist http://bobadventures.comicgenesis.com/d/20190210.html
09:57:35 <HackEso> bobadventureslist http://bobadventures.comicgenesis.com/d/20190210.html: b_jonas
09:57:57 <Taneb> Is is possible to have a sequence of consecutive semiprimes of arbitrary length
09:58:15 <Taneb> (like the sequence 21=3*7, 22=2*11 is a sequence of consecutive semiprimes of length 2)
09:59:49 <b_jonas> Taneb: you can't have one longer than 5
10:01:12 <Taneb> b_jonas: can you explain why not?
10:01:50 <b_jonas> Taneb: try to figure it out yourself first
10:03:22 <Taneb> The only way a multiple of 6 can be semiprime is if it's 6
10:03:29 <Taneb> And there's a multiple of 6 every six numbers
10:06:03 <Taneb> I think the longest you can do is of length 3, because that argument works for 4 as well
10:06:22 <Taneb> And I found one of length 3, 33=3*11, 34=2*17, 35=5*7
10:19:49 <b_jonas> Taneb: you can say something stronger than that
10:19:57 <b_jonas> which multiples of 4 are semiprimes?
10:20:20 <b_jonas> sorry, didn't read all the way down
10:22:29 -!- b_jonas has quit (Quit: leaving).
11:08:58 -!- arseniiv has joined.
11:46:27 -!- AnotherTest has quit (Ping timeout: 240 seconds).
11:55:12 <myname> i am so fascinated by the fact that we know there are infinitely many prime paires with a distance of k, but we don't know k yet
11:55:20 <myname> i cannot grasp how to prove that
11:55:53 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
11:55:58 <Taneb> myname: honestly a lot of what we know about prime distribution just seems magic to me
11:56:16 <Taneb> I should read "Introduction to the theory of numbers" in a little more depth
11:56:36 -!- Lord_of_Life has joined.
12:12:27 -!- wob_jonas has joined.
12:12:51 <wob_jonas> zzo38: for the question about Mornington Crescent, see under https://commons.wikimedia.org/wiki/Category:Opera_houses_in_the_United_Kingdom and https://en.wikipedia.org/wiki/Category:Opera_houses_in_England .
12:17:06 <wob_jonas> zzo38: or do a category-intersection to find all opera houses in London with https://petscan.wmflabs.org/?language=en&project=wikipedia&depth=6&categories=Opera%20houses%20in%20England%0D%0ATheatres%20in%20London&ns%5B0%5D=1&ns%5B14%5D=1&search_max_results=500&interface_language=en&active_tab=&doit=
12:18:04 <wob_jonas> then you'll probably need to check the location, whether it still exists, and whether it counts as an operetta house
12:18:55 -!- AnotherTest has joined.
13:51:54 -!- tromp has quit (Remote host closed the connection).
13:59:45 -!- monkeystance has joined.
14:00:56 -!- tromp has joined.
14:02:10 -!- izabera has changed nick to self.
14:02:16 -!- self has changed nick to izabera.
14:03:15 -!- monkeystance has left ("Leaving").
14:35:29 -!- MDude has joined.
15:35:48 -!- xkapastel has joined.
15:44:59 <HackEso> olist 1155: shachaf oerjan Sgeo FireFly boily nortti b_jonas
15:59:53 -!- kritixilithos has joined.
16:31:42 -!- AnotherTest has quit (Ping timeout: 250 seconds).
16:58:18 -!- AnotherTest has joined.
17:11:59 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
17:27:24 <esowiki> [[ElemScript]] https://esolangs.org/w/index.php?diff=59801&oldid=59718 * Areallycoolusername * (+1084)
17:28:31 -!- imode has joined.
17:28:49 <esowiki> [[ElemScript]] https://esolangs.org/w/index.php?diff=59802&oldid=59801 * Areallycoolusername * (+42) /* Hello World Program */
17:36:43 -!- kritixilithos has quit (Quit: :q).
17:42:12 -!- Essadon has joined.
17:51:20 <esowiki> [[ElemScript]] https://esolangs.org/w/index.php?diff=59803&oldid=59802 * Areallycoolusername * (-42) /* Hello World Program */
17:57:14 <esowiki> [[ElemScript]] https://esolangs.org/w/index.php?diff=59804&oldid=59803 * Areallycoolusername * (+555) /* Implementations */
18:04:06 -!- AnotherTest has quit (Ping timeout: 252 seconds).
18:08:46 <esowiki> [[ElemScript]] https://esolangs.org/w/index.php?diff=59805&oldid=59804 * Areallycoolusername * (+26)
18:56:24 -!- b_jonas has joined.
19:21:08 -!- MDude has quit (Ping timeout: 250 seconds).
19:25:05 -!- MDude has joined.
19:45:31 -!- xkapastel has quit (Quit: Connection closed for inactivity).
19:49:47 <zzo38> wob_jonas: Well, anyways the operetta house in XYZABCDE.ZZT game is just called "Operetta House of ZZT", so it isn't an actual operetta house anyways.
19:53:45 -!- xkapastel has joined.
19:59:10 <orin> what's the fastest possible invertible float -> string function
19:59:55 <orin> (where "string" is a asciz char array)
20:00:47 <imode> probably something that offers some kind of lookup table.
20:01:11 <orin> hmm, maybe equivalent to "fastest function from an array of bytes that may be zero to a larger array of bytes that are NOT zero"
20:02:08 <kmc> basically an escaping question
20:02:14 <fizzie> If zeros are rare, escaping them (and the escape character) isn't half bad, though variable-length.
20:03:10 <orin> also I don't care how slow reading this back is, just how fast I can dump this to stdout
20:03:59 <orin> the main thing is avoiding zero, so that I can use zero to separate things
20:04:37 <orin> or escaping zero I guess
20:05:11 <kmc> yeah, find the least common byte, make it an escape character
20:05:12 <fizzie> Well, you don't need to have a zero in the escape sequence of zero.
20:06:09 <int-e> can't we do some nice prefix coding instead of zero termination?
20:06:21 <orin> int-e: prefix like what
20:06:29 <orin> oh including the length?
20:06:37 <int-e> well... length byte. data. or type tag. data.
20:06:42 <orin> riight htat makes more sense
20:07:03 <fizzie> I assumed from the question the context didn't allow for that.
20:07:36 <orin> fizzie: well I assumed it was probably slower to dump the length for some reason
20:07:40 <int-e> fizzie: well yes, but then orin wrote about dumping to stdout and not caring how long it takes to decode... which suggests a larger degree of freedom
20:08:25 <orin> it's a debug output where it will be mixed with other output
20:09:34 <kmc> i think adding the length should not take long at all
20:09:34 <orin> I realized it might be faster to do printf("here is the output Oren cares about %d\n",len); then write() ;
20:09:37 <kmc> for floats
20:09:58 <kmc> orin: doubtful, the itoa algorithm will take some time
20:10:10 <kmc> (however, it may beat write() for the unrelated reason of stdio buffering)
20:10:34 <kmc> I think tag/len/body is the way to go
20:10:43 <kmc> you can also nest them to log tree-shaped datastructures
20:12:32 <kmc> I once wrote a library (I'm sure not the first implementation of this idea) where you could do printf-like logging calls, but it would actually just write the arguments in raw form, along with the address of the format string
20:12:58 <orin> hmmm... ctully I think it has to be exactly one call to wrtie(), because otherwise ouput from other threads will mix in
20:13:25 <kmc> and a log viewer which would read the log and the executable used to generate it, and perform the formatting
20:13:35 <kmc> under the assumption that only string literals are used as format strings
20:13:57 <int-e> kmc: hmm what about ASLR?
20:14:09 <kmc> I was just wondering about that :)
20:14:17 <int-e> (probably a solvable problem, but did you deal with it?)
20:14:22 <kmc> this was a long time ago, we were on RHEL 4, I don't think there was any ASLR
20:14:27 <fizzie> There are relatively many zeros in popular floats (like 1.0), so if you did want an escape-based solution, it may be best to pick *two* least common bytes (say a, b), and use the mapping {0 -> a, a -> ba, b -> bb, any other x -> x}.
20:14:45 <int-e> I mean if all else fails you can start your log file by putting in a copy /proc/self/maps
20:14:46 <kmc> but what I would probably do is just dump the base address of the .data section
20:15:14 <int-e> (Assuming Linux, kind of. But other OSs should provide similar facilities.)
20:15:34 <kmc> extern unsigned char data_section[] __attribute__((section(".data")));
20:15:36 <orin> hmmm does anyone know if write() is atomic
20:16:08 <kmc> I believe that would create a load time relocation
20:16:27 <kmc> then you could dump &data_section
20:16:31 <orin> or am I just fkd if I want to output anything into a stdout that is shared with other threads all spewing garbage
20:16:36 <kmc> also I think there are automatically generated symbols for section begin/end
20:16:46 <kmc> orin: I believe cstdio has locking by default
20:16:50 <kmc> so fwrite() would be atomic
20:16:56 <kmc> but I don't recall for sure so look it up
20:17:34 <kmc> that may be implementation defined
20:17:42 <kmc> seems likely, as the C spec doesn't even have threads (until C11)
20:17:57 <fizzie> On POSIX for write I think that depends on what you're writing to. For example for a pipe "Write requests of {PIPE_BUF} bytes or less shall not be interleaved with data from other processes doing writes on the same pipe".
20:18:06 <kmc> "POSIX requires stdio to be thread-safe, which is quite unfortunate since it kills performance and since there's no practical way to operate on the same FILE from multiple threads (data will come out hopelessly interleaved; atomicity is only at the character level)."
20:18:20 <kmc> of course you can also implement your own locking.
20:18:47 <kmc> or send the messages to a single logger thread somehow
20:18:57 <kmc> (one way would be datagram sockets)
20:20:08 <orin> ok I guess I'll just open a new file from MY thread
20:20:23 <j4cbo> <3 __attribute__((section()))
20:20:26 <int-e> I would expect fwrite() to be better overall, unless there are many threads; in the latter case I would think of splitting the log files into one per thread.
20:21:03 <shachaf> Did you see https://github.com/mortehu/xflags ?
20:21:05 <orin> well there's a lot of threads writing things, but only one of them writing something I care about
20:21:10 * kmc is not really sure that her particular section() trick works
20:21:54 <int-e> for constant strings it should be .rodata I suppose
20:22:01 <shachaf> It's a fancy command line flag library that puts the metadata in a section rather than using a bunch of C++ constructors like gflags.
20:23:41 * orin . o O (a library to generate images of flags)
20:24:00 <kmc> int-e: ah yeah
20:24:13 <kmc> also you'd be boned if you're using -fdata-sections
20:24:23 <kmc> it's been a long time since i really thought about these things :/
20:24:27 <orin> I saw "xflags" and assumed it was like part of X11
20:24:34 <fizzie> You can use a linker script to export a start-of-section symbol, and I think something like that might exist by default, but I don't think you can do it with just an extern declaration.
20:24:36 <orin> liek xtank and studd
20:24:52 * kmc needs to figure out something to do with her life
20:25:04 <kmc> orin: I assumed for a long time that pdftk was a gui program using the Tk toolkit
20:25:59 <int-e> But for the purpose at hand, *any* know .rodata symbol should suffice; it doesn't have to be at the start of the section.
20:27:01 <kmc> int-e: true
20:27:46 <orin> $ xflags --blazon "Azure, three fleurs-de-lis Or"
20:28:06 <lambdabot> LOWI 112020Z 06007KT 030V100 9999 -SHSN FEW015 SCT030 BKN050 01/M01 Q1024 R08/29//95 NOSIG
20:30:31 <shachaf> Is ASLR worth the trouble?
20:31:32 <kmc> in what sense?
20:31:44 <shachaf> isn't it not even that effective
20:31:48 <lambdabot> CYYZ 112000Z 09015KT 15SM SCT024 BKN260 M04/M09 A3033 RMK SC4CI2 SLP281
20:32:19 <imode> imagine you had to find a needle in a haystack. if the location of the needle was only in a small set of locations, you can find it very easily no matter the haystack you're searching in.
20:32:33 <imode> similarly, if the haystack is small, you can just sift through it in a very small amount of time.
20:32:39 <shachaf> Is this an analogy to finding an address in an address space?
20:32:55 <shachaf> i feel like maybe you can just say "address" and "address space"
20:33:05 <imode> people seem to do well with physical analogies.
20:33:28 <shachaf> but i already know what aslr is
20:33:32 <kmc> shachaf: well, there are ways around it, but they impose other difficulties on attackers
20:33:37 <shachaf> american sign language recognition
20:33:44 <shachaf> way tougher than speech recognition imo
20:33:49 <kmc> i don't have a good knowledge of the current landscape on ASLR and ASLR bypass
20:34:03 <kmc> also, windows ASLR is not as good
20:34:09 <kmc> or that may have been fixed, but it was true for a long time
20:34:12 <imode> if your address space is able to be entirely traversed in a very small amount of time, ASLR won't fix it.
20:34:21 <kmc> b/c each DLL gets loaded, when possible, at the same address in every process
20:34:23 <int-e> In my limited understanding, with ASLR, you can't do ROP blindly; you need some information leakage to figure out which addresses to jump to first.
20:34:34 <kmc> int-e: yeah
20:34:36 <kmc> or blind guessing
20:34:38 <int-e> So exploits get quite a bit harder.
20:34:46 <kmc> but 64 bits gives enough randomization to make blind guessing pretty hard
20:34:59 <imode> yup, and that's why it's reasonably effective.
20:35:32 <imode> another example is if you're in a tool shop, and you wanna build something, but you're blindfolded and don't know where all the tools are, the shop has to be really small for you to do it in a suitable amount of time, or reasonably well-organized.
20:35:43 <kmc> (on 32 bit x86 you have less than 20 bits of randomness)
20:35:44 <shachaf> i feel like that analogy isn't physical enough
20:35:49 <kmc> let's get physical
20:35:51 <shachaf> maybe give me something in terms of electrons and photons
20:36:12 <imode> the wavefunction of the addresses you want never collapses.
20:36:33 <int-e> shachaf: https://www.technologyreview.com/s/612887/how-quantum-terrorists-could-bring-down-the-future-internet/
20:36:53 <int-e> (This has been bugging me since yesterday.)
20:37:12 <imode> so there's a finite amount of terrorists, or the terrorists are in a finite amount of states?
20:37:15 <shachaf> int-e: I know you have colors turned off, so I feel obligated to inform you that the above is in rainbow color.
20:37:37 <int-e> shachaf: much obliged. but please don't do it again.
20:37:42 <imode> or do the terrorists have a number of quantized energy levels.
20:38:02 <imode> "terrorizing", "kinda tired", "super tired", "sleeping"
20:38:10 <shachaf> int-e: Also that page blocks incognito mode so I'm not going to read it.
20:38:15 <shachaf> But I can appreciate the title.
20:38:44 <int-e> The thing that has been bugging me most is actually that people are considering to build a quantum internet. Or at least applying for and receiving research grants on that topic.
20:39:12 <int-e> shachaf: huh, but it works without javascript?!
20:39:24 <shachaf> Yes, apparently it has JavaScript that detects incognito mode and hides the content.
20:39:29 <imode> academia can get funding for anything that has buzzwords in it.
20:39:45 <imode> that is both a blessing and a curse depending on the intent of people using that funding.
20:39:48 <int-e> shachaf: so switch off javascript as well :P
20:39:59 <int-e> (what's the poing of incognito mode if you leave javascript enabled?)
20:40:12 <imode> cool black borders.
20:40:54 <int-e> Hmm, which browser is this anyway. I have "private browsing".
20:41:13 <int-e> shachaf: you could also go to https://arxiv.org/abs/1901.08873
20:41:40 <int-e> (but I didn't, so I don't know how accessible that paper is)
20:41:55 <shachaf> \rainbow{Quantum Terrorism}: Collective Vulnerability of Global Quantum Systems
20:41:57 <kmc> int-e: the point is everything is logged out, random sites can't access your facebook account
20:41:57 <imode> of course it's on arxiv.
20:42:05 <kmc> also you can see non-customized results for things
20:42:22 <shachaf> The major imminent investments in quantum technologies will bring concepts like a \rainbow{global quantum Internet} and \rainbow{quantum Internet-of-Things}, closer to reality.
20:42:49 <int-e> kmc: But I know what you're saying.
20:42:51 <imode> quantum internet of things. jesus christ.
20:43:06 <imode> what does that even mean.
20:43:12 <kmc> soon your toaster will contain a helium dilution fridge with superconducting chips inside
20:43:17 <kmc> so that you can quantumly monitor your toastt
20:43:24 <orin> function nnfi { nano ` find . -name "$1" ` }
20:43:25 <imode> I mean at least it doubles as a fridge.
20:43:43 <int-e> shachaf: It means that there's smoke from burning VC money.
20:43:47 <orin> screw remembering where any of these source files are
20:44:01 <kmc> shachaf: let's put a billboard on 101 that says "FINALLY, the quantum AI cloud for IoT blockchain"
20:44:02 <imode> tagged file system!
20:44:58 <int-e> @google "finally tagless filesystem"
20:45:06 -!- atrapado has joined.
20:45:11 <int-e> @google "finally tagless file system"
20:45:15 <shachaf> kmc: How much do 101 billboards cost?
20:45:52 <kmc> i got bored after about 30 seconds trying to figure that out just now
20:46:07 <shachaf> https://www.quora.com/How-much-does-a-billboard-cost-on-101-in-San-Francisco
20:46:10 <shachaf> "Creating a Mobile Application where Billboard Customer and Advertisers can work on booking billboard spaces Will be Approx 12000 - 15,000 USD."
20:46:16 -!- atrapado has quit (Client Quit).
20:46:26 <shachaf> can this person pay me Approx 12000 - 15,000 USD for wasting my time so hard with that answer
20:47:09 <kmc> it is a shitty answer to the wrong question
20:47:44 <int-e> "Demand for a billboard along Highway 101 between San Francisco and San Jose, which billboard sellers refer to as the “gold coast,” is so high that some companies are on a six-month waiting list."
20:47:46 <shachaf> the top answer there says you can get something for $500
20:48:04 <kmc> this is just one of many reasons why 280 is better than 101
20:48:09 <kmc> no startup billboards
20:48:16 <int-e> shachaf: maybe it was stuck behind the pillar of a bridge :P
20:48:30 <imode> are turing machines mealy machines? I think turing machines are mealy machines.
20:48:31 <shachaf> int-e: I don't get why there's a waiting list instead of an auction.
20:49:08 <int-e> https://www.sfgate.com/business/article/Billboard-ads-booming-in-Silicon-Valley-5921690.php is what I'm looking at and it quotes a range of $14,000 to $40,000 a month.
20:49:53 <shachaf> imo let's just get a billboard in iowa
20:50:55 <int-e> imode: in the sense that the symbol written may depend on the current tape symbol... yes.
20:51:16 <kmc> the quantum ai cloud for IoT corn
20:51:26 <orin> just hire a graffiti guy on silkroad to spray paint your startup name over teh bilboards
20:51:38 -!- FreeFull has joined.
20:51:44 <imode> int-e: right but your machine reacts immediately instead of reacting based on the state that's entered.
20:52:01 <shachaf> can i get my billboard allocation on the \rainbow{blockchain} twh
20:52:10 <int-e> Why do we care about Mealy and Moore machines? I do recall having to learn this for a computer architecture course but I never saw a motivation (and I can no longer remember which one is which)
20:53:17 <imode> int-e: it's mainly "how can input affect output". moore machines are typically more stable because their response is based on the current state rather than the current transition, so small "glitches" in input don't accidentally trigger outputs.
20:53:45 <imode> but it seems like all automata are mealy machines, not moore ones.
20:55:39 <shachaf> What a great prank this channel is.
20:55:55 <shachaf> We've got people typing strings like "`grWp" non-ironically.
20:56:20 <int-e> Well, it's UsEfUl.
20:56:46 <shachaf> it's like unix but even more ridiculous
20:57:16 -!- AnotherTest has joined.
20:57:20 <int-e> (I'm using the word "useful" in a very limited sense here, obviously; the usefulness does not extend beyond #esoteric.)
20:57:34 <HackEso> #esoteric is the only channel that exists. After monqy left it became slightly off-centër. It's a 7-codimensional hyperenchilada about 30 m (100 ft) across. oerjan seems to be making a lawn in the northern part, but it keeps getting dug up by free ranging moons. Currently located in the Atlantis Exclusion Zone.
20:58:09 <int-e> Hmm, is the AEZ below water?
20:58:51 <shachaf> kmc: do you understand windows SEH twh
20:59:00 <shachaf> imo why are windows things so complicated
20:59:08 <kmc> why are posix things so complicated
20:59:21 <kmc> posix is a shit-show
20:59:45 <shachaf> but win32 is quite a mess itself
21:01:09 <kmc> I feel sorry for the MSFT engineers who had to reimplement all the wacky linux syscalls and flags etc
21:01:16 <kmc> they seem to have done a really good job
21:01:52 <kmc> the only thing i tried in WSL that broke was gnu screen
21:01:58 <kmc> and i'm going to blame screen for that by default
21:02:09 <int-e> heh does wine work in WSL? :P
21:02:19 <kmc> because it is an enormous pile of cruft that is probably doing all kinds of terrible things
21:02:28 <kmc> and POSIX terminal stuff is crazy
21:03:03 <kmc> int-e: you'd need to add an X server as that's not part of WSL
21:03:20 <shachaf> The Linux system call ABI is much more reasonable than all of POSIX.
21:03:46 <kmc> I wonder how many ioctls they implemented
21:03:53 <kmc> you need some for terminal stuff at least
21:04:18 <kmc> ioctls are bad
21:04:18 <int-e> Something with HP Lovecraft, maybe?
21:05:23 <int-e> "I wish I had a system call for... but I'd have to design a proper API and convince 10 million people... let's put in an ioctl instead."
21:06:28 <shachaf> The Windows approach of having regular functions for syscall services seems p. reasonable.
21:06:37 <shachaf> Except they do all sorts of odd things.
21:06:45 <kmc> what do you mean?
21:07:26 <shachaf> The way you make a window in Win32 is you pass it a window callback and it can call it whenever it feels like.
21:07:47 <shachaf> Even though you also need to get window events, it can call it outside your event loop.
21:10:01 <shachaf> At least a syscall ABI would probably not do things like that.
21:10:07 <shachaf> Except for signals, I guess, so who knows.
21:12:31 <kmc> posix signals are bad too
21:12:33 <kmc> everything is bad
21:12:46 <kmc> everything should be a fd
21:13:21 <int-e> windows is full of handles IIRC
21:13:40 <kmc> shachaf: should i learn winapi sometime
21:13:51 <b_jonas> signals are a mixed bag. some things really need to be so async that they should be handled by signals, so then you use signals. for some things like SIGPIPE the signal is only there for historical compatibility, and you just use the sane interface instead.
21:14:37 <b_jonas> for the rest, when you don't need async but there's no specific non-signal interface, like SIGCLD, you use signalfd on linux, or have the signal wake up your event loop otherwise, for which there are event libraries like schmorp's libev.
21:14:41 <kmc> i'm not convinced signals are the way to go
21:14:48 <kmc> but perhaps it should be an option, yeah
21:14:50 <b_jonas> that's for unix. I don't know about win32 api.
21:14:57 <kmc> i think signalfd is a nicer way to do signals in many cases
21:15:10 <b_jonas> kmc: like I said, sometimes you need them, and sometimes you don't, in any case we can't get rid of signals now
21:16:14 <shachaf> Windows SEH is the analog of signals, I think?
21:16:29 <shachaf> And it does all sorts of complicated things like stack unwinding.
21:16:53 <kmc> stack unwinding is complicated
21:16:59 <zzo38> Sometimes SIGPIPE is useful for terminating the process without having to program it yourself (you can tell it to ignore SIGPIPE if you do not want that; custom signal handlers are probably not so useful for SIGPIPE though), but unfortunately you cannot tell which file descriptors to use SIGPIPE and which don't (except for sockets), which can be a problem if writing a library rather than a standalone program.
21:17:06 <kmc> is the elf stack unwinding bytecode turing complete
21:18:01 <zzo38> (I would think normally you would want SIGPIPE only for file descriptor 1 anyways, but nevertheless it is used for all file descriptors.)
21:19:10 -!- arseniiv has quit (Quit: gone completely :o).
21:19:43 <kmc> shachaf: did you know that openbsd implements pselect() as a userspace wrapper for select()
21:19:48 <kmc> thereby defeating the entire purpose
21:19:57 <kmc> and breaking posix compatibility
21:20:09 <kmc> at least it was so at one point
21:21:34 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp ukparl* youtube
21:21:38 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
21:21:45 <int-e> fungot: why can't we have nice software?
21:21:45 <fungot> int-e: today's revenge of the nerds is called? iirc, you're not using emacs.
21:21:54 <kmc> posix is pretty esoteric
21:21:58 <b_jonas> zzo38: I don't think SIGPIPE is too useful even for fd 1, because the programs that want to terminate on SIGPIPE also want to terminate when they get any unexpected error from write, not just EPIPE.
21:22:03 <int-e> that... worked better than expected
21:22:34 <zzo38> b_jonas: Yes, that is a valid point.
21:23:22 <b_jonas> I think EPIPE comes from the times when memory was so tight that some programs didn't include the error handling code that they should have, just to gain a little space
21:25:32 <shachaf> kmc: imo invent a good system call api instead twh
21:26:10 <kmc> shachaf: well, i've thought about it
21:26:22 <kmc> there are a few things i think would be important
21:27:03 <kmc> #1 is a uniform way to refer to kernel objects
21:27:07 <kmc> like a capability
21:27:30 <kmc> this would prevent many issues in posix such as the race condition on PIDs, which are just integers and not fds
21:27:48 <b_jonas> kmc: don't we already mostly have that, with file descriptor-like objects, fds on unix, and whatever their fancy windows equivalent is called on win32?
21:28:05 <b_jonas> which has some generic way to get sent to a spawned process too
21:28:08 <kmc> b_jonas: that is the kind of thing i mean, but they aren't uniformly used in posix
21:28:14 <shachaf> Except lots of things aren't fds.
21:28:20 <kmc> there are many other ways to refer to kernel objects which have various issues
21:28:35 <b_jonas> possibly even designed better on win32 than on unix, though they have the advantage of less historical baggage
21:28:41 <kmc> such as, you can fork() to create a child process, then the process dies and the PID is reused, now you will be sending signals to some random other process
21:28:45 <orin> what if everything was a 64 bit UUID
21:28:56 <kmc> shachaf: probably not, but it's fun
21:29:02 <b_jonas> kmc: yes, that one is a known problem that's still not solved
21:29:08 <kmc> you can implement a limited form of call/cc with fork
21:29:16 <kmc> i was p. happy with myself when i got that to work
21:29:23 <shachaf> orin: 64 bits is not v. universal hth
21:29:43 <orin> shachaf: fork() and exec() should be combined into a single thing
21:29:43 <zzo38> I thought of something too, there is some similarity like Plan9 that you can use files for most stuff, so maybe if it is call Plan10. You can use file descriptors for many object including processes like you mention (although process IDs exist too, which are used to find a running process in the file system). If your program does not define Plan10Main() then the default implementation sets up POSIX compatibility and then calls main()
21:29:45 <b_jonas> sadly the namespace is even just 15 bits large, so it gets reused very quickly
21:29:58 <zzo38> (The default implementation of Plan10Main() is added by the C compiler)
21:30:02 <kmc> and yeah sending fds or equivalent between processes is important
21:30:18 <kmc> that is one of the good things in posix, even if the API for it is really shitty
21:30:40 <kmc> I think creds could be consumed by that sort of fd-as-capability, but i'm not sure
21:30:48 <b_jonas> kmc: sure, the sending part is fine, and both unix and win32 has that. the hard part is not sending on unix, again because of really old historical reasons
21:30:49 <shachaf> did you know bitcoin does 2^65 hashes per second
21:31:04 <kmc> that's a lot
21:31:42 <orin> shachaf: that's too many, we need to shut down bitcoin
21:31:52 <kmc> shachaf: I also think it's important to have a uniform way for userspace and kernelspace to exchange structured data
21:32:06 <zzo38> I also thought of fork(), I thought that sometimes fork() is helpful although another variant that can often be better, which can be called cfork(), which shares all memory and all registers even including the program counter and stack pointer, and suspends the parent process; once the child terminates or executes another program instead then the parent continues from there; exec() returns 0 if successful in this case.
21:32:27 <shachaf> More than pointers to C structs?
21:32:51 <zzo38> This way, you can program many things before calling the other program.
21:33:00 <shachaf> zzo38: Is that just vfork?
21:33:06 <kmc> which would be a) documented in a machine readable way, with b) autogenerated bindings for popular languages, c) typed, d) fast
21:33:09 <b_jonas> shachaf: no, it's slightly different from vfork
21:33:22 <zzo38> (You don't need vfork() anymore, because cfork() is better)
21:33:24 <b_jonas> I for one don't see the point to introduce that now, since we do have a working vfork
21:33:27 <kmc> shachaf: well, there are some problems with the ways structs are used in posix
21:33:33 <kmc> i find them pretty cumbersome
21:33:39 <kmc> for one, there are so many of them
21:33:47 <zzo38> shachaf: Not quite; it is a bit different.
21:33:52 <orin> I mean, at some point it might be good for OSes to be built on something other than raw binary data
21:33:53 <b_jonas> I mean, if you designed it all over from the scratch it may have been better,
21:33:57 <b_jonas> but I don't see much point
21:34:03 <b_jonas> it's not like it would save much resources
21:34:07 <kmc> I think a typed FS could be very interesting too
21:34:11 <kmc> strongly typed shell pipelines
21:34:35 <orin> kmc: PowerShell does that IIRC
21:34:43 <zzo38> Doesn't PowerShell have typed pipelines?
21:34:51 <kmc> shachaf: as it happens, Cap'n Proto satisfies all of those criteria, plus it has a capability system, plus compatibility between different protocol versions
21:35:44 <kmc> another obvious thing to do with a capabilities based OS is to add some cryptography so that capabilities can be signed and serialized and shipped around the world
21:36:01 <orin> but windows is still built on top of raw CPU stuff rather than on top of the CLI
21:36:38 <shachaf> Cap'n Proto for system calls? I'm a bit skeptical.
21:36:43 <orin> whereas you could have a strongly typed language as the layer below most of the operating system
21:36:48 <kmc> shachaf: well, it's just an aside
21:37:24 <kmc> if you can send capabilites then you can also implement sockets that way
21:37:26 <orin> which would probably cost some speed but increase safety
21:37:34 <kmc> opening a connection is done by sending a capability
21:37:51 <kmc> this will also give you some transport layer security
21:38:04 <shachaf> Sending a capability to whom?
21:38:14 <kmc> anyway. kernel capabilities and structured/typed data.
21:38:17 <b_jonas> kmc: most of those probably needn't involve the kernel, they can be done as a wrapper on user side, with a demon that handles the cryptography stuff
21:38:35 <rain1> I agree about structured data
21:38:38 <kmc> shachaf: sending it to a process on that machine which handles new connections, i guess
21:38:43 <rain1> but im not sure about typed data or caps
21:38:44 <orin> the main problem with that is the vast amount of software already rlying at some point on the unsafety of the computer it runs on
21:39:10 <shachaf> kmc: speaking of all these things, have you seen the mill yet
21:39:28 <shachaf> imo watch the first few videos at 2x speed
21:39:31 <zzo38> I think that vfork() does not share registers and does not guarantee sharing memory or suspending the parent process; my proposal changes those things.
21:40:17 <kmc> shachaf: do you like or dislike the thing where you have c structs which start with a tag and length field
21:40:28 <kmc> and then you can cast between different types
21:40:32 <esowiki> [[User:Cortex]] https://esolangs.org/w/index.php?diff=59806&oldid=59781 * Cortex * (+12)
21:40:33 <b_jonas> zzo38: yes. and I still don't see why what you propose would be so useful it's worth kernel support
21:41:09 <int-e> zzo38: vfork suspends the parent process
21:41:30 <kmc> shachaf: like, you can have different versions of a struct but they all start with the information necessary to determine its type and length
21:41:36 <kmc> idk, seems like it could be good for api compatibility
21:41:45 <shachaf> I've heard of a version with the length.
21:41:47 <kmc> you can add fields w/o breaking anything
21:41:58 <shachaf> Where the same function can accept multiple versions of a struct as long as you increase the length each time.
21:41:58 <b_jonas> int-e: yes, but it doesn't _guarantee_ that, on account that Linus said like twenty-five years ago that if people abuse vfork for things that aren't just an optimization over fork, then he'll change it to act as fork
21:42:02 <shachaf> Someone said Windows does that?
21:42:14 <kmc> shachaf: ksplice did some silly things to add fields to structs
21:42:23 <kmc> sometimes storing it in padding or an unused field
21:42:34 <kmc> or in a hash table keyed by the struct's address
21:43:32 <kmc> vfork() isn't very pointful on modern virtual memory machines
21:44:08 <shachaf> kmc: did you know there are some architectures without virtual memory where linux has vfork but not fork
21:44:12 <int-e> oh are we discussing Linux or POSIX? The manpage says that POSIX deprecated vfork.
21:44:15 <b_jonas> kmc: it sure is, if you're like git and spawn a thousand child processes
21:44:28 <kmc> shachaf: that makes sense
21:44:38 <zzo38> int-e: As b_jonas said, it is not guaranteed. Also, it does not share the program counter with the parent process, and might not share variables that are stored in registers, as far as as I know.
21:46:14 <kmc> shachaf: do you think it's good to have a syscall like clone() that lets you individually decide which things to share or not share?
21:46:45 <shachaf> a lot of windows system calls can take a process handle as an argument
21:46:54 <shachaf> so the mmap equivalent can allocate in another process's address space and so on
21:46:59 <kmc> that's neat
21:47:06 <shachaf> seems much nicer than ptrace for debuggers for instance
21:47:09 <kmc> I remember UML doing some nasty hacks for that
21:47:19 <kmc> user mode linux
21:47:25 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: : not found
21:47:27 <HackEso> Linux (none) 4.9.82 #6 Sat Apr 7 13:45:01 BST 2018 x86_64 GNU/Linux
21:48:00 <int-e> I thought that did mention UML at some point.
21:48:10 <b_jonas> ``` cat /proc/cpuinfo | sed -n 2p
21:48:11 <HackEso> vendor_id: User Mode Linux
21:48:12 <kmc> is that the same bot that was here forever ago
21:48:29 <b_jonas> kmc: it's a reincarnation, the one that was here forever ago was called HackEgo
21:48:40 <kmc> same codebase?
21:48:51 <b_jonas> the userspace contents was inherited from a backup of HackEgo
21:48:58 <b_jonas> I don't know about the codebase, fizzie knows
21:49:03 <b_jonas> I know he made some substantial changes
21:49:05 <kmc> I remember poking at UML for a while trying to find an exploit for the bot
21:49:06 <b_jonas> but some of it are probably kept
21:49:14 <int-e> kmc: I believe so, since Gregor made it public.
21:49:34 <int-e> (that yes, yes, it's the same codebase)
21:49:37 <b_jonas> fizzie is the keeper of the bot now
21:49:50 <HackEso> HackEso is almost but not quite unlike HackEgo.
21:50:39 <int-e> isn't that missing a "completely"...
21:51:13 <shachaf> But then it would be false.
21:51:20 <shachaf> kmc: maybe you should work on the mill team
21:51:35 <int-e> FireFly: ah yes, it's "entirely".
21:51:43 <b_jonas> j-bot is also sort of such a reincarnation. I gave away the code but I no longer support it.
21:52:13 <kmc> is it written in J?
21:52:15 <FireFly> did tangentstorm succeed after you, or was there someone in-between?
21:52:18 <fizzie> kmc: It's essentially the same codebase, I've made a few tweaks but I made those when it was still HackEgo.
21:52:36 <FireFly> (I don't speak ruby, so I just host it in a mostly-working state)
21:52:56 <b_jonas> never got ported to ruby 1.9, and you have to correct syntax errors and then fix some references to String methods to port it over to any ruby that's still supported, which is like 2.1 now
21:53:02 <int-e> fungot: where's boily?
21:53:02 <fungot> int-e: i see what you mean? if so, we can use more bits in local loops. it definitely uses _lots_ of tail calls is guaranteed to make venom bleed out of your nose
21:53:09 <fizzie> Well, maybe a few tweaks since then too. But still.
21:53:10 <FireFly> oh I might've done that maybe
21:53:20 <FireFly> I recall having to do some minor edits to get it running
21:53:40 <FireFly> ruby --version is apparently 2.5.0
21:53:49 <j-bot> b_jonas, jevalbot source is http://www.math.bme.hu/~ambrus/pu/jevalbot.tgz
21:54:00 <b_jonas> that points to where I gave away the code
21:54:46 <FireFly> hm I should put the changes I made locally on https://github.com/FireyFly/jevalbot
21:54:55 <FireFly> and then maybe update that command to point there instead..
21:55:03 <zzo38> What would you think of opinion of some interactive fiction VMs such as Z-machine, Glulx, TAVERN, OASYS, etc? (Maybe in future might also be TAVERN32, to make a 32-bit VM to combine good ideas from Glulx with TAVERN.)
21:56:36 <shachaf> kmc: should 64-bit computers use a single address space
21:56:47 <kmc> what's the advantage?
21:57:21 <zzo38> MMIX has positive (virtual) addresses, and negative (physical) addresses.
21:57:29 <shachaf> one of the mill videos talks about it
21:57:52 <shachaf> or at least it's not on a hot path for every l1 access
21:59:44 <int-e> Tricky... how do you do process isolation, and shared memory?
22:00:33 <shachaf> The way the Mill people do it they have protection separate from translation.
22:00:40 <int-e> (these work against each other but I imagine one would end up with something TLB-like that keeps track of ownership/permissions anyway, and you will have that in the path to L1, or incur the wrath of the spectre.)
22:05:55 <FireFly> b_jonas: oh, and it looks like I didn't declare you admin in the config file--I guess I could change that if you'd like
22:06:05 <b_jonas> FireFly: I don't think it matters
22:06:20 <b_jonas> FireFly: the admin thingy is not very useful, especially since it goes only by nick
22:06:20 <FireFly> alright, I'll keep it as it is then
22:06:35 <b_jonas> so don't allow anything to admins that you don't want to allow to everyone
22:06:37 <FireFly> I hope it doesn't let an admin do too much
22:06:42 <b_jonas> unless you change that code entirely
22:06:51 <FireFly> As mentioned, I don't really speak ruby :p
22:07:02 <FireFly> so my modifications have been minimal
22:07:14 <b_jonas> if you want to allow more administration stuff, you probably have to add a local control interface that doesn't go through IRC. it's possible through irc, but not very useful
22:07:50 <b_jonas> FireFly: from memory, it allows to quit the entire bot, to join or leave channels, to enable or disable the short invocation on channels,
22:07:55 <b_jonas> and to ignore or unignore people
22:08:16 <kmc> can you query whether a nick is registered on nickserv?
22:08:29 <b_jonas> kmc: you can. it's a bit complicated
22:08:35 <b_jonas> there's three IRC extensions that you have to use for it
22:08:38 <FireFly> I mean nowadays you can request a capability for it
22:08:38 <kmc> have it check that the nick being used is registered to the right account
22:09:04 <b_jonas> kmc: for this, it's not really worth IMO
22:09:09 <b_jonas> it can be worth for other IRC stuff
22:09:15 <b_jonas> I can tell the details if you really care
22:09:22 <b_jonas> if you want to implement it that is
22:09:55 <b_jonas> I figured it out at some point, with the help of #freenode, for potentially the other IRC bot
22:10:01 <b_jonas> never really considered it for jevalbot
22:10:13 <zzo38> Maybe you can check for the client's address.
22:10:34 <zzo38> Use the entire address for authentication instead of only the nickname.
22:10:42 <b_jonas> zzo38: yes you can, if you want anyone on the wifi behind the NAT to control the bot
22:10:56 <b_jonas> I know that's a well-spread security model in some companies, but I don't really like it
22:11:28 <zzo38> Yes, it can be problem if you have Wi-Fi. But even then you could use cloaking; Freenode has that
22:11:53 <b_jonas> heck, even the model where you need the login password of one of 20 random people working at the company to access every private data of the company isn't a model I like
22:12:14 <b_jonas> zzo38: even without wifi it's a bad idea, most local networks are just not controlled enough
22:13:06 <b_jonas> zzo38: and yes, you could use cloaking, that's a bit better, but then you could also use an invite-only channel, or just control the bot locally without going over IRC
22:13:37 <zzo38> O, well, it can work if it is controlled enough. But, yes, invite might also do, if you need to do with IRC. Local administration is probably best though in most cases
22:14:07 <kmc> you could also send a password with each command in PM
22:14:28 <b_jonas> kmc: yes, but if it's a cleartext password, then you need a way to tell that the bot is really what it claims it to be
22:14:33 <b_jonas> for which you need a channel
22:14:42 <b_jonas> it gets uglier than the bot telling who you are
22:14:45 <zzo38> Yes, I thought of that too, but you will need to identify them like b_jonas mention
22:14:53 <b_jonas> (a channel or memoserv actually)
22:15:12 <b_jonas> you can avoid that by using cryptography
22:16:15 <kmc> it'd be a little cumbersome to sign every message, but you could have an IRC client do it I suppose
22:16:50 <FireFly> b_jonas: https://github.com/FireyFly/jevalbot/commit/e715b6d0bc1d4a8578d5c7e8d803b0cb069c71f6 the diff is a bit messy, I guess I also removed some trailing whitespace at some point
22:17:18 <FireFly> but apparently with the version check commented out and mostly like.. changing some regexps to use RegExp.new, it seems to work
22:18:25 <FireFly> oh and I guess I didn't care much for the nickserv bits..
22:18:47 <FireFly> oh, no, I switched to identifying to nickserv account via PASS instead
22:25:27 <shachaf> The Mill also does implement fork using a special kind of translation
22:25:46 <fizzie> I swapped a CDful of randomness with a friend once with the intention of using it for one-time padding our /query.
22:25:51 <fizzie> Never unfortunately happened.
22:27:28 <fizzie> Also fungot's admin privilege is enabled by matching the message prefix to a preset nick!user@host (because it was easier than any wildcarding), which I guess should be as difficult to circumvent as getting an arbitrary cloak on Freenode is.
22:27:28 <fungot> fizzie: the germanic subset is fnord, even to non-customers: a few people :) and no confirmed time travelers
22:30:41 <shachaf> kmc: Remember that one-time authentication scheme we talked about once?
22:30:57 <shachaf> I don't remember how it worked but it was TG that it was possible
22:33:15 <shachaf> The counterpart of one-time pads for authentication
22:35:05 <shachaf> by the way, it's kind of scow that OTP is so malleable
22:36:04 <int-e> sure... add authentication
22:36:47 <shachaf> some cipher modes are less malleable than others
22:37:13 <shachaf> people don't use stream ciphers for disk encryption for various reasons probably including this one
22:46:14 <kmc> yeah disk encryption is weird
22:47:35 <shachaf> I mean, not actually this reason but related reasons that also apply to OTP
22:47:39 <int-e> Yeah... where do you put the MAC :) (I learned that "enterprise" drives support sector sizes a bit over a power of two for that purpose.)
22:49:02 <shachaf> By the way, do you know the trick for using arbitrary memory as a zero-initialized array without explicitly initializing it?
22:49:14 <shachaf> It's not a good trick but it was kind of surprising that it was possible.
22:51:54 -!- arseniiv has joined.
22:53:00 <shachaf> You also need two extra arrays of the same length.
22:55:32 <shachaf> The trick is, you have three arrays, T data[N], int valid[N], int confirmation[N], and an index, c, where confirmation[0:c] is considered initialized.
22:55:54 <shachaf> valid has indices into confimration, and confirmation has indices into valid
22:56:07 <shachaf> data[i] is valid if valid[i] < c, and confirmation[valid[i]] == i
22:56:39 <int-e> And it's useful for sparse arrays if you have tons of memory?
22:57:19 <shachaf> So each time you see an invalid index you add it to confirmation and increment c.
22:57:22 <shachaf> I'll wager there's no practical use for it.
22:57:33 <int-e> Maybe if T is huge itself.
22:58:51 <shachaf> If you wanted you could have one bit vector indicating which elements of your data array are valid.
22:58:57 <shachaf> I could see uses for that.
22:59:19 <int-e> Yeah, that sounds more sensible.
22:59:48 <shachaf> I should stop saying "vector" to mean "array"
22:59:50 <int-e> But from a theoretical perspective this is brilliant :)
23:00:17 <shachaf> i like this trick for the whoa, dude value
23:00:31 <shachaf> do you have any more whoa, dude algorithm tricks for me twh
23:00:35 <orin> shachaf: and start using "matrix" to mean "heap"?
23:00:53 <int-e> x += y; y = x - y; x -= y;
23:01:23 <orin> vector is a c++ism anyway
23:01:49 <shachaf> i,i https://twitter.com/johnregehr/status/1093948316948168704
23:01:54 <int-e> (That's the ^ swap trick for rings that don't have characteristic 2.)
23:03:24 <shachaf> What algorithms should go in my list of clever and simple algorithms?
23:04:00 <orin> mergesort I guess?
23:04:06 <shachaf> pollard's rho hash collisions
23:04:31 <shachaf> exhaustive search of compact infinite spaces ("seemingly impossible functional programs")
23:04:52 <orin> I mean, mergesort is IMO the simplest efficient sort
23:05:15 <shachaf> I think mergesort is a bit too well known.
23:06:18 <orin> hmm, although I'm not actually sure what makes me percieve it as simpler than quicksort
23:06:57 <orin> I guess because there's no question of arbitrarily picking a pivot
23:07:18 <orin> therefore no weird inputs that can screw it up
23:08:06 <orin> yeah htat's why mergesort is simpler to implement
23:08:48 <int-e> shachaf: related to the collisions: rainbow tables
23:08:58 <kmc> you need heap sort to combine the advantages
23:09:20 <fizzie> That uninitialized memory trick seems very close to the other uninitialized memory trick, https://research.swtch.com/sparse
23:09:34 <shachaf> int-e: Rainbow tables are kind of close to Pollard's Rho, right?
23:09:56 <orin> kmc: yeah but heapsort is hard to remember the details of, even more than quicksort
23:11:10 <shachaf> fizzie: Isn't that the same trick?
23:11:19 <int-e> shachaf: they solve a different problem (preimages) and they have the distinguished subset trick for that. Which also comes in handy when parallelizing the search for hash collisions.
23:11:25 <shachaf> "is-member(i): return sparse[i] < n && dense[sparse[i]] == i" is the thing I said, anyway
23:11:54 <fizzie> shachaf: Your trick had an extra T data[N], this is just a set of integers. But I guess it's essentially the same trick.
23:12:14 <shachaf> They just use void as T, I think.
23:12:41 <shachaf> Assuming sizeof (void data[N]) == 0
23:12:51 <shachaf> Also assuming that's not a syntax error.
23:12:52 <fizzie> Yes. So it's an (allegedly) practical use for the trick, then.
23:13:27 <fizzie> I think that's a syntax error. `sizeof (void[N])` would have been a constraint violation but not a syntax error.
23:13:42 <fizzie> Although on GCC it would've been just N.
23:14:33 <fizzie> (I'm guessing. At least it allows pointer arithmetic on a `void *` assuming an element size of 1. For consistency's sake, you'd expect sizeof (void) == 1.)
23:14:44 <kmc> ha, consistency
23:14:57 <int-e> shachaf: so, basically, I think the distinguished subset trick, while related, is worth having its own entry on the list of clever ideas
23:15:00 <fizzie> "In GNU C, addition and subtraction operations are supported on pointers to void and on pointers to functions. This is done by treating the size of a void or of a function as 1.
23:15:03 <fizzie> A consequence of this is that sizeof is also allowed on void and on function types, and returns 1."
23:15:19 <shachaf> fizzie: You could also put a generation ID for each element and increase it by 1 to reset.
23:16:04 <fizzie> (Come to think of it, it might still not allow arrays of void even if void has a size.)
23:16:10 <shachaf> what is the sizeof an uninhabited type
23:16:30 <shachaf> Unicode has COMBINING INFINITY᪲
23:16:42 <shachaf> i,i COMBINING SEAGULL BELOW
23:17:42 <int-e> combining left-eyed monocle
23:18:28 <fizzie> "COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE" (and the same for U) is the longest-named combining character.
23:18:45 <fizzie> With COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE as the runner-up.
23:19:09 <fizzie> COMBINING HORN is the shortest.
23:19:17 <shachaf> COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE matches it
23:19:17 <fizzie> I think it's also a magical artifact?
23:19:27 <fizzie> shachaf: That's "the same for U".
23:19:38 <shachaf> You can't expect me to read inside parentheses!
23:19:49 <int-e> shachaf: disjoint set forests are probably my favorite data structure
23:20:40 <shachaf> I should add to my question that I mean data structures and algorithms that aren't in a typical undergraduate CS curriculum or something.
23:21:54 <fizzie> Why is reading Unicode character names so much fun anyway? I can't stop imagining the warning signs about COMBINING SEAGULL BELOW.
23:22:03 <shachaf> what is the shortest code point name
23:22:29 <fizzie> And ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM is still the longest.
23:23:30 <orin> what does the syntax ```namespace {``` mean?
23:23:33 <shachaf> wasn't this channel going to adopt a code point together
23:23:39 <fizzie> orin: It's an unnamed namespace.
23:23:43 <shachaf> orin: unnamed namespace, or unnamespace for short hth
23:24:21 <shachaf> the namespace that can be spoken of
23:24:21 <fizzie> orin: You can use it to make symbols externally invisible.
23:24:25 <shachaf> is not the eternal namespace
23:24:29 <fizzie> "Its members have potential scope from their point of declaration to the end of the translation unit, and have internal linkage."
23:24:41 <orin> I need them to be externally visible agian god damn it
23:24:45 <shachaf> You should be thankful they didn't use the keyword "static" for it.
23:24:58 <fizzie> "static namespace { ... }" has a nice ring.
23:25:07 <fizzie> Did you hear that one about the hyphenated keywords?
23:25:30 <fizzie> "While one might think such things are too ridiculous to consider, note that we received serious-seeming suggestions during JEP 325 to use `new switch` to describe a switch with different semantics. Presumably to be followed by `new new switch` in ten years."
23:25:34 <fizzie> http://mail.openjdk.java.net/pipermail/amber-spec-experts/2019-January/000945.html
23:26:18 <shachaf> obviously you gotta change the vowel
23:26:27 <fizzie> The tl;dr is a suggestion to allow <identifier>-<keyword> and <keyword>-<identifier> constructions to be used as keywords.
23:26:28 <shachaf> switch swatch swetch swotch swutch
23:27:14 <orin> ok I'm temporarily nameing the previously unnamed namespace as "namespace goddamnit {"
23:27:16 <kmc> 'static namespace' would be p. reasonable
23:27:34 <fizzie> orin: I've usually used "namespace internal {" if I've needed an unnamed namespace that's named.
23:27:58 <kmc> and then 'using internal;'?
23:28:02 <orin> well it only needs to be named until I find the bug
23:28:04 <kmc> can you use using at file scope?
23:28:16 <kmc> shachaf: did you know that the Unicode red heart emoji is actually HEAVY BLACK HEART
23:28:19 <kmc> I only just learned this
23:28:33 <kmc> quite a change imo
23:28:40 <b_jonas> shachaf: yes, I know that trick (of using uninitialized memory), but I think that's one of those things that are almost never practical in the real world
23:28:45 <fizzie> I think you can use "using namespace /name/;" at file scope.
23:29:04 <kmc> anyway I tried to make a HEAVY BLACK HEART with COMBINING INFINITY but it looks terrible :/
23:29:13 <kmc> fizzie: ah, right
23:29:25 <b_jonas> "i like this trick for the whoa, dude value" => yeah, that's a good summary
23:29:40 <shachaf> kmc: That one seems to be rendering as a black heart here?
23:30:00 <kmc> https://emojipedia.org/heavy-black-heart/
23:30:04 <shachaf> There are a bunch of actual colored hearts.
23:30:37 <shachaf> Also my Android keyboard has two different smiley faces that look similar. One of them has a smile that's a little bit wider.
23:30:41 <shachaf> I don't know which one to use.
23:31:09 <zzo38> Is there a way to determine the codepoint numbers of them?
23:31:15 -!- Essadon has quit (Quit: Qutting).
23:31:19 <zzo38> If you can do that then you can figure out which one should be used.
23:31:19 <shachaf> Yes, but I don't feel like bothering.
23:31:29 <fizzie> shachaf: I think the other one is the SLIGHTLY SMILING FACE.
23:31:38 <shachaf> Why is it so complicated to transfer text from my computer to my phone?
23:31:47 <shachaf> fizzie: Ah, that sounds plausible.
23:32:02 <shachaf> I guess if I want a full smile I gotta give up on SLIGHTLY SMILING FACE.
23:32:08 <kmc> WSL terminal doesn't support emoji and stuff :(
23:32:13 <fizzie> shachaf: (The new Hangouts Chat experience shows the names in the suggestobox when you type a : on the computer.)
23:32:17 <b_jonas> shachaf: transfer to your phone for what goal?
23:32:31 <shachaf> fizzie: But Hangouts Chat isn't available for consumers, right?
23:32:35 <b_jonas> shachaf: do you have internet access on your phone? can you pastebin the text?
23:32:44 <fizzie> shachaf: I think it's only available to G Suite customers, yes.
23:32:48 <shachaf> Yes, but that's the hassley way.
23:37:47 <fizzie> I usually use a temporary Google Keep note for that.
23:37:59 <shachaf> fizzie: That's also what I do!
23:38:15 <shachaf> And it involves many steps.
23:38:21 <fizzie> Heh. I've been thinking it's not the right way to use Keep, but two people can't be wrong.
23:38:32 -!- zemhill______ has joined.
23:38:35 <shachaf> I should probably have a special-purpose Keep note for it so I can select all.
23:38:35 <fizzie> It does involve that, yes. And the syncing isn't super seamless.
23:38:35 -!- ATMunn_ has joined.
23:38:40 <shachaf> Right now I have other junk in the same note.
23:38:45 <fizzie> zemhill______: You're getting a little ridiculous with the underscores.
23:39:48 <fizzie> (Should finish migrating the BF Joust hill to esolangs.org and the esowiki bot, then I could retire that thing.)
23:44:35 -!- fungot` has joined.
23:45:22 <fungot`> shachaf: i did just now is instead of storing the data in.
23:45:42 <fizzie> I guess the other one dropped off.
23:45:49 <fungot`> shachaf: the only thing that guy knows how to quote " within fnord in forth? all other postscript operator names ( re stack, anyway, try the lot and see what it looks like
23:46:04 <fizzie> (It doesn't actually know what it's own nick is.)
23:46:33 -!- tromp has quit (*.net *.split).
23:46:33 -!- fungot has quit (*.net *.split).
23:46:33 -!- ATMunn has quit (*.net *.split).
23:46:34 -!- dingwat has quit (*.net *.split).
23:46:34 -!- neanias has quit (*.net *.split).
23:46:34 -!- paul2520 has quit (*.net *.split).
23:46:34 -!- zemhill_____ has quit (*.net *.split).
23:47:41 <shachaf> kmc: Now Unicode also has a BLACK HEART which is actually rendered black
23:48:15 <shachaf> ♪ I see a red heart and I want it painted black ♪
23:49:02 <shachaf> Remember the old Android hearts? They were nonsense.
23:49:22 <shachaf> This was YELLOW HEART https://emojipedia.org/google/android-4.4/yellow-heart/
23:49:32 -!- Vorpal has quit (Ping timeout: 246 seconds).
23:49:33 <shachaf> And https://emojipedia.org/google/android-4.4/green-heart/ and so on
23:51:47 <Sgeo__> ^^ intended for ctrl-f search, saw a glimpse of "J?" in the scrollup
23:52:21 <b_jonas> oh hey! that might be the one rare example when my honorable and learned friend fungot put a space after an open quotation mark correctly
23:52:21 <fungot`> b_jonas: null date, null char, null int, null double, null etc). what good is functional programming"
23:53:17 <b_jonas> shachaf: are you sure? isn't it just rendered solid, when normally heart suit and diamond suit would be rendered as an outline?
23:53:42 -!- AnotherTest has quit (Ping timeout: 272 seconds).
23:53:51 -!- Lord_of_Life_ has joined.
23:54:01 <shachaf> Unicode has both BLACK HEART SUIT ♥ and WHITE HEART SUIT ♡
23:54:24 <shachaf> And HEAVY BLACK HEART ❤ and BLACK HEART 🖤
23:54:39 <b_jonas> shachaf: um yes, so I say those are solid and outlined respectively, whereas the original heart suit is ambiguous
23:54:56 <b_jonas> you know, like how the ascii minus and ascii hyphen are ambiguous too
23:55:54 -!- Vorpal has joined.
23:56:34 -!- oerjan has joined.
23:56:40 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
23:56:43 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
23:56:53 <orin> b_jonas: but they later biguated them in unicode but kept the ambiguous one too
23:57:39 <fizzie> I don't think there's any "original heart suit", all three of HEAVY BLACK HEART, BLACK HEART SUIT and WHITE HEART SUIT are from Unicode 3.2.
23:58:19 <shachaf> SMILING HEART WITH HEART-SHAPED EYES
23:58:35 <kmc> i like the cat w/ heart eyes
23:58:59 <shachaf> can #esoteric be the esolang + cat channel
23:59:01 <orin> I miss when emojis were tiny inline .gif files
23:59:11 <kmc> on forums and stuff?
23:59:14 <kmc> SA had some good ones
23:59:32 <shachaf> imo why doesn't unicode have combining characters to control animation
23:59:40 <b_jonas> orin: "biguated"? what does that mean?
23:59:41 <fizzie> shachaf: In Chat, I keep a catbot window open because it doesn't have any "no chat visible" mode (that I can find) and it feels arbitrary to keep a specific chat window open.
23:59:56 <shachaf> fizzie: Chat being Hangouts Chat?
00:00:08 <fizzie> shachaf: Right, the thing you can't have. But still.
00:00:11 <shachaf> fizzie: What's the deal with programs not having a "no chat visible" mode, anyway? So annoying.
00:00:24 <orin> b_jonas: biguate: to make something biguous, or less ambiguous
00:00:26 <fizzie> In plain Hangouts I think you could have a "no chat visible" mode.
00:00:39 <shachaf> When I use Slack -- which I try not to -- I keep having to type "C-k sla<ret>" to switch to Slackbot, as a semi-neutral thing.
00:00:52 <shachaf> In Pidgin I gave up and I just leave focus on the first tab.
00:01:00 <b_jonas> fizzie: there has to be an original heart suit, doesn't there? there's a heart suit character in both cp437 and in windows Symbol font
00:01:18 <b_jonas> and those are encodings they've encoded in unicode
00:01:56 <b_jonas> orin: I thought that's called "disambiguating", or "dambing" for short in Wikipedia jargon
00:02:26 <orin> but that "disam" seems like two negative prefixes in a row
00:02:31 <fizzie> b_jonas: That does't mean it needs to have an ambiguous "original heart suit". I think the CP437 heart suit character is just translated to the BLACK HEART SUIT.
00:02:54 <b_jonas> fizzie: sure, it's possible that one or more of those characters is the original one
00:02:55 <orin> "noninflammable"
00:03:36 <b_jonas> one or both of the Commodore PET/64 charsets also have a heart suit
00:03:37 <shachaf> "am" is a negative prefix?
00:04:08 <b_jonas> shachaf: no, but "a" is, and taking just one letter off from a word that isn't actually prefixed would be misunderstandible
00:04:18 <b_jonas> also "an" is a negative prefix, and "am" is close
00:05:12 <fizzie> Also the Unicode official CP437 table -- https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP437.TXT -- doesn't actually translate the <' ' characters to their graphical equivalents, but to the corresponding control characters.
00:05:22 <orin> https://www.dictionary.com/browse/an-
00:05:56 <b_jonas> fizzie: how about the translation tables from symbol and petscii?
00:06:08 <kmc> so many bytes and codepoints wasted on never used ascii control characters :(
00:06:25 <orin> kmc: that's why I often go out of my way to use them
00:06:55 <b_jonas> kmc: they aren't never used. they were used as control characters in terminal/console keyboard input.
00:07:10 <kmc> but they're very rarely used today
00:07:14 <b_jonas> the high controls not that much
00:07:14 <kmc> and C1 control characters even less so
00:07:30 <kmc> you can send ECMA-48 codes using them, but people mainly use the low escapes instead
00:07:54 <b_jonas> kmc: these days we aren't stuck with a font of 128 characters burnt into ram, so there's no such thing as "wasted" characters really
00:08:28 <orin> for example, one can avoid many problems by using \37 as your separator in CSV files
00:08:45 <kmc> b_jonas: you could have shorter UTF-8 strings if some of the two byte characters were representable in one byte
00:08:58 <kmc> instead those bytes are practically unused
00:09:34 <b_jonas> orin: yes, I currently use \x1F as a sort of separator in a text file I write from one program and read from another program, where I have to save text that can in theory contain arbitrary unicode characters, though rarely does
00:09:51 <fizzie> b_jonas: I found the "IBM PC memory-mapped video graphics to Unicode" table -- https://unicode.org/Public/MAPPINGS/VENDORS/MISC/IBMGRAPH.TXT -- and that one maps the 03 to 2665 BLACK HEART SUIT, so that's arguably the original.
00:10:28 <b_jonas> I also use \x10 as an escape prefix for certain control characters, plus \x11 to represent a crlf in the original
00:10:45 <b_jonas> I don't even have code to read the \x10 escapes by the way, because they've never come up yet
00:10:50 <b_jonas> I only have code to write it
00:10:55 <shachaf> Oh, this new emoji people are using is SHOCKED FACE WITH EXPLODING HEAD 🤯
00:10:58 <b_jonas> the \x11 comes up, because some of the strings have crlf
00:11:26 <b_jonas> sorry, I think I actually use \x0B to represent a crlf
00:12:03 <orin> oh, \37 is underline in IRC
00:12:19 <fizzie> In any case, HEAVY BLACK HEART clearly hasn't been intended to be related to any of that, it's in the "Punctuation ornaments" subsection of the "Dingbats" with the FLORAL HEART and HEAVY HEART EXCLAMATION MARK ORNAMENT and ROTATED HEAVY BLACK HEART BULLET and suchlike.
00:12:37 <fizzie> (It's very unfortunate that it got co-opted to be the standard red heart on systems.)
00:13:34 <kmc> yeah, that seems weird to me
00:14:05 <fizzie> I'm guessing nobody was willing to wait for the actual emoji stuff?
00:14:07 <fizzie> (The black and white heart suits are part of Miscellaneous Symbols / Playing card symbols.)
00:22:13 <shachaf> fizzie: The specific use case of a sparse set that needs efficient iteration is a good one, I guess.
00:22:29 <shachaf> Because you'd want something like the dense array anyway.
00:59:01 -!- tromp has joined.
00:59:43 -!- neanias has joined.
00:59:46 -!- dingwat has joined.
01:11:49 <fizzie> Every time I use a C++17 if with an init-statement, I get the feeling I'm actually writing Go instead.
01:12:24 <shachaf> fizzie: Did you know you can declare variables in the middle statement of a for loop?
01:18:08 <fizzie> Have you always been able to do that? Apparently at least from C++11 onwards, and also in the condition part of while and if.
01:19:33 <fizzie> I guess you always have. Or at least from C++03, which is far enough.
01:19:44 <fizzie> Odd. In C you definitely can't.
01:20:35 <pikhq> Huh. Yeah, and it was kinda new you could do it in the first statement of a for loop.
01:20:54 <fizzie> I guess it's not quite as useful as the init-statement if/while, but could still be useful.
01:21:19 <pikhq> The init statement if/while is pretty useful.
01:21:46 <shachaf> I mean, it's as useful as doing it in a while, which I did know C++ allowed.
01:22:04 <shachaf> Well, no, it allows the Go-style init-statement in a while.
01:22:12 <shachaf> I suppose that's not the same.
01:22:19 <pikhq> (no reason it couldn't be in C that I know of, for that matter)
01:26:21 <fizzie> The init statement makes this more useful with iterators. For pointers you could've done `if (auto p = find(x)) use(p);` even before, but now you can also `if (auto it = x.find(y); it != x.end()) use(it);`
01:28:01 <kmc> did they add statement expressions ever
01:29:46 <shachaf> In my until-end-of-block if statement, you don't need initialization statements as a special feature.
01:30:06 <shachaf> You write "if (x := y; z) { ... }" as "{ x := y; if(z); ... }"
01:35:31 -!- xkapastel has quit (Quit: Connection closed for inactivity).
01:43:52 <Sgeo__> https://web.archive.org/web/20070829102324/http://www.ccs3.lanl.gov/mega-math/infinity.map <3
01:46:29 -!- b_jonas has quit (Quit: leaving).
01:48:25 -!- paul2520 has joined.
01:50:26 -!- arseniiv has quit (Ping timeout: 240 seconds).
01:52:55 -!- arseniiv has joined.
02:06:21 <zzo38> What is the god of snow?
02:11:33 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59807&oldid=59657 * A * (+22)
02:11:57 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59808&oldid=59807 * A * (+56)
02:12:22 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59809&oldid=59808 * A * (+67)
02:13:53 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59810&oldid=59809 * A * (+15)
02:14:12 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59811&oldid=59810 * A * (-17)
02:14:41 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59812&oldid=59811 * A * (+78) /* Custom links */
02:15:20 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=59813&oldid=57455 * A * (-4602) Blanked the page
02:15:36 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59814&oldid=59812 * A * (+51)
02:17:48 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59815&oldid=59814 * A * (+25)
02:18:06 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59816&oldid=59815 * A * (+7) /* Custom links */
02:21:21 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59817&oldid=59816 * A * (+101) /* Custom links */
02:31:44 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59818&oldid=59817 * A * (+814)
02:32:33 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59819&oldid=59818 * A * (+0) Redirected page to [[User:A]]
02:33:20 -!- arseniiv has quit (Ping timeout: 246 seconds).
02:34:29 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59820&oldid=59819 * A * (-3)
02:35:20 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59821&oldid=59820 * A * (+32)
02:42:33 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59822&oldid=59821 * A * (+456)
02:42:58 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59823&oldid=59822 * A * (+0) /* How to cook your delicious computer */
02:45:31 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59824&oldid=59823 * A * (+62) /* How to cook your delicious computer */
02:53:09 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59825&oldid=59824 * A * (-56) /* How to cook your delicious computer */
02:55:29 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59826&oldid=59825 * A * (+57)
02:58:45 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59827&oldid=59826 * A * (+120)
02:59:32 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59828&oldid=59827 * A * (+29) /* How to cook your delicious computer */
03:00:29 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59829&oldid=59828 * A * (-79)
03:00:55 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59830&oldid=59829 * A * (+24)
04:49:57 -!- FreeFull has quit.
05:14:32 -!- rodgort has quit (Quit: Leaving).
05:19:32 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59831&oldid=59830 * A * (+468)
05:20:52 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59832&oldid=59831 * A * (+13) /* Function innovation */
05:23:55 -!- rodgort has joined.
05:27:33 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59833&oldid=59832 * A * (+6)
05:28:00 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59834&oldid=59833 * A * (-1) /* Impossible to describe function? */
05:42:46 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59835&oldid=59834 * A * (+299) /* Impossible to describe function? */
05:44:12 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59836&oldid=59835 * A * (+4) /* Impossible to describe function? */
05:46:14 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59837&oldid=59836 * A * (+201) /* Impossible to describe function? */
05:47:00 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59838&oldid=59837 * A * (-14) /* Impossible to describe function? */
05:47:19 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59839&oldid=59838 * A * (-17) /* Impossible to describe function? */
05:50:03 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59840&oldid=59839 * A * (-1906)
05:51:26 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59841&oldid=59840 * A * (+49)
05:54:04 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59842&oldid=59841 * A * (+155)
05:55:53 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59843&oldid=59842 * A * (+89)
05:57:24 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59844&oldid=59843 * A * (+14)
05:57:42 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59845&oldid=59844 * A * (+0)
05:58:02 <imode> I don't know what he's on about.
05:58:17 <imode> he doesn't seem to know much if anything.
05:58:36 <imode> he made a two-variable factorial function.
06:04:38 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59846&oldid=59845 * A * (-11)
06:05:07 -!- rodgort has quit (Quit: Leaving).
06:06:28 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59847&oldid=59846 * A * (+62)
06:14:35 -!- rodgort has joined.
06:33:57 -!- oerjan has quit (Quit: Nite).
06:39:44 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
08:49:22 <shachaf> I download IRC logs with wget -c
08:49:42 <shachaf> I think something about the configuration of the HTTP server makes it so it tries to redownload a fully-downloaded file?
08:50:09 <shachaf> http://esolangs.org/logs/2019-01.txt doesn't have a Content-Length
08:50:48 <shachaf> Maybe these are generated from a database or something instead of being real files.
08:53:20 <int-e> shachaf: those aren't files; they are generated from a database on the spot
08:53:34 <int-e> (confirming what you wrote)
08:58:05 <shachaf> How am I supposed to download IRC logs, anyway?
08:58:14 <shachaf> What I do now is make a list of files and wget -ci it
08:58:27 <shachaf> I add newer files at the top
09:06:55 -!- tromp has quit (Remote host closed the connection).
09:40:41 -!- tromp has joined.
09:45:03 -!- tromp has quit (Ping timeout: 245 seconds).
09:46:04 -!- tromp has joined.
10:04:42 -!- imode has quit (Ping timeout: 250 seconds).
10:05:43 -!- AnotherTest has joined.
10:06:45 -!- Sgeo__ has quit (Read error: Connection reset by peer).
10:07:11 -!- Sgeo__ has joined.
10:25:52 <esowiki> [[Special:Log/newusers]] create * Luqui * New user account
10:38:03 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=59848&oldid=59749 * Luqui * (+190) /* Introductions */
10:38:16 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=59849&oldid=59813 * Luqui * (+193) /* Impossible */ new section
10:38:30 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=59850&oldid=59849 * Luqui * (-17)
10:38:41 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=59851&oldid=59850 * Luqui * (+1) /* Impossible */
10:46:37 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=59852&oldid=59851 * Luqui * (+195) /* Impossible */
10:47:40 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=59853&oldid=59852 * Luqui * (+19)
10:54:17 -!- arseniiv has joined.
10:57:56 -!- arseniiv_ has joined.
10:57:56 -!- arseniiv has quit (Read error: Connection reset by peer).
10:59:11 <fizzie> shachaf: I don't know, it's tricky. The "real" files are essentially the daily -raw.txt ones, except in https://github.com/fis/esolangs/blob/master/esologs/log.proto form and with the past (immutable) days Brotli-compressed.
10:59:29 <fizzie> shachaf: I could easily expose those real files, but maybe you don't want to download them in that form.
11:01:37 <fizzie> shachaf: Supporting Content-Length to the formatted monthly files would involve either scanning all the logs twice, or buffering it all in memory, and that'd be sad to do when not absolutely necessary.
11:08:39 <fizzie> shachaf: I *could* send a Last-Modified header with the files, and support the If-Modified-Since request header, which would at least allow you to use "wget -Ni" to not download the files that haven't changed, although it would still redownload the unmodified prefix that you already had of the most recent month every time.
11:13:47 -!- arseniiv has joined.
11:13:47 -!- arseniiv_ has quit (Read error: Connection reset by peer).
11:16:54 <fizzie> shachaf: I might also consider supporting Range requests, but it would be a bit more work, and for that to be useful you'd need to wget to work in some sort of "append mode" where it just sends "Range: bytes N-" where N is the size of the local file it has.
11:17:07 <fizzie> s/to wget/to convince wget/
11:17:40 <fizzie> I guess it might be doing that with -c, I don't know.
11:18:35 -!- arseniiv_ has joined.
11:20:03 -!- arseniiv has quit (Ping timeout: 245 seconds).
11:20:03 <fizzie> AFAICT, doing that would still need me to essentially compute Content-Length, because while the Content-Range header can say something like "bytes N-M/*" to indicate the instance length is unknown, it must still provide concrete numbers M and N before streaming the response body.
11:22:09 -!- Sgeo_ has joined.
11:25:29 -!- Sgeo__ has quit (Ping timeout: 244 seconds).
11:33:11 <fizzie> shachaf: ...or maybe you could just make your download script do something like (where $f is the "2019-02.txt" or equivalent): if [[ $(date -r $f +%Y-%m.txt) > $f ]]; then true; else wget https://esolangs.org/logs/$f; fi
11:36:22 <fizzie> shachaf: I think that should only download files one extra time after the titular month is complete. Feel free to use ! in the condition instead of the "then true; else" nonsense, I'm always too afraid of Bash conditional expressions to.
11:46:15 -!- Sgeo__ has joined.
11:49:08 -!- Sgeo_ has quit (Ping timeout: 250 seconds).
11:55:05 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
11:57:51 -!- Lord_of_Life has joined.
12:04:26 -!- wob_jonas has joined.
12:06:36 <wob_jonas> zzo38: the handy reference chart at http://www.giantitp.com/comics/oots0999.html claims that the god of snow is Hoder.
12:08:03 <wob_jonas> zzo38: although according to Age of Mythology it's Skadi https://ageofempires.fandom.com/wiki/Skadi
12:50:25 <wob_jonas> re https://esolangs.org/logs/2019-01.html#l2mb , you know there are these nouns and adjectives associated with operations: "addition, additive" for plus, "subtraction, subtractive" for minus, "multiplication, multiplicative" for times, "conjunction, conjunctive" for and, "disjuction, disjuctive" for or. Is there such a fancy name for xor? Or do we
12:50:25 <wob_jonas> just called that "exclusive disjuction, exclusive disjunctive"?
12:58:16 -!- Sgeo_ has joined.
13:01:18 -!- Sgeo__ has quit (Ping timeout: 245 seconds).
13:01:46 <wob_jonas> There's "implication, implicative" for logical le, but the normal term for logical xnor is "equivalence", which doesn't end in "ation" so it dosen't help us. I think there was an obscure synonym "biimplication" though, so for xor we could use the term "inbiimplication, inbiimplicative", only that sounds horrible
13:02:43 <wob_jonas> hmm, https://en.wikipedia.org/wiki/Logical_connective mentions "bi-implication" and "biconditional".
13:05:37 <fizzie> I think it might just be that "exclusive disjunction".
13:05:52 <fizzie> Although I fully support all efforts to add new obscure terms.
13:19:09 -!- AnotherTest has quit (Ping timeout: 244 seconds).
13:23:40 <wob_jonas> fizzie: well, "bitwise exclusive disjunctive" is obscure enough I think
13:25:19 <wob_jonas> how about min and max, are there such terms for those operations too?
13:25:41 <wob_jonas> "maximization" is already taken for something else
13:27:17 <wob_jonas> perhaps that would be "greatest common division, greatest common divisive" and "least common multiplication, least common multiplicative"
13:29:58 <wob_jonas> I'll have to read what Knuth and Iverson use for these, they might give good ideas for words
13:33:07 <wob_jonas> could we use something like "masonry" and "carpentry" for min and max respectively, given that Iverson associates them with floor and ceiling? are there adjective forms of "mason" and "carpenter"?
13:36:45 <wob_jonas> or maybe some terms associated with heaven and hell.
13:37:52 <wob_jonas> or "descension, descensive" and "ascension, ascensive"?
13:38:25 -!- copumpkin has joined.
13:40:15 <wob_jonas> ah! apparently the term for xor is "exclusion, exclusive"
13:40:29 <Taneb> Foundation, foundative for "floor"?
13:40:29 <wob_jonas> no need to mess with "exclusive disjunctive"
13:40:55 <wob_jonas> Taneb: I'd like a matching pair, naming min and max in a related way
13:43:20 -!- AnotherTest has joined.
13:44:13 <wob_jonas> I don't think "demonization, demonizative" and "angelization, angelizative" works.
13:44:43 <wob_jonas> or it could be something about hills and valleys
13:47:42 <fizzie> Biggizing, biggisive; smallizing, smallisive.
13:50:44 <wob_jonas> there's also "inflation" and "deflation"
13:51:09 <wob_jonas> economists use lots of fancy jargons, we could ask them what they call something that causes inflation and deflation resp
13:51:37 <wob_jonas> or doctors for what they call something that causes growth (or welling) and shrinking resp
13:52:08 <fizzie> There's that whole bull/bear/hawk/dove thing that I can never keep straight.
13:52:10 <wob_jonas> they must have fancy latin terms for these
13:52:30 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
13:52:46 <fizzie> https://www.binaryoptions.co.uk/trading-terms for a random up-the-top Google link.
13:52:51 <fizzie> Opinions not endorsed.
13:54:17 <fizzie> Oh, "have to go" as in right now.
13:54:48 <fizzie> @tell wob_jonas https://esolangs.org/logs/2019-02-12.html#lOd
13:56:44 <int-e> "binary options" in the domain? that's not inspiring any confidence.
13:57:14 <fizzie> They have a nice wavy rainbow logo, that has to count for something.
13:58:57 <int-e> . o O ( "I've bought a binary option at the horse races." )
13:59:38 -!- Lymia has quit (Read error: Connection reset by peer).
13:59:45 * int-e almost went for a lottery ticket but those tend to have multiple payout options.
14:00:09 <int-e> ... which makes them non-binary.
14:04:34 -!- arseniiv_ has changed nick to arseniiv.
14:17:27 -!- Lymia has joined.
14:46:48 -!- AnotherTest has quit (Ping timeout: 250 seconds).
15:32:48 <int-e> "I usually thank the Prime Minister for an advance copy of her statement, but it was handed to me just as I left my office to come down here, so I can only assume she entrusted the Transport Secretrary to deliver it to me." -- Corbyn made a joke :)
16:21:05 -!- xkapastel has joined.
17:05:03 -!- poq has joined.
17:05:28 * poq love ion and elliot
17:05:36 * poq pours out drink for them.
17:05:47 -!- poq has left.
17:18:57 -!- oerjan has joined.
17:21:55 -!- imode has joined.
17:22:56 -!- b_jonas has joined.
17:24:55 <b_jonas> there's "contraction", "extension", and a second sort-of pair "compaction", "expansion"
17:25:15 <b_jonas> you can even say "contractive" and "extensive" too if you want adjectives
17:39:47 -!- AnotherTest has joined.
17:43:31 <b_jonas> and then there's "position, positive" and "negation, negative" for some reason
17:45:24 <imode> stateful automata really do form the backbone of any given model of computation. stitching states together, you can yield any control flow construct you'd like. this differs from things like assembly, where the state structure is implicit and line/address/label-oriented.
17:49:35 <imode> we should embrace automata-based programming.
17:50:58 <imode> it's inherently visual and textual, lends itself well to composition and algebraic manipulation of code, and the underlying concepts are simple and relatively commonplace.
18:01:49 <shachaf> fizzie: I don't think it's worth putting very much effort in at all. When I wrote that without realizing the whole database situation.
18:03:11 <shachaf> fizzie: The reason I do it by hand is probably that I used to download IRC logs for a channel where they were pretty haphazard, sometimes collected from multiple sources etc., so there were many files with non-canonical names. That's not particularly relevant here.
18:04:15 <b_jonas> they're sort of haphazard here too, in the sense that there are two or three different collections of irc logs that you may have to download
18:06:19 <fizzie> The esolangs.org logs are an attempt to merge the existing collections. Though I should really look into redundancy about gaps since it started recording "natively".
18:06:58 <shachaf> int-e: what do you have against binary options twh
18:07:19 <b_jonas> fizzie: you mean like collect logs on multiple machines, to cover the time when one machine loses connection to the internet server?
18:07:33 <imode> I'm willing to donate server time on imode.tech for that.
18:07:38 <b_jonas> and even auto-connect to different halves of the irc network in case of netsplits :-)
18:08:11 <b_jonas> sadly right now I don't have a usable server of mine set up, one that's connected to the internet continuously. I should pay for one eventually.
18:08:30 <fizzie> Something like that. Not going to be on top of the priority list either, though.
18:08:32 <imode> imode.tech is up 24/7.
18:09:24 <fizzie> I think there has been more downtime for freenode reasons than for the current esolangs.org server reasons.
18:09:53 <imode> it's just a droplet that's hosting some hobby projects, but it has a public IP and a short domain name. I'm not sure how you handle logs but I wouldn't be remiss at least being a forwarder for redundancy.
18:10:49 <b_jonas> fizzie: right, but the servers where I ran stuff so far had more runtime for non-freenode reasons. and the ISP at home here is terrible, it cuts off for hours some nights.
18:11:14 <imode> I could have a ruby script sitting idle and scraping this channel from multiple parts of the network, dumping to disk and forwarding on to another server in batches if you guys want.
18:11:34 <b_jonas> imode: sorry, the multiple parts of the network was just a joke, don't take it seriously
18:11:48 <imode> netsplits are reeeeeal.
18:12:02 <b_jonas> imode: you can try to collect logs on a disk if you want, and manage the sharing later
18:12:44 <fizzie> Right now the way I handle logs isn't really set up for merging streams. Not that it couldn't be done, just I don't think I'll be attempting to do it in the very near future.
18:13:04 <imode> do you store compressed logs?
18:14:02 <fizzie> I store length-delimited https://github.com/fis/esolangs/blob/master/esologs/log.proto messages (without the event_id field, it's implicit) in a "one file per day" scheme with past days Brotli-compressed.
18:14:05 <imode> I could set up a system where we have a series of buffers that hold incoming log information from multiple sites, and we do N-way merges based on line count and then store the deltas.
18:15:42 <fizzie> I think merging multiple streams recorded from different freenode servers needs a little bit of heuristics, because there's no canonical order of messages.
18:16:26 <b_jonas> and there was that really infamous netsplit when there was twenty minutes of lag between some servers or something
18:19:16 <fizzie> I'm sure you could get it mostly correct. But I'd definitely archive all the original sequences losslessly, and only use the merged version for serving. Just so it's possible to backfill if things go wrong. Anyway, this is really not in scope right now.
18:19:54 <imode> better idea: multiple bots hosted on a single server, each DMing eachother and timing the response times. a single bot is designated as the primary scraper, and the primary scraper is based on response times. if the primary can't communicate to the other bots, a different bot with the smallest average response time to the others is selected as the primary scraper.
18:20:28 <b_jonas> imode: the problem is that if they run on a single server, then they'll all cut off when that server loses net connection
18:20:34 <b_jonas> or when that server goes down
18:20:50 <b_jonas> they need to be on different servers, ideally by very different internet service providers
18:20:51 <imode> correct, but that server is monitoring a single channel.
18:21:17 <imode> and it's also in a datacenter under monitor.
18:21:36 <b_jonas> perhaps in that indefinite future when I host a proper server, I'll make irc logs of my own, and share the ones for publically logged channels
18:21:49 <b_jonas> but that indefinite future is always years in the future no matter when you ask
18:21:57 <imode> I could do this right now.
18:22:50 <imode> ruby makes this pretty easy. let me see what I can do.
18:23:06 -!- FreeFull has joined.
18:23:13 <b_jonas> and I should do the stuff that doesn't require an always on server, just downloading stuff and processing
18:23:19 <b_jonas> and storing on my disk for later use
18:36:27 -!- ibot0 has joined.
18:36:37 -!- ibot1 has joined.
18:36:45 -!- ibot2 has joined.
18:36:51 -!- ibot1 has quit (Read error: Connection reset by peer).
18:36:51 -!- ibot2 has quit (Read error: Connection reset by peer).
18:36:52 -!- ibot0 has quit (Write error: Connection reset by peer).
18:37:04 <imode> well. that was a start.
18:37:44 <imode> they all said hi to eachother and all died.
18:40:49 -!- ibot0 has joined.
18:40:50 -!- ibot1 has joined.
18:41:23 <imode> I have to wonder how far apart I should space communication between them.
18:43:01 <imode> I should have a producer/consumer process for logs: toss a local timestamp + the message to something like RabbitMQ and have something else pick it up.
18:43:29 -!- tromp has quit (Remote host closed the connection).
18:45:17 -!- ibot1 has quit (Ping timeout: 258 seconds).
18:45:32 -!- ibot0 has quit (Ping timeout: 268 seconds).
18:53:10 -!- tromp has joined.
18:56:54 -!- lldd_ has joined.
18:57:10 -!- lldd_ has quit (Client Quit).
18:58:22 <fizzie> imode: #esoteric-blah is for testing bots, by the way.
18:58:31 <fizzie> It was some suffix, anyway.
18:58:39 <imode> sorry! I'll keep that in mind.
19:01:25 <fizzie> No, that's fine, it's just that testing can easily get out of hand. :)
19:01:27 -!- nfd has joined.
19:01:54 -!- AnotherTest_ has joined.
19:02:46 -!- zemhill_______ has joined.
19:04:23 -!- Bob- has joined.
19:04:35 -!- zemhill______ has quit (Ping timeout: 240 seconds).
19:04:35 -!- AnotherTest has quit (Ping timeout: 240 seconds).
19:04:35 -!- probablymoony has quit (Ping timeout: 240 seconds).
19:04:35 -!- sftp has quit (Ping timeout: 240 seconds).
19:04:36 -!- APic has quit (Ping timeout: 240 seconds).
19:04:36 -!- rain1 has quit (Ping timeout: 240 seconds).
19:04:37 -!- nfd9001 has quit (Ping timeout: 240 seconds).
19:04:37 -!- bobby has quit (Ping timeout: 240 seconds).
19:04:37 -!- Melvar has quit (Ping timeout: 240 seconds).
19:04:37 -!- AnotherTest_ has changed nick to AnotherTest.
19:05:01 -!- APic has joined.
19:05:07 -!- moony has joined.
19:05:33 -!- Melvar has joined.
19:05:35 -!- sftp has joined.
19:05:53 -!- rain1 has joined.
19:10:35 <esowiki> [[Special:Log/newusers]] create * CubixThree * New user account
19:15:18 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=59854&oldid=59848 * CubixThree * (+280) /* Introductions */
19:40:17 <HackEso> #esoteric-blah blah blah. Blah blah, blah blah blah blah. Blah blah blah!
19:58:41 -!- arseniiv_ has joined.
19:58:41 -!- arseniiv has quit (Read error: Connection reset by peer).
20:22:05 -!- gurmble has joined.
20:22:27 -!- grumble has quit (Read error: Connection reset by peer).
20:22:43 -!- gurmble has changed nick to grumble.
20:45:59 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=59855&oldid=59853 * Plokmijnuhby * (+230)
21:03:00 -!- arseniiv has joined.
21:06:10 -!- arseniiv_ has quit (Ping timeout: 240 seconds).
21:31:08 -!- shikhin has quit (Changing host).
21:31:08 -!- shikhin has joined.
21:54:18 -!- moei has quit (Quit: Leaving...).
22:24:41 <zzo38> In Glulx, the "ushiftr" instruction makes an unsigned shift right. The shift amount is treated as unsigned, and anything more than 32 will make the result to be zero (all bits are shifted out). So, to change 0 to 1 and all other numbers to 0, I used shifting right 1 by the input number.
22:27:49 <shachaf> kmc: https://twitter.com/lunasorcery/status/1095446373812658179
22:28:37 <shachaf> I guess you should have a compiler warning on non-explicit constructors, unless they're explicitly non-explicit?
22:30:42 <kmc> that's terrible
22:30:51 <kmc> C++ is the best
22:39:37 <j4cbo> enum color { Red, Green, Blue }; void f(char* param); f(Red)
22:39:49 <j4cbo> compiles in C, maybe C++ too
22:40:00 <j4cbo> because Red is 0 is null
22:40:12 <b_jonas> j4cbo: that actually depends on the version of C++
22:40:29 <b_jonas> or the version of C, I'm not sure which
22:40:39 <b_jonas> so these days it will no longer compile
22:40:52 <b_jonas> they restricted the rules for what counts as a null pointer expression
22:41:23 <b_jonas> but mind you, that's the theory
22:41:27 <fizzie> It should work in C, assuming no requirements beyond the standard ones.
22:41:36 <b_jonas> gcc actually accepted expressions that even the old rules said shouldn't be allowed
22:41:47 <kmc> C++ has way too much implicit behavior
22:42:06 <fizzie> "An integer constant expression with the value 0 -- is called a /null pointer constant/." "An /integer constant expression/ shall have itneger type, and shall only have operands that are -- enumeration constants, --"
22:42:13 <b_jonas> in particular, gcc used to allow { int x = 8; f(x-x); } because it figured that x-x had the value 0
22:42:21 <b_jonas> but the standard never accepted that, because it's not a constant expression
22:42:29 <fizzie> Yes, but enum constant values are integer constant expressions.
22:42:31 <b_jonas> the old rule was that any integer-valued constant expression with the value 0 worked
22:42:33 <j4cbo> one of the things that pisses me off is that the committee is so unwilling to make changes for fear of breaking existing code
22:42:43 <j4cbo> but also, sometimes they break existing code anyway
22:42:54 <b_jonas> the new rule basically only allows a simple integer literal, of any type, perhaps with parenthesis too, I'm not sure about the details
22:43:03 <j4cbo> I have personally had my code break because of a poorly thought out DR
22:43:10 <fizzie> b_jonas: Then it rejects conforming code.
22:43:24 <b_jonas> fizzie: you can actually detect the difference with overloading
22:43:27 <fizzie> I mean, if you're talking about C.
22:43:40 <b_jonas> with overloading in C++ that is
22:43:56 <b_jonas> fizzie: no, it used to accept non-conforming code
22:44:17 <kmc> shachaf: isn't it great that there are contexts where "return x;" is fine but "return (x);" is UB?
22:44:18 <b_jonas> f(x-x) is non-comforming because x-x is just a plain integer expression, so it can't be implicitly cast to a pointer (in C++)
22:44:36 <fizzie> b_jonas: Sure, I was talking from the C perspective.
22:44:41 <kmc> that is my favorite "fuck you" in C++
22:45:01 <kmc> b_jonas: it has to do with the rules for decltype(auto)
22:45:13 <kmc> which are different for an identifier vs. an expression
22:45:34 <b_jonas> every programming language is terrible
22:45:39 <b_jonas> they all have their crazy quirks
22:46:02 <shachaf> therefore they are literally all equal
22:46:26 <shachaf> might as well write everything in whitespace
22:46:27 <b_jonas> shachaf: no, some of them are much worse
22:46:34 <j4cbo> https://bugs.llvm.org/show_bug.cgi?id=23812
22:46:39 <j4cbo> I was so mad about this
22:46:50 <kmc> b_jonas: when it's an expression, it tries to make a reference
22:47:21 <fizzie> b_jonas: Looks like (again talking still only about C) GCC has no qualms about using an enum constant as a null pointer constant, but Clang has added a -Wnon-literal-null-conversion flag.
22:47:48 <fizzie> (Which just says "expression which evaluates to zero treated as a null pointer constant".)
22:48:07 <b_jonas> kmc: also, I found out that there are some cases when glibc fscanf explicitly works slightly differently from what the standard allows, in how many bytes it consumes when it fails to read certain inputs as a number, and the glibc maintainers know that but claim it's a problem with the standard
22:48:20 <b_jonas> there's a bug ticket about it
22:49:14 <shachaf> the real problem is C-style strings, anyway
22:49:53 <b_jonas> kmc: that doesn't even seem to mention return
22:50:57 <kmc> b_jonas: https://gcc.godbolt.org/z/rKLxrZ
22:52:01 <b_jonas> kmc: ah, it's in a function with the return type given as decltype(auto)
22:52:39 <kmc> this pathological example is given in _Effective Modern C++_ by Scott Meyers
22:52:44 <kmc> that book is tg
22:53:06 <b_jonas> kmc: what? but isn't that book older than decltype(auto) as function return type?
22:53:13 <kmc> the contents are very good and also the bird on the cover is top notch
22:53:23 <kmc> b_jonas: it covers C++14
22:53:38 <b_jonas> kmc: hmm. I thought it was older.
22:53:51 <b_jonas> or deduced function return type newer
22:53:56 <esowiki> [[Glutton]] N https://esolangs.org/w/index.php?oldid=59856 * CubixThree * (+4373) Created page with "Glutton is an object-based stack-based language created by [[User:CubixThree|CubixThree]]. In it, you prepare dishes made with ingredients, similar to [[Chef]], however with o..."
22:54:16 <kmc> often it presents the C++11 way, explains the drawbacks and then how C++14 improves it
22:54:39 <kmc> because 14 is more about fixing awkward stuff in 11, as opposed to a conceptual overhaul like 03 -> 11
22:55:16 <zzo38> In what case is fscanf working differently?
22:56:54 <b_jonas> zzo38: I'm not sure of the exact example, but it's one of those cases when you need a bit of lookahead, like when with format "%g" you try to scan "3.00E-scow", or with format "%i" you try to scan "0xscow"
22:57:36 <b_jonas> oh yeah, those are actually cases when the read of the number succeeds... I dunno
22:57:40 <b_jonas> it was something related to that
23:00:46 <kmc> shachaf: did you know that C++14 has polymorphic lambdas
23:00:48 <kmc> pretty fancy
23:01:40 <b_jonas> zzo38: https://sourceware.org/bugzilla/show_bug.cgi?id=12701 I think this is it
23:02:17 <shachaf> lack of fanciness is the reason i wasn't using c++
23:04:26 <shachaf> kmc: oh man, i just indexed into "counts[256]" with a char which turned out to be signed
23:04:43 <kmc> i like that one
23:04:47 <kmc> what were you doing?
23:05:05 <shachaf> trying to look for strings matching a particular pattern
23:05:09 -!- AnotherTest has quit (Ping timeout: 252 seconds).
23:05:47 <zzo38> I have avoided those problem by always using a & operator if a char value is used in that way, such as x&255 or some other number
23:06:19 <shachaf> That is avoiding the problem by thinking about the problem.
23:06:31 <kmc> I think there should be part of the C spec which specifies stronger guarantees on things where the only reason for crazy behavior is compatibility with ancient machines
23:06:34 <shachaf> My problem was that I didn't think about it. If I had I'd've taken care of it.
23:06:54 <kmc> and then compilers can support this as a language variant
23:07:19 <kmc> gcc at least warns on indexing w/ signed char
23:07:39 <zzo38> Why are you trying to write a program without thinking of the program?
23:07:58 <shachaf> I guess I should've used -Wall for this 20-line throwaway program.
23:08:05 <kmc> -Wall always
23:08:10 <shachaf> I was thinking of the program, just not of this particular edge case with char.
23:08:50 <shachaf> can i add -Weffc++ when compiling in c mode
23:09:02 <shachaf> just to make it clear why i'm compiling in c mode
23:09:35 <kmc> gcc -Whatthe -fuck
23:10:02 <kmc> gcc -funroll-me-harder
23:12:26 <shachaf> kmc: I used to think the thing about C++ being an esolang was a joke, but now I think it's a perfectly reasonable thing to say.
23:12:39 <shachaf> Not the entire language but a pretty large part of it.
23:12:59 <kmc> i mean it is a joke
23:13:03 <kmc> it's funny because it's true
23:13:21 <kmc> C++ is a hot mess
23:13:35 <shachaf> writing fancy template code appeals to the same twisted part of your mind that writing esolang code appeals to
23:13:37 -!- tromp has quit (Remote host closed the connection).
23:14:31 <kmc> esolang skills have actual uses
23:14:50 <kmc> i have often described writing exploits as weaponized esoprogramming
23:14:52 <shachaf> i mean, rop is also an esolang, but that's a legitimate reason
23:14:54 <kmc> at least sometimes
23:15:11 <kmc> weird machines
23:15:27 <shachaf> But if you're a non-eso language designer, requiring your users to esolang seems like a scow move.
23:16:01 <kmc> well templates are the quintessential feature that grew far beyond its original purpose
23:16:41 <kmc> and more specifically, SFINAE
23:17:43 <zzo38> What does "SFINAE" means?
23:17:55 <kmc> zzo38: "Substitution Failure Is Not An Error"
23:18:26 <shachaf> substituion failure is naughty and exciting
23:18:28 <kmc> zzo38: it means, if C++ tries to instantiate a template function and there is some error (type mismatch, missing method etc) then it will go on to the next overload rather than aborting compilation
23:19:13 <kmc> this was intended simply so that unrelated template functions of the same name would not interfere
23:19:24 <kmc> but it turns out to add a lot of power to template metaprogramming
23:19:55 <shachaf> there should be a version of gcc where substitution failure deletes your source file
23:20:30 <kmc> for example it makes type traits and conditional overloads possible
23:20:31 <kmc> https://shaharmike.com/cpp/sfinae/
23:20:46 <shachaf> maybe the go people had the right idea
23:22:01 <zzo38> I think this substitution failure is not error is make sense, if there is a next overload (otherwise all of the accumulated errors should be displayed, since presumably it is unable to continue in such a case, if there isn't any to continue)
23:22:05 <kmc> shachaf: there is so much complexity in C++ from the fact that references aren't first class :(
23:22:17 <kmc> zzo38: yeah
23:22:19 <shachaf> kmc: do you think a language without lvalues makes sense
23:22:23 <shachaf> where you only have pointers
23:22:35 <kmc> what are the advantages
23:22:51 <shachaf> lvalues and pointers are almost the same thing but different
23:23:15 -!- tromp has joined.
23:23:24 <shachaf> all sorts of complexity from that, which c++ tries to address with references?
23:23:38 <zzo38> I think BLISS does not use lvalues like C and BASIC, but rather it is the pointer, and to read it you must add the operator to read it. (Forth also needs explicit operators for read or write, although Forth is more flexible so you can make it possible to hide if you want to do.)
23:23:42 <pikhq> Templates are kinda fascinating. In that they were _designed_ for very simple use cases, but to make them fit in they managed to make them far more complex and general than is needed.
23:23:44 <shachaf> even in a language like c, there's a distinction between a value and a memory location that contains that value
23:23:55 <shachaf> c muddles it up a lot but it's there
23:24:09 <kmc> pikhq: yep
23:24:27 <shachaf> did you know, the "memory read" operation in c is the implicit coercion from lvalue to rvalue
23:25:06 <shachaf> zzo38: Yes, BLISS does that.
23:25:10 <pikhq> With that view in mind (and I don't think it's a bad one), what's * anyways?
23:25:13 <pikhq> A type conversion?
23:25:29 <kmc> converts a pointer rvalue to a lvalue, I suppose
23:25:31 <shachaf> * takes an rvalue-of-pointer-to-T to lvalue-of-T
23:25:49 <shachaf> A pointer is a location of a thing in memory. An lvalue is a thing that has a location in memory.
23:26:12 <pikhq> So yeah, it kinda is a type conversion.
23:26:17 <shachaf> See also http://slbkbs.org/ski-mercury.txt
23:26:21 <pikhq> Though with an rvalue to lvalue conversion in there too.
23:26:55 <shachaf> Also, given "struct A { int x, y; };", "e.y" has a different meaning depending on whether e is an lvalue or an rvalue.
23:27:12 <fizzie> It's a shame the TGCEEC contest died out.
23:27:49 <pikhq> shachaf: It's funny people act as though C is a low-level language in some absolute sense, isn't it?
23:28:11 <pikhq> (or for that matter, that "low vs. high level" has any absolute meaning)
23:28:17 <fizzie> The incomplete round had a one-shot entry (-fmax-errors=1) of <= 256 bytes of source that generated 1.5 gigabytes of error.
23:28:17 <shachaf> C is a lower-level language than most languages people use?
23:28:31 <pikhq> It is, but that's a relative statement.
23:29:01 <shachaf> fizzie: Pft, with 256 bytes I want at least Ackermann levels of error.
23:30:03 <pikhq> A high-level assembler is higher level than raw machine code, yet lower than C.
23:30:29 <shachaf> OK, but "high-level" and "low-level" aren't really precise terms anyway.
23:31:26 <zzo38> There is also different kind of assembly language for different computers (and VMs), and also different assemblers have different features for macros and so on.
23:31:55 <kmc> zzo38: which assemblers do you like?
23:32:34 <kmc> zzo38: also, do you prefer Intel or AT&T syntax?
23:32:51 <zzo38> kmc: I have used MMIXAL, and otherwise mainly assemblers I either wrote myself (e.g. the MIXPC assembler, and Glasm) or modified for my use (e.g. MagicKit)
23:33:17 <shachaf> plan 9 syntax, obviously, hth
23:33:18 <imode> fizzie: got a link to that? I'm gonna be AFK but I'd love to see it.
23:33:32 <pikhq> kmc: Knowing zzo38, the answer is "neither" whenever you present two common choices.
23:34:24 <shachaf> If you had a single-use halting oracle, what would you ask it?
23:35:34 <pikhq> I wonder if there is a way to use a single-use halting oracle to get a more general solution.
23:35:54 <zzo38> Yes, that was my first idea too
23:35:56 <fizzie> imode: https://tgceec.tumblr.com/ was the site.
23:39:19 -!- tromp has quit (Remote host closed the connection).
23:46:39 -!- tromp has joined.
23:47:03 <zzo38> Do you have opinion of XYZABCDE.ZZT game and possibly the sequel (and possibly sequel of the sequel)? At the end of the first one the main character's wing is fixed, but the operetta house has been destroyed by Giant Who Hate Liberty Bell March. The sequel might not be ZZT; in that case, perhaps any magic diamonds you have had by the end of the first one, are now worthless
23:49:00 <b_jonas> kmc: I would recommend yasm if you want an assembler for x86
23:50:00 <zzo38> I have not used modern x86 assembly language
23:50:28 <shachaf> zzo38: Do you like the Mill?
23:50:52 <zzo38> I have been unable to find much information about Mill last time I checked
23:51:27 <shachaf> Unfortunately most information is in videos.
23:52:54 <b_jonas> have you ever seen an electrocardiograph machine that had a built-in CRT display?
23:55:30 -!- Lord_of_Life_ has joined.
23:57:37 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
23:57:47 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:09:59 -!- tromp has quit (Remote host closed the connection).
00:12:11 * oerjan considered just reading the backscroll but figured the logs are more convenient when this long
00:19:29 -!- Zexxo has joined.
00:25:40 -!- tromp has joined.
00:30:37 -!- Zexxo has changed nick to Guest52555.
00:30:40 -!- tromp has quit (Ping timeout: 259 seconds).
00:49:04 -!- arseniiv has quit (Ping timeout: 258 seconds).
00:58:40 -!- tromp has joined.
00:59:12 <esowiki> [[WII2D]] https://esolangs.org/w/index.php?diff=59857&oldid=59772 * Cortex * (+15)
01:02:51 -!- tromp has quit (Ping timeout: 244 seconds).
01:15:34 -!- olsner has quit (Ping timeout: 250 seconds).
01:53:19 -!- Guest52555 has quit (Quit: Page closed).
02:01:06 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=59858&oldid=59855 * Oerjan * (+47) Unsigned
02:43:01 -!- tromp has joined.
02:47:08 -!- tromp has quit (Ping timeout: 245 seconds).
03:09:57 -!- b_jonas has quit (Quit: leaving).
03:46:27 -!- sebbu has quit (Ping timeout: 240 seconds).
03:59:30 -!- sebbu has joined.
04:03:29 -!- tromp has joined.
04:05:24 -!- FreeFull has quit.
04:07:44 -!- tromp has quit (Ping timeout: 246 seconds).
04:15:09 <zzo38> In Glulx, 0 is also a valid lvalue, meaning don't write the value. (Other numbers are not a valid lvalue though)
04:36:02 -!- FoxyBoxes has joined.
05:20:40 -!- iconmaster has joined.
05:51:41 -!- tromp has joined.
05:55:53 -!- tromp has quit (Ping timeout: 245 seconds).
06:07:22 -!- oerjan has quit (Quit: Nite).
06:27:33 <shachaf> kmc: Oddly enough, Compose < 3 generates a ♥ BLACK HEART SUIT
07:14:01 -!- nfd has quit (Read error: Connection reset by peer).
07:22:31 -!- tromp has joined.
07:26:43 -!- tromp has quit (Ping timeout: 245 seconds).
07:50:45 -!- xkapastel has quit (Quit: Connection closed for inactivity).
08:12:43 -!- imode has quit (Ping timeout: 244 seconds).
08:34:43 -!- tromp has joined.
08:54:02 -!- rodgort has quit (Quit: Leaving).
08:55:37 -!- lambdabot has quit (Remote host closed the connection).
08:58:04 -!- lambdabot has joined.
08:58:11 -!- rodgort has joined.
09:06:43 -!- rodgort has quit (Quit: Leaving).
09:16:56 -!- rodgort has joined.
09:29:22 -!- tromp has quit (Remote host closed the connection).
09:32:36 -!- AnotherTest has joined.
09:51:15 -!- tromp has joined.
11:56:35 -!- Lord_of_Life_ has joined.
11:58:22 -!- Lord_of_Life has quit (Ping timeout: 258 seconds).
11:58:52 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
13:05:48 -!- iconmaster has quit (Ping timeout: 250 seconds).
14:17:20 -!- FoxyBoxes has quit (Remote host closed the connection).
15:18:45 -!- Sgeo has joined.
15:19:11 -!- iconmaster has joined.
15:19:26 -!- iconmaster has quit (Read error: Connection reset by peer).
15:21:07 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
15:42:37 -!- AnotherTest has quit (Ping timeout: 258 seconds).
16:19:47 -!- xkapastel has joined.
16:20:10 -!- AnotherTest has joined.
16:29:09 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=59859&oldid=59786 * Areallycoolusername * (+51) /* E */
16:40:41 -!- imode has joined.
16:44:53 -!- arseniiv has joined.
17:13:47 -!- oerjan has joined.
17:18:10 <int-e> Did https://www.theregister.co.uk/2019/02/12/current_gps_epoch_ends/ come up here?
17:18:23 -!- arseniiv has quit (Ping timeout: 246 seconds).
17:20:08 <Taneb> That's about 30 bits for "time in seconds from epoch"
17:32:14 <oerjan> ...i don't why you'd need the week to find position, isn't it based on fractions of seconds in difference?
17:32:44 <oerjan> if the device use it to set an actual clock, that'd be a different matter.
17:33:18 <oerjan> which they probably do, since it's easy.
17:33:32 <oerjan> but still, should not affect navigation.
17:34:28 <oerjan> i suppose it'd think downloaded maps had wrong time stamps from the future.
17:39:06 <esowiki> [[EZ]] N https://esolangs.org/w/index.php?oldid=59860 * Areallycoolusername * (+1257) Created page with "[[EZ]] is an [[esoteric programming language]] made by [[User: Areallycoolusername|Areallycoolusername]]. It's the easiest language in the world. It's also made for code golf...."
17:42:30 <esowiki> [[EZ]] https://esolangs.org/w/index.php?diff=59861&oldid=59860 * Areallycoolusername * (+57) /* Specifics */
17:44:35 -!- LKoen has joined.
17:57:34 <esowiki> [[EZ]] https://esolangs.org/w/index.php?diff=59862&oldid=59861 * Areallycoolusername * (+606) /* Implementations */
17:58:03 <esowiki> [[EZ]] https://esolangs.org/w/index.php?diff=59863&oldid=59862 * Areallycoolusername * (-23) /* Specifics */
18:00:59 <esowiki> [[EZ]] https://esolangs.org/w/index.php?diff=59864&oldid=59863 * Areallycoolusername * (-17) /* Implementations */
18:02:00 <esowiki> [[EZ]] https://esolangs.org/w/index.php?diff=59865&oldid=59864 * Areallycoolusername * (+24)
18:21:22 -!- arseniiv has joined.
18:26:28 <zzo38> Will the BIOS and BASIC interpreters from old computers be released as open source?
18:37:37 -!- oerjan has quit (Quit: Later).
18:46:07 -!- j-bot has quit (Ping timeout: 240 seconds).
18:52:37 -!- j-bot has joined.
19:09:29 -!- xkapastel has quit (Quit: Connection closed for inactivity).
19:22:28 <orin> guess what google calendar uses 32 bit datetimes
19:22:41 <orin> so you can't set a reminder for 2060
19:22:58 -!- LKoen has quit (Remote host closed the connection).
19:40:31 <shachaf> I can set an event for 2060.
19:59:34 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
20:00:28 -!- zzo38 has quit (Ping timeout: 245 seconds).
20:02:41 -!- nfd9001 has joined.
20:14:57 -!- xkapastel has joined.
20:31:29 <esowiki> [[Analog Synth]] https://esolangs.org/w/index.php?diff=59866&oldid=58753 * Salpynx * (+72) Interpreter, use strict sigmas for ixqus symbols where possible
20:43:01 -!- zzo38 has joined.
20:57:07 -!- FreeFull has joined.
20:58:14 -!- b_jonas has joined.
20:58:47 <b_jonas> `bobadventureslist http://bobadventures.comicgenesis.com/d/20190212.html
20:58:48 <HackEso> bobadventureslist http://bobadventures.comicgenesis.com/d/20190212.html: b_jonas
21:01:45 <b_jonas> I bought an indoor-outdoor thermometer for home. Now if the wire doesn't break from it being led out a window, then I'll be able to tell the outdoor temperature without opening a window.
21:01:56 <b_jonas> It currently says 4°C outdoor.
21:02:42 <int-e> . o O ( Just get a nearby airport and use @metar )
21:02:50 <HackEso> metasepia knew the weather at your nearest airport, and also something about ducks.
21:04:41 <lambdabot> CYYZ 132000Z 25026G33KT 5SM R23/4000VP6000FT/U BLSN SCT040 BKN110 BKN250 M04/M08 A2957 RMK CU3AC2CI1 SLP024
21:06:57 <b_jonas> int-e: sure, I can already look up the weather in the internet. It says 2°C, which matches, because it's 1 or 2 kelvin warmer in the city measured near the wall of a house than at the airport measured in the way meteorologists like to measure.
21:07:09 <zzo38> Do they still not have METAR?
21:07:25 <lambdabot> CYVR 132100Z VRB02KT 15SM FEW008 FEW015 FEW070 01/M03 A2967 RMK CU1SC1AC1 SC TR AC TR SLP050
21:08:32 <lambdabot> LHBP 132100Z 22006KT 8000 NSC 02/02 Q1033 NOSIG
21:08:55 <j4cbo> METAR encoding (and aviation weather in general) is the stupidest thing
21:09:23 <j4cbo> all designed back in the telex days to fit as much information as possible into as few characters as possible
21:09:29 <b_jonas> the varying units of measure? nobody could get the americans to use it in any other way
21:09:56 <j4cbo> winds aloft forecasts encode speeds above 99 by adding 50 to the heading section
21:09:59 <b_jonas> j4cbo: eh no, it's not _that_ compressed, and at least this way it's somewhat parseable. my only big complaint is that it doesn't have a full date.
21:10:12 <j4cbo> and other crazy stuff like that
21:10:30 <j4cbo> I mean I appreciate it in a #esoteric sort of way :P
21:11:09 <b_jonas> j4cbo: oh, I didn't know they did that with winds
21:11:46 <j4cbo> only in winds/temps aloft forecasts
21:12:31 <b_jonas> not that I'd be able to test that, because winds with speed 100 knots or higher are very rare here
21:12:57 <b_jonas> living in a basin with no strong winds and no strong earthquakes has some advantages
21:15:56 <j4cbo> looks like they just add a digit for metars
21:16:51 <b_jonas> j4cbo: um... how does that decode?
21:16:59 <b_jonas> 280 degrees heading, but then what?
21:17:15 <j4cbo> 100 knots with gusts to 117
21:19:14 <lambdabot> KOAK 132053Z 14017KT 8SM -RA BKN027 OVC032 14/12 A2955 RMK AO2 SLP007 P0005 60038 T01390117 58024
21:20:11 <shachaf> metar isn't particularly good at either shortness or human-readability, but it's OK for the combination.
21:20:32 <shachaf> Also I sometimes pretend to understand it but mostly I just look at the temperature.
21:21:19 <lambdabot> KMSO 132118Z 33006KT 1 1/4SM -SN BKN018 OVC041 01/M03 A2944 RMK AO2 P0001 T00061028
21:21:57 -!- ais523 has joined.
21:22:10 <HackEso> Missoula International Airport (MSO, KMSO)
21:22:42 <ais523> on the subject of airports, EGBB has a big "Hello world" sign above its main entrance
21:22:47 <lambdabot> EGBB 132050Z 14004KT CAVOK 04/03 Q1030
21:22:50 <HackEso> lambdabot: @@ @@ (@where weather) CYUL ENVA ESSB KOAK PAMR
21:23:05 <shachaf> lambdabot: @@ @@ (@where weather) CYUL ENVA ESSB KOAK PAMR
21:23:07 <lambdabot> CYUL 132100Z CCA 22016G22KT 15SM DRSN FEW040 SCT065 OVC080 M00/M05 A2950 RMK CF1SC3AC5 CF TR SLP993 \ ENVA 132120Z 09008KT 8000 BKN043 01/00 Q1013 RMK WIND 670FT 18009KT \ ESSB 132050Z 31007KT
21:23:07 <lambdabot> CAVOK 05/M01 Q1019 \ KOAK 132053Z 14017KT 8SM -RA BKN027 OVC032 14/12 A2955 RMK AO2 SLP007 P0005 60038 T01390117 58024 \ PAMR 132053Z VRB05KT 10SM SCT041 BKN090 M07/M14 A2984 RMK AO2 SLP106 I3001
21:23:15 <shachaf> Maybe that was a good idea.
21:23:51 <ais523> apparently there's a surprising lack of weather in Birmingham at the moment
21:26:30 <ais523> when's the last time we had a proper botloop in here?
21:26:40 <ais523> several years ago, they used to happen pretty much all the time
21:26:52 <ais523> but then the bot operators got wise and started adding protections against them
21:27:10 <shachaf> isn't "bot loop" redundant hth
21:27:48 <ais523> what's the redundant part? not the "loop", because bots can do things that aren't loops, so it must be the "bot"
21:27:58 <ais523> it doesn't seem impossible that the loop could involve a human, though
21:29:23 <shachaf> By the way, I've taken to using "nonterminates" as a verb, though it's a bit awkward.
21:29:25 <int-e> > fix (error . ("loop" ++"))
21:29:26 <lambdabot> lexical error in string/character literal at end of input
21:29:31 <int-e> > fix (error . ("loop" ++))
21:29:32 <shachaf> Is there something else I should say?
21:29:32 <lambdabot> "*Exception: loop*Exception: loop*Exception: loop*Exception: loop*Exception:...
21:30:12 <ais523> why does the output of fix error end up in quotes?
21:30:28 <shachaf> The '"' is printed because it's showing a string, before the error thunk is forced.
21:30:31 <int-e> Haskell has structured bottoms. They probably come from all the sitting around (it's lazy).
21:30:43 <ais523> > (error "test") : String
21:30:45 <lambdabot> • Data constructor not in scope: String :: [a]
21:30:53 <ais523> > (error "test") : [Char]
21:30:55 <lambdabot> • Data constructor not in scope: Char
21:31:04 <ais523> > (error "test") :: [Char]
21:32:05 <ais523> the output of «"*Exception: *Exception:» … confused me because I thought it was stringifying the exceptions somehow
21:32:25 <ais523> but it isn't, it's trying to print a string and then double-faulting repeatedly
21:32:35 <shachaf> This confused me when I first saw it too.
21:32:36 <ais523> now I wonder why Haskell doesn't have protection against double faults
21:32:54 <kmc> > undefined :: String
21:32:55 <shachaf> triple faults should reboot the machine lambdabot is on
21:33:20 <kmc> > undefined :: ()
21:33:30 <ais523> shachaf: I need to use that idea next time I write a non-serious non-constrained esolang
21:33:56 <shachaf> x86 is a p. serious esolang
21:34:31 <ais523> Microsoft had a serious competitive advantage for a whlie by being the first people to figure out that intentional triple-faults were useful as a way to get from protected mode back into real mode
21:34:40 <int-e> Hey, triple faults are useful, they get you out of protected mode!
21:35:28 <ais523> IBM's solution to that problem was pretty esoteric (it sent a command to the keyboard controller to get it to send a reboot input to the motherboard)
21:35:58 <shachaf> I like the way Windows used illegal instructions to switch to kernel mode back in the day.
21:36:05 <int-e> Do we still have an A20 gate?
21:36:59 <b_jonas> ais532: yeah, lambdabot is careful, putting some prefix to its message contents often; I can't use jevalbot for a loop because I wrote it so that would be cheating; that leaves fungot and lambdabot, and I don't think it's possible to loop the two of them
21:36:59 <fungot`> b_jonas: can anyone help me with
21:37:15 <b_jonas> s/lambdabot is/HackEso is/
21:37:19 <fungot`> shachaf: what is the business? how are modifications synchronized between agents? :)
21:37:39 <b_jonas> also it's possible that some loops happen entirely in private messages
21:37:55 <b_jonas> hmm, let me check if perlbot is willing to private message anyone these days
21:38:25 <int-e> uh does lambdabot have to ignore fungot as well...
21:38:26 <fungot`> int-e: you could also sell them as " plain svg" instead of forty-two.
21:38:41 <b_jonas> hmm no, I think buubot3 doesn't have that anymore
21:38:47 <b_jonas> that used to be in buubot1 or buubot2 or something
21:38:55 <zzo38> If the message uses NOTICE then that can also avoid it presumably
21:39:29 <int-e> zzo38: AFAIUI mirc destroyed NOTICE.
21:39:47 <int-e> by deciding to produce popups for them.
21:40:15 <b_jonas> ais523: you mean in 80286?
21:40:30 <int-e> even in irssi notices to channels tend to look ugly.
21:40:44 <ais523> int-e: I looked it up; apparently the A20 gate was part of the motherboard until the 486, at which point it became part of the processor controlled via a processor pin; then with Nehalem, it was changed to a hardware feature that was controlled over a bus rather than via a pin; then with Haswell it was removed entirely
21:40:51 <int-e> b_jonas: yes, that was for 80286
21:41:00 <ais523> perhaps DOSbox has an ability to emulate it in software
21:41:31 <int-e> emulating the A20 gate with paging sounds trivial.
21:42:12 <zzo38> It is not your fault that your users are using a IRC client that does not work properly.
21:42:21 <int-e> ais523: thanks. I just had not checked on the fate of the A20 gate in the past 5 or so years.
21:42:35 <b_jonas> int-e: it is, and back before x86_64, all the programs that emulated real mode programs with the cpu's v86 feature did use paging that way
21:42:40 <ais523> zzo38: even things that aren't your fault have to be worked around sometimes :-(
21:42:54 <b_jonas> x86_64 took away that ability because the speed of emulating real mode no longer matters
21:43:05 <int-e> zzo38: unfortunately, suffering for the mistakes of others is the norm rather than the exception.
21:43:28 <b_jonas> so we just emulate DOS all in software because all the remaining real mode DOS games run fast enough that way, every DOS game that needs more performance switches to protected mode anyway
21:44:37 <zzo38> Some people (including myself) still write real mode DOS programs, although often it is designed so that it can work on DOSBOX anyways (except 8088MPH)
21:44:47 <b_jonas> ais523: at least bots tend to be pretty consistent in recognizing prefixes or invocations only at the very start of the line, so the workaround of putting a space or something at the start of your message to escape the potential invocation seem to be a good alternative
21:45:32 <b_jonas> zzo38: sure, you can do it, it's just that you don't mind if the emulation is slowed down a bit, because if you wanted a high performance program, you wouldn't use real mode anyway
21:46:01 <ais523> b_jonas: fungot recognises its name anywhere
21:46:01 <fungot`> ais523: i looked at were inadequate. the implementation of the fingerprint handling, all of which have emacs, which i think should appear real soon now
21:46:17 <ais523> b_jonas: it's not obvious that real mode has bad performance
21:46:21 <b_jonas> that's why I wondered if it could be looped with a bot
21:46:33 <b_jonas> one that generally answers fungot's reply
21:46:38 <ais523> especially in unreal mode (which is where you switch to protected mode to change the memory architecture from segmented to flat, then switch back)
21:47:55 <b_jonas> HackEso doesn't respond to its name, and I don't think lambdabot does either
21:48:27 <b_jonas> but it needs the at sign, which you won't get often from fungot
21:48:27 <fungot`> b_jonas: yes, but you should at least have a chunk of memory and gc interfered with the benchmarks
21:48:31 <b_jonas> and both are limited to one line of answer
21:48:57 <shachaf> Is there a canonical way to generate some number of characters uniformly from an alphabet given a seed (like the output of a hash function)?
21:49:20 <b_jonas> @run var "`echo BBdNkmBhaMAA"
21:49:28 <b_jonas> right, lambdabot puts a space
21:49:36 <b_jonas> so only fungot will listen to it
21:49:36 <fungot`> b_jonas: i just hit the damn thing to clear the record for keeping up a stream of the elements
21:50:43 <shachaf> It's still possible to loop two lambdabots together as far as I know.
21:51:18 <b_jonas> how do you ask my learned and honorable friend to evaluate underload?
21:51:36 <ais523> you probably did it correctly, that progroduces no output though
21:52:09 <fungot`> shachaf: write a mode for that in the forked side never returns?
21:52:11 <HackEso> fungot is our beloved channel mascot and voice of reason.
21:52:40 <ais523> ^ul ((^ul )SaS(:^)S):^
21:52:53 <rain1> ^ul ((^ul )SaS(:^)S):^
21:53:08 <ais523> ^ul ((`echo ^ul )SaS(:^)S):^
21:53:08 <fungot`> `echo ^ul ((`echo ^ul )SaS(:^)S):^
21:53:08 <HackEso> ^ul ((`echo ^ul )SaS(:^)S):^
21:53:17 <ais523> fungot doesn't listen to hackeso, though
21:53:17 <fungot`> ais523: the semantics of a loop return expression are not quite right, since ( iirc), 1.5 ( fnord)
21:53:22 <ais523> so the loop won't continue
21:53:31 <b_jonas> ^ul (`echo ^ul (VFmvbAmpx0T0)S)S
21:53:40 <ais523> also, that's a surprisingly relevant comment it just made
21:53:40 <b_jonas> that's probably because HackEso puts a prefix
21:54:10 <b_jonas> and my honorable and learned friend, correctly, doesn't listen when there's a prefix before the hat
21:54:36 <zzo38> What is the shortest way to implement the function (x&&y?1:0) in Glulx?
21:54:50 <ais523> I don't know what Glulx is
21:55:18 <zzo38> ais523: https://www.eblong.com/zarf/glulx/glulx-spec.html
21:56:14 <b_jonas> @run var "^ul (89U+Z6Ma7Mvi)"
21:56:28 <ais523> zzo38: is there any restriction on how large a and b can be?
21:56:46 <b_jonas> what other bot we have that we could loop then?
21:56:53 <ais523> if they're limited to 16 bits, it's probably mul followed by jz
21:57:04 <zzo38> ais523: Up to 32-bits, signed.
21:57:10 <ais523> if they could use 32 bits, I can't see a shorter way than using two jumps
21:57:36 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ .
21:58:25 <zzo38> I do know that (x?0:1) is implemented using "ushiftr 1,x,$" (due to how Glulx bit shifts work, this will always work)
21:58:46 <b_jonas> EgoBot is still in there? hmm
21:59:18 <HackEso> metasepia knew the weather at your nearest airport, and also something about ducks.
22:00:54 <zzo38> (Fortunately the function (x&&y?1:0) is rarely needed, because it can usually be optimized out when converting from OASYS.)
22:00:56 <ais523> thutubot had a bug that caused it to repeat everything that lambdabot said
22:01:06 <ais523> so we stopped taking it into this channel when lambdabot got widely used here
22:01:47 <ais523> where are you getting those random strings from? they don't look like keyboard mashing
22:02:08 <b_jonas> ais523: random generator, base64 but with the two extra characters being + and -
22:03:10 <ais523> [CTCP] Received CTCP-PING reply from ais523: 27 seconds.
22:03:17 <b_jonas> ``` openssl rand -base64 10 | perl -ne 'y,/,-,;/(.{12})/ and print$1' # this basically, but I pipe it to xclip
22:03:57 <b_jonas> what does lambdabot listen to? prefix at or question mark or ":t" right?
22:04:00 <lambdabot> • Perhaps you meant ‘for’ (imported from Data.Traversable)
22:04:36 <ais523> b_jonas: I think it's @ or ? or : or >
22:04:50 <ais523> but not all strings starting with those are valid commands
22:05:00 <b_jonas> ais523: but it accepts its name before that
22:05:05 <b_jonas> which makes it much easier
22:05:14 <b_jonas> because you could perhaps make other bots say its name
22:11:03 <b_jonas> and even if I were to use jevalbot, which I shouldn't, I don't think something like [ 10$,:'fungot' would loop
22:11:03 <fungot`> b_jonas: why would that be irrelavent here it is with undefined order.
22:11:59 <b_jonas> fungot: ^ul (vhcfvGaClerQ)S
22:11:59 <fungot`> b_jonas: neither one do i learn lambda calculus? i think its hansen though, i don't
22:12:29 <b_jonas> my honorable and learned friend won't recognize a hat command with its name before it
22:12:40 <fizzie> FWIW, I've been thinking of reclaiming the ! prefix for esowiki (and maybe renaming it to "esolangs") if I stick the BF Joust commands on it, because conventionally those have started with !. Probably not exclusively, but at least !bfjoust and !bftest (provisional name) and *potentially* !help. Because it isn't likely EgoBot is going to come back, and that thing has somewhat of a semi-official status.
22:13:17 <fizzie> Oh, fungot` still has a tick.
22:13:18 <fungot`> fizzie: fnord you're in israel though). :) i second jensa's question, though. i can't currently spout something like...
22:13:26 -!- fungot` has changed nick to fungot.
22:13:33 <ais523> fizzie: would those control zemhill or egojoust?
22:13:42 <b_jonas> fungot: ^ul (gbnc-HivUrYQ)S
22:13:42 <fungot> b_jonas: ' wuss' is pretty weird :)
22:13:51 <b_jonas> he won't work with the prefix
22:14:00 <b_jonas> he won't run the underload command
22:14:17 <int-e> lambdabot: @help run
22:14:17 <lambdabot> run <expr>. You have Haskell, 3 seconds and no IO. Go nuts!
22:14:34 <ais523> also, bf joust is mostly dead nowadays, I think it's finally gotten close to solved (I've been wrong about this in the past, but that doesn't necessarily mean I'm wrong this time)
22:14:39 <j4cbo> triple faults are out, CATERR# is in
22:15:13 <fizzie> ais523: They'd control something I'd put under (probably) https://esolangs.org/bfjoust or https://bfjoust.esolangs.org/ that would get all of the state and history from zemhill (which I would retire).
22:16:13 <b_jonas> fizzie: why don't you just call it zemhill then?
22:16:13 <zemhill_______> ais523: I do !zjoust; see http://zem.fi/bfjoust/ for more information.
22:16:38 <fizzie> And it's fine if it's dead, less pressure for me to finish the migration. I'd just sort of like to stop running "zemhill"; not that it has any maintenance needs to speak of, just for general principles.
22:16:38 <b_jonas> or does someone else has that name?
22:17:10 <fizzie> No, it's just called zemhill because it was hosted in a zem.fi URL, if I migrate it to be "officially" under esolangs.org the name no longer fits so much.
22:17:46 <fizzie> I guess if people feel it should still be called zemhill, that's fine. I can retain the zjoust/ztest commands too. Don't really have any preference one way or another.
22:18:07 <fizzie> Also zemhill collects underscores the same way others collect... uh, some collectable thing.
22:19:08 <ais523> now I'm wondering how you IV-optimise underscores for competitive battling
22:19:18 <b_jonas> although then it shouldn't have more than six in its nick, it would have to store them in that computer terminal thingy
22:19:19 <fizzie> (It's using the "Cinch" Ruby IRC bot framework, I'm blaming that for the nick behaviour.)
22:23:27 -!- xkapastel has quit (Quit: Connection closed for inactivity).
22:25:54 <b_jonas> lambdabot and perlbot could probably be looped in private message
22:26:26 <b_jonas> because perlbot prints anything in private message, and also accepts commands with a preceding space
22:27:47 <b_jonas> but it's hard to *start* such a bot loop
22:28:18 <b_jonas> you'd need to do it when one of the bots are disconnected, predicting when it will reconnect, taking its nick temporarily, I think
22:29:36 <b_jonas> it could be easier if we found a channel they share
22:31:20 <b_jonas> lambdabot plus geordi might be doable too. do we know a channel those too share?
22:32:04 <b_jonas> that won't work, geordi cares about the spaces
22:33:02 -!- Sgeo has quit (Read error: Connection reset by peer).
22:34:02 -!- trn has quit (Remote host closed the connection).
22:34:14 -!- trn has joined.
22:42:52 -!- AnotherTest has quit (Ping timeout: 268 seconds).
22:47:07 -!- LKoen has joined.
23:18:51 -!- b_jonas has quit (Quit: leaving).
23:48:30 <shachaf> kmc: do you like how the mill has two instruction pointers, one going forward and one going backward
23:48:41 <shachaf> because they divide the instruction stream into two parts and jump into the middle
23:57:28 -!- Lord_of_Life_ has joined.
23:58:48 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
23:59:51 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:10:55 -!- sleepnap has joined.
00:42:32 -!- tromp has quit (Remote host closed the connection).
00:44:17 -!- Sgeo has joined.
00:59:11 -!- sleepnap has left.
01:12:04 -!- ashirase_ has joined.
01:14:06 -!- ais523 has quit (Quit: quit).
01:15:15 <kmc> shachaf: I didn't know about that so no, I didn't like it, but maybe I do now?
01:53:37 -!- oerjan has joined.
01:54:36 -!- Vilivikhorith has joined.
02:05:09 -!- arseniiv has quit (Ping timeout: 258 seconds).
02:24:51 -!- 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.”).
02:26:48 -!- arseniiv has joined.
02:44:47 -!- arseniiv_ has joined.
02:46:26 -!- arseniiv has quit (Ping timeout: 246 seconds).
02:51:52 -!- moonythedwarf has joined.
02:51:56 <HackEso> [U+FF2E FULLWIDTH LATIN CAPITAL LETTER N]
03:03:17 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59867&oldid=59847 * A * (-1292) Blanked the page
03:03:41 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=59868&oldid=59858 * A * (-668) Blanked the page
03:06:41 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59869&oldid=59867 * A * (+1292) I can use it as an example.
03:08:04 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59870&oldid=59869 * A * (-951) Aha.
03:08:33 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=59871&oldid=59868 * A * (+668) Revert the edits
03:09:23 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=59872&oldid=59871 * A * (+94) /* Impossible */
03:09:31 -!- moonythedwarf has quit (Remote host closed the connection).
03:10:15 <kmc> shachaf: switching to PuTTY so I can see more Unicode characters
03:10:21 <kmc> hit me w/ some emoji
03:13:01 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59873&oldid=59870 * A * (+765)
03:14:21 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59874&oldid=59873 * A * (-37)
03:16:59 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=59875&oldid=59872 * A * (-762) Blanked the page
03:17:38 <shachaf> fizzie: got any fresh emoji from the latest unicode release
03:45:33 -!- tromp has joined.
03:49:47 -!- tromp has quit (Ping timeout: 240 seconds).
04:30:04 -!- FreeFull has quit.
04:34:16 -!- tromp has joined.
04:38:46 -!- tromp has quit (Ping timeout: 250 seconds).
05:19:30 -!- sebbu has quit (Ping timeout: 250 seconds).
05:22:48 <zzo38> I wrote a program to compile OASYS into Glulx, although there may be a few bugs, and some further optimizations may be possible. How should it be done optimizing a branch based on a AND or OR condition? In OASYS, a AND and OR conditions are not short circuit, and also it is necessary to ensure the stack effect is correct. However, unlike OASYS, in Glulx it is OK to leave junk on the stack when a function returns; it will be discarded automatically
05:28:41 <zzo38> (In OASYS it is not allowed to leave junk on the stack when returning from a function.)
05:28:46 -!- tromp has joined.
05:32:58 -!- tromp has quit (Ping timeout: 245 seconds).
05:35:03 <shachaf> I only found out what that thing is recently.
06:22:20 -!- tromp has joined.
06:22:47 -!- Sgeo_ has joined.
06:26:36 -!- Sgeo has quit (Ping timeout: 268 seconds).
06:26:58 -!- tromp has quit (Ping timeout: 258 seconds).
06:35:05 -!- oerjan has quit (Quit: Nite).
06:45:49 -!- Sgeo__ has joined.
06:49:12 -!- Sgeo_ has quit (Ping timeout: 258 seconds).
07:04:47 -!- fractal has quit (Ping timeout: 240 seconds).
07:07:32 -!- arseniiv_ has changed nick to arseniiv.
07:22:28 -!- tromp has joined.
07:27:02 -!- tromp has quit (Ping timeout: 268 seconds).
07:27:48 -!- Sgeo_ has joined.
07:32:00 -!- Sgeo__ has quit (Ping timeout: 272 seconds).
08:00:53 -!- arseniiv has quit (Ping timeout: 258 seconds).
08:19:05 -!- LKoen has joined.
08:23:45 -!- fractal has joined.
08:33:51 -!- imode has quit (Ping timeout: 258 seconds).
08:36:49 -!- Sgeo__ has joined.
08:37:27 -!- tromp has joined.
08:40:07 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
08:46:55 -!- LKoen_ has joined.
08:50:20 -!- LKoen has quit (Ping timeout: 257 seconds).
09:02:34 -!- LKoen has joined.
09:06:26 -!- LKoen_ has quit (Ping timeout: 258 seconds).
09:11:46 -!- AnotherTest has joined.
09:31:06 -!- LKoen_ has joined.
09:32:19 -!- xkapastel has joined.
09:34:03 -!- LKoen has quit (Ping timeout: 252 seconds).
09:45:30 -!- LKoen has joined.
09:48:36 -!- LKoen_ has quit (Ping timeout: 257 seconds).
10:04:12 -!- ashirase_ has quit (Ping timeout: 250 seconds).
10:09:56 -!- ashirase has joined.
11:03:38 -!- LKoen_ has joined.
11:06:48 -!- LKoen has quit (Ping timeout: 258 seconds).
11:40:07 -!- LKoen has joined.
11:42:45 -!- LKoen_ has quit (Ping timeout: 252 seconds).
11:51:59 -!- xkapastel has quit (Quit: Connection closed for inactivity).
11:57:45 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
12:00:57 -!- Lord_of_Life has joined.
12:07:48 -!- LKoen has quit (Remote host closed the connection).
12:16:02 -!- LKoen has joined.
12:35:25 -!- wob_jonas has joined.
12:46:19 -!- LKoen has quit (Remote host closed the connection).
13:00:26 -!- ashirase has quit (Remote host closed the connection).
13:05:32 -!- LKoen has joined.
13:41:32 -!- xkapastel has joined.
14:15:41 -!- LKoen_ has joined.
14:19:14 -!- LKoen has quit (Ping timeout: 258 seconds).
14:28:23 <orin> I found a stupid way to get data out of a multithreaded program
14:28:47 <orin> none of the other threads output anything above \177 in practice
14:31:55 <orin> thus, void eputsup(char*s){while(*s){*s+=0200;fputc(*s,stderr);s++;}}
14:34:18 <orin> then you can use tr to filter out your output and fix it
14:38:34 <orin> because at least multithreading can't result in mixing individual bits of output between threads
14:40:42 <wob_jonas> orin: couldn't you just write to a separate output file instead?
14:51:43 -!- LKoen has joined.
14:53:48 <HackEso> biweekly/The word "biweekly" is half synonymous with the word --> "bimonthly".
14:54:56 <wob_jonas> ``` hg log -T "{desc}\n" wisdom/biweekly/the # ah
14:54:57 <HackEso> <int-e> learn biweekly/The word "biweekly" is half synonymous with the word --> "bimonthly".
14:55:15 -!- LKoen_ has quit (Ping timeout: 252 seconds).
14:55:48 -!- AnotherTest has quit (Ping timeout: 252 seconds).
14:58:55 <wob_jonas> int-e: is that some kind of deliberate joke, or is that an accidental use of learn instead of slashlearn?
14:59:54 -!- Sgeo__ has quit (Read error: Connection reset by peer).
15:00:18 -!- Sgeo__ has joined.
15:05:15 -!- user24 has joined.
15:06:03 <Taneb> wob_jonas: that looks like an accident
15:08:40 <int-e> wob_jonas: what Taneb said
15:09:25 <wob_jonas> `slashlearn biweekly//The word "biweekly" is half synonymous with the word --> "bimonthly".
15:09:27 <HackEso> Learned 'biweekly': The word "biweekly" is half synonymous with the word --> "bimonthly".
15:09:32 <HackEso> The word "biweekly" is half synonymous with the word --> "bimonthly".
15:10:07 <wob_jonas> the horribly complicated extra code in forget that does the rmdir wasn't _entirely_ a waste
15:13:01 <HackEso> Your bankers' vain plazas never nutured no one / And your concrete expanses lay fallow in the sun / And your cities all collapsing while your corrupt mayors shrug
15:13:53 <int-e> `slwd kanada//s/nut/nurt/
15:13:56 <HackEso> kanada//Your bankers' vain plazas never nurtured no one / And your concrete expanses lay fallow in the sun / And your cities all collapsing while your corrupt mayors shrug
15:19:11 <HackEso> @messages-loud @messages-fond / @messages-flood @messages-bond // @messages-lousy @messages-sound / @messages-lost @messages-found // @messages-proud @messages-bold / @messages-good @messages-gold
15:29:58 <HackEso> TIO is Try It Online!, <https://tio.run/>, a web-based interpreter for over 600 languages, including hundreds of esolangs
15:30:07 <HackEso> unless essential for the entry‘s humor, they should: be understandable without the lookup key, be single spaced and end in a newline with no space before that, and use proper capitalization and punctuation
15:30:33 <wob_jonas> ``` hg -T "{rev}:{date|shortdate}:{desc}\n" rules of wisdom
15:30:34 <HackEso> hg: option -T not recognized \ Mercurial Distributed SCM \ \ basic commands: \ \ add add the specified files on the next commit \ annotate show changeset information by line for each file \ clone make a copy of an existing repository \ commit commit the specified files or all outstanding changes \ diff diff repository (or selected files) \ export dump the header and diffs for one or more changesets \ f
15:30:45 <wob_jonas> ``` hg log -T "{rev}:{date|shortdate}:{desc}\n" "wisdom/rules of wisdom"
15:30:46 <HackEso> 11268:2017-12-13:<shachaf> slwd rules of wisdom//s/should/they &/ \ 10991:2017-06-02:<wob_jonas> perl -e {$f="wisdom/rules of wisdom";open$i,"<",$f or die;local$/;$s=<$i>;$s=~s/with no space at the end/and end in a newline with no space before that/ or die;$s=~s/\\n\\z// or die;print$s;open$o,">",$f;print$o $s or die;} \ 10982:2017-06-02:<shachaf> undo 10978 \ 10977:2017-05-31:<int-e> slwd rules of wisdom//s,\',\xe2\x80\x98, \ 10975:2017-05-31:<oerjan> slw
15:31:04 <wob_jonas> ``` hg log -T "{rev}:{date|shortdate}:{desc}\n" "wisdom/tio"
15:31:05 <HackEso> 11706:2019-02-02:<ais523> learn TIO is Try It Online!, <https://tio.run/>, a web-based interpreter for over 600 languages, including hundreds of esolangs
15:31:55 <Taneb> I'm amazed TIO has Fueue, and uses my interpreter for it to boot
15:32:05 <Taneb> I'd actually lost the source for that
15:34:47 <wob_jonas> does it have a bancstar interpreter?
15:35:07 <wob_jonas> is the lack of the period essential for the homor of wisdom/tio ?
15:37:17 <fizzie> wob_jonas: FWIW, you might consider the "standard" commands over raw hg, for two more or less reasonable reasons: they escape the nicknames to avoid extra pings, and they have a built-in blacklist for mass reverts (though that doesn't apply to your example).
15:37:24 <HackEso> 11268:2017-12-13 <shachäf> slwd rules of wisdom//s/should/they &/ \ 10991:2017-06-02 <wob_jonäs> perl -e {$f="wisdom/rules of wisdom";open$i,"<",$f or die;local$/;$s=<$i>;$s=~s/with no space at the end/and end in a newline with no space before that/ or die;$s=~s/\\n\\z// or die;print$s;open$o,">",$f;print$o $s or die;} \ 10982:2017-06-02 <shachäf> undo 10978 \ 10978:2017-06-02 <sleff̈y> whoops \ 10977:2017-05-31 <int-̈e> slwd rules of wisdom//s,\',
15:38:10 <wob_jonas> fizzie: when I want to ask why an entry is written the way it is, then pinging the user who wrote it is the Right Thing
15:38:33 <wob_jonas> checking "wisdom/rules of wisdom" itself was just stupid
15:40:03 <fizzie> Pinging all the users involved in its entire history may not be the Right Thing, especially if some of them are just people reverting mass breakages.
15:40:48 <wob_jonas> fizze: sure, though in some of these cases I've ran commands in private message first
15:41:18 <wob_jonas> but yeah, I should probably show just one revision, with -r 999 explicitly
15:42:10 <fizzie> I wonder if there's some sort of more hg-y way to flag revisions to hide, compared to /hackenv/share/scowrevs.
15:42:36 <fizzie> I know the evolve extension has obsolescence marking, but that's for a very different use case.
15:42:55 <wob_jonas> fizzie: you could rewrite history, creating a new branch without those revisions perhaps
15:43:12 <wob_jonas> but with all the file history and descriptions copied over
15:43:28 <wob_jonas> git has commands to help with that
15:43:33 <fizzie> I guess there's that. Not sure how that would play with people who've cloned the repository though.
15:43:51 <wob_jonas> you'll have to ask those people I guess
15:47:21 <fizzie> Maybe it's not a big enough problem to worry too much about it. But it might be a reasonable default behavior to have some way to mark specific revisions as "cleanup" and not show them in file history except when a flag is given.
15:47:57 <wob_jonas> I don't know, those revisions never really bothered me
15:48:09 <wob_jonas> yeah... the cold never bothered me anyway
15:48:23 <fizzie> It's also useful for repo-wide mass changes like whitespace/formatting fixes, which otherwise break 'blame' completely.
15:48:31 <fizzie> ...not so much in the HackEso context.
15:49:40 <wob_jonas> fizzie: but this isn't like the repositories I've seen in my job, with large C++ source files that sometimes have crlf and sometimes lf, sometimes spaces and sometimes tabs, and sometimes someone runs an automatic code reformatter which breaks the existing good formatting and adds bad formatting
15:51:19 -!- ProofTechnique has joined.
15:53:35 <fizzie> I also wonder if it's canonically called "annotate" instead of "blame" (still available as an alias) in hg just to promote positive rather than negative feelings.
15:54:15 <wob_jonas> fizzie: it's a triple alias: blame is the negative, annotate is the neutral, and praise is the positive
15:54:57 <wob_jonas> http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.blame.html
15:55:35 <wob_jonas> the official help also says "blame (praise, annotate, ann): Show when each line of a file was last (or next) changed"
15:57:01 <wob_jonas> although it seems "annotate" is the canon name for cvs
15:57:10 <wob_jonas> but I haven't checked the histories for how old each of these names are
15:57:57 <fizzie> No "praise" in Mercurial.
15:58:15 <fizzie> Huh, "git annotate" and "git blame" have different output formats.
15:59:03 <fizzie> "The only difference between this command [git-annotate] and git-blame(1) is that they use slightly different output formats, and this command exists only for backward compatibility to support existing scripts, and provide a more familiar command name for people coming from other SCM systems."
15:59:25 <orin> wob_jonas: I could output it to a different file but that requires some thought and wisdom
16:00:54 <orin> why not "git whowrote"
16:01:17 -!- xkapastel has quit (Quit: Connection closed for inactivity).
16:02:01 <orin> as in git who-wrote ThisClass.cpp -lines 60-83
16:03:25 <fizzie> (It's like git blame, except for MURDER.)
16:03:58 <orin> oh it's -L not --lines
16:07:28 <orin> also there should be a way to show the last TWO people to edit a line
16:08:20 <orin> because sometimes the last person was just a poopyhead with an auto-indenting macro
16:15:43 <fizzie> "git whodunit" might be some sort of "show recently deleted code blocks" view, since those don't show up in blame/annotate.
16:17:07 <int-e> orin: What if you need 3 history entries? (I tend to jump backward in time with git annotate -- <file> <rev>^)
16:17:19 <int-e> where <rev> is picked from a previous annotation
16:18:41 <int-e> (and the -- is there because otherwise git checks whether the file exists in the working directory... which it may not if the file has been moved or renamed)
16:21:50 -!- LKoen has quit (Remote host closed the connection).
16:33:42 -!- xkapastel has joined.
16:34:09 -!- arseniiv has joined.
16:34:33 -!- LKoen has joined.
16:44:30 <orin> richard brainlet https://mobile.twitter.com/SciGuySpace/status/1096074205731401728
16:47:49 -!- sebbu has joined.
16:50:49 <shachaf> wob_jonas: Now everyone will be surprised about biweekly because it doesn't read like a b_jonasdom.
16:59:52 <kmc> shachaf: who added kanada
16:59:56 <kmc> wondering if it was me
17:01:15 <wob_jonas> ``` hg log -T "{desc}\n" -r 4467 # dunno
17:01:16 <HackEso> <kmc> printf "Your bankers\' vain plazas never nutured no one / And your concrete expanses lay fallow in the sun / And your cities all collapsing while your corrupt mayors shrug" > wisdom/kanada
17:01:36 -!- AnotherTest has joined.
17:01:56 <kmc> I wish I remembered the fancy hacke[gs]o things
17:02:03 <kmc> I've lived a thousand years...
17:13:12 <fizzie> `mkx bin/wiseguys//hlnp -T '{desc}\n' wisdom | cut -d' ' -f1 | sort | uniq -c | sed -e 's/^ *//' | sort -nr | head -n ${1:-10}
17:13:18 <HackEso> 1683 <oerjän> \ 678 <shachäf> \ 300 <boil̈y> \ 280 <b_jonäs> \ 223 <int-̈e> \ 158 <rdocöc> \ 142 <hppavilion[1̈]> \ 126 <wob_jonäs> \ 98 <tsweẗt> \ 72 <mromän>
17:13:34 <fizzie> (For the life of me I couldn't figure out a gender-neutral equivalent of "wiseguys". Sorry.)
17:16:03 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
17:20:38 <myname> too bad they aren't performing anymore
17:38:49 <HackEso> 11732:2019-02-14 <int-̈e> slwd kanada//s/nut/nurt/ \ 10538:2017-03-28 <oerjän> ` printf "\\n" >>wisdom/kanada \ 4467:2014-02-19 <km̈c> printf "Your bankers\' vain plazas never nutured no one / And your concrete expanses lay fallow in the sun / And your cities all collapsing while your corrupt mayors shrug" > wisdom/kanada
17:54:28 <int-e> fizzie: wiseasses :P (wisepeople?)
17:56:55 <int-e> fizzie: also homo sapiens ;-)
17:57:18 <int-e> (but what's the proper plural of that?)
17:57:59 <int-e> b_jonas overtook boily
17:58:36 <int-e> (if you include his wob version)
17:59:42 -!- LKoen has quit (Remote host closed the connection).
18:03:10 <kmc> @metar KSFO
18:03:11 <lambdabot> KSFO 141756Z 23011G17KT 3SM -RA SCT019 BKN029 OVC050 12/08 A2951 RMK AO2 SLP991 P0018 60024 T01220083 10167 20111 51024
18:23:32 -!- tromp has quit (Remote host closed the connection).
18:34:02 <kmc> https://weatherishappening.com/
18:34:31 -!- tromp has joined.
18:35:31 <fizzie> MTV collaborators have been complaining about the weather lately.
18:35:41 <fizzie> While over here it's been unseasonably nice.
18:35:44 <lambdabot> EGLL 141820Z AUTO 14007KT 9999 NCD 09/04 Q1030 NOSIG
18:39:56 -!- LKoen has joined.
18:41:15 <esowiki> [[EZ]] https://esolangs.org/w/index.php?diff=59876&oldid=59865 * Areallycoolusername * (-15) /* Specifics */
18:41:46 <esowiki> [[EZ]] https://esolangs.org/w/index.php?diff=59877&oldid=59876 * Areallycoolusername * (+6) /* Implementations */
18:43:12 <esowiki> [[]] https://esolangs.org/w/index.php?diff=59878&oldid=58975 * Salpynx * (-72) /* Strengths */
18:43:23 -!- xkapastel has quit (Quit: Connection closed for inactivity).
19:00:39 -!- tromp has quit (Remote host closed the connection).
19:04:29 -!- 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.”).
19:04:32 -!- imode has joined.
19:11:57 -!- sleepnap has joined.
19:13:36 -!- tromp has joined.
19:19:21 <HackEso> 1/2:translater//A translater is one who transes a long time after the fact. \ isomorphism//Isomorphism is isomorphic to Phantom_Hoover up to isomorphism. \ t̵ͦiͭme͡//t̵ͦiͭme͡ S͖̀l̘̿͟o̯ͥwl̀͠y̮ ̥g̅eṱ̉҉ţi͊͡n̅ğ̨̺ ͫw͖ͭor͡s̯ęͣ \ alumni//Alumni is a compromise spelling suggested to solve the aluminum vs aluminium debate that never really caught on, except in a few big colleges. \ esowiki//Esowiki is our resident
19:19:50 <HackEso> 5826:2015-07-11 <boil̈y> learn A translater is one who transes a long time after the fact.
19:25:45 -!- tromp has quit (Remote host closed the connection).
19:28:23 -!- pikhq has quit (Ping timeout: 245 seconds).
19:30:44 -!- sleepnap has quit (Quit: Leaving.).
19:31:18 <int-e> Wee there's a wob_wisdom that I like.
19:32:51 <int-e> It's the alumni one.
19:33:28 <HackEso> 11181:2017-09-02 <wob_jonäs> learn Alumni is a compromise spelling suggested to solve the aluminum vs aluminium debate that never really caught on, except in a few big colleges.
19:33:33 <int-e> The biweekly one is probably only good twice per month.
19:33:45 <int-e> Or per week. Who knows.
19:34:40 -!- pikhq has joined.
19:54:50 -!- pikhq has quit (Ping timeout: 250 seconds).
19:58:24 <kmc> something in this channel has fucked my terminal bad
19:59:25 <HackEso> t̵ͦiͭme͡ S͖̀l̘̿͟o̯ͥwl̀͠y̮ ̥g̅eṱ̉҉ţi͊͡n̅ğ̨̺ ͫw͖ͭor͡s̯ęͣ
19:59:30 <int-e> I bet it's this :P
19:59:49 <HackEso> 3194:2013-06-20 <guestböt> learn t\xcd\xa6\xcc\xb5i\xcd\xadme\xcd\xa1 S\xcd\x96\xcd\x80l\xcc\xbf\xcc\x98\xcd\x9fo\xcd\xa5\xcc\xafwl\xcc\x80\xcd\xa0y\xcc\xae \xcc\xa5g\xcc\x85et\xcc\x89\xcc\xad\xd2\x89t\xcc\xa7i\xcd\x8a\xcd\xa1n\xcc\x85g\xcc\x86\xcc\xba\xcc\xa8 \xcd\xabw\xcd\xad\xcd\x96or\xcd\xa1s\xcc\xafe\xcd\xa3\xcc\xa8
20:00:16 <HackEso> 9087:2016-09-26 <oerjän> ` le/rn brilliant/"`echo \'BRILLIANT is like the BEST word in the universe and it will change your life FOREVER!\' | zalgo | rainwords`" \ 9086:2016-09-26 <oerjän> ` le/rn brilliant/"`echo \'BRILLIANT is like the BEST word in the universe and it will change your life FOREVER!\' | rainwords | zalgo`" \ 8687:2016-07-03 <oerjän> sled bin/zalgo//1c#!/hackenv/bin/shebang_args_or_input python \ 3269:2013-07-03 <ssstosïs> gccrun F
20:00:28 <HackEso> B҉ͭR̲̞Iͪ͞L̡͠L̝̊I̤ͣA̍҉N̏́T̈͡ ̐̇ȉ̲s̉̐ ̸̉ḷ̂i̪̱k͉ͬḛ็ ͓̪t็ͬh̺̊e͜͢ ͏͛B̈ͅE̳̘S̰ͤTͬͧ ̰̕w̺̼o̷̓ŕ͂d̹̠ ͍͑i͚̾n̺̮ ̇͑t͗̍hͧ͌ḙ͕ ̻͜ű̖ňͤi̴͠v̸̧ḛ͔ř̭s͍͠ẻ̗ ͏̲a̮̺nͣ͟d̝ͨ ̳͗i̟͘ẗ͎ ̼̲ẘ̦i̭ͮl̢̋l̨̉ ̺͌c̑͡h̽̀âͮn̩̈́g̫ͣe͉͒ ͦ̓y̙͕o̔͒u̷ͬr͂͐ ̓͝l͙͐ȉ͕f̹́ẹ̲ ̤̹F̌ͅÒ͗R͚̼Ẽ̠V
20:00:39 -!- tromp has joined.
20:00:50 <int-e> I like that it gets cut off in the end.
20:01:18 <int-e> Also, does that count as a brilliant combination, as in chess?
20:05:07 -!- tromp has quit (Ping timeout: 240 seconds).
20:12:39 -!- pikhq has joined.
20:17:16 <kmc> fuck y'all
20:19:43 <Hooloovo0> huh, I wonder what that would do to a vt420
20:20:19 <shachaf> i assume kmc is using a vt420
20:22:12 -!- FreeFull has joined.
20:38:17 -!- b_jonas has joined.
20:40:34 <b_jonas> "<int-e> b_jonas overtook boily" => that must have been when I deleted a lot of bad b_jonas wisdoms that were in
20:40:46 <b_jonas> there's still some remaining, but much less than there used to be
20:44:41 -!- tromp has joined.
20:45:34 <fizzie> I had a vt420 as my under-the-table terminal for quite a while.
20:46:05 <fizzie> It's got a local calculator app thing.
20:46:30 <b_jonas> does that mean you fed it leftovers under the table like to a dog?
20:46:58 <fizzie> No, it was just the terminal to use if you were on the floor for some reason.
20:48:08 <fizzie> But you can paste the calculator results as terminal input, it's v. fancy.
20:48:26 <fizzie> (Then the smoke got out.)
20:48:48 -!- tromp has quit (Ping timeout: 245 seconds).
20:49:16 <shachaf> fizzie: so are you going to use this new openai bot as fungot v2 twh
20:49:16 <fungot> shachaf: hmm... i reckon vhdl is actually a real word, since it doesn't have a battery, but i doubt it.
20:49:44 <int-e> eww: http://paste.debian.net/1067878/
20:50:19 <b_jonas> fizzie: sure, every terminal can do that. you just flip the switch to copy the terminal output to the paper tape, then do the calculation, then edit the tape with scissors, then feed it back to the card reader to enter it as terminal input
20:51:24 <Hooloovo0> mine is the top-bench terminal (different from the bench-top terminal and the vaxtop terminal)
20:54:08 <Hooloovo0> hmm, never used the vt420's calculator, that looks really useful
20:55:00 <b_jonas> [ 420+1 NB. remote calculator
21:10:46 -!- xkapastel has joined.
21:11:51 <b_jonas> geordi and clang are down. did someone botloop them with lambdabot after yesterday's discussion?
21:47:05 -!- arseniiv has quit (Read error: Connection reset by peer).
21:47:14 -!- arseniiv has joined.
21:48:10 <orin> I am amazed at how many of those modifyer characters my font still doesn't seem to support
21:51:35 <kmc> juice ssh is handling it better than wsl
21:51:39 <kmc> still not perfect
21:52:11 <kmc> I wonder if I can use WSL through the PuTTY terminal
21:52:40 <orin> my font handles one of the e's but not the other why?
21:52:53 <HackEso> U+0053 LATIN CAPITAL LETTER S \ UTF-8: 53 UTF-16BE: 0053 Decimal: S \ S (s) \ Lowercase: U+0073 \ Category: Lu (Letter, Uppercase) \ Bidi: L (Left-to-Right) \ \ U+0330 COMBINING TILDE BELOW \ UTF-8: cc b0 UTF-16BE: 0330 Decimal: ̰ \ ̰ \ Category: Mn (Mark, Non-Spacing) \ Bidi: NSM (Non-Spacing Mark) \ Combining: 220 (Below) \ \ U+0364 COMBINING LATIN SMALL LETTER E \ UTF-8: cd a4 UTF-16BE: 0364 Decimal: ͤ \ ͤ \ Category: Mn (Mark,
21:53:06 <HackEso> U+006E LATIN SMALL LETTER N \ UTF-8: 6e UTF-16BE: 006e Decimal: n \ n (N) \ Uppercase: U+004E \ Category: Ll (Letter, Lowercase) \ Bidi: L (Left-to-Right) \ \ U+030C COMBINING CARON \ UTF-8: cc 8c UTF-16BE: 030c Decimal: ̌ \ ̌ \ Category: Mn (Mark, Non-Spacing) \ Bidi: NSM (Non-Spacing Mark) \ Combining: 230 (Above) \ \ U+0364 COMBINING LATIN SMALL LETTER E \ UTF-8: cd a4 UTF-16BE: 0364 Decimal: ͤ \ ͤ \ Category: Mn (Mark, Non-Sp
21:54:27 <orin> so I guess it's because of the tilde below, if my font doesn't work with a combining mark it will fall back for both that and any later ones
21:55:38 <orin> I need to improve my font some more
21:55:58 -!- FreeFull has quit (Quit: rebooting).
21:56:55 -!- FreeFull has joined.
21:58:01 <b_jonas> did that go away, or was it called something else?
21:58:25 <b_jonas> ``` hg log -T "{rev}:{files_deleted}\n" wisdom/ᛨᚳ
21:59:52 <orin> ⸙ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿ
21:59:55 <orin> ᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟ
21:59:58 <orin> ᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ᛫᛬᛭ᛮᛯᛰᛱᛲᛳᛴᛵᛶᛷᛸ
22:00:04 <orin> wait one of those isn't a rune
22:00:35 <shachaf> Taneb: are you coming back to california twh
22:05:28 -!- tromp has joined.
22:20:02 -!- heroux has quit (Remote host closed the connection).
22:20:11 -!- heroux has joined.
22:20:30 <HackEso> Peace witches do alchemy: they turn mundane building material to gold. They're in the same universe where Bowser turned peaceful citizens of the Mushroom Kingdom to building material.
22:33:47 -!- b_jonas has quit (Quit: leaving).
22:35:22 <orin> 2034: "President Logan Paul declares national emergency over epidemic of bubonic plague"
22:46:54 -!- Hooloovax has joined.
22:53:32 <HackEso> B҉ͭR̲̞Iͪ͞L̡͠L̝̊I̤ͣA̍҉N̏́T̈͡ ̐̇ȉ̲s̉̐ ̸̉ḷ̂i̪̱k͉ͬḛ็ ͓̪t็ͬh̺̊e͜͢ ͏͛B̈ͅE̳̘S̰ͤTͬͧ ̰̕w̺̼o̷̓ŕ͂d̹̠ ͍͑i͚̾n̺̮ ̇͑t͗̍hͧ͌ḙ͕ ̻͜ű̖ňͤi̴͠v̸̧ḛ͔ř̭s͍͠ẻ̗ ͏̲a̮̺nͣ͟d̝ͨ ̳͗i̟͘ẗ͎ ̼̲ẘ̦i̭ͮl̢̋l̨̉ ̺͌c̑͡h̽̀âͮn̩̈́g̫ͣe͉͒ ͦ̓y̙͕o̔͒u̷ͬr͂͐ ̓͝l͙͐ȉ͕f̹́ẹ̲ ̤̹F̌ͅÒ͗R͚̼Ẽ̠V
22:56:48 <Hooloovax> ok so that really screwed up my vt320
23:00:10 <fizzie> shachaf: Only if it's written in some form of Befunge twh
23:01:55 <orin> https://thedailywtf.com/articles/The_Brillant_Paula_Bean
23:52:16 -!- oerjan has joined.
23:55:23 -!- AnotherTest has quit (Ping timeout: 258 seconds).
23:59:47 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
00:00:49 -!- Lord_of_Life has joined.
00:25:51 -!- user24 has quit (Ping timeout: 264 seconds).
00:38:20 -!- user24 has joined.
00:44:46 <HackEso> TIO is Try It Online!, <https://tio.run/>, a web-based interpreter for over 600 languages, including hundreds of esolangs
00:44:59 <HackEso> tio//TIO is Try It Online!, <https://tio.run/>, a web-based interpreter for over 600 languages, including hundreds of esolangs.
00:45:31 <oerjan> and he even looked at `? rules of wisdom right after
00:47:21 <HackEso> 11734:2019-02-15 <oerjän> slwd tio//s,$,., \ 11706:2019-02-02 <ais52̈3> learn TIO is Try It Online!, <https://tio.run/>, a web-based interpreter for over 600 languages, including hundreds of esolangs
00:47:56 <oerjan> b_jonas seriously needs to learn `dowg
00:49:05 <shachaf> maybe if dowg had a better name hth
01:19:19 <fizzie> I can now finally remember the doag/dowg/hoag/howg set, though I still don't know where they come from. Presumably the 'd' refers to date, and the 'w' to wisdom, but that's all I've guessed.
01:32:52 <HackEso> hlnp --template "{desc}\n" -- "$@"
01:33:16 <HackEso> hlnp --removed --template "{desc}\n" -- "$@"
01:33:55 <shachaf> hoag = hog but also show revisions where files were removed
01:34:22 <shachaf> I believe it's named after the story by Heinlein, _The Unpleasant Profession of Jonathan Hoag_, though I'm not sure.
01:34:33 <HackEso> hlnp --removed --template "{rev}:{date|shortdate} {desc}\n" -- "$@"
01:40:27 -!- xkapastel has quit (Quit: Connection closed for inactivity).
01:46:41 <HackEso> `[hd]o[aw][gt] [<filename>] is a set of commands for querying HackEgo hg logs. `hoag is the basic version. d adds revision numbers and dates, w looks only in wisdom, and t lists oldest first.
01:47:29 <oerjan> i think a stands for "all", but then later we started censoring scow revisions
02:08:25 -!- user24 has quit (Quit: Leaving).
02:36:51 -!- sleepnap has joined.
02:36:58 -!- sleepnap has left.
02:37:52 <fizzie> `` ls bin/[hd]o[aw][gt]
02:37:53 <HackEso> bin/doag \ bin/doat \ bin/dowg \ bin/dowt \ bin/hoag \ bin/hoat \ bin/howg \ bin/howt
02:38:08 <fizzie> Just wanted to check there's the full set.
02:38:10 <kmc> here we go
02:38:12 <kmc> https://github.com/mintty/wsltty
02:38:18 <kmc> pronounced "weasel titty", I assume
02:39:46 <kmc> anyway it can handle the runes and zalgo and whatever the fuck you perverts were pasting here earlier
02:40:49 <HackEso> kmc did not run the International Devious Code Contest of 2013.
02:41:03 <kmc> `? shachaf
02:41:04 <HackEso> Queen Shachaf of the Dawn sprø som selleri and cosplays Nepeta Leijon on weekends. He hates bell peppers with a passion. He doesn't know when to stop asking questions.
02:41:21 <kmc> those are some words
02:55:00 -!- Vorpal has quit (Ping timeout: 268 seconds).
03:02:49 -!- Vorpal has joined.
03:32:41 <oerjan> freefall's fourth wall seems to be creaking in the seams today
03:55:29 -!- FreeFull has quit.
04:02:36 -!- Vilivikhorith has quit (Quit: Using Circe, the loveliest of all IRC clients).
04:10:03 <zzo38> I thought that every game in the series of XYZABCDE may be a different VM. The first one is ZZT, and then maybe others may be Glulx, Z-machine, MegaZeux, Famicom, TAVERN, TAVERN32, etc.
04:27:55 <zzo38> (At least, that is one possibility.)
04:56:37 -!- shikhin has quit (Quit: Alas.).
04:56:44 -!- shikhin has joined.
04:57:31 -!- shikhin has quit (Changing host).
04:57:31 -!- shikhin has joined.
07:53:09 -!- oerjan has quit (Quit: Nite).
08:04:54 -!- imode has quit (Ping timeout: 258 seconds).
08:35:46 -!- GeekDude has quit (Ping timeout: 250 seconds).
08:37:26 -!- GeekDude has joined.
09:10:42 <rain1> I messed around with ZZT a bit but i didn't get started on XYZABCDE yet, except just going to the right and dying
09:17:10 <zzo38> Have you made any game with ZZT?
09:17:31 <rain1> I only found about ZZT through you actually
09:19:45 <zzo38> Have you played other ZZT worlds?
09:20:18 <rain1> not really, just the default set and your other one
09:20:27 <rain1> i havent completed any yet
09:21:16 <zzo38> XYZABCDE is difficult, although there are cheats if you don't mind to use that.
09:24:28 -!- heroux has quit (Read error: Connection reset by peer).
09:24:45 -!- heroux has joined.
09:26:09 <zzo38> I can also answer questions that you have, in case you have questions about ZZT or about XYZABCDE.ZZT specifically.
09:30:37 <rain1> im not a very dedicated gamer so i just play around a bit, i probably wont get too far
09:31:11 -!- xkapastel has joined.
10:04:12 -!- arseniiv has quit (Quit: gone completely :o).
10:09:26 -!- AnotherTest has joined.
10:23:26 -!- Sgeo__ has quit (Read error: Connection reset by peer).
10:23:49 -!- user24 has joined.
10:23:51 -!- Sgeo__ has joined.
11:59:08 -!- Lord_of_Life_ has joined.
12:00:50 -!- xkapastel has quit (Quit: Connection closed for inactivity).
12:00:53 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
12:01:26 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:26:32 -!- wob_jonas has joined.
12:27:53 <wob_jonas> rain1: melt the wax statuette in the sauna. the statuette itself is worthless, but there's a gemstone inside it. the game gives absolutely no clue that you're supposed to do that. also try taking the bone to the blacklight room and "look" at it there.
12:29:05 <wob_jonas> and make frequent saves, because it's easy to mess something up, and these days it's quick to make saves and you can have a lot on your disk, it's not like when you had to save to magnetic casette.
12:58:38 <wob_jonas> Oh, and in the maze of twisty passages, all alike, drop items so you can distinguish rooms, then pick them up after you've figured out the way out.
12:59:10 <wob_jonas> Or at least drop one item in the starting room of the maze.
12:59:33 <wob_jonas> Since some of these mazes are designed such that all doors except one in each room lead to the starting room.
15:26:00 -!- sleepnap has joined.
16:14:31 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
16:45:50 -!- xkapastel has joined.
16:46:28 <esowiki> [[NEGATOR]] https://esolangs.org/w/index.php?diff=59879&oldid=59026 * Areallycoolusername * (+20)
17:00:10 -!- imode has joined.
17:23:17 <esowiki> [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=59880&oldid=59013 * Areallycoolusername * (+117)
17:24:38 <esowiki> [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=59881&oldid=59880 * Areallycoolusername * (+1)
17:25:08 <esowiki> [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=59882&oldid=59881 * Areallycoolusername * (+2)
17:25:15 <esowiki> [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=59883&oldid=59882 * Areallycoolusername * (-1)
18:22:40 -!- FreeFull has joined.
19:16:51 <esowiki> [[TPLHBPTBOTEW]] M https://esolangs.org/w/index.php?diff=59884&oldid=58633 * Gamer * (+1) /* Concept */
19:18:30 <esowiki> [[TPLHBPTBOTEW]] M https://esolangs.org/w/index.php?diff=59885&oldid=59884 * Gamer * (+13) /* Concept */
19:44:53 -!- Cale_ has joined.
19:51:37 -!- heroux has quit (Read error: Connection reset by peer).
19:52:08 -!- heroux has joined.
20:23:10 -!- arseniiv has joined.
20:37:27 -!- Vorpal has quit (Ping timeout: 240 seconds).
20:43:34 -!- Vorpal has joined.
20:43:34 -!- Vorpal has quit (Changing host).
20:43:34 -!- Vorpal has joined.
21:08:23 <zzo38> wob_jonas: What game do you mean?
21:13:06 -!- user24 has quit (Remote host closed the connection).
21:39:07 -!- sleffy has joined.
21:39:30 -!- sleffy has quit (Read error: Connection reset by peer).
22:13:41 <Taneb> It occurs to me that the most efficient way to run a Fractran program is probably not "translate it into sed"
22:14:11 <Taneb> Especially as I'm now doing all the maths in unary with regexes
22:15:59 <Taneb> ...this is the first prime number finder I've ever written which ran out of memory before finding 3
22:21:00 <shachaf> is it starting from the end and working backwards
22:21:23 <shachaf> `addquote <Taneb> ...this is the first prime number finder I've ever written which ran out of memory before finding 3
22:21:25 <HackEso> 1331) <Taneb> ...this is the first prime number finder I've ever written which ran out of memory before finding 3
22:25:30 -!- xkapastel has quit (Quit: Connection closed for inactivity).
22:32:34 -!- sleepnap has left.
23:10:49 -!- Cale_ has quit (Read error: Connection reset by peer).
23:17:37 -!- arseniiv has quit (Ping timeout: 257 seconds).
23:54:02 -!- AnotherTest has quit (Ping timeout: 258 seconds).
23:59:47 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
00:02:46 -!- Lord_of_Life has joined.
00:06:46 -!- Hooloovax has quit (Quit: Leaving).
00:11:21 -!- xkapastel has joined.
01:43:01 <zzo38> Can anything be made with "Thue-Mirr" esolang?
01:43:10 -!- oerjan has joined.
01:47:26 -!- FreeFull has quit.
02:33:44 -!- Camto has joined.
02:45:25 <Camto> Hey people would you want to connect this channel with the esolangs discord server?
02:45:59 <Camto> I know other channels have connected to their respective dicord server.
02:47:52 <zzo38> You should have to ask the channel operators I should think, although maybe that will work I don't know. I would think is needing some bridge but if it is a single client then they come from the same client so will need to specify the name in the message
02:50:34 <zzo38> I think so, although it is managed by ChanServ rather than being directly.
02:51:04 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:51:05 <zzo38> (Use the CS ACCESS LIST command for the ChanServ managed operators)
02:51:53 <Lymia> just no owner, I see
02:55:01 <kmc> fuk discord and slack
02:55:24 <kmc> don't care enough to get into it rn
02:55:41 <zzo38> I don't like Discord and Slack either, so, I don't use them. IRC is much better.
02:55:42 <Camto> I mean a bridge can't really hurt can it?
02:56:30 <shachaf> But I think people already run a Slack bridge here?
02:56:47 <Camto> ProgrammingLanguages has had great success with theirs.
02:56:56 <shachaf> http://slbkbs.org/dontclick.txt
02:57:41 <oerjan> i'm so resistant to temptation
02:58:07 <oerjan> (maybe there were others)
02:58:32 <shachaf> Anyway the question is what success is.
02:58:50 <shachaf> Certainly maximizing the number of users oughtn't be a goal of any IRC channel, because all the big channels are scow.
02:59:17 <oerjan> getting more on topic chat
02:59:55 <Camto> It's really just to have more conversation.
03:01:06 <HackEso> Camto: 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.)
03:01:16 <shachaf> fungot can generate unlimited conversation
03:01:16 <fungot> shachaf: i write like that how should i do
03:01:37 <shachaf> fungot: just like that. you did good.
03:01:37 <fungot> shachaf: well oklotalk does not it is at least. on ubuntu and debian o.o fnord :(
03:04:14 <Camto> Jeez that is so rainbow.
03:04:28 <oerjan> that's what the r is for
03:05:20 <HackEso> cat: bin/helcome: No such file or directory
03:05:30 <shachaf> needs more fire and brimstone
03:07:06 -!- LyricLy has joined.
03:07:30 -!- LyricLy has quit (Client Quit).
03:26:33 -!- Camto has quit (Quit: Page closed).
04:13:18 <zzo38> What is the best kind of parser for a text adventure game, do you think?
04:20:05 <zzo38> Some people said Discord is better because it has logging (on the server) and IRC doesn't have, but actually such thing is independent of the protocol, and such a thing is possible in IRC too (I know, because once, I modified a IRC server software to implement this)
04:24:50 <shachaf> It's not independent of the protocol because someone who joins a Discord channel sees messages that were sent before they joined.
04:25:13 <zzo38> That feature isn't, but simply that it has logs is independent.
04:46:31 -!- arseniiv has joined.
05:36:17 -!- nfd has joined.
05:36:20 -!- arseniiv_ has joined.
05:36:24 -!- Sgeo_ has joined.
05:38:44 -!- bobby has joined.
05:40:47 -!- int-e_ has joined.
05:40:52 -!- mynery has joined.
05:41:09 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
05:41:09 -!- arseniiv has quit (Ping timeout: 255 seconds).
05:41:18 -!- j-bot has quit (Ping timeout: 246 seconds).
05:41:18 -!- int-e has quit (Ping timeout: 246 seconds).
05:41:18 -!- fractal has quit (Ping timeout: 246 seconds).
05:41:18 -!- myname has quit (Ping timeout: 246 seconds).
05:41:18 -!- relrod has quit (Ping timeout: 246 seconds).
05:41:18 -!- Sgeo__ has quit (Ping timeout: 246 seconds).
05:41:18 -!- nfd9001 has quit (Ping timeout: 246 seconds).
05:41:18 -!- Bob- has quit (Ping timeout: 246 seconds).
05:42:33 -!- relrod has joined.
05:42:36 -!- relrod has quit (Changing host).
05:42:36 -!- relrod has joined.
05:43:50 -!- oerjan has quit (Quit: Nite).
05:46:40 -!- Lord_of_Life has joined.
06:00:11 -!- fractal has joined.
06:29:37 <esowiki> [[]] https://esolangs.org/w/index.php?diff=59886&oldid=59736 * Salpynx * (+5) /* Commands */ correct Younger Futhark/Unicode name of
06:46:38 -!- mynery has changed nick to myname.
08:04:11 <Taneb> shachaf: not any time soon sadly
08:13:36 <Taneb> Already used up too much paid leave for this year
08:18:33 <shachaf> are you going to that one lecture in cambridge
08:18:45 <Taneb> I think I missed that
08:18:47 <shachaf> oh, maybe it's part of a thing
08:18:58 <Taneb> Unless there's another one lecture in cambridge
08:19:09 <shachaf> http://jdh.hamkins.org/forcing-as-a-computational-process-cambridge-februrary-2019/
08:19:47 <shachaf> also do you understand forcing
08:56:58 -!- imode has quit (Ping timeout: 250 seconds).
09:58:44 <shachaf> can you explain forcing twh
10:02:33 -!- AnotherTest has joined.
10:05:59 <izabera> "last night my partner forced his way into my throat"
10:16:28 -!- LKoen has joined.
11:14:04 -!- nfd has quit (Ping timeout: 258 seconds).
11:14:20 -!- nfd9001 has joined.
11:15:51 -!- j-bot has joined.
11:17:27 <esowiki> [[Shishkirism]] N https://esolangs.org/w/index.php?oldid=59887 * Kamish * (+3215) Created page with "<h1>Shishkirism</h1> <hr> <p>'''Shishkirism''' - esoteric programming language, created as a joke by the [[User:Kamish]]</p> <hr> <h2>Commands</h2> Consists of 13 commands: {|..."
11:17:44 <esowiki> [[Shishkirism]] https://esolangs.org/w/index.php?diff=59888&oldid=59887 * Kamish * (-26)
11:19:50 <esowiki> [[Joke language list]] https://esolangs.org/w/index.php?diff=59889&oldid=59791 * Kamish * (+37) /* General languages */
11:21:18 <esowiki> [[User:Kamish]] https://esolangs.org/w/index.php?diff=59890&oldid=57122 * Kamish * (+20)
11:22:33 <esowiki> [[Shishkirism]] M https://esolangs.org/w/index.php?diff=59891&oldid=59888 * Kamish * (-1)
11:25:39 <esowiki> [[Special:Log/upload]] upload * Kamish * uploaded "[[File:Colorpascal.png]]": Pascal color codes
11:32:17 <esowiki> [[Special:Log/upload]] overwrite * Kamish * uploaded a new version of "[[File:Colorpascal.png]]"
11:35:11 <esowiki> [[Shishkirism]] https://esolangs.org/w/index.php?diff=59894&oldid=59891 * Kamish * (+1904)
11:45:53 -!- grumble has quit (Quit: bring black roses for the wicked one).
11:46:08 -!- 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.”).
11:51:48 -!- grumble has joined.
11:54:35 -!- FreeFull has joined.
11:58:09 <fizzie> I don't think more on-topic conversation would be amiss, though I'm a little suspicious of bridgey stuffs and how well they integrate with the IRC experience.
11:58:22 <esowiki> [[Shishkirism]] M https://esolangs.org/w/index.php?diff=59895&oldid=59894 * Kamish * (-77)
12:00:27 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
12:02:03 -!- Essadon has joined.
12:02:06 -!- Essadon has quit (Max SendQ exceeded).
12:03:17 -!- Lord_of_Life has joined.
12:04:06 <rain1> there's a esoteric programming discord?
12:52:17 -!- tromp has quit (Remote host closed the connection).
13:01:15 -!- int-e_ has changed nick to int-e.
13:12:56 -!- tromp has joined.
14:21:22 -!- xkapastel has joined.
15:13:39 -!- arseniiv_ has changed nick to arseniiv.
15:14:40 <esowiki> [[Shishkirism]] M https://esolangs.org/w/index.php?diff=59896&oldid=59895 * Kamish * (-7)
15:23:25 <esowiki> [[Shishkirism]] M https://esolangs.org/w/index.php?diff=59897&oldid=59896 * Kamish * (+90)
16:14:30 -!- imode has joined.
16:25:31 -!- imode has quit (Quit: WeeChat 2.3).
16:25:54 -!- imode has joined.
16:31:06 -!- xkapastel has quit (Quit: Connection closed for inactivity).
16:57:35 <esowiki> [[Shishkirism]] M https://esolangs.org/w/index.php?diff=59898&oldid=59897 * Kamish * (+35)
16:58:05 -!- tromp has quit (Remote host closed the connection).
17:04:30 -!- 77FABM7QO has joined.
17:22:20 -!- 77FABM7QO has quit (Remote host closed the connection).
17:35:39 <esowiki> [[Shishkirism]] M https://esolangs.org/w/index.php?diff=59899&oldid=59898 * Kamish * (+6)
17:40:51 -!- arseniiv has quit (Ping timeout: 258 seconds).
17:52:24 -!- tromp has joined.
18:03:17 -!- tromp has quit (Remote host closed the connection).
18:44:04 -!- moei has joined.
19:07:06 -!- tromp has joined.
19:56:41 -!- Sgeo has joined.
19:59:12 -!- Sgeo_ has quit (Ping timeout: 268 seconds).
19:59:59 -!- b_jonas has joined.
20:09:25 -!- Camto has joined.
20:10:33 -!- Camto has quit (Client Quit).
20:12:03 -!- xkapastel has joined.
20:26:03 <orin> RIP BRUNO GANZ
21:22:15 -!- Cale has quit (Ping timeout: 264 seconds).
21:35:05 -!- Cale has joined.
22:01:54 -!- b_jonas has quit (Quit: leaving).
22:05:25 -!- Remavas has joined.
22:39:27 -!- moei has quit (Quit: Leaving...).
23:10:41 -!- Remavas has changed nick to Remavas[AFK].
23:31:47 -!- xkapastel has quit (Quit: Connection closed for inactivity).
23:41:13 -!- tromp has quit (Remote host closed the connection).
23:55:19 -!- oerjan has joined.
23:56:53 -!- tromp has joined.
23:57:39 -!- AnotherTest has quit (Ping timeout: 264 seconds).
00:00:12 -!- Lord_of_Life has quit (Read error: Connection reset by peer).
00:01:17 -!- tromp has quit (Ping timeout: 246 seconds).
00:03:06 -!- Lord_of_Life has joined.
00:35:11 -!- tromp has joined.
00:40:18 -!- tromp has quit (Ping timeout: 272 seconds).
00:55:24 <esowiki> [[Vague]] https://esolangs.org/w/index.php?diff=59900&oldid=59800 * Cortex * (-33)
00:59:05 <esowiki> [[Hexomnia]] https://esolangs.org/w/index.php?diff=59901&oldid=59356 * Cortex * (+35)
01:08:19 -!- Remavas-Hex has joined.
01:11:26 -!- Remavas[AFK] has quit (Ping timeout: 244 seconds).
01:29:00 -!- tromp has joined.
01:33:39 -!- tromp has quit (Ping timeout: 244 seconds).
02:01:41 -!- Remavas-Hex has changed nick to Remavas-Hex[AFK].
02:02:17 -!- Remavas-Hex[AFK] has changed nick to Remavas-.
02:03:43 -!- Remavas- has changed nick to Remavas.
03:07:03 -!- nfd9001 has quit (Read error: Connection reset by peer).
03:13:40 <zzo38> Is there a way to tell Firefox to disable kerning for editable fields?
03:16:23 -!- tromp has joined.
03:20:47 -!- tromp has quit (Ping timeout: 246 seconds).
03:23:51 -!- Remavas has quit (Read error: Connection reset by peer).
03:24:16 -!- Remavas has joined.
03:37:58 -!- Remavas has quit (Quit: Leaving).
04:16:15 <imode> the 4-tuple model of a turing machine is the most natural.
04:41:16 <kmc> how so, and compared to what?
04:42:00 <imode> compared to the 5-tuple model. instead of having (current state, old symbol, new symbol, direction, new state), you have (current state, old smbol, command, new state).
04:42:25 <imode> the 4-tuple model is generalizable to not even include symbols, but 'conditions', which can be defined as boolean functions.
04:43:05 <imode> the general form of an automaton, moving from the 4-tuple model, looks like (current state, condition, next state, command).
04:46:06 <imode> if you were to try to generalize the 5-tuple model to include more actions, the number of states you'd need to accomplish a "no-op" blows up like mad, and in some cases, may not even be possible.
05:04:01 -!- tromp has joined.
05:08:56 -!- tromp has quit (Ping timeout: 258 seconds).
05:30:43 -!- oerjan has quit (Quit: Nite).
05:52:26 -!- FreeFull has quit.
05:57:59 -!- tromp has joined.
06:00:56 <zzo38> I think with the Amycus numbers, length is popcount and head is ctz, isn't it?
06:02:17 -!- tromp has quit (Ping timeout: 255 seconds).
06:30:37 -!- arseniiv has joined.
06:51:25 -!- tromp has joined.
06:55:53 -!- tromp has quit (Ping timeout: 245 seconds).
07:24:15 -!- nfd9001 has joined.
07:36:54 <esowiki> [[Shishkirism]] https://esolangs.org/w/index.php?diff=59902&oldid=59899 * Kamish * (+1814)
08:09:32 -!- arseniiv has quit (Ping timeout: 246 seconds).
08:14:31 <Taneb> `quote Taneb prime memory 3
08:14:40 <Taneb> `quote before reaching 3
08:15:10 <Taneb> Anyway, you know yesterday I had a program which lists primes which ran out of memory before reaching 3?
08:15:21 <Taneb> I've made some changes and now it can reach at least 131
08:16:05 <Taneb> I also have a Fractran -> Sed compiler-ish thing
08:16:23 -!- tromp has joined.
08:16:34 <esowiki> [[RELATIONS]] N https://esolangs.org/w/index.php?oldid=59903 * Kamish * (+718) Created page with "<p>'''RELATIONS''' is an esoteric programming language created by [[User:Kamish|Kamish]]</p> <p>This language is absolutely useless and '''has 8 commands:'''</p> {| class="wik..."
08:16:36 -!- tromp has quit (Remote host closed the connection).
08:16:48 -!- tromp has joined.
08:17:28 <esowiki> [[User:Kamish]] https://esolangs.org/w/index.php?diff=59904&oldid=59890 * Kamish * (+18)
08:18:58 <esowiki> [[Joke language list]] M https://esolangs.org/w/index.php?diff=59905&oldid=59889 * Kamish * (+54)
08:31:48 <esowiki> [[Kate]] N https://esolangs.org/w/index.php?oldid=59906 * Kamish * (+647) Created page with "<p>'''Kate''' - esoteric programming language created by [[User:Kamish|Kamish]]</p> <p>The language consists of only one command - Kate</p> {| class="wikitable" |- ! Command !..."
08:31:51 -!- Sgeo_ has joined.
08:34:50 -!- Sgeo has quit (Ping timeout: 250 seconds).
08:35:27 <esowiki> [[Joke language list]] M https://esolangs.org/w/index.php?diff=59907&oldid=59905 * Kamish * (+34)
08:36:00 <esowiki> [[User:Kamish]] M https://esolangs.org/w/index.php?diff=59908&oldid=59904 * Kamish * (+13)
09:02:32 -!- tromp has quit (Remote host closed the connection).
09:07:59 -!- imode has quit (Ping timeout: 246 seconds).
09:10:50 -!- AnotherTest has joined.
09:14:04 -!- arseniiv has joined.
09:16:23 -!- Sgeo_ has quit (Read error: Connection reset by peer).
09:16:51 -!- Sgeo_ has joined.
09:20:22 -!- tromp has joined.
09:33:26 -!- tromp has quit (Remote host closed the connection).
09:38:39 -!- tromp has joined.
11:13:46 <esowiki> [[Special:Log/newusers]] create * Alikberoff * New user account
11:28:32 -!- Sgeo__ has joined.
11:29:32 -!- b_jonas has joined.
11:31:16 -!- Sgeo_ has quit (Ping timeout: 246 seconds).
11:31:16 <b_jonas> zzo38: re Amicus number representation, yes
11:31:51 -!- xkapastel has joined.
11:33:15 <b_jonas> `bobadventures http://bobadventures.comicgenesis.com/d/20190216.html
11:33:16 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: bobadventures: not found
11:54:39 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=59909&oldid=59854 * Alikberoff * (+115) /* Introductions */
11:54:51 <esowiki> [[Generic 2D Befunge]] N https://esolangs.org/w/index.php?oldid=59910 * Alikberoff * (+1788) ~~~~
12:00:32 -!- arseniiv has quit (Ping timeout: 246 seconds).
12:02:01 -!- Lord_of_Life_ has joined.
12:03:10 <esowiki> [[Generic 2D Befunge]] https://esolangs.org/w/index.php?diff=59911&oldid=59910 * Alikberov * (+89)
12:03:11 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
12:04:19 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:55:51 -!- arseniiv has joined.
14:14:35 -!- Sgeo__ has quit (Ping timeout: 255 seconds).
14:14:45 -!- Sgeo has joined.
14:42:16 -!- aloril has quit (Remote host closed the connection).
14:44:16 <HackEso> Quotes are just elements of the quantum dilapidated bogosphere. See qdb.
14:44:23 <HackEso> qdb is used like: `quote; `quote regexp; `quote id; `addquote ...; `delquote id; `pastequotes regexp; `pastenquotes [n]; see also quoteformat
14:44:25 <HackEso> `quote format? ¯\(°_o)/¯
14:44:59 <HackEso> quoteformat is: <nick> message; * nick action; two spaces between messages; all elisions marked with [...] other than irrelevant intervening messages; for messages separated by elision, one space on each side, not two.
14:45:24 -!- aloril has joined.
14:45:32 <b_jonas> ``` addquote '<Taneb> Anyway, you know yesterday I had a program which lists primes which ran out of memory before reaching 3?' #https://esolangs.org/logs/2019-02-17.html#lT
14:45:34 <HackEso> 1332) <Taneb> Anyway, you know yesterday I had a program which lists primes which ran out of memory before reaching 3?
15:03:41 <b_jonas> so not only do they have sign /saIn/, signal /"sIgn@l/, but also resign /rI"zaIn/, resignation /rezIg"neIS@n/
15:51:33 -!- xkapastel has quit (Quit: Connection closed for inactivity).
15:52:46 -!- FreeFull has joined.
16:00:33 <esowiki> [[Special:Log/newusers]] create * TheJebForge * New user account
16:03:19 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=59912&oldid=59909 * TheJebForge * (+234)
16:05:00 <esowiki> [[Glutton]] https://esolangs.org/w/index.php?diff=59913&oldid=59856 * CubixThree * (+561) Made some more progress finishing this up.
16:06:02 <esowiki> [[User:TheJebForge]] N https://esolangs.org/w/index.php?oldid=59914 * TheJebForge * (+212) Created page with "I'm TheJebForge, a hobbyist programmer and I know most of the popular programming languages. Favorite languages are C++ and Lua. Joined this community to showcase a language I..."
16:09:32 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=59915&oldid=59859 * TheJebForge * (+13)
16:13:34 <esowiki> [[Minaac]] N https://esolangs.org/w/index.php?oldid=59916 * TheJebForge * (+553) Created page with "== minaac == Minaac (Minaac Is Not An Assembler Clone) is a run-time interpreted programming language capable of recreating Turing Machine making it a turing-complete languag..."
16:19:02 <esowiki> [[Minaac]] https://esolangs.org/w/index.php?diff=59917&oldid=59916 * TheJebForge * (+120)
16:19:26 <esowiki> [[Minaac]] https://esolangs.org/w/index.php?diff=59918&oldid=59917 * TheJebForge * (+21) /* Minaac */
16:21:50 <esowiki> [[Minaac]] https://esolangs.org/w/index.php?diff=59919&oldid=59918 * TheJebForge * (+49)
16:22:18 <esowiki> [[Minaac]] https://esolangs.org/w/index.php?diff=59920&oldid=59919 * TheJebForge * (+4) /* External resources */
16:22:54 <esowiki> [[Minaac]] https://esolangs.org/w/index.php?diff=59921&oldid=59920 * TheJebForge * (+23)
16:24:21 -!- TheJebForge has joined.
16:28:13 -!- TheJebForge has quit (Client Quit).
16:31:37 <esowiki> [[Minaac]] https://esolangs.org/w/index.php?diff=59922&oldid=59921 * TheJebForge * (+1)
17:24:06 <esowiki> [[Esoteric data structure]] https://esolangs.org/w/index.php?diff=59923&oldid=44362 * Cortex * (+22)
18:02:06 <esowiki> [[$ $]] https://esolangs.org/w/index.php?diff=59924&oldid=59258 * Cortex * (+43)
18:03:21 <esowiki> [[User:Cortex]] https://esolangs.org/w/index.php?diff=59925&oldid=59806 * Cortex * (+21)
18:04:54 <esowiki> [[Pizza Delivery]] N https://esolangs.org/w/index.php?oldid=59926 * Cortex * (+1577) Created page with "Coming soon: Usefulness {{WIP}} '''Pizza Delivery''' is yet another esolang by [[User:Cortex|]] designed to be similar to the logic of other Cortex languages, but more concise..."
18:12:55 <shachaf> http://dmishin.blogspot.com/2013/11/the-single-rotation-rule-remarkably.html
18:34:40 -!- imode has joined.
18:52:43 -!- moei has joined.
18:56:29 <esowiki> [[User:TheJebForge]] https://esolangs.org/w/index.php?diff=59927&oldid=59914 * TheJebForge * (+4)
18:56:56 <esowiki> [[Minaac]] https://esolangs.org/w/index.php?diff=59928&oldid=59922 * TheJebForge * (+2) /* Example code */
19:05:39 <esowiki> [[Minaac]] https://esolangs.org/w/index.php?diff=59929&oldid=59928 * TheJebForge * (+239) /* Minaac */
19:05:52 <esowiki> [[Minaac]] https://esolangs.org/w/index.php?diff=59930&oldid=59929 * TheJebForge * (+1) /* Minaac */
19:50:30 -!- Phantom_Hoover has joined.
19:50:30 -!- Phantom_Hoover has quit (Changing host).
19:50:30 -!- Phantom_Hoover has joined.
20:03:58 <HackEso> Gray is e common misspalling of grey.
20:14:46 <int-e> . o O ( Let's not make an entry on Grey codes. )
20:15:03 <HackEso> bash: -c: option requires an argument
20:15:30 <b_jonas> ``` for c in sc cs csh sch sh ch; do \? fu"$c"ia; done
20:15:33 <HackEso> fuscia? ¯\(°_o)/¯ \ fucsia? ¯\(°_o)/¯ \ fucshia? ¯\(°_o)/¯ \ fuschia? ¯\(°_o)/¯ \ fushia? ¯\(°_o)/¯ \ fuchia? ¯\(°_o)/¯
20:15:58 <HackEso> https://hack.esolangs.org/repo/file/tip/wisdom
20:16:44 <int-e> `cwlprits pokemon red
20:18:13 <shachaf> Who was the person who was against cwlprits and dowg and grWp and all those things?
20:18:24 <shachaf> I feel like there was one (other than b_jonas) but now everyone's using them.
20:21:44 <int-e> I have troulbe with the etymology of things like `doag.
20:22:22 <int-e> And I have troulbe with spelling, apparently.
20:22:34 <b_jonas> shachaf: I'm not specifically against them
20:22:52 <b_jonas> I just feel like everyone should be allowed to use whatever tools they want, and judged by their results regardless of their tools
20:23:20 <b_jonas> this should apply for programming languages too: if you write useful stuff in java or php, that's fine, it's your problem if you have to wrestle with the language during, not mine as a user
20:23:51 <b_jonas> i.e. I prefer Mediawiki over other wikis, even if Mediawiki is the one using php
20:23:55 <int-e> But if you use javascript and burden me with electron then I will complain.
20:25:34 <b_jonas> same for editors and even IDEs
20:32:17 <Lymia> I do think there's a limit to this idea.
20:32:39 <Lymia> Like... given a network facing C program, I expect it to have a 100% chance of having latent undiscovered memory unsafety, of a type that is potentially exploitable
20:33:08 <Lymia> Tools can well be inapproprate in ways the user cares about
20:33:13 -!- ais523 has joined.
20:34:03 <shachaf> int-e: Do you want to rename these things?
20:34:15 <zzo38> Is there some way to tell the "uuid" program to use a different MAC address?
20:34:25 <shachaf> I think maybe there could be a better system than encoding subsets of behaviors people care about in the command name.
20:34:52 <int-e> shachaf: don't rename these, please
20:35:18 <int-e> that'll just cause even more confusion
20:35:20 <shachaf> It's been a few years. People are too used to the existing names.
20:36:19 -!- Lymia has quit (Quit: Hugs~ <3).
20:37:11 <zzo38> (I suppose it isn't difficult to just edit the resulting UUID to put in a different MAC address)
20:38:28 -!- callforjudgement has joined.
20:38:30 -!- ais523 has quit (Ping timeout: 250 seconds).
20:38:49 -!- callforjudgement has changed nick to ais523.
20:41:48 <b_jonas> so I found out that there are like eight M:tG cards, even not counting the silver-bordered ones, that make other players make choices while you're casting a spell
20:43:02 <b_jonas> they're old, but have some reprings
20:43:48 <b_jonas> ``` card-by-name Arena # is one of them
20:43:49 <HackEso> Arena \ Land \ {3}, {T}: Tap target creature you control and target creature of an opponent's choice they control. Those creatures fight each other. (Each deals damage equal to its power to the other.) \ PROMO-S, TSP-S \ \ Arena Athlete \ 1R \ Creature -- Human \ 2/1 \ Heroic -- Whenever you cast a spell that targets Arena Athlete, target creature an opponent controls can't block this turn. \ THS-U \ \ Arena of the Ancients \ 3 \ Artifact \ Legendary cre
20:44:58 <b_jonas> ``` card-by-name Evangelize # is a new one in TSP
20:44:58 <HackEso> Evangelize \ 4W \ Sorcery \ Buyback {2}{W}{W} (You may pay an additional {2}{W}{W} as you cast this spell. If you do, put this card into your hand as it resolves.) \ Gain control of target creature of an opponent's choice they control. \ TSP-R
20:48:13 <b_jonas> now I don't know how casting spells work, and have to read the comp rules
20:48:34 <zzo38> I do know how it work; I have read the rules
20:51:26 <zzo38> First modes are chosen, and then targets, and then the cost is determine, and then the mana step if applicable, and then the cost is paid.
20:54:28 -!- Lymia has joined.
20:54:37 <b_jonas> zzo38: can the opponent's choice of targets, or any choices by other players during the mana abilities part, change whether the caster can pay the costs of the spell?
20:55:13 <b_jonas> And I mean without silver-bordered cards
20:55:28 <b_jonas> because with Gleemax that could happen, but let's exclude Gleemax now as it's silver-bordered
20:56:00 <zzo38> I think there are some cards with effects that might do that (even not counting silver bordered) (although I do not quite remember all of the cards)
20:56:17 <ais523> this doesn't seem any more broken than Selvala
20:56:50 <ais523> I assume you'd just have to rewrite if an opponent chose a target which meant you couldn't afford to pay the costs of the spell
20:57:19 <zzo38> (I think some cards increase the cost for targeting them)
20:57:41 <zzo38> (I do not remember which ones.)
20:58:09 <b_jonas> `card-by-name Selvala, Explorer Returned
20:58:10 <HackEso> Selvala, Explorer Returned \ 1GW \ Legendary Creature -- Elf Scout \ 2/4 \ Parley -- {T}: Each player reveals the top card of their library. For each nonland card revealed this way, add {G} and you gain 1 life. Then each player draws a card. \ CNS-R, C16-R, VMA-R
20:58:15 <ais523> it's tricky, some cards like that counter the spell unless a cost is paid, rather than actually increasing the cost
20:58:26 <ais523> b_jonas: the great thing is, that's a mana ability
20:58:57 <ais523> so you can attempt to use it to pay for a spell, and then discover you don't have enough mana
20:58:59 <zzo38> Yes, it is a mana ability which reveals cards from a library
20:59:10 <b_jonas> why don't we have rules managers that can rein Wizards in when they have such ideas?
20:59:11 <ais523> and you can't rewind because the cards from the library have already been seen
20:59:13 <zzo38> And conditionally adds mana based on that
20:59:44 <ais523> it clearly doesn't work but the rules managers have been reluctant to change it
21:00:13 <b_jonas> isn't there a rule that if something would reveal hidden cards while casting a spell, they're instead revealed only later, after casting the spell? or is that only for _drawing_ cards specifically?
21:00:26 <zzo38> I think only for drawing cards
21:00:43 <ais523> right, you draw them face down
21:00:50 <ais523> but that doesn't help with Selvala because they're explicitly revealed
21:01:15 <ais523> they should really just have put "play this ability only any time you could play an instant" on there
21:01:19 <zzo38> http://zzo38computer.org/textfile/miscellaneous/magic_card/puzzle.7
21:01:24 <ais523> or at least day-1-errata'd it to that
21:01:28 <ais523> but for mysterious reasons, they didn't
21:01:32 <zzo38> ais523: Yes, that would help
21:01:46 <b_jonas> if a morph of an opponent dies during the mana ability part of casting a spell, you'll just learn what it is immediately, even if casting the spell may have to be rewound?
21:02:10 <ais523> I assume that can happen, although I can't think of a way to do it offhand
21:02:44 <ais523> I guess you could have stolen it, and sacrificed it to Phyrexian Altar, but then you'd legally be allowed to look at it so it'd only matter in multiplayer
21:03:25 <b_jonas> ais523: just copy a Wild Cantor on it
21:03:38 <b_jonas> that would be your own morph then
21:03:55 <zzo38> Do you like my puzzle?
21:04:10 <ais523> killing an opponent's creature at mana ability speed is hard because you can't use triggered abilities
21:04:28 <ais523> hmm, are there any global toughness boosts in the game? I think there are, right?
21:04:33 <b_jonas> ais523: worse still, you can't even use toughness reduction because SBAs won't kick in
21:04:51 <ais523> so you'd have to kill directly
21:05:30 <ais523> zzo38: seeing a Panglacial Wurm there worries me
21:05:44 <b_jonas> man, this was easier when I could just search for "pool" to find every mana ability
21:06:25 <ais523> is "add" used in other contexts?
21:06:38 <b_jonas> you newfangled youths with your intuitive "dies" and "create [token]" and "add [mana]" phrasing, back when I was young we had to write rules text uphill both ways in the snow
21:06:51 <HackEso> Shefet Dunes \ Land -- Desert \ {T}: Add {C}. \ {T}, Pay 1 life: Add {W}. \ {2}{W}{W}, {T}, Sacrifice a Desert: Creatures you control get +1/+1 until end of turn. Activate this ability only any time you could cast a sorcery. \ HOU-U
21:08:21 <b_jonas> ais523: you might be right, maybe it doesn't occur elsewhere
21:08:33 <b_jonas> it might even be better than "pool" because "pool" occurs in some card names
21:09:26 <zzo38> If "add" is used in other contexts, they would presumably say where to add it to, and you would be adding something other than mana, anyways
21:11:56 <ais523> zzo38: with your puzzle, can't you just win by discarding a card to Skirge Familiar and attacking with everything?
21:12:02 <ais523> AFAICT the opponent can't block and you do 4 damage
21:12:28 <b_jonas> ais523: and Simian Spirit Guide makes it very easy to have cases where you start casting a spell without being able to pay its costs but the opponent doesn't know that for sure
21:13:15 <zzo38> ais523: Maybe, although it is not intention. I will look to see if it is or not
21:13:15 <ais523> I don't think that in general it's possible to always be able for an opponent to know in advance how much mana you can generate
21:13:21 <zzo38> (It can be fixed if necessary)
21:16:23 <zzo38> ais523: I don't think you can win like that? You can do only 3 damage, isn't it?
21:16:48 <ais523> zzo38: lhurgoyf does one for the discarded instant/sorcery in your graveyard, skirge familiar does 3
21:17:03 <ais523> anafenza only prevents creature cards going to the graveyard and has no impact on instants and sorceries
21:17:16 <ais523> or, wait, does lhurgoyf only count creatures?
21:17:35 <ais523> ah right, only counts creatures
21:17:47 <HackEso> Metalworker \ 3 \ Artifact Creature -- Construct \ 1/2 \ {T}: Reveal any number of artifact cards in your hand. Add {C}{C} for each card revealed this way. \ UD-R
21:18:25 <zzo38> Yes, Lhurgoyf only counts creatures.
21:19:24 <ais523> I suspect the panglacial wurm is a red herring as none of your cards appear to search, it's probably just there to be an arbitrary creature
21:21:48 <b_jonas> ais523: would zzo38 really do that in a puzzle? adding such an irrelevant element?
21:22:49 <ais523> different puzzle setters have different styles but I don't know what zzo38's is
21:22:51 <b_jonas> yeah, it doesn't look like anything searches there. not even a search land.
21:23:41 -!- arseniiv has quit (Ping timeout: 246 seconds).
21:26:22 <ais523> I don't think zzo38's puzzle is solvable as you can't get rid of the anafenza or the lab maniac, and can't cast the panglacial wurm even after drawing it, thus you can't get more than 3 power on the field and can't win by any alternate win condition, also there's no way to stop the opponent winning next turn
21:26:25 <ais523> although I might have missed something
21:27:46 <zzo38> I think once someone found the intended solution but was unsure if it was valid or not, and they are a judge of Magic: the Gathering.
21:29:36 <ais523> well, chromatic sphere draws a card at mana ability speed, and I'm pretty sure that's part of the solution
21:30:37 <ais523> I'm guessing the intended solution is something along the lines of "cast panglacial wurm from your library, but draw it while you're casting it so that it isn't there, and something goes wrong during the rewind"
21:30:50 <ais523> but I can't see a way to do the first step as none of the cards you have search your library
21:32:03 <zzo38> You do not have to rewind.
21:33:10 <ais523> panglacial wurm isn't castable as it has GG in its cost and you can only generate one green mana
21:33:58 <ais523> hmm, does the intended solution involve attempting to cast panglacial wurm while casting opt? because that isn't legal
21:33:59 <b_jonas> draw it while you're casting it?
21:34:10 <zzo38> ais523: No, it doesn't involve that
21:34:21 <zzo38> I said it does not involve rewinding
21:34:24 <ais523> hmm, at what point does a card go to the stack while you're casting it? probably before you pay costs
21:34:34 <b_jonas> isn't it on the stack and no longer in your library while you're casting it?
21:35:46 <ais523> let's see, my problem here is that you can trivially draw panglacial wurm, but I don't think you can do anything else with it
21:35:58 <zzo38> Putting it on the stack is the first step before deciding modes.
21:36:06 <ais523> oh, you can discard it into exile, but that doesn't seem to help either
21:36:27 <b_jonas> ``` grep '^601\.2a' share/mtg/rules.txt
21:36:27 <HackEso> 601.2a To propose the casting of a spell, a player first moves that card (or that copy of a card) from where it is to the stack. It becomes the topmost object on the stack. It has all the characteristics of the card (or the copy of a card) associated with it, and that player becomes its controller. The spell remains on the stack until it's countered, it resolves, or an effect moves it elsewhere.
21:37:09 <ais523> I'm amused at the way you quoted the . there
21:37:15 <ais523> I guess it makes the grep run fasteR?
21:37:35 <b_jonas> I didn't do it to make gerp run faster
21:37:42 <ais523> false positives seem unlikely
21:37:56 <ais523> `` grep ^601.2a share/mtg/rules.txt
21:37:57 <HackEso> 601.2a To propose the casting of a spell, a player first moves that card (or that copy of a card) from where it is to the stack. It becomes the topmost object on the stack. It has all the characteristics of the card (or the copy of a card) associated with it, and that player becomes its controller. The spell remains on the stack until it's countered, it resolves, or an effect moves it elsewhere.
21:37:57 <b_jonas> the running speed is insignificant because the network lag is bigger
21:38:02 <b_jonas> I just find it dirty to not quote it
21:38:31 <b_jonas> and I need a caret or it will find an earlier line, so I can't just -F it, and -w or -x doesn't help
21:40:00 <ais523> I actually have an alias to do a recursive search for a particular string at the start of a line, but it doesn't quote it
21:40:18 <ais523> (it does some other things, though, like opening the found result in less)
21:40:36 <ais523> the idea is to quickly jump to a function in code that uses an indentation style which places newlines before function names in their definintions
21:41:34 <b_jonas> and it wouldn't be too strange to have an alias in HackEso that displays a particular rule
21:41:50 <b_jonas> IIRC the Yawgatog bot has that feature
21:41:56 <ais523> my most commonly used alias, though, is one called "l" which does ls on directories, ls on . if given no arguments, and less on regular files
21:42:04 <b_jonas> the tricky part is that some rules really don't fit in an irc line
21:42:21 <rain1> what if dwarf fortress w as an anime
21:42:40 <zzo38> Also you should fix so that the cards do not have reminder text. This solves two problems, one is it makes searching better to omit reminder text, and other is that it is less likely to go over the maximum length of the IRC text if the reminder text is omitted.
21:42:43 <ais523> I'm finding it hard to visualise what an anime dwarf would look like
21:43:17 <b_jonas> `card-by-name Elven Fortress
21:43:18 <HackEso> Elven Fortress \ G \ Enchantment \ {1}{G}: Target blocking creature gets +0/+1 until end of turn. \ FE-C
21:44:04 <b_jonas> zzo38: I told you already, fix that yourself if you want
21:44:55 <HackEso> Duh \ B \ Instant \ Destroy target creature with reminder text. (Reminder text is any italicized text in parentheses that explains rules you already know.) \ UNH-C
21:45:19 <ais523> detecting reminder text might be quite hard
21:45:23 <b_jonas> I for one like the reminder text, because I can't remember all 136 keyword abilities
21:45:32 <ais523> perhaps opening paren followed by capital letter is a reliable way to detect it?
21:45:45 <b_jonas> ais523: why? are there other parenthesis in the rules text part?
21:45:57 <ais523> I think so, not sure though
21:46:03 <zzo38> As far as I know the parentheses are not used for anything else other than reminder text
21:46:12 <ais523> `` cat bin/card-by-name
21:46:13 <HackEso> #!/bin/sh \ exec perl -e 'open$I,"<","/hackenv/share/mtg/allsets.txt"or die;$/=""; while(<$I>){/\A(?i)\Q$ARGV[0]/ and print}' "$1"
21:46:50 <ais523> what's \A? start of a line?
21:46:55 <b_jonas> ais523: start of the string
21:47:09 <b_jonas> which in this case is more than a line
21:47:10 <ais523> oh right, the while already splits it into lines
21:47:17 <b_jonas> ais523: no, it splits it to paragraphs
21:47:24 <b_jonas> and there's one paragraph per card
21:47:34 <ais523> oh, I missed the override of $/
21:48:41 <ais523> `` grep '([a-z]' /hackenv/share/mtg/allsets.txt
21:48:42 <HackEso> 3(r/p)(r/p) \ ({(r/p)} can be paid with either {R} or 2 life.) \ When Aether Chaser enters the battlefield, you get {E}{E} (two energy counters). \ When Aether Herder enters the battlefield, you get {E}{E} (two energy counters). \ When Aether Hub enters the battlefield, you get {E} (an energy counter). \ When Aether Inspector enters the battlefield, you get {E}{E} (two energy counters). \ When Aether Meltdown enters the battlefield, you get {E}{E} (two ene
21:48:57 <b_jonas> although that's in a mana cost
21:49:04 <b_jonas> you'll have to find one in a rule text
21:49:17 <ais523> do we count the energy counter counting text as reminder text?
21:49:23 <b_jonas> in the yawgatog allsets dump, it's not even trivial to find which lines are mana costs
21:49:53 <ais523> `card-by-name graven cairns
21:49:54 <HackEso> Graven Cairns \ Land \ {T}: Add {C}. \ {(b/r)}, {T}: Add {B}{B}, {B}{R}, or {R}{R}. \ FUT-R, SHM-R, EXP-M, IMA-R
21:50:06 <b_jonas> ais523: yes. it's printed with parens in italic on the card, so it's reminder text.
21:50:28 <ais523> ``` grep '([a-z]' /hackenv/share/mtg/allsets.txt | grep -v energy
21:50:29 <HackEso> 3(r/p)(r/p) \ ({(r/p)} can be paid with either {R} or 2 life.) \ 3(w/u) \ Whenever Alesha, Who Smiles at Death attacks, you may pay {(w/b)}{(w/b)}. If you do, return target creature card with power 2 or less from your graveyard to the battlefield tapped and attacking. \ Your opponents can't cast spells with the chosen name (as long as this creature is on the battlefield). \ 1(w/p) \ ({(w/p)} can be paid with either {W} or 2 life.) \ Cycling {(u/b)} ({(u/b)
21:50:47 <ais523> ``` grep '([a-z]' /hackenv/share/mtg/allsets.txt | grep -v energy | grep -v '([a-z]/[a-z])'
21:50:48 <HackEso> Your opponents can't cast spells with the chosen name (as long as this creature is on the battlefield). \ Pursuant to subsection 3.1(4) of Richard's Rules of Order, at the beginning of the upkeep of each participant in this game of the Magic: The Gathering(R) trading card game (hereafter known as "PLAYER"), that PLAYER performs all actions in the sequence of previously added actions (hereafter known as "ACTION QUEUE"), in the order those actions were added
21:50:59 <Taneb> `quote before finding 3
21:50:59 <HackEso> 1331) <Taneb> ...this is the first prime number finder I've ever written which ran out of memory before finding 3
21:51:16 <Taneb> `quote before reaching 3
21:51:17 <HackEso> 1332) <Taneb> Anyway, you know yesterday I had a program which lists primes which ran out of memory before reaching 3?
21:51:21 <ais523> the first hit there is reminder text, the secondd surely has to be an uncard (and isn't reminder text)
21:51:35 <Taneb> I'm not sure both of these are necessary
21:52:08 <Taneb> And shachaf added the first one
21:52:19 <HackEso> Quotes are just elements of the quantum dilapidated bogosphere. See qdb.
21:52:25 <HackEso> qdb is used like: `quote; `quote regexp; `quote id; `addquote ...; `delquote id; `pastequotes regexp; `pastenquotes [n]; see also quoteformat
21:52:32 <HackEso> *poof* <Taneb> Anyway, you know yesterday I had a program which lists primes which ran out of memory before reaching 3?
21:57:03 <Taneb> I had a lot of fun with that dumb idea
21:57:24 <Taneb> Tomorrow I'll try to finish my previous dumb idea, a brainfuck interpreter written in jq
22:01:03 <imode> iirc, a command line tool to query json.
22:03:49 <ais523> is this one of those "accidentally Turing-complete" situations?
22:04:27 -!- Remavas has joined.
22:09:10 <b_jonas> hmm. dumb question. if I'm mindslaving my opponent, and I'm casting Evangelize (through Vedalken Orrery), then am I required to choose Standard Bearer as the target for the Evangelize?
22:10:29 <b_jonas> 601.2c doesn't even mention the case of spells like Arena or Evangelize that I was talking earlier, which make another player than the caster choose targets during casting a spell
22:10:42 <ais523> I don't think so; you're making decisions for your opponent, and your opponent wouldn't be constrained in making them
22:10:45 <ais523> but it's an interesting semantic point
22:11:18 <b_jonas> `card-by-name Standard Bearer
22:11:18 <HackEso> Standard Bearer \ 1W \ Creature -- Human Flagbearer \ 1/1 \ While choosing targets as part of casting a spell or activating an ability, your opponents must choose at least one Flagbearer on the battlefield if able. \ AP-C
22:12:01 <b_jonas> that's not the current oracle text
22:12:10 <b_jonas> the current rules text is: While an opponent is choosing targets as part of casting a spell they control or activating an ability they control, that player must choose at least one Flagbearer on the battlefield if able.
22:12:36 <ais523> oh, so it got oracled to solve the problem
22:12:50 <b_jonas> I was reading that current oracle text and asked the question after that
22:13:13 <b_jonas> I should have realized I shouldn't ask card-by-name for this, because I knew this got lots of erratas
22:13:23 <ais523> oh right, evangelize is a spell you control
22:13:44 <b_jonas> yes, and the opponent controls the flagbearer in this situation
22:15:56 <ais523> M:tG's rules probably don't work
22:16:13 <ais523> but they work well enough when people aren't intentionally setting up ridiculous situations
22:16:17 <ais523> `card-by-name Dominating Licid
22:16:18 <HackEso> Dominating Licid \ 1UU \ Creature -- Licid \ 1/1 \ {1}{U}{U}, {T}: Dominating Licid loses this ability and becomes an Aura enchantment with enchant creature. Attach it to target creature. You may pay {U} to end this effect. \ You control enchanted creature. \ EX-R
22:16:46 <ais523> that card didn't work at all for quite a while (due to layers issues), there was something of a community protest asking for errata or rules changes to make it work again
22:16:50 <b_jonas> ais523: not only that, I think you can make houserules that make them work and that are close enough to M:tG rules that the difference won't come up in real games
22:17:04 <ais523> eventually it happened, before then there were ruling saying that it worked but not explaining why
22:18:01 <b_jonas> I still don't understand how linked abilities work, there are several reasonable ways they could be fixed, and I should probably ask the knowledgable people (judges) on scryfall how they work
22:18:58 <Taneb> ais523: jq has enough in it that it's almost certainly TC
22:20:22 <Taneb> And, like, not by half measures
22:20:46 <Taneb> Something Underload-like would probably be easier to implement in it than BF
22:22:12 <Taneb> And now I ought to sleep
22:22:12 <ais523> just do Cyclic Tag or The Waterfall Model, we have easier languages than BF nowadays :-)
22:23:48 <Taneb> Yeah, but they're harder to show off to people outside this channel
22:25:23 <b_jonas> you want achievements that you can put on your cv?
22:25:30 <ais523> hmm, and I go to all this trouble writing a tutorial and interactive interpreter and optimizing interpreter for The Waterfall Model precisely so that I can show it off to people outside the channel…
22:33:55 <b_jonas> ``` grep -n '^601\.2d' share/mtg/rules.txt
22:33:55 <HackEso> 2069:601.2d If the spell requires the player to divide or distribute an effect (such as damage or counters) among one or more targets, the player announces the division. Each of these targets must receive at least one of whatever is being divided.
22:34:53 <b_jonas> That's still a rule in un-land? You can't The Ultimate Nightmare half a damage into a creature?
22:38:02 <b_jonas> mind you, that applies only to spells. afaik there's no such rule for combat damage, a Gorgon can kill blocked creatures with half a damage each
22:56:05 <zzo38> I am not even so sure the Un-cards rules are all as well defined anyways, but I might assume that rule 601.2d still applies with a minimum of 1 (but that unlike normal game you can still do one and a half)
22:56:22 <zzo38> And that, yes for combat damage rule 601.2d is not applicable
23:01:18 -!- AnotherTest has quit (Ping timeout: 245 seconds).
23:04:36 <b_jonas> zzo38: the rules for some un-cards are definitely not well-defined. but the un-rule that doesn't require any cards, which allows half-integers as numbers, I think that one is definable, and there are also a lot of un-cards that are easy to support because they don't do anything really rule-breaking
23:05:14 <b_jonas> I mean supportable comp-rules-wise obviously, not that they should be allowed in a tournament or make a pleasant game
23:05:36 -!- xkapastel has joined.
23:05:48 <b_jonas> well, there are some problems with the half-integer rule too
23:06:09 <b_jonas> there are a few places where you're required to round to an integer, and that definitely mustn't be done the way MaRo says it should be done
23:06:14 <b_jonas> his un-rules are just bullshit
23:06:23 <b_jonas> but he's not the rules manager, he's only the un-rules manager
23:07:34 <zzo38> Yes, I agree with those stuff
23:07:47 <zzo38> You are correct about those stuff
23:08:02 <b_jonas> so there has to be a house rule that you round down in those cases
23:09:09 <b_jonas> `card-by-name Disciple of the Phenax
23:09:36 <b_jonas> `card-by-name Disciple of Phenax
23:09:37 <HackEso> Disciple of Phenax \ 2BB \ Creature -- Human Cleric \ 1/3 \ When Disciple of Phenax enters the battlefield, target player reveals a number of cards from their hand equal to your devotion to black. You choose one of them. That player discards that card. (Each {B} in the mana costs of permanents you control counts toward your devotion to black.) \ THS-C
23:09:54 <zzo38> Some of my Un-cards won't work for some reason, too.
23:12:03 <b_jonas> eg. if you have a Little Girl, you can have a non-integer devotion to white; then if you play Disciple of Phenax with Sleight of Mind to change "black" to "white" in it, you'll have to round that devotion to an integer
23:12:54 <b_jonas> there should be a more convincing example somewhere, since Little Girl is silver-bordered, and it's not even clear how devotion is defined
23:13:19 <b_jonas> maybe it still counts the symbol for half a mana as one mana symbol
23:13:21 <zzo38> Yes, I know that. But, in that case you have to reveal half of a card
23:13:42 <b_jonas> like how a hybrid or phyrexian mana symbol still counts as one
23:14:06 <zzo38> b_jonas: Yes, although those are a full mana of that color, not only half of a mana
23:14:41 <b_jonas> `card-by-name Grisly Spectacle
23:14:42 <HackEso> Grisly Spectacle \ 2BB \ Instant \ Destroy target nonartifact creature. Its controller puts a number of cards equal to that creature's power from the top of their library into their graveyard. \ GTC-C, MM3-C, IMA-C, DDM-C
23:15:12 <b_jonas> ^ that's a bit better, though we still have to find a way to give a creature non-integer power with the un-rule but without a silver-bordered card
23:15:35 <b_jonas> and I'm not sure that's possible
23:17:28 <zzo38> Maybe with X spells it might be?
23:18:08 <b_jonas> zzo38: yeah, cast Mind Spring with X set to half
23:18:34 <b_jonas> but that's not a nice enough example for some reason
23:19:17 <b_jonas> you have to be deliberately doing that, and while there could be good reasons, e.g. because some counterspells care about the cmc of the spell and for an X spell the chosen value of X changes that, it's still a bit artificial
23:20:04 <zzo38> Dealing with a fractional number of cards is difficult, but dealing with a fractional number of counters seems like more possible to implement.
23:20:33 -!- copumpkin has joined.
23:21:17 <b_jonas> `cars-by-name Consume Spirit
23:21:17 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: cars-by-name: not found
23:21:40 <b_jonas> `card-by-name Damnable Pact
23:21:41 <HackEso> Damnable Pact \ XBB \ Sorcery \ Target player draws X cards and loses X life. \ DTK-R, C17-R
23:22:20 <b_jonas> ^ you may want the opponent lose half a life, since there are other cases when you deal a non-integer amount of damage to them, e.g. when you attack with a deathtouch trample creature
23:22:37 <b_jonas> then you have to round down the number of cards they draw
23:23:11 <b_jonas> I guess you'd have to spend the other half mana to another X spell
23:23:19 <b_jonas> not too likely to come up, but it's convincing enough for me
23:23:41 <b_jonas> zzo38: yeah, that's more tricky, you have to think whether you want to allow half a +1/+1 counter or half a poison counter
23:24:05 <zzo38> I think half of a +1/+1 counter or half of a poison counter will work fine if the rules allow it.
23:24:39 <b_jonas> especially with infect and wither being out there
23:25:53 <b_jonas> `card-by-name swans of bryn argoll
23:25:54 <HackEso> Swans of Bryn Argoll \ 2(w/u)(w/u) \ Creature -- Bird Spirit \ 4/3 \ Flying \ If a source would deal damage to Swans of Bryn Argoll, prevent that damage. The source's controller draws cards equal to the damage prevented this way. \ SHM-R, MM2-R
23:26:03 <b_jonas> I shouldn't have forgotten about that one
23:26:10 <b_jonas> that's the most obvious way when this can come pu
23:26:24 <b_jonas> just have a gorgon deal half a damage to a blocking Swan
23:26:46 <b_jonas> the remaining half, after it deals half to a creature that doesn't prevent it, that is
23:27:29 <zzo38> (Some of my Un-cards use numbers other than integers and one half, such as "Math Wizard")
23:30:16 <b_jonas> well, Infinity Elemental, an un-card from Unstable, also uses a number other than half-integers
23:30:25 <b_jonas> and the rules have some trouble supporting that one
23:30:48 <b_jonas> I for one don't know how to suppor that consistently, and just chalk it down to an un-card that would never really work with the rules
23:32:02 <zzo38> Yes, some Un-cards won't work so well (and some of mine work even less well than that, although some can work)
23:34:05 <zzo38> Some technically can work, although are unlikely to do much. But, Archaic Tome works as badly like R&D's Secret Lair, I think.
23:36:12 <zzo38> Some of them work differently now (or no longer work) due to rule changes (Homarid Confusion Chamber) or Un-cards rules changes (Death Smith).
23:37:16 -!- Remavas has changed nick to Remavas[AFK].
23:38:29 <zzo38> Wheel of Hand-cutting works, although the reminder text is wrong (but can be ignored).
23:41:10 <b_jonas> even Unhinged, the best un-set, has cards that work just fine with the comp-rules without any modification, they're just un-cards for reasons other than that. examples are Johnny, Combo Player; Mise; Togglodyte; Utabi Kong. Even Rocket-Powered Turbo Slug could work fine if its text was errataed to say what it wants to say. Who would be easy to fix.
23:42:27 <zzo38> Yes, that is true some are work with ordinary rules
23:43:55 <b_jonas> the drat was that the bulb in the ceiling lamp burned out. and that realized what I wanted to ask ais
23:44:48 <zzo38> (Irrational Zappers (another of my Un-cards) also uses numbers other than integers and half)
23:46:28 <b_jonas> ais523: https://esolangs.org/logs/2019-02.html#l2lb
23:48:31 <b_jonas> ais523: basically, last time we talked about words like "divisor" and "quotient" and "factor" and "product", so now I was asking about what words there are like "addition, subtraction, multiplication, division, conjunction, disjunction"
23:48:56 <b_jonas> and in particular how you'd call a min or max operation
23:49:59 <b_jonas> and tried to come up with possible new terms like "contraction, extension" for min and max, "masonry, carpentry" for floor and ceil.
23:50:28 <ais523> b_jonas: for min, I sometimes use "cap" / "cap at" / "capping"
23:50:37 <ais523> as that's what it does if you see it as asymmetrical
23:50:38 <b_jonas> ais523: that could work, yes
23:50:54 <b_jonas> ... some things called min are assymetrical, yes
23:51:06 <b_jonas> I prefer the symmetrical ones, but programming languages and cpus prefer the assymetrical ones
23:51:17 <ais523> I mean, + and × are being seen as asymmetrical with this terminology
23:51:21 <ais523> I don't really consider NaN behaviour to be relevant
23:51:27 <ais523> are there any other asymmetrical cases for min/max?
23:51:44 <b_jonas> ais523: no, but you have to be careful what you mean by nan behavior
23:51:53 <b_jonas> with min/max, it's not just what nan representation you get as the result
23:52:13 <ais523> but whether you get the NaN at all or the other operand
23:52:14 <b_jonas> it's that in some cases min(nan, 2.0) is 2.0 but min(2.0, nan) is nan
23:52:36 <ais523> the consistent behaviour would be to output the NaN you were given as argument, when you were given exactly one NaN, but that's inefficient
23:52:45 <b_jonas> that kind of assymetry is painful, but it's specifically what some of the definitions require or what cpus implement
23:53:19 <b_jonas> ais523: well, you could have more than one nice behavior, and one of them is that of the C fmin/fmax functions, which returns the other argument if one of them is a nan
23:53:22 <ais523> most definitions of min don't take into account the possibility that !(a < b) and !(a > b) don't necessarily together imply a == b
23:53:44 <ais523> hmm, what does <=> do with NaN?
23:54:07 <b_jonas> ais523: yeah, they're assymetric for that too, min(0.0, -0.0) can be different from min(-0.0, 0.0)
23:54:18 <b_jonas> and in fact will be different in the cpu operation
23:54:52 <b_jonas> ais523: yes, they are equal
23:54:56 <ais523> they're just not the /same/, despite being equal
23:54:58 <b_jonas> which is why you get an assymetric operation
23:55:05 <b_jonas> a non-commutative one that is
23:55:19 <ais523> hmm, is -(0.0) actually negative zero? or is it positive zero?
23:55:28 <b_jonas> ais523: that depends on the programming language actually
23:55:40 <b_jonas> iirc in perl it's positive zero, in C it's negative zero, or something like that
23:55:47 <b_jonas> I'm not sure I know the full ruels
23:55:54 <b_jonas> but that's not the point here
23:56:03 <b_jonas> you can get a negative zero in other ways
23:56:15 <ais523> indeed, I was just complaining at the -0.0 notation :-)
23:56:29 <ais523> also, copysign is bizarre as a primitive
23:56:42 <ais523> very few other functions would take a boolean input using the sign bit of a flota
23:56:48 <b_jonas> and negative zeroes matter because when you divide one by them, the sign becomes apparent
23:56:54 <ais523> unless copysign is capable of copying signs other than negative and positive?
23:56:59 <b_jonas> ais523: what? that's not true
23:57:22 <b_jonas> several x86 vector operations specifically dispatch by the top bit of each part of the register
23:57:26 <b_jonas> the ones that do conditional stuff
23:57:29 <zzo38> JavaScript has a Object.is() function to compare negative with positive zero
23:57:35 <zzo38> I don't know what Perl does.
23:57:36 <b_jonas> and that top bit is also the sign of the float
23:57:45 <ais523> zzo38: is it possible to have multiple different positive zeroes in JavaScript?
23:58:01 <b_jonas> zzo38: the problem with perl is that it's older than people have figured out that they want ieee floats, so it doesn't really suppor them properly
23:58:09 <b_jonas> it's like old programming langugaes
23:58:15 <ais523> > Object.is(new Number(0), new Number(0))
23:58:16 <zzo38> ais523: You can have positive zero as a bigint, but other than that I think not.
23:58:17 <lambdabot> No module named ‘Object’ is imported.
23:58:32 <b_jonas> zzo38: can you have an integer versus a float zero?
23:58:38 <zzo38> ais523: That creates two separate objects representing the number zero, not the number value itself.
23:58:48 <ais523> actually, my new Number(0) objects don't even compare equal via ==
23:58:58 <ais523> but they do appear to do arithmetic correctly
23:58:59 <zzo38> b_jonas: Yes. An integer zero is 0n, but a float zero is just 0
23:59:19 <ais523> every time I think I'm beginning to understand JavaScript, it turns out I'm wrong
23:59:27 <zzo38> ais523: Yes, because you are comparing objects; when comparing objects == checks if it is the same object same like ===
23:59:45 <b_jonas> ais523: this channel has some other people who think they understand javascript, are they of any help?
00:00:02 -!- danieljabailey has quit (Quit: ZNC 1.6.6+deb1ubuntu0.1 - http://znc.in).
00:00:12 <zzo38> I am I think I understand JavaScript, I think
00:00:44 <ais523> b_jonas: I had to learn how JavaScript OO worked to write the The Waterfall Model interpreter
00:00:45 -!- Lord_of_Life_ has joined.
00:01:07 <ais523> it's much easier to understand when you realise that x.prototype does not, despite appearances, give you access to the prototype of x
00:01:11 <b_jonas> couldn't you just avoid the eso parts of javascript when you wrote code?
00:01:18 <ais523> I wanted to do it properly
00:01:27 <ais523> and it was the sort of project where OO was helpful anyway
00:01:37 <b_jonas> I was sort of in the same situation about ruby
00:01:41 <b_jonas> I gave up trying to understand it now
00:01:50 <zzo38> x.prototype accesses the prototype of new objects constructed using the function x. To get the prototype of x itself, you must use Object.getPrototypeOf(x) instead.
00:02:00 <b_jonas> and ruby 1.8 has the advantage that it has a very easy to read only implementation
00:02:09 <b_jonas> but that language is crazy
00:02:22 <b_jonas> I can't tell if it's crazier than javascript or not, because I know too little about javascript
00:02:43 <ais523> JavaScript is more hurried than crazy
00:03:04 <b_jonas> and it's crazy because of the object model too, the basis it's built over, not just because of something in the library
00:03:04 <ais523> it was originally written in a ridiculously short space of time to meet a deaddline
00:03:11 <fizzie> For C: "An implementation may give zero -- a sign, or may leave [it] unsigned. Wherever such values are unsigned, any requirements -- to retrieve the sign shall produce an unspecified sign, and any requirement to set the sign shall be ignored." "On implementations that represent a signed zero but do not treat negative zero consistently in arithmetic operations, the `copysign` functions regard the sign of
00:03:24 <ais523> JS's object model is unusual but not unforgivable, although it would do with better terminology
00:03:42 -!- Lord_of_Life has quit (Ping timeout: 244 seconds).
00:03:43 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:03:48 <ais523> I guess copysign has two purposes: to extract a sign, and to set a sign
00:03:48 <b_jonas> fizzie: sure, but these days we have ieee floats almost everywhere
00:03:53 <ais523> and they both got merged into a single function
00:04:20 <b_jonas> did smalltalk originally call methods "method", or did the "method" name got popularized later, like with java or something?
00:04:39 <b_jonas> I was just wondering because of the "subprogram, procedure, subroutine, function, method" synonym thing
00:05:07 <b_jonas> oh, I should be able to answer that myself
00:05:22 <b_jonas> I have the scanned original smalltalk book on my hard drive
00:05:29 <b_jonas> (got it from the internet)
00:05:35 <ais523> doesn't Smalltallk generally use the word "message"?
00:05:52 <ais523> I've been learning Smalltalk again recently for work, because I wanted a mathematical model of OO languages
00:06:13 <ais523> so I've been basically developing a semantics of Smalltalk, because in every case where Java doesn't work like Smalltalk, I wish (for the purpose of proving things about it) it did
00:06:36 <fizzie> I think it might also use the word "method" as well, in the sense that a method is the thing that is activated when an object gets a message.
00:06:48 <ais523> that said, I still think that merging the program and interpreter was an incredibly bad move and is the reason that Smalltalk never caught on
00:06:59 <zzo38> At least OASYS calls all of the functions "methods", although all of them (other than the init method) must be called on an object, but it doesn't care what class of the object; the same methods are used for all classes. So, it look like unusual that they call it "method" if it is the same for all objects, to me.
00:07:38 <fizzie> Objective-C got the "message" word from Smalltalk, I think.
00:07:42 <ais523> I also think that having no compile-time type checking is a mistake
00:07:45 <ais523> fizzie: well, it's the obvious word to use
00:08:01 <b_jonas> answer: apparently they're called both "method" and "message",
00:08:07 <zzo38> I think the prototype inheritance in JavaScript is good, even though, some people don't like it
00:08:11 <b_jonas> "method" on the side of the class that defines them, "message" when you call them
00:08:22 <b_jonas> sort of like how some people use "parameter" vs "argument"
00:08:55 <b_jonas> ais523: sure, but my question was more about the history, not what the terminology is now
00:09:23 <b_jonas> ais523: but you're not, like, making feather for work, are you?
00:09:50 <b_jonas> fizzie: that's correct, yes
00:09:58 <ais523> I've put up with the weirdnesses of Java for this long, the points over Smalltalk that make it worse than Feather don't really bother me in comparison
00:10:43 <b_jonas> ais523: merging the program and interpreter => do you mean merging the interpreter with the integrated development environment? because APL did that and got popular. admittedly that was in the dark ages.
00:11:10 <fizzie> The C standard uses the parameter/argument words that way, though also has "actual parameter" as a deprecated synonym for "argument", i.e., an "expression in the comma-separated list bounded by the parentheses in a function call expression" (or the equivalent for a function-like macro).
00:11:38 <ais523> b_jonas: no, in most Smalltalk interpretations, you start with a running interpreter/IDE that's basically set up to be a debugger on itself, and you write the program by editing it in-place
00:11:48 <fizzie> (Likewise, "formal argument" is mentioned as a deprecated synonym for "parameter", the other thing.)
00:11:52 <shachaf> Does C have a word for the K&R style parameter type declarations?
00:12:18 <b_jonas> ais523: right. but isn't that sort of an optional part of smalltalk, in that you can have a modern implementation that doesn't do that?
00:12:22 <ais523> in theory, if you stuck to writing things that were clearly separable from the existing interpreter, you coul distinguish them
00:12:37 <ais523> b_jonas: the designers of Smalltalk apparently don't think so; I hope they are incorrect, though
00:12:49 <b_jonas> I mean, if you do want to have an interactive debugger, then it would become part of the program, like it does with perl or lua or ruby,
00:13:18 <b_jonas> you should be able to choose to not have an interactive debugger at all
00:13:54 <fizzie> shachaf: The whole set of them is called "a declaration list", though that's obviously meaningful only if you already have a function definition as the context.
00:13:58 <b_jonas> I hope that kind of build in APL or smalltalk stopped spreading when the unix philosophy of files and toolboxes took over
00:14:16 <b_jonas> there's obviously some inertia, but still
00:14:28 <fizzie> "If the declarator includes an identifier list [i.e., the list of parameters without types], the types of the parameters shall be declared in a following declaration list."
00:15:17 <ais523> b_jonas: what actually happened, AFAICT, is that Smalltalk continued to be spread like that but ended up dying out as a result
00:15:36 <ais523> because people rightfully rejected the approach
00:16:08 <fizzie> There's one example in the C99 rationale of a function that can only be defined in the K&R style: `int f(arr, len) size_t len; int arr[len]; { ... }`
00:16:30 <b_jonas> ais523: ok, but in that case we have to consider why APL didn't die out, and perhaps also prolog
00:17:15 <b_jonas> heck, I think even lisp counts
00:17:17 <fizzie> You can't write `int f(int arr[len], size_t len) { ... }` because `len` isn't in scope for the variable-length array. Or... well, in *that* case it could be declared just as a pointer. So maybe it was `int (*arr)[len]` instead in the example.
00:17:20 <ais523> most major Prologs nowadays work by having a program that's used to initialise an interactive interpreter with definitions
00:17:23 <b_jonas> back then before unix and operating systems, every programming language was like that
00:17:44 <ais523> and even if you develop a Prolog program within the interpreter rather than outside, you can do a simple `listing.` and get an output showing you the program that you wrote
00:18:01 <ais523> fizzie: there's a gcc extension that lets you do that, I think
00:18:21 <ais523> maybe `int f(size_t len; int arr[len], size_t len) { … }`
00:18:26 <b_jonas> and it's not because APLs changed: J is still sort of old style in that the interpreter tries to be primarily an intercative development environment, though at least it reads and writes OS files, including scripts from them
00:19:01 <fizzie> Yeah, the example was: `void f(double a[*][*], int n); void f(a, n) int n; double a[n][n]; { /* ... */ }`
00:19:16 <b_jonas> heck, matlab and maple and mathematica also primarily want to work that way, and I think mathematica got popular late enough that it can't even use history as an excuse
00:20:00 <b_jonas> fizzie: there's actually a gcc extension for that sort of function
00:20:44 <fizzie> "There was considerable debate about whether to maintain the current lexical ordering rules for variable length array parameters in function definitions. -- The possibility of allowing the scope of parameter `n` to extend to the beginning of the parameter-type-list was explored (relaxed lexical ordering), which would allow the size of parameter `a` to be defined in terms of parameter `n`, and could help
00:20:50 <fizzie> convert a Fortran library routine into a C function. Such a change to the lexical ordering rules is not considered to be in the 'Spirit of C,' however. This is an unforeseen side effect of Standard C prototype syntax."
00:21:31 <fizzie> They've uppercased "Spirit" in the original, which makes me think of it as some sort of conscious personification thing.
00:21:31 <shachaf> i,i void f(int a[static 2], int b[a[0]][a[1]])
00:24:52 <shachaf> whoa, the thing I wrote is valid C
00:25:28 <shachaf> I guess it's valid even without the static.
00:25:55 <shachaf> I forgot you could have arbitrary expressions in there.
00:25:57 <fizzie> Do you mean "accepted by my compiler" valid, or proper valid? Because I don't think it is.
00:25:59 <ais523> isn't the i,i a syntax error?
00:26:32 <shachaf> fizzie: It's accepted by a compiler but I also think it's valid.
00:26:48 <fizzie> Yes, I didn't think far enough.
00:26:56 <b_jonas> ais523: so in that case, are you planning to implement a new OO language that takes the good ideas from smalltalk, but not the ditstribution model?
00:27:11 <b_jonas> also, some but not all of the forth interpreters are distributed in that bad way I think
00:27:18 <ais523> b_jonas: right now I can't do that for the same reason I don't work on ayacc
00:27:19 <fizzie> The `a[0]` part is just documentative, but sure.
00:27:37 <fizzie> No, that part's actually meaningful.
00:27:43 <b_jonas> ais523: why? can't you just make such a language for work?
00:27:46 <fizzie> It's equivalent to `int (*b)[a[1]]`.
00:28:18 <b_jonas> I mean, you said you learned the semantics of smalltalk for work
00:28:36 <b_jonas> (also I can't type "smalltalk". my fingers keep typing "smallk" and then I have to backspace)
00:29:24 <b_jonas> if you ever get to do that, I hope it won't turn to ruby
00:29:55 <ais523> b_jonas: well, it's not something that I've been asked to do, but it's obviously connected, so work would end up owning the copyright to it despite likely not having much use for it
00:30:04 <ais523> so the resulting languages would be somewhat wasted, probably
00:30:19 <ais523> (maybe not directly, I could probably buy the rights for it off them, but it'd be way more bother than it's worth)
00:30:58 <shachaf> fizzie: So all the sizes except the *first* one are used.
00:31:06 <b_jonas> interestingly, rust seems to reflect a few of the things that I don't like in ruby, like how the name resolution rules are sometimes really weird just to make the syntax seem a bit nicer for the common cases
00:31:11 <shachaf> For some reason I thought it was the last one.
00:31:12 <b_jonas> ruby is much worse though, mind you
00:31:22 <ais523> b_jonas: didn't Rust change the name resolution rules recently?
00:31:31 <ais523> although I'm not sure if you dislike the old ones or the new ones or both
00:31:31 <b_jonas> ais523: there was a little change, yes
00:31:46 <b_jonas> but the remark applies both before and after
00:44:25 -!- oerjan has joined.
00:50:13 <oerjan> `` allquotes | tail -2
00:50:13 <HackEso> 1330) <b_jonas> I don't care for the bf backend as long as it doesn't make the rest of ayacc harder to sue \ 1331) <Taneb> ...this is the first prime number finder I've ever written which ran out of memory before finding 3
00:50:40 <oerjan> oh it was removed again
00:59:13 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:00:13 <HackEso> 1/1:stume//A stume cowears and goatears you. That is the main reason why the often look so ackward. \ me//Me is a proud member of the tEaM. \ rum//The Rum Tum Tugger is a Curious Cat \ accusative//Only evil people use the accusative. \ swedish//Swedish is the language of fine cuisine.
01:05:24 -!- Remavas[AFK] has quit (Read error: Connection reset by peer).
01:05:57 -!- Remavas[AFK] has joined.
01:06:19 <b_jonas> oerjan: I removed the quote I added
01:06:40 <HackEso> 1/2:422) <monqy> cigaretes and drunking "lame highs for lame people" <oerjan> yeah if it doesn't make you go crazy and shoot at people, it's not worth it. take it from a norwegian. \ 1109) zzo38 [~zzo38@24-207-49-17.eastlink.ca] has quit [Quit: I need the stats for the small leech, not the big one. So, if you write it on here while I am gone then when I return I will check.] \ 822) <kmc> my current laptop basically works though <kmc> it can even play 8
01:06:42 <HackEso> 2/2:year old video games as long as it is not raining in the game \ 647) <MDude> A quick look as WIikipedia ways that Wicca is a specific form of paganism related to witchcraft. <MDude> That agrees with what I know from that Scoobie Doo movie with the wiccans in it. \ 240) <treederwright> enjoy being locked in your matrix of solidity
01:34:06 <b_jonas> oh, I remember this one http://math.bme.hu/~ambrus/pu/ccache.png
01:34:26 <b_jonas> that was a fun lesson about computer architecture
01:40:41 <shachaf> Can Prolog or some other logic language express recursion in terms of unification somehow?
01:41:55 <ais523> shachaf: I tried «A = f(A)» in GNU Prolog, it apparently constructed the resulting infinite term correctly but was unable to print it
01:43:17 <shachaf> ais523: I'm wondering about writing recursive rules without explicit recursion using this kind of trick.
01:43:42 <b_jonas> ais523: isn't there a specific library function that can print such things? hmm, let me check
01:44:00 <ais523> hmm, to do that you'd have to /assert/ such a term, let me try that
01:44:27 <ais523> apparently attempting to do so sent the Prolog interpreter into an infinite loop
01:45:54 <b_jonas> why would you have to assert such a term?
01:46:08 <b_jonas> can't you just A = f(A), write_foo(A)
01:46:26 <ais523> b_jonas: in order to do a recursive calculation
01:46:29 <b_jonas> there doesn't seem to be such a library function though
01:46:42 <ais523> you can't use a non-recursive predicate to inspect more than a finite number of nesting levels of a term
01:46:58 <ais523> shachaf's looking for a way to lift the recursive term to a recursive computation
01:47:16 <ais523> and the only way I could think of to do that was to assert one, but GNU Prolog doesn't seem to like that.
01:48:44 <b_jonas> in SWI prolog, http://www.swi-prolog.org/pldoc/man?section=termrw says that write_term(A, [cycles(true)]) should write it in a finite representation
01:49:27 <b_jonas> and that write_term(A, [max_depth(10)]) will print a truncated representation
01:49:58 <fizzie> Is there a simple word for "all except the first", e.g. in the context of iterations of a loop? I guess maybe "subsequent" sort of works.
01:50:47 <shachaf> fizzie: I think "subsequent" during any particular iteration would mean all the rest, but before the first iteration it could be ambiguous.
01:50:50 <ais523> "subsequent" works if you used "first" earlier
01:51:22 <shachaf> I'm curious about the context of this because I was trying to figure out a style of loop a while ago.
01:52:05 <b_jonas> ais523: wait, are you sure in that thing?
01:52:54 <ais523> "A = A + 1, B is A." got me a segfault
01:53:10 <ais523> which I guess isn't particularly surprising
01:53:12 <b_jonas> I don't think that should happen
01:53:18 <shachaf> You know you're doing something right when you segfault the interpreter.
01:53:25 <ais523> I think that is in fact a recursive calculation done entirely using unifications, though
01:53:26 <b_jonas> it's just an out of memory
01:53:33 <ais523> probably a stack overflow
01:54:32 <b_jonas> ais523: but it's possible to translate untyped lambda calculus with just common prolog stuff and copy_term, so can't you use that to write recusion using a Y combinator?
01:54:36 <shachaf> Unbounded recursion should probably be illegal.
01:54:43 <ais523> I guess that's cheating, though, because 'is' is recursive internally
01:55:13 <fizzie> shachaf: I have one of those range-based for loops, and I needed to do something at the start of all but the first iteration, so I was contemplating doing something like http://ix.io/1Bll/cpp for it.
01:55:15 <shachaf> <shachaf> This is why when I'm emperor I'll ban both Java and recursion <shachaf> So all stack traces will be short
01:55:16 <ais523> b_jonas: how do you translate \x.x(1)?
01:55:40 <shachaf> fizzie: Are you able to do it at all but the last iteration instead?
01:55:48 <ais523> fizzie: do you need a special case for when the range has zero elements? for that sort of thing, you normally do
01:55:51 <b_jonas> ais523: let me look up the docs of olvashato, that's where I figured out the translation (actually slightly before I made olvashato, but I used it there and documented it)
01:55:53 <shachaf> I guess I should say why I'm asking.
01:56:07 <shachaf> I think there's a very common pattern which is awkward to express in most languages.
01:56:23 <shachaf> Where you're iterating over an array, say, but you want to do something for each index and each element.
01:56:28 <fizzie> ais523: Yes, but the special case is entirely different, so I just have that as an if (thing.empty()) before.
01:56:36 <ais523> shachaf: the most common place this comes up for me is when you're trying to implement "join" (i.e. join one string using another string) with iterative code
01:56:46 <shachaf> An n-element array has n+1 indices, so it's awkward.
01:56:59 <ais523> you need to add the separator either before every element but the first, or after every element but the last
01:57:26 <shachaf> Hmm, that's a little different because you don't want to do either the first or the last. But it's related.
01:58:12 <shachaf> Here's a non-array: How would you write code to insert into a prefix tree?
01:58:49 <ais523> normally when working with trees I use recursion
01:59:01 <shachaf> Say you have struct Node { struct Node *next[256]; bool end; };, and you want to write insert: void insert_node(struct Node **n, const unsigned char *s);
01:59:11 <shachaf> Recursion runs into the same-ish issue.
01:59:23 <ais523> I actually wrote this code for NH4 a while back
01:59:26 <shachaf> It's tail recursion anyway so it's kind of silly.
01:59:45 <b_jonas> ais523: (\x.(x 1)) translates to fun(X, R, (copy_term(X, fun(1, R, B)), B))
01:59:59 <ais523> here we go: http://nethack4.org/latest/nethack4/libnethack_common/src/trietable.c
02:00:14 <b_jonas> ais523: see https://esolangs.org/wiki/Olvashat%C3%B3#Prolog_output
02:00:15 <shachaf> An empty tree is represented as a null pointer, by the way.
02:00:17 <ais523> there doesn't appear to be any special case
02:00:51 <ais523> or, hmm, I guess the "if (key == 0)" case is the special case you're thinking of?
02:01:16 <shachaf> If you wrote it iteratively instead of recursively it would be clearer.
02:02:26 <shachaf> void insert_node(struct Node **n, const unsigned char *s) { for (; ; s++) { if (!*n) *n = new_node; if (!*s) break; n = &(*n)->next[*s]; } (*n)->end = true; }
02:03:08 <b_jonas> ais523: and http://math.bme.hu/~ambrus/pu/olvashato/t2n.olv compiled to http://math.bme.hu/~ambrus/pu/olvashato/t2n.pl is actually an example that does recursion that way: the implementation of the loop function doesn't name the loop function itself
02:03:17 <shachaf> You want to run the thing before the break n+1 times and the thing after the break n times.
02:03:34 <ais523> b_jonas: OK, so what you're doing is using a single predicate that holds the implementation of all the lambdas?
02:04:01 <b_jonas> ais523: the implementation of the lambda is in the term that represents the lambda itself
02:04:06 <b_jonas> you can call it from any predicate
02:04:39 <shachaf> Here's a different example, prefix sum:
02:04:40 <shachaf> vec<int> prefix_sum(vec<int> a) { vec<int> b; int sum = 0; for (auto it = a.begin(); ; ++it) { b.push_back(sum); if (it == a.end()) break; sum += *it; } return b; }
02:04:56 <shachaf> This is a little too awkward for IRC one-liners, I think.
02:05:28 <ais523> b_jonas: oh, I see, you have unbound variables sitting by themselves in predicate implementations
02:05:35 <ais523> that's the step that I didn't realise was possible
02:05:42 <ais523> and I'm still not sure that's possible
02:05:45 <b_jonas> ais523: yes, and I never bind them, I only bind copies made with copy_term
02:06:27 <ais523> I guess it's logical that that works, but I didn't expect it to
02:06:38 <b_jonas> ais523: I am not quite sure, but I think historical prolog required you to write call(A) instead of A there
02:06:47 <b_jonas> but all present prolog implementations seem to allow just A
02:07:04 <b_jonas> ais523: try A = write(6), call(A) if you prefer
02:07:17 <ais523> yes, I'm happy when you include the eval statement
02:07:25 <ais523> once you have that I'm not surprised that lambda calculus exists
02:07:29 <ais523> it's this sort of "implicit eval" that bothers me
02:08:02 <shachaf> I'm trying to figure out the general connection between trace(d monoidal categories) and fixed points, is the context of this Prolog thing.
02:08:06 <b_jonas> ais523: yeah, but prolog has several other builtins that take code predicates
02:08:57 <ais523> now I'm wondering if maplist can be implemented without library functions
02:09:08 <ais523> I'm guessing no, you need at least copy_term (or something else that can be used to simulate it)
02:10:40 <b_jonas> eg. (A,B) and (A;B) and (A->B;C) and once(A) and apply(A,L) and \+A and findall(P,A,L) each try to call A at least once
02:11:29 <ais523> I think ',' is really fundamental, isn't it?
02:11:59 <ais523> ';' can be implemented using two definitions for the same predicate
02:12:05 <b_jonas> ais523: dunno, it might be because of its interaction with !, but without that I think it can be implemented
02:12:22 <b_jonas> I mean, you can implement a new function that behaves just like ,
02:12:27 <ais523> hmm, perhaps some sort of continuation passing style would be possible to be able to do without ',', but you'd then need to rewrite every predicate to take a continuation argument
02:12:41 <ais523> b_jonas: yes, but that requires using ',' for the implementation
02:12:42 <b_jonas> then you can write begin(A,B) instead of (A,B) in programs
02:12:43 <shachaf> Are binary trees every a good idea, anyway?
02:12:53 <b_jonas> ais523: you can probably implement it using some other library function
02:12:53 <ais523> shachaf: I think they can be
02:13:10 <b_jonas> it would be an inefficient eso-implementation
02:13:16 <b_jonas> and it might break programs with !
02:13:19 <shachaf> I mean, if you care about performance.
02:13:24 <ais523> I got halfway through writing a generic tree library in Rust that can be used to implement arbitrary sorts of self-balancing (or not-so-self-balancing) trees
02:13:42 <b_jonas> ais523: ooh! I'm interested in that
02:13:47 <ais523> because I think some such structure is often going to be the best possibility for performance and a generic structure makes it easy to swap them out
02:13:54 <ais523> b_jonas: in that case, I'll let you know if I finish
02:14:02 <ais523> I can't even remember why I stopped halfway through
02:14:04 <shachaf> But you almost always want a bigger branching factor than 2, don't you?
02:14:20 <ais523> and only vaguely remember the original reason, which I think was to write a fast But Is It Art? interpreter
02:14:26 <ais523> shachaf: yes, 2 is probably too small
02:14:29 <b_jonas> ais523: will it have both non-keyed trees, haskell Seq style, and keyed trees, Map style?
02:15:03 -!- Remavas[AFK] has changed nick to Remavas.
02:15:13 <ais523> b_jonas: there's the notion of an "index" and elements in trees are always stored in index order, but it's possible that when you add a new element, all the existing indexes move to make room for it
02:15:29 <ais523> for a Map-style tree, the indexes are just the keys
02:15:39 <ais523> for a Seq-style tree, they could be, e.g., the equivalent of array indexes
02:16:02 <ais523> I think you need different interfaces for the two cases, although a lot of code can be shared
02:16:10 <shachaf> So comparison sorts may not be that great, because you usually have more information about your data than binary comparisons.
02:16:26 <shachaf> Is binary search similarly not that great? What are the alternatives?
02:17:15 <ais523> shachaf: things like Newton-Rahpson (I might have misspelled that)
02:18:10 <b_jonas> ais523: I want something more general than array indexes, but sure
02:18:11 <ais523> where you look at a small locality of the data, make a prediction about what function the data represents based on that, and then go directly to the entry that should contain the result if your prediction is correct
02:18:18 <ais523> b_jonas: yes, more general
02:18:24 <shachaf> Hmm, I meant for discrete, not a function, but that's an interesting analogy.
02:18:42 <ais523> shachaf: I know, a discrete example would presumably use similar techniques though
02:19:05 <shachaf> I was thinking of things like radix sort, which is a different kind of structure.
02:19:11 <b_jonas> ais523: and will this support both trees with in-place mutation, and pure functional trees with cow nodes Haskell style?
02:19:12 <ais523> of course, your prediction normally isn't 100% correct but the idea is to get closer to your target than a binary search would, and also /realise/ you're closer to the target (so that you don't move massively far away with the next check)
02:19:19 <shachaf> What kind of differentiable structure can you put on typical data?
02:19:36 <shachaf> I mean, there's that "learned index structure" paper.
02:19:38 <ais523> getting working copy-on-write was part of my motivation for this
02:20:02 <b_jonas> ais523: will you be using some Haskell libraries as a reference to get the implementation right?
02:20:21 <ais523> b_jonas: no, I'm using some academic papers, and a core structure that's hopefully simple enough that it's obviously correct
02:20:42 <b_jonas> ais523: the Okasaki book is close enough to an academic paper, but sure
02:20:58 <b_jonas> I for one found that it's the one that explained how red-black trees work the best
02:21:12 <shachaf> are fully persistent data structures even good twh
02:21:54 <b_jonas> shachaf: for some things, yes.
02:22:06 <b_jonas> eg. you might want to store all intermediate states of a computer game
02:22:18 <shachaf> But if you want to store intermediate states you don't need full persistence.
02:22:34 <ais523> b_jonas: I'm planning to implement it as 2-3-4 rather than red-black because they're equivalent and 2-3-4 fits into the general structure better
02:22:35 <shachaf> You only need it if you want to be able to fork a past state, or something.
02:22:36 <b_jonas> you want to store them shared, rather than writing a full copy in each step
02:22:51 <ais523> it might end up slower, though, despite being identically shaped
02:22:59 <b_jonas> you want this if you want to step both backwards and forwards when reviewing the game
02:23:05 <b_jonas> if you only want to step forwards, then it's easier
02:23:11 <ais523> shachaf: for BIIA? I'll presumably be forking a lot
02:23:12 <shachaf> ais523: I expect 2-3-4 trees to be faster than red-black trees?
02:23:35 <b_jonas> ais523: um, is a 2-3-4 tree like a B tree?
02:23:45 <ais523> shachaf: https://esolangs.org/wiki/But_Is_It_Art%3F
02:24:04 <ais523> b_jonas: it's basically a tree where nodes are binary or have 3 or 4 children, nodes can change dynamically
02:24:11 <shachaf> b_jonas: If you just want fast snapshots you don't need to have a fully persistent structure.
02:24:15 <b_jonas> oh, so that's why you want this, backtracking for a BIIA implementation
02:24:17 <shachaf> You can just put a timestamp on each thing or something.
02:24:22 <b_jonas> though why you want a BIIA implementation is unclear to me
02:24:47 <ais523> b_jonas: so yes, it's literally a sort of B-tree
02:24:59 <ais523> also, why /wouldn't/ I want a BIIA? implementation?
02:25:17 <ais523> I mean, there's an existing one, but it's hard to be confident that it works
02:25:18 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:25:23 <b_jonas> ais523: ok, I do more or less understand how B-trees work, though there's quite some freedom in them, they can be implemented in different ways
02:25:44 <shachaf> Red-black trees are a binary encoding of 2-4 B-trees.
02:25:54 <ais523> <Wikipedia> The red–black tree is then structurally equivalent to a B-tree of order 4, with a minimum fill factor of 33% of values per cluster with a maximum capacity of 3 values.
02:26:03 <shachaf> Binary trees are scow. You gotta at least fill a cache line.
02:27:08 <ais523> well, if you have values on the nodes (which you should do, otherwise how else will you know which side of the tree to look in for the comparison), they might fill the cache line if the values are large enough
02:27:31 <shachaf> That's true, though often the values are just pointers.
02:28:50 <ais523> incidentally, I had a fun realisation: the basic structure of a generalised search tree is that each node contains some number of values for use as comparison pivots, plus some number of pointers to child nodes; and the set of comparison pivots is itself a structure you wish to search in
02:29:16 <ais523> so this being Rust, with zero-cost abstractions and all, you can simply use the search tree interface you're working on to be generic over how the set of pivots is implemented
02:29:46 <ais523> ofc it probably wouldn't in practice be another tree, but I see no reason to rule that possibility out; I'm putting the same interface on things like sorted vectors anyway
02:30:09 <shachaf> I had a similar (?) realization recently.
02:30:24 <shachaf> Each level of a B+ tree is an index for searching the next level.
02:30:48 <shachaf> In particular, if you have a sorted array, you can make a B+-style index for the first few levels, which are small.
02:32:43 <b_jonas> ais523: do you want a nice testcase for backtracking? https://www.komal.hu/forum?a=to&tid=76&st=50&dr=1&sp=77#17868 on the chessboard, you want to put as few walls, each between two side-adjacent squares, to make it so there's exactly one way to pave the board with four-square L-tetrominos
02:33:08 <ais523> that problem sounds painful to solve
02:33:10 <b_jonas> ais523: easy version is to prove that the solution with the four walls shown on that image is correct, harder version is to find that solution
02:33:22 <b_jonas> ais523: it sort of is, yes
02:33:31 <ais523> I can see how backtracking would help to verify that a potential answer was correct (if perhaps not minimal)
02:33:34 <b_jonas> I solved the easy version with prolog once
02:33:58 <ais523> ugh, I need to remember to not attempt to read Hungarian when I see it
02:34:08 <b_jonas> the person who found the solution said he wrote a program to test every four-wall solution
02:34:13 <ais523> although some of the words there appear to be loanwords so it's not totally fruitless
02:34:40 <b_jonas> you can read them, the only spoilers are that (1) there's a four wall solution, which I told you, and (2) the image showing that solution, which is an image
02:34:56 <ais523> normally I can get an idea of the sense by looking for words that are similar to words I already know
02:34:58 <b_jonas> well, there are also some worse solutions earlier, but I don't think they're not spoilers
02:35:17 <b_jonas> ais523: that works better in a well-written text than in an informal web forum
02:35:21 <ais523> b_jonas: no, not because of spoilers, just because Hungarian's vocabulary doesn't have much in common with that of the European languages I know
02:35:53 <ais523> so trying to read it won't lead to much understanding
02:36:19 <ais523> whereas if I see text in, say, Spanish or Italian, I can often make a decent guess at what it's saying despite not knowing the languages
02:36:22 <b_jonas> he says though that the program ran too slow to test every four-wall solution
02:36:33 <b_jonas> but he found a solution among the ones he tested
02:36:51 <ais523> it's surprising to me that you only need four
02:37:02 <b_jonas> yes, it was surprising to us too
02:37:07 <ais523> but I guess the walls are being brute-forced and backtracking is only being used for the wall placement
02:37:14 <ais523> anyway, this seems like the sort of program on which you use a constraint solver
02:37:21 <ais523> rather than a backtracking algorithm
02:37:49 <ais523> that's how we solved Polarium over on tasvideos.org, in the end; simply convert it into a boolean satisfaction problem and run it through a SAT solver
02:38:04 <b_jonas> ais523: yes, the walls are brute-forced except you should use the symmetry of the board, and yes, I wrote it using a constraint solver, it seems to help, but it's probably still possible with a clever backtracking solver without constraint
02:38:15 <ais523> (I had the leading solution before that, based on first proving things about the problem, then using a backtracking algorithm through the possibilities that hadn't been proved impossible)
02:39:28 <b_jonas> polarium... that's not the Game Boy puzzle game with the rotating gates and with blocks of various shapes pushed into holes, right?
02:39:37 <b_jonas> I'll have to look up what it is
02:39:47 <ais523> b_jonas: it's a DS puzzle game
02:40:19 <ais523> the rules are as follows: you have a board made of squares, most are white or black, although there's a grey border around the edges; you may treat grey tiles as white or black, whichever works for your solution
02:40:42 -!- Remavas has quit (Quit: Leaving).
02:40:57 <ais523> you must draw a path made of squares, starting and ending anywhere on the board, which only moves orthogonally from one square to the next, and which doesn't use the same square twice
02:41:19 <ais523> and for each horizontal line of squares, the path must either go through all the white squares on that line and no black squares, or else all the black squares on that line and no white squares
02:43:01 <b_jonas> it's getting late though, so good night
02:43:15 -!- b_jonas has quit (Quit: leaving).
02:48:54 -!- ais523 has quit (Quit: quit).
02:58:49 <zzo38> I am playing a roguelike game called "We are Hejickle", for NES/Famicom
03:00:50 <zzo38> There are runes that you cannot step on, but that your opponents can step on. There are also statues that you can see past but that nobody can step on. You cannot move diagonally but other people can.
03:33:02 <imode> https://imode.tech/projects/modal.html
03:52:24 <shachaf> fizzie: Callbacks are annoying for several reasons. One of them is that you can't early-exit from them.
03:52:36 <shachaf> I guess I shouldn't fizzie: that, I just saw my tab with the Subsequent code.
03:53:19 <shachaf> I'm still looking for the programming language thing akin to a lambda/block but that can't be stored and supports more operations.
03:53:32 <shachaf> I kind of hope the answer isn't "macro".
04:01:11 -!- danieljabailey has joined.
04:25:08 <kmc> what do you mean by can't be stored? what sorts of operations?
04:30:31 -!- FreeFull has quit.
04:36:35 <shachaf> kmc: Early exit is the most obvious one.
04:37:01 <shachaf> You could still sort of implement that as setjmp/continuations/exceptions/whatever.
04:37:17 <shachaf> Possibly operations that don't make sense at runtime at all, like changing the things that are in scope for a block.
04:37:46 <kmc> what do you mean by the last one
04:39:32 <shachaf> The question is something like, if "if"/"while"/etc. were user-defined, such that you'd want them to generate the same code they do in C or whatever, what would the type of their arguments be?
04:39:44 <shachaf> Hmm, something like "using namespace", for instance.
04:40:10 <shachaf> "using(foo) { BODY }", where everything in BODY automatically does lookups in the namespace foo.
04:40:21 <shachaf> Also other things that affect what's in scope.
05:12:13 <zzo38> I would have also want that "if", "while", etc are implemented as macros actually; maybe even something else
05:12:51 <zzo38> Even if not entirely defined as a macros, supporting a block code too somehow
05:43:55 -!- arseniiv has joined.
05:48:23 <oerjan> hm those theorems for that single rotation CA actually do have simple proofs
05:49:22 <oerjan> (it wasn't clear from the page whether e'd proved them logically or just enumerated all possibiliies. well at least the spaceship + single cell one.)
05:51:23 <HackEso> fugal//Fugals are fictitious flower parts.
05:52:23 <oerjan> maybe it should be regex
05:53:17 <shachaf> fizzie: can people send commits to fshg directly instead of using HackEso twh
05:53:32 <shachaf> I mean, it's a little contrary to the spirit of the thing.
06:44:04 -!- oerjan has quit (Quit: Nite).
07:16:59 -!- aloril has quit (Remote host closed the connection).
07:22:17 <zzo38> Some people like to put candles on the cake, but I prefer instead put the candles around it, and not making holes in it. But, many people like to make numbers, either put that many or use shapes of numbers. But, I thought another way can be, even if you have only straight candles, try to use roman numbers (although you might not know which way is forward, then, if placed on top of the cake instead of around)
07:22:26 <zzo38> (you will also need to get it to stand diagonally)
07:22:47 <zzo38> (or horizontally, if it is forty or more)
07:27:43 <zzo38> I thought of some kind of Magic: the Gathering: Counter target spell if it was not cast by an opponent.
07:29:52 <rain1> what about having 40 cakes
07:30:12 <kmc> it's my birthday this week
07:30:18 <kmc> can I have 31 cupcakes
07:32:00 <zzo38> If you have forty small cakes, or enough storage room, then perhaps it might do (especially if not everyone want the same cake, you might have more than one kind)
07:32:48 <HackEso> Gregor took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible.
07:32:51 <kmc> I baked a chocolate cake on Saturday
07:32:56 <zzo38> Do you like "Manifest target spell" and/or "Counter target spell if it was not cast by an opponent"?
07:33:13 <kmc> actually I think I will eat a bit more right now
07:33:23 <kmc> what does it mean to manifest a spell
07:33:25 <shachaf> imo can i have some cake twh
07:34:13 <zzo38> kmc: Put it face-down in the battlefield. If it would be a creature when face-up, then it can be used like morph with their mana cost.
07:34:48 <kmc> shachaf: if you can get to SF before we eat it all
07:35:17 <kmc> I'm all about baking now
07:36:41 <shachaf> weren't you all about baking before
07:37:20 <kmc> but now I can do two kinds of baking at the same time
07:38:24 <kmc> Cathy made the frosting on this cake
07:38:29 <kmc> and Alyssa helped us eat it
07:38:33 <kmc> so it was a team effort
08:00:53 -!- aloril has joined.
08:03:40 -!- aloril has quit (Remote host closed the connection).
08:11:20 -!- aloril has joined.
08:13:59 -!- AnotherTest has joined.
08:27:16 -!- aloril has quit (Remote host closed the connection).
08:49:57 -!- mniip has quit (Ping timeout: 633 seconds).
09:07:52 -!- aloril has joined.
09:08:32 -!- aloril has quit (Remote host closed the connection).
09:22:20 -!- b_jonas has joined.
09:23:26 <b_jonas> zzo38: roman numerals from straight candles => could work, but a drawback is that when you light the candles, the molten wax would definitely drop straight onto the cake.
09:24:28 <b_jonas> zzo38: as for that M:tG thing, the card Nix is somewhat close to that
09:27:43 <rain1> the obvious and standard way to make numbers out of candles is unary
09:28:00 <rain1> the problem with roman numerals is they aren't rotation invariant
09:28:46 <rain1> you would want a rotation invariant number system, perhaps a core regular polygon in the middle (triangle = 3, square = 4, ..) then some outer attachments
09:29:58 <b_jonas> rain1: lottery balls and UNO cards are printed numbers in a rotation-invariant system, where the digit 6 is underlined
09:30:48 <rain1> it wuold be possible to use polygons as digits in a line, with the point upwards to indicate the direction
09:31:07 <rain1> so triangle triangle square might mean 334 and it could be done in base 7
09:34:49 <Taneb> Maybe if they're nested rather than arrayed in a line
09:46:27 -!- aloril has joined.
09:46:58 -!- aloril has quit (Remote host closed the connection).
09:49:20 <zzo38> b_jonas: I know of Nix, and I also invented Phyrexian Nix. However, what I mentioned above is a bit more general
09:52:47 -!- mniip has joined.
09:54:29 -!- aloril has joined.
09:56:11 -!- aloril has quit (Remote host closed the connection).
10:08:23 -!- aloril has joined.
10:12:31 -!- aloril has quit (Read error: Connection reset by peer).
10:15:09 -!- aloril has joined.
10:16:56 -!- aloril has quit (Remote host closed the connection).
10:39:40 -!- b_jonas has quit (Quit: leaving).
11:02:26 -!- imode has quit (Ping timeout: 255 seconds).
11:45:51 -!- wob_jonas has joined.
11:50:49 <wob_jonas> "forty" is the only English name for a number whose letters are sorted alphabetically.
12:02:07 -!- Lord_of_Life_ has joined.
12:04:32 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
12:04:32 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:17:29 -!- aloril has joined.
12:25:17 -!- AnotherTest has quit (Ping timeout: 246 seconds).
12:42:19 -!- xkapastel has joined.
12:46:43 -!- AnotherTest has joined.
13:00:25 <Taneb> wob_jonas: are there other languages with a unique number with the corresponding property?
13:02:40 <Taneb> Like "deux" in French
13:02:53 <Taneb> But "cinq" is also in alphabetical order
13:03:15 <int-e> wob_jonas: do you want to be a ghost biopsy adept?
13:03:20 <Taneb> So it's not unique
13:03:47 <wob_jonas> int-e: no, I don't think that'd be the right profession for me
13:04:15 <int-e> > map sort ["ghost","biopsy","adept"] -- it felt right though
13:05:18 <int-e> German has three, as far as I can see. (eins, acht, elf)
13:05:25 <wob_jonas> oh, so that's why you used "adept"
13:06:00 <int-e> . o O ( almost below forty )
13:08:54 <int-e> I guess you could be a loopy hippy(sic!). "knotty" is nice too.
13:09:28 <wob_jonas> > map sort ["clobber", "disappear", "busted", "amylase"] -- let's just check that map sort works
13:09:30 <lambdabot> ["bbcelor","aadeipprs","bdestu","aaelmsy"]
13:14:26 <int-e> Oh well, that vocabulary doesn't look big enough for writing a novel :)
13:17:53 <int-e> `` ls /usr/share/dict
13:25:50 <Taneb> A billowy abbess bhors my accent
13:29:23 <wob_jonas> be am been is an in do for him it not as at by got go his know or 'em all best my no now any first how most begin city lost lot ably act add ago air allow almost art bit boy buy cos cost door foot guy hit low accept bill box cell cry deep effort fill film fit floor fly hi hot loss
13:29:31 <Taneb> An almost empty bin
13:29:38 <wob_jonas> access adopt ah aah aim below bet blow cent cop copy deny dry egg empty fix flow hill hmm hm host nor TV ad ally beer beg bell belt bent boot boss bow chill chip chop dirt dirty forty ghost hip ill joy
13:29:49 <wob_jonas> accent annoy ass ay bee beef belly boost chin cow deem deer dim dip dot ego fist fry glory glow hint hop inn knot loop opt ace ant apt aw ax berry buzz cosy defy den eh envy ex flu fort fox hiss
13:30:04 <wob_jonas> abbey adept ail app beep beet bellow biopsy boo chilly clot coop cot DJ deft deity dent e.g. flop flux gin gloss glossy hippy hoop IQ ivy loot lorry moor mop mow MP oops pry abet abort abs affix aft airy allot alloy amp billow bin blot booty cello chi chimp coo co-opt coy CPU demo dew dill din eel elm err fin fir floppy GI hoot jot moot moss op ow
13:30:25 <wob_jonas> and those lists aren't truncated, they just look like that because words starting with letters late in the alphabet are very rare in them
13:30:34 <Taneb> No ammo fills my chit
13:30:38 <wob_jonas> abbot abhor accost ado aegis afoot ammo beefy befit bio biz bop bossy bot boxy cert choppy crux filly fizz floss foxy fuzz gill gilt gist git goo gory hilly hilt HQ imp loo mossy nosy tux abuzz adder aglow alms arty bevy bitty boor Celt chino chintz chow cloy coot dewy dint dis ditty divvy emu knotty loopy lop moo
13:30:46 <wob_jonas> abbess achy billowy chit choosy clop dory dotty filmy fop goop lox mot mu sty adz beery chippy dippy eff emo gimp gimpy glop guv abbe bey deist dhow ditz finny gloppy bloop blowy
13:36:21 <wob_jonas> should I add the list of such words up to TV to a wisdom? nah, probably no
13:36:34 <wob_jonas> we already have wisdom/ance and wisdom/can't for such lists
13:36:49 <Taneb> "aegilops" would be a good name for an esolang
13:38:21 <wob_jonas> maybe we should figure out what the best collation order of the English alphabet is to get a nice vocabulary
13:39:29 <Taneb> There's 26! possible orderings
13:39:47 <Taneb> Assuming we want to do this letterwise
13:40:01 <Taneb> That's a fairly sizeable number
13:40:30 <Taneb> Although we can immediately rule out any word with a non-consecutibe repeated letter
13:43:23 <wob_jonas> Taneb: English mostly has short words, so those aren't too common:
13:43:25 <wob_jonas> were that did hath knowingly known these canning better liking oneness otherness there thinking thought timeless wellness which willful willfully because before downed even evenly giving here lifeless lifelike little lesser manliness meanness needed needless needlessly newness people stillness tellingly through useful usefully usefulness useless wh
13:43:25 <wob_jonas> ere again against although though always American anything away become became
13:44:04 <wob_jonas> plus some plurals and other infections
13:45:56 <int-e> can't even the odds
14:31:05 <int-e> ProofTechnique: unlikely to happen because 'y' is just too attractive to put near the end of the order.
14:32:12 <wob_jonas> int-e: that's not that clear. it depends on whether you want to use "you".
14:33:07 <wob_jonas> but yes, you can't have all three of "they", "you", and "those"
14:52:03 -!- xkapastel has quit (Quit: Connection closed for inactivity).
15:06:26 <wob_jonas> Is there a tetris game for the Game Boy that shows the full 20 rows or more, either by showing more than one row in a tile, or by making you rotate the screen?
15:08:00 <wob_jonas> 8x7 pixel squares should be doable, I think. the graphics would be terrible, but still.
15:39:43 <wob_jonas> https://github.com/fis/esolangs/blob/master/esologs/writer.cc sockets of SOCK_SEQPACKET type, wow. that's something you don't see often.
15:42:46 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=59931&oldid=59658 * Helen * (+16) /* Bitwise Instructions */ Added stuff about functionality
16:05:50 <orin> is the distribution of phonemes in English less zipfy or more zipfy than the distribution of letters?
16:06:35 -!- sleepnap has joined.
16:08:15 <fizzie> I don't think the distribution of letters is particularly Zipfian.
16:08:22 <fizzie> (The distribution of *words* is.)
16:13:11 <fizzie> If I still had my university account, I'd crunch some phoneme frequencies out of one of our English ASR training sets.
16:15:43 -!- tromp has quit (Remote host closed the connection).
16:29:18 -!- AnotherTest has quit (Ping timeout: 250 seconds).
16:39:13 -!- heroux has quit (Ping timeout: 245 seconds).
16:46:54 -!- tromp has joined.
16:51:38 -!- tromp has quit (Ping timeout: 255 seconds).
16:54:16 -!- AnotherTest has joined.
16:57:46 -!- tromp has joined.
17:19:17 -!- tromp has quit (Remote host closed the connection).
17:23:29 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
17:45:50 -!- Sgeo_ has joined.
17:49:03 -!- Sgeo__ has joined.
17:49:14 -!- Sgeo has quit (Ping timeout: 255 seconds).
17:51:37 -!- Sgeo__ has quit (Read error: Connection reset by peer).
17:52:01 -!- Sgeo__ has joined.
17:52:32 -!- Sgeo_ has quit (Ping timeout: 246 seconds).
17:56:28 -!- tromp has joined.
18:00:56 -!- tromp has quit (Ping timeout: 246 seconds).
18:02:24 -!- Sgeo_ has joined.
18:05:30 -!- Sgeo__ has quit (Ping timeout: 250 seconds).
18:20:36 -!- imode has joined.
18:27:53 -!- arseniiv has quit (Ping timeout: 246 seconds).
18:29:37 -!- sleepnap has quit (Ping timeout: 250 seconds).
18:41:10 -!- tromp has joined.
18:44:00 -!- sleepnap has joined.
18:52:05 -!- FreeFull has joined.
18:57:31 -!- b_jonas has joined.
19:24:53 <esowiki> [[Semordnilap]] N https://esolangs.org/w/index.php?oldid=59932 * Orby * (+2165) Created initial page
19:25:10 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59933&oldid=59932 * Orby * (-1) Removing extraneous whitespace
19:27:34 <esowiki> [[Semordnilap]] https://esolangs.org/w/index.php?diff=59934&oldid=59933 * Orby * (+459)
19:28:33 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59935&oldid=59934 * Orby * (+46) /* See also */
19:29:06 <esowiki> [[Semordnilap]] https://esolangs.org/w/index.php?diff=59936&oldid=59935 * Orby * (+0) /* Introduction */
19:31:52 <esowiki> [[User:Orby]] https://esolangs.org/w/index.php?diff=59937&oldid=51743 * Orby * (+152)
19:32:13 <esowiki> [[User:Orby]] M https://esolangs.org/w/index.php?diff=59938&oldid=59937 * Orby * (+11)
19:32:35 <esowiki> [[User:Orby]] https://esolangs.org/w/index.php?diff=59939&oldid=59938 * Orby * (-1)
19:51:33 -!- Phantom_Hoover has joined.
19:55:45 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59940&oldid=59936 * Orby * (+3)
19:57:59 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59941&oldid=59940 * Orby * (-20) /* See also */
19:59:07 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59942&oldid=59941 * Orby * (-4) /* Branching */
19:59:35 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59943&oldid=59942 * Orby * (+5) /* Branching */
20:01:50 -!- xkapastel has joined.
20:05:09 <b_jonas> ais523: re 2-3-4 tree, so you are using a low arity because you primarily care about persistant (cow) nodes? that makes sense, but for the non-persistent case a larger arity could be better
20:09:07 <esowiki> [[Joke language list]] M https://esolangs.org/w/index.php?diff=59944&oldid=59907 * Orby * (+18) /* Brainfuck derivatives */
20:10:45 -!- copumpkin[m] has quit (Quit: removing from IRC because user idle on matrix for 30+ days).
20:14:12 -!- grumble has quit (Quit: fire's).
20:17:27 -!- tromp has quit (Remote host closed the connection).
20:20:49 -!- grumble has joined.
20:28:19 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59945&oldid=59943 * Orby * (+71)
20:28:50 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59946&oldid=59945 * Orby * (+8) /* Specification */
20:36:18 -!- imode has quit (Ping timeout: 245 seconds).
20:42:09 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59947&oldid=59946 * Orby * (+52) /* Examples */
20:43:58 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59948&oldid=59947 * Orby * (+106) /* Specification */
20:45:31 <esowiki> [[Pizza Delivery]] https://esolangs.org/w/index.php?diff=59949&oldid=59926 * Cortex * (+0)
20:46:23 -!- orbitaldecay has joined.
20:48:16 <orbitaldecay> Is anyone interested in working on a collection of quines in esolangs whose commands are English words (e.g. Ook!) to submit for National Novel Generation Month. The code that generates the book would be the book itself :) I don't think it's been done.
20:49:50 <zzo38> I don't know, but, you can try, I suppose
20:50:22 <orbitaldecay> Yeah, I'm planning on doing it. Just wondering if anyone was interested in collaborating or contributing.
20:51:08 <orbitaldecay> 50,000 commands worth of quines is a lot of code for one person to write
20:53:35 <orbitaldecay> fyi most of the novels generated for national novel generation month are nonsensical, so I'm not worried about it actually being readable
20:53:53 <orbitaldecay> 50,000 words of readable quines is probably a lifetime project, not a one month project
20:53:54 <b_jonas> orbitaldecay: you could write just one quine with a 49000 word long novel as its payload
20:54:39 <orbitaldecay> b_jonas: yeah, that's the cop out I'll do if I don't have time to do more than one quine
20:55:47 <orbitaldecay> But it'd be cool to do a little book of poem / quines
20:56:58 <orbitaldecay> and highlight some different interesting esolangs
20:58:39 <b_jonas> orbitaldecay: also, there was a project somewhere repeated once each year for several years that's a special case of NaNoWriMo, where the goal is to write a program that writes an 50000 word novel
20:58:57 <orbitaldecay> yeah NaNoGenMo, national novel generation month
20:59:08 <esowiki> [[Talk:1st-Worst]] N https://esolangs.org/w/index.php?oldid=59950 * Cortex * (+162) /* . */ new section
20:59:08 <orbitaldecay> b_jonas: that's what I plan on submitting it to
21:00:11 <orbitaldecay> I'm kind of surprised nobody has done a book of quines in languages whose commands are natural language before for nanogenmo
21:00:39 <b_jonas> orbitaldecay: wait, how do you know? there were lots of programs submitted
21:00:50 <b_jonas> did you try to run each of them?
21:01:39 <orbitaldecay> Someone could have accidentally generated a quine in some language I suppose
21:02:06 <orbitaldecay> but a cursory google search doesn't reveal anything
21:03:24 <b_jonas> [ in some languages, it is not too hard to write a quine
21:03:25 <j-bot> b_jonas: in some languages , it is not too hard to write a quine
21:03:48 <b_jonas> even our honorable and learned friend fungot could do so
21:03:49 <fungot> b_jonas: and the look and feel :) and which one doesn't?
21:04:25 <orbitaldecay> b_jonas: that's true, but in the spirit of nanogenmo the output should look something like readable english and not many languages look like readable english
21:04:53 <orbitaldecay> I'm going to start working on an esolangs list of languages whose source code looks like english
21:05:27 <b_jonas> orbitaldecay: it's trickier than that. it's not just "whose source code looks like english"
21:05:37 <b_jonas> in some languages, you can write programs that look like english, and ones that don't
21:05:55 <b_jonas> there are some obfuscated programs in perl that try to look somewhat like english text
21:05:59 <b_jonas> though I don't know of any such quines
21:06:28 <b_jonas> and of course there are programs where most of the source code is english, but there's a small decoder around it
21:06:40 <b_jonas> such a program can be written in many languages that have easy string literals
21:07:20 <orbitaldecay> b_jonas: Good point, I hadn't thought of that. I'd like to restrict the characters used to make it more interesting. Like every string of letters should be a word and the only non-letter characters allowed should be common punctuation marks used in plausible ways.
21:07:48 <orbitaldecay> Ook! is perfectly in the spirit of what I mean
21:08:22 <b_jonas> orbitaldecay: in perl you can write programs with only letters and spaces. many people have done that, including me. again I don't know of such a quine, but it can probably be done.
21:08:28 <orbitaldecay> I also have been working on a language for the purpose called Semordnilap for the same purpose
21:08:42 <orbitaldecay> b_jonas: a perl quine that is only composed of english words would be mindblowingly amazing
21:09:04 <b_jonas> orbitaldecay: I didn't say that
21:09:13 <b_jonas> I said only letters and spaces
21:09:26 <b_jonas> only english words is much harder, because then you can't use "q" or "qq" or anything of that sort
21:09:28 <orbitaldecay> b_jonas: yes, I gather that using actual words would be another level of challenge
21:09:40 <b_jonas> let me point to some such obfus
21:11:32 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59951&oldid=59948 * Orby * (+22) /* Introduction */
21:12:59 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59952&oldid=59951 * Orby * (-4) /* Branching */
21:14:35 <b_jonas> https://www.perlmonks.com/?node_id=290607 https://www.perlmonks.com/?node_id=338686 https://www.perlmonks.com/?node_id=453519 look in replies too
21:15:21 <b_jonas> https://www.perlmonks.com/?node_id=877696 is a steganography one, where I take a nearly arbitrary text, and hide unrelated text in it, plus add a small decoder. this won't lead to a quine since the hidden text is much shorter.
21:15:39 <b_jonas> it could actually lead to a quine if you only hid the decoder in there
21:15:50 <b_jonas> and printed the funged text itself verbatim
21:16:23 <orbitaldecay> This is very cool. Doing a quine in this format seems like it would be quite challenging.
21:16:42 -!- tromp has joined.
21:17:06 <fizzie> There's the non-alphanumeric subset of JavaScript, but I don't think it's doable the other way around.
21:17:17 <fizzie> You could do a Lingua::Romana::Perligata quine maybe?
21:17:42 <orbitaldecay> fizzie: I'm not familiar with that, is that an esolang?
21:17:56 <b_jonas> orbitaldecay: the wiki has a page on it
21:17:56 <fizzie> No, it's a Perl module to write code in Latin-ish.
21:17:59 <fizzie> https://metacpan.org/pod/Lingua::Romana::Perligata
21:18:09 <b_jonas> https://esolangs.org/wiki/Perligata
21:18:19 -!- heroux has joined.
21:18:46 <esowiki> [[Lingua::Romana::Perligata]] N https://esolangs.org/w/index.php?oldid=59953 * B jonas * (+23) Redirected page to [[Perligata]]
21:25:57 <fizzie> There's also the https://esolangs.org/wiki/Category:Pseudonatural category, but I doubt it's very complete.
21:26:59 <fizzie> I like ORK, though I doubt I'd manage to participate in anything.
21:30:54 -!- tromp has quit (Remote host closed the connection).
21:31:31 <orbitaldecay> fizzie: Awesome, pseudonatural is exactly what I was looking for. Thanks! ORK indeed looks awesome.
21:34:12 <orbitaldecay> ROFL, best hello world ever http://shakespearelang.sourceforge.net/report/shakespeare/#SECTION00091000000000000000
21:35:38 * kmc looks at the Thesaurus Perligatus
21:35:47 <kmc> STDIN vestibulo "an entrance"
21:35:47 <kmc> STDOUT egresso "an exit"
21:35:48 <kmc> STDERR oraculo "a place where doom is pronounced"
21:35:53 -!- tromp has joined.
21:36:24 <esowiki> [[Semordnilap]] https://esolangs.org/w/index.php?diff=59954&oldid=59952 * Orby * (+58)
21:52:57 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59955&oldid=59954 * Orby * (+28)
21:53:26 <esowiki> [[Ook!]] M https://esolangs.org/w/index.php?diff=59956&oldid=41892 * Orby * (+27)
22:06:57 <esowiki> [[German]] M https://esolangs.org/w/index.php?diff=59957&oldid=41722 * Orby * (+28)
22:09:02 <esowiki> [[Farm]] M https://esolangs.org/w/index.php?diff=59958&oldid=34532 * Orby * (+28)
22:11:33 -!- xkapastel has quit (Quit: Connection closed for inactivity).
22:11:42 <esowiki> [[Gorispace]] M https://esolangs.org/w/index.php?diff=59959&oldid=19062 * Orby * (+28)
22:14:18 <esowiki> [[COW]] M https://esolangs.org/w/index.php?diff=59960&oldid=51619 * Orby * (+27)
22:14:54 <b_jonas> orbitaldecay: just to be sure, you know Chef the esolang, right?
22:15:10 <b_jonas> you already mentioned Shakespeare, right?
22:15:42 <esowiki> [[Chef]] M https://esolangs.org/w/index.php?diff=59961&oldid=58292 * Orby * (+27)
22:16:53 <orbitaldecay> b_jonas: yep, I'm cataloging some of the better examples under the pseudonatural category
22:17:59 <fizzie> Also because of reasons(tm), you'll need to be logged in for the category page to get updated.
22:18:13 <fizzie> `thanks MediaWiki file cache
22:18:14 <HackEso> Thanks, MediaWiki file cache. ThediaWiki file cache.
22:18:51 <esowiki> [[Semordnilap]] M https://esolangs.org/w/index.php?diff=59962&oldid=59955 * Orby * (+0) /* Examples */
22:19:08 <b_jonas> orbitaldecay: as in http://www.d20srd.org/srd/epic/monsters/pseudonaturalCreature.htm ?
22:19:27 <orbitaldecay> b_jonas: as in https://esolangs.org/wiki/Category:Pseudonatural
22:20:42 <zzo38> orbitaldecay: Depending on your IRC client you may be able to suppress all mentions of edits (I did it)
22:20:59 <orbitaldecay> zzo38: I don't mind it, I just don't want to spam everyone else
22:21:24 <zzo38> Then everyone else can program such a feature in their IRC client and you do not have to do.
22:22:54 <fizzie> It puts a "M" in there for minor edits, in case someone's interested in filtering those out specifically. I think generally people don't mind them, though I think some do ignore them.
22:23:28 <b_jonas> I don't believe in ignoring minor edits anyway. that attitude just leads to having to debug "but I didn't change anything" problems.
22:23:42 -!- Remavas has joined.
22:24:13 <zzo38> I do not hide minor edits (or any other edits) in the recent changes list in the wiki, only I hide it in the IRC
22:51:39 -!- Remavas has changed nick to Remavas[AFK].
23:19:55 -!- imode has joined.
23:30:50 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ```: not found
23:30:51 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ```: not found
23:30:55 <HackEso> 853) <zzo38> There is Haskell program "pandoc" to convert formats, so I make "panchess" which is the similar thing but for chess. \ it'//It's written with an apostrophe.
23:30:55 <HackEso> 1073) <Roujo> I AM AN INVADING NECROPOLIS... ALL BOW BEFORE MY... erm... WALLS?... NECROBUILDINGS? \ the question//The The Question is the fundamental mystery of #esoteric, and boily is its master.
23:31:22 <HackEso> progress//Progress has been made today. It was invented by Taneb. \ 785) <oklopol> my best guess is 4 years ago but possibly also yesterday
23:31:26 <HackEso> 594) <ais523> Just about all females often feel that exactly why all Hollywood stars common maintain its brightness as Tom in spite of frantic operate routine and large operate pressure from the skin. What do you think that they have got sufficient time to observe all attractiveness strategies and tips that his grandmother utilized to abide by? \ 361) <oerjan> adding quotes by yourself is strictly prohibited and will lead to you being banned
23:32:31 <b_jonas> ``` starwars 2; scheme; random-card
23:32:32 <HackEso> Finn \ Mace Windu \ I Bask in Your Silent Awe \ Miasmic Mummy \ 1B \ Creature -- Zombie Jackal \ 2/2 \ When Miasmic Mummy enters the battlefield, each player discards a card. \ AKH-C
23:32:57 <HackEso> ix the eggs, filling all ingredients. Add the water and nuts, then add the \ water and salt in a large skillet; add the eggs, mix \ well and set aside. Remove the chilline for one out of the apple mashed. \ Sprinkle the parsley and flour and set aside. Fry the chops to a \ boil, and simmer for about 30 minutes, or until the mixture is \ coated and all the beef dispalles are done. \ \ 2. In a large bowl mix beans, and salt in skillet over medium hig
23:33:57 <b_jonas> Fry the chops to a boil? hmm.
23:34:05 <b_jonas> that is reasonably readable though
23:34:15 <b_jonas> it still is obsessed with skillets
23:36:03 -!- b_jonas has quit (Quit: leaving).
00:02:37 -!- AnotherTest has quit (Ping timeout: 268 seconds).
00:03:06 -!- Lord_of_Life_ has joined.
00:05:26 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
00:05:27 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:15:32 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=59963&oldid=59931 * Helen * (+2768) /* Turing-completeness */ Continuation of [[User:A]]'s attempt at proving Turing-completeness
00:18:50 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=59964&oldid=59963 * Helen * (-134) /* Implementation */ Added v4.3 jar
00:41:35 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:25:10 -!- FreeFull has quit (Remote host closed the connection).
01:25:56 -!- FreeFull has joined.
02:28:47 -!- Remavas[AFK] has quit (Quit: Leaving).
03:02:01 <zzo38> In Glulx, the Huffman tree is stored in a inefficient way, which is nine bytes per branch node, two bytes per node to emit a single character, and there are other nodes too
03:23:50 <HackEso> is absorbed. Store in a \ high flavors of the meat mixture, and cover with a size of the \ egg mixture. Serve the sugar canned cheese with salt and pepper. Place \ the flour and cornstarch in a large bowl. Stir the \ beef into the center cups. Bake at high heat and stir over soup and replace 3 \ tablespoons of the bowl. Let cool for at least 4 minutes. Sprinkle the beans, then \ stirring frequently. When the meat is dissolved. Store to medium-sid
03:35:10 <esowiki> [[Quine]] https://esolangs.org/w/index.php?diff=59965&oldid=57437 * Orby * (+1665)
03:37:31 <orbitaldecay> Maybe an algorithm for developing quines is obvious, but I just figured it out :)
03:44:29 <esowiki> [[Quine]] M https://esolangs.org/w/index.php?diff=59966&oldid=59965 * Orby * (+52)
03:46:24 <esowiki> [[Quine]] M https://esolangs.org/w/index.php?diff=59967&oldid=59966 * Orby * (+1) Fixing minor typo
03:55:09 -!- oerjan has joined.
03:57:18 <esowiki> [[Quine]] M https://esolangs.org/w/index.php?diff=59968&oldid=59967 * Orby * (+209)
04:06:10 <oerjan> <Taneb> wob_jonas: are there other languages with a unique number with the corresponding property? <-- hm norwegian seems to be, 1 = "ett" (or "en", "ei" if gendered) is the only one i can find
04:12:00 -!- FreeFull has quit.
04:25:39 -!- Sgeo_ has quit (Quit: Leaving).
04:25:58 -!- Sgeo has joined.
05:16:24 -!- Sgeo has quit (Quit: Leaving).
05:16:40 -!- Sgeo has joined.
05:32:46 <esowiki> [[Special:Log/newusers]] create * Lovecraftianmadness * New user account
05:35:48 -!- arseniiv has joined.
05:37:10 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=59969&oldid=59912 * Lovecraftianmadness * (+382) /* Introductions */
05:40:36 <esowiki> [[Talk:Computational class]] M https://esolangs.org/w/index.php?diff=59970&oldid=23616 * Lovecraftianmadness * (+234)
06:23:56 -!- oerjan has quit (Quit: Nite).
07:30:43 -!- hlv has joined.
07:31:27 -!- hlv has changed nick to Hooloovax.
08:11:39 <esowiki> [[Talk:Computational class]] https://esolangs.org/w/index.php?diff=59971&oldid=59970 * Ais523 * (+253) it's a partial preorder
08:12:14 <esowiki> [[Talk:Computational class]] M https://esolangs.org/w/index.php?diff=59972&oldid=59971 * Ais523 * (+21) fix {{unsigned}}
08:13:11 <esowiki> [[Computational class]] https://esolangs.org/w/index.php?diff=59973&oldid=35522 * Ais523 * (+6) partial preorder, not partial order
08:37:32 -!- imode has quit (Ping timeout: 255 seconds).
08:58:52 -!- AnotherTest has joined.
09:07:51 -!- tromp has quit (Remote host closed the connection).
09:23:49 -!- tromp has joined.
09:25:54 -!- Hooloovax has quit (Quit: Leaving).
09:27:09 -!- Lymia has quit (Remote host closed the connection).
09:29:50 -!- danieljabailey has quit (Ping timeout: 246 seconds).
10:00:34 -!- b_jonas has joined.
10:00:43 <b_jonas> Taneb: and http://www.omniglot.com/language/numbers/index.htm may be a starting point for finding out more
10:01:29 <b_jonas> `pbflist https://pbfcomics.com/comics/grandpas-couch-hot-paper-comics/
10:01:30 <HackEso> pbflist https://pbfcomics.com/comics/grandpas-couch-hot-paper-comics/: shachaf Sgeo quintopia ion b_jonas Cale
10:04:42 -!- b_jonas has quit (Client Quit).
11:50:39 <esowiki> [[Assembly language]] N https://esolangs.org/w/index.php?oldid=59974 * A * (+3001) Created page with "[[Assembly language]] is a minimal Harvard-architectured conputer. It has all the basic features of a modern computer. There is an array with indexes from 00 to FF. Index 00..."
11:50:58 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=59975&oldid=59974 * A * (+13) /* Commands */
11:55:10 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=59976&oldid=59975 * A * (+18) /* Machine code interpreter */
11:55:55 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=59977&oldid=59976 * A * (+25)
11:57:44 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=59978&oldid=59977 * A * (+184) Add specification.
12:04:47 -!- Lord_of_Life_ has joined.
12:06:20 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
12:06:21 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:08:46 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=59979&oldid=59964 * A * (-82) Not ''close'', some operations are implemented below.
12:17:09 -!- wob_jonas has joined.
12:18:36 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=59980&oldid=59979 * A * (+338) Multiplication/Division idea. I don't know if this can be implemented.
12:22:32 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59981&oldid=59874 * A * (-1069) Blanked the page
12:23:11 <esowiki> [[User:A]] https://esolangs.org/w/index.php?diff=59982&oldid=59981 * A * (+25) Redirected page to [[User talk:A]]
12:23:37 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=59983&oldid=59875 * A * (+20) Redirected page to [[User:A]]
12:41:53 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=59984&oldid=59980 * A * (-125) /* Attempt by User:A */
12:56:35 -!- AnotherTest has quit (Ping timeout: 258 seconds).
12:59:12 <APic> Celebrate Chaoflux!
13:18:07 -!- AnotherTest has joined.
13:32:30 -!- xkapastel has joined.
13:41:58 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=59985&oldid=59978 * A * (+180)
13:45:11 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=59986&oldid=59985 * A * (+5) /* Components (Very trivial) */
13:45:51 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=59987&oldid=59986 * A * (+53)
13:46:48 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=59988&oldid=59987 * A * (-123) /* Machine code interpreter */
13:54:41 -!- danieljabailey has joined.
14:14:29 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=59989&oldid=59988 * A * (+302)
14:16:01 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=59990&oldid=59681 * A * (+305) /* asdf */
14:19:10 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=59991&oldid=59733 * A * (+154) /* AsciiDots */
14:41:02 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=59992&oldid=59989 * A * (+192) /* Examples */
14:58:16 -!- AnotherTest has quit (Ping timeout: 250 seconds).
15:10:58 -!- Lymia has joined.
15:42:15 -!- xkapastel has quit (Quit: Connection closed for inactivity).
15:51:22 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=59993&oldid=59983 * Ais523 * (-20) rm #REDIRECT from user talk page; the user talk page has a technical status in that it's needed to send people messages, and redirecting it breaks that
15:57:40 <HackEso> olist 1156: shachaf oerjan Sgeo FireFly boily nortti b_jonas
15:58:05 -!- Sgeo_ has joined.
15:59:26 -!- Sgeo__ has joined.
16:00:47 -!- Sgeo has quit (Ping timeout: 255 seconds).
16:02:53 -!- Sgeo_ has quit (Ping timeout: 246 seconds).
16:07:27 -!- moei has quit (Quit: Leaving...).
16:31:00 <esowiki> [[Special:Log/newusers]] create * Lanmonster * New user account
16:31:27 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
16:36:06 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=59994&oldid=59969 * Lanmonster * (+186) /* Introductions */
16:59:19 <esowiki> [[HQ9+]] https://esolangs.org/w/index.php?diff=59995&oldid=56977 * Lanmonster * (+147) /* Implementation */
17:08:44 <esowiki> [[Chimera]] https://esolangs.org/w/index.php?diff=59996&oldid=53137 * Lanmonster * (+1) /* Object Expansion */
17:13:35 -!- orbitaldecay has quit (Ping timeout: 256 seconds).
17:14:14 -!- tromp has quit (Remote host closed the connection).
17:14:38 -!- orbitaldecay has joined.
17:14:39 -!- tromp has joined.
17:18:24 <esowiki> [[Shishkirism]] https://esolangs.org/w/index.php?diff=59997&oldid=59902 * Kamish * (+11599)
17:19:21 <esowiki> [[Shishkirism]] https://esolangs.org/w/index.php?diff=59998&oldid=59997 * Kamish * (+5)
17:19:34 <esowiki> [[Shishkirism]] https://esolangs.org/w/index.php?diff=59999&oldid=59998 * Kamish * (+5)
17:20:28 <esowiki> [[Shishkirism]] M https://esolangs.org/w/index.php?diff=60000&oldid=59999 * Kamish * (-5)
17:21:54 -!- AnotherTest has joined.
17:27:46 -!- b_jonas has joined.
17:35:04 -!- copumpkin has quit (Quit: Textual IRC Client: www.textualapp.com).
17:38:52 -!- xkapastel has joined.
17:50:14 <int-e> . o O ( Oots! is a Ook! clone designed to annoy 99% of the #esoteric denizens... )
18:00:15 <shachaf> There aren't even 100 people in this channel
18:01:37 <b_jonas> shachaf: people can read the log file
18:01:55 <b_jonas> plus not all denizens are connected all the time
18:02:10 <b_jonas> I like Ook! but only for historical nostalgic reasons
18:02:16 <b_jonas> it's one of the earlier esolangs I've met
18:02:36 <b_jonas> and yes, that does cause me a bit of cognitive dissonance
18:08:19 <int-e> shachaf: 1 down, 81 to go ;-)
18:09:10 <int-e> And Ook! gave us Piet, in a way.
18:10:09 <int-e> Brainfuck should also be seen in its historical perspective. Also I think it's the first esoteric programming language I've ever encountered? Or was INTERCAL first?
18:11:15 <int-e> shachaf: I expect oerjan to complain about the "a". :)
18:29:18 <int-e> Because it's a consonant, but an vowel. Or how did that rule work again?
18:29:22 -!- tromp has quit (Remote host closed the connection).
18:53:21 -!- tromp has joined.
19:07:04 <FireFly> consonant/vowel sound, rather than letter
19:10:04 <int-e> I was being rhetorical. Or perhaps facetious.
19:10:44 <HackEso> FireFly was a short-running but well-loved sci-fi TV series released in 2003, starring Nathan Fillion and directed and written by Joss Whedon.
19:12:30 <FireFly> I forget the fancy command to list contributors to a command, hmm
19:12:59 <HackEso> 2854:2013-05-05 <Tanëa> learn FireFly was a short-running but well-loved sci-fi TV series released in 2003, starring Nathan Fillion and directed and written by Joss Whedon.
19:13:14 <HackEso> Tanea plays Minecrafs, Dware Fortresr, and lives in Cambridgd.
19:13:34 <HackEso> Why would there be a Tanec, that's ridiculous!
19:14:11 <HackEso> int-e är inte svensk. Hen kommer att spränga solen. Hen står för sig själv. Hen gillar inte färger, men han gillar dissonans. Er hat ein Hipster-Spiel gekauft.
19:14:49 <FireFly> Please don't blow up the sun
19:15:07 <int-e> I forgot the context for that. Again.
19:15:18 <HackEso> https://hack.esolangs.org/repo/log/tip/wisdom/int-e
19:16:19 <int-e> ah, escalation. https://esolangs.org/logs/2016-03-14.html#lgn
19:18:17 <kmc> Hipster-Spiel
19:18:43 <int-e> I think that was Braid.
19:18:54 <Taneb> int-e: iirc Tanea was me when someone incremented me
19:18:56 <kmc> Braid is too good
19:18:57 <int-e> Or possibly Stephen's Sausage Roll.
19:19:14 <FireFly> I don't think it was Braid because I vaguely recall that conversation, and I don't think it was a game I'd heard of or played :p
19:19:44 <int-e> SSR it is then. Which is another game I've never finished
19:19:57 <FireFly> oh I'm good at not finishing games
19:20:08 -!- FreeFull has joined.
19:20:12 <int-e> I've finally completed all tasks in TIS-100.
19:20:59 <fizzie> I think I'm missing one of the second chunk of them? Was there a second chunk?
19:21:11 <FireFly> Oh, there was, and I didn't really look at those at all
19:21:40 <FireFly> because when the second batch of levels were released, I had kind of gotten past the initial excitement burst
19:21:50 <int-e> FireFly: there was the TIS-net chunk, yes
19:22:00 <FireFly> hmm, I also need to finish the last bits of Exapunks at some point
19:22:09 <int-e> and I was missing 4 of those until yesterday
19:22:28 <int-e> because... at some point it got tedious.
19:24:19 <fizzie> I never bought SHENZHEN I/O though.
19:25:00 <int-e> Whereas SSR got hard at the point where puzzles became about strategically loosing your fork.
19:26:44 <int-e> SHENZHEN I/O also has a second level set... I'm stuck on the clock because apparently the logic does not fit nicely into one or two of the programmable circuits.
19:27:05 -!- imode has joined.
19:28:59 <int-e> And there's Infinifactory which has 4 level sets, and I thought the tasks in the 4th were just too big.
19:30:31 <fizzie> I didn't even hear about Exapunks, Opus Magnum was the last game I had heard of.
19:31:23 <int-e> Infinifactory also has quite a different flavour since you're not writing any code.
19:31:41 <FireFly> Exapunks has a pretty neat cyberpunk-esque setting to it
19:32:18 <int-e> Otoh the Human Resource Machine was easy. I have not bought Opus Magnum, and Exapunks sounds too time intensive (and I'm saying that having sunk days into those other games)
19:32:48 <int-e> What else was there... SpaceChem. Never got very far.
19:33:15 <FireFly> I got Exapunks last year, but intentionally delayed getting it til I had a two-week vacation, so I could at least spend some of the obligatory intensive addiction/focus on it on the train
19:33:30 <kmc> yay trains
19:33:35 <FireFly> I never really liked SpaceChem much for whatever reason
19:33:45 <int-e> Great, a train of thought!
19:33:51 <FireFly> yay trains indeed, that reminds me that I need to order a new interrail pass
19:33:59 <kmc> TIS-100 went from easy to very hard quickly
19:34:02 <int-e> spacechem exhibited a nasty lack of symmetry quite soon
19:34:19 <shachaf> int-e: SSI should finish SSR
19:35:07 <FireFly> b_jonas: means of transport that works reasonably well in Europe
19:35:23 <b_jonas> FireFly: yeah, I live there
19:35:35 <int-e> I'd like to understand how the cauldrons in Recursed really work.
19:35:36 <b_jonas> I even ventured to the parts of Europe where trains work better than here
19:35:52 <shachaf> i,i Er hat ein Hipster-Spiel geschrieben.
19:36:12 <shachaf> int-e: Oh, I remember Recursed. That's Ein Hipster-Spiel
19:36:20 <FireFly> b_jonas: hehe, Sweden's trains aren't the best either
19:37:02 <shachaf> Recursed was mostly on the easy/slow side but it had some neat levels.
19:37:04 <b_jonas> FireFly: I think I mentioned that that's where I first sat on a two-storey train
19:37:18 <int-e> . o O ( That's a rare moment of clarity... most of the time, shachaf doesn't notice he's a mess. )
19:37:34 <b_jonas> also they have some kind of a tricky system where there's multiple types of transport trains, with different tickets for them
19:37:42 <b_jonas> I didn't really follow how that works
19:37:51 <int-e> shachaf: Did you play the two DLC level sets and did you get all the diamonds?
19:38:08 <shachaf> I got some of the diamonds and some of the DLC
19:38:08 <int-e> (and rubies, if you've seen those)
19:38:13 <shachaf> Or maybe all the diamonds? I don't remember.
19:39:26 <shachaf> I do remember the cauldrons being complicated.
19:40:14 <int-e> I agree that the main Recursed levels are not too hard, though the logistics can get quite tricky. But I do lack a proper mental model for those cauldrons, so I'm kind of lost in the final part of the last DLC set.
19:41:11 <b_jonas> here it's simple. we only have three types of passenger trains: normal trains, metro, and HÉV. metro and HÉV are suburban trains that run on tracks separated from normal trains, there's no toilet on them, and if they have multiple carriages then you can't pass between them without getting off, and they're ran by BKV so you have to buy tickets from them. metro, in addition, doesn't have road crossings.
19:41:22 <shachaf> b_jonas: take it to #trains hth
19:41:59 <b_jonas> shachaf: I think it's #openttd on oftc
19:42:38 <shachaf> Are you talking about OpenTTD? I thought you were talking about trains.
19:42:54 <b_jonas> I was talking about trains
19:43:03 <shachaf> Then why is #trains not the right channel?
19:43:48 -!- Phantom_Hoover has joined.
19:48:06 <kmc> https://scontent-sjc3-1.xx.fbcdn.net/v/t1.0-9/52326956_808073166219023_5828373343404818432_n.jpg?_nc_cat=1&_nc_ht=scontent-sjc3-1.xx&oh=25f5c7263ac39fa5c8f01aa83b38db63&oe=5CEA6B1C
19:48:11 <kmc> this seems vaguely #esoteric somehow
20:00:11 -!- imode has quit (Ping timeout: 268 seconds).
20:05:09 <orin> int-e: I still haven't beaten most of the cauldron levels
20:05:27 <orin> and I'm too proud to look at the guides
20:07:30 <orin> int-e: my understanding is that a cauldron forms a link to a room in a spefic state incl objects in it
20:08:10 <shachaf> kmc: "template<class ...Ts> void ellipsis(Ts......);"
20:08:38 <shachaf> C++ varargs followed by C varargs
20:08:48 -!- galaxie has joined.
20:09:05 <kmc> agree to disagree
20:09:46 <shachaf> perhaps the problem is that you're viewing c++ as a serious language rather than as a joke hth
20:10:13 <kmc> a joke that went too far
20:10:39 <kmc> is there an esolang wiki article about C++
20:11:47 <b_jonas> kmc: no. we try not to start on the slippery slope where we eventually write articles about every non-eso language.
20:12:11 <shachaf> what's the slippery slope here
20:12:19 <shachaf> write an article about C++ and then stop
20:12:38 <b_jonas> so we don't write articles about perl, php, ruby, C, C++, fortran, java, C#, javascript, ...
20:13:22 <shachaf> among all those languages only one is C++
20:14:47 <b_jonas> shachaf: also mediawiki doesn't allow us to put pluses in the language name
20:15:06 <b_jonas> so C, C++, C# would have to share an article
20:15:25 <b_jonas> so of those languages, actually three of them is C++ as far as mediawiki understands
20:15:47 <lambdabot> kmc says: I enjoy it when people write "C/C++" on their resume as if it were one language... so "F#/FORTRAN/Forth", "Perl/Python/Pascal", "Ruby/REBOL/R"
20:27:06 <orin> PERL/PHP/PL/I////
20:27:21 <galaxie> How plausible would it be to use genetic algorithms to discover source code in esolangs that follow some specification, like printing digits 1 to 10 or outputting hello world?
20:27:45 <orin> PERL is the Practical Extration and Reporting Language
20:28:20 <b_jonas> orin: I think it goes Perl/Python/Ruby/PHP, and you shouldn't do all four, but any three is acceptible. PL/I is sort of related, but pretty old.
20:28:39 <b_jonas> galaxie: people tried that for malbolge
20:29:01 <b_jonas> dunno, find it on the internet
20:29:04 <b_jonas> I don't recall the details
20:29:40 <orin> honestly awhile ago I took a serious look at PL/I and was annoyed that more languages didn't follow it
20:29:58 <galaxie> I was thinking of a less difficult language to try this with though, so I guess the results would be better if I tried it with some other esolang?
20:30:44 -!- imode has joined.
20:39:11 <galaxie> b_jonas: This looks promising, albeit not necessarily for my idea: http://stoke.stanford.edu/
20:39:29 <orin> I don't understand how so many old languages had a
20:39:57 <orin> DO i = 1 TO length
20:40:08 <b_jonas> sure, that's Fortran's influence
20:40:12 <orin> statement but C and so on don't
20:40:42 <orin> the for( idiom requires you to give the loop variable 3 times
20:42:02 <b_jonas> orin: there are macros around that, and in C++ you could even do that with the range-for and a library function range. but people are reluctant to do either of that, mostly because we all remember that our prophets K&R have specifically said that the for (i = 0; i < 10; i++) is the Right Way to write an arithmetic loop.
20:43:51 <galaxie> b_jonas: Here's what I was looking for: https://github.com/primaryobjects/AI-Programmer/
20:44:30 -!- sleepnap has quit (Ping timeout: 268 seconds).
20:45:44 <orin> also C has way too many precedence levels, and languages taking after C inherit them and sometimes add more,
20:46:39 <b_jonas> orin: the too many precedence levels is a good thing. the questionable thing is that & has a lower precedence than ==, but at this point it's languages that don't do that, like rust, that confuse me
20:47:02 <b_jonas> again because K&R have decreed that & has the lower precedence level
20:48:01 <orin> no I think there should be like 5 precedence levels at most
20:48:30 <b_jonas> haven't you ever programmed BASIC and had to write redundant parenthesis?
20:48:42 <orin> or, and, =, +, *
20:48:44 <b_jonas> or even pascal or metafont or whatever
20:48:59 <b_jonas> fewer precedence levels is the wrong goal
20:49:11 <orin> bitwise | at same level of +, bitwise & at same level as *
20:49:29 <orin> because those shouldn't be mixed without parens anyway
20:53:11 <orin> like, I think the most complex statement you should make without parens would be something like
20:54:24 <orin> if x * 2 + 1 > y and a_flag or b_flag then
20:55:37 <orin> in C thie equivalent would be
20:58:07 -!- sleepnap has joined.
20:58:23 <orin> if ( R = x * 2 + 1 << 1 > 4 == y & a | b && A || B )
20:58:45 <orin> or something, I'm probably missing a couple levels
20:59:00 -!- galaxie has quit (Quit: ircII EPIC4-2.10.6 -- Are we there yet?).
21:00:40 <orin> some languages do away with precedence entirely, I think that's going too far, but I think the number of levels should be far fewer
21:01:52 <orin> and you could fix some of the need for parentheses by having a few more operators
21:10:12 <kmc> I saw a language with horizontal whitespace for precedence
21:10:18 <kmc> ostensibly non esoteric
21:10:19 <orin> for example bitwise ~& and logical nand
21:10:27 <kmc> so 2+3 * 4 is (2+3)*4
21:10:36 <kmc> but 2 + 3*4 is 2+(3*4)
21:10:51 <kmc> in Rust, boolean and bitwise negation are both ~
21:10:54 <kmc> they're both !
21:11:07 <kmc> Rust has strong typing for integers so there is no implicit conversion between bools and ints
21:11:15 <kmc> and ~ was once in use for another since removed language construct
21:11:37 <FireFly> kmc: I've actually done that in my own notes before (whitespace for precedence)
21:12:06 <orin> yeah but ruby still has a jillion precedence levels inherited from C
21:12:36 <FireFly> especially for fractions I found it to be a bit handy, since it could reduce noise a bit
21:13:00 <orin> A || B and C in ruby is (A || B) and C
21:13:38 <HackEso> smlist 494: shachaf monqy elliott mnoqy Cale
21:14:55 -!- imode has quit (Ping timeout: 258 seconds).
21:17:59 -!- arseniiv has quit (Ping timeout: 258 seconds).
21:24:03 -!- orbitaldecay has quit (Ping timeout: 256 seconds).
21:37:55 <esowiki> [[Semordnilap]] https://esolangs.org/w/index.php?diff=60001&oldid=59962 * Orby * (+46) Adding output
22:25:08 -!- Remavas has joined.
22:35:14 -!- AnotherTest has quit (Ping timeout: 246 seconds).
22:37:18 -!- Remavas has changed nick to Remavas[AFK].
22:49:49 -!- Remavas[AFK] has quit (Read error: Connection reset by peer).
22:51:11 -!- Remavas has joined.
22:51:30 <kmc> shachaf: whoa, did you know Python 3.6 supports Perl-style string interpolation?
22:51:42 <kmc> dongs = 69; f'{dongs}'
22:52:03 <kmc> WELL NOW YOU DO
22:52:26 <orin> kmc: but nobody uses python 3 in real life
22:53:09 <kmc> that's because there's no such thing as real life
22:58:37 -!- xkapastel has quit (Quit: Connection closed for inactivity).
23:06:52 <kmc> i'm sad but I forgot what about :(
23:06:54 <kmc> this is the worst
23:07:02 <kmc> better get high and then I'll forget that I'm sad as well
23:07:32 <shachaf> are you sad about josephine the cat
23:07:45 <shachaf> maybe proposing random things for you to be sad about isn't a good strategy
23:08:13 <kmc> probably not
23:08:19 <kmc> that cat really sparked joy :(
23:12:36 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60002&oldid=59984 * Helen * (+175) /* Continuation on the above by User:Helen */ Added implementation of addition algorithm
23:15:43 <esowiki> [[Semordnilap]] https://esolangs.org/w/index.php?diff=60003&oldid=60001 * Orby * (+854)
23:17:29 -!- sleepnap has left.
23:21:29 <kmc> ode to cats
23:24:18 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=60004&oldid=59991 * Helen * (+34) Added bitch
23:42:53 <fizzie> We have a cat wall at the office.
23:43:08 <fizzie> (It's just a wall you can put a picture of your cat(s) on.)
23:44:58 <shachaf> kmc: did you know: glibc memcmp on ARM used to switch into big endian mode
23:45:19 <kmc> and why'd they stop
23:45:54 <shachaf> https://github.com/rsaxvc/arm-mem/commit/b836e465c2fd0bb006b428abce99e31607072834
23:46:19 <shachaf> maybe this isn't glibc? whatever
23:46:31 <shachaf> it broke valgrind, for one
23:51:47 <kmc> does cortex-m support bi-endianness?
23:52:20 <shachaf> apparently it supports either but you can't switch
23:53:28 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:54:11 <shachaf> Are there languages that have different calling conventions per function, specifying which registers need to be saved and so on?
23:56:53 <kmc> differing according to what
23:57:30 <shachaf> I mean, the compiler can figure it out when it compiles the function
00:00:29 <kmc> oh, well, anything that can't be called outside the compilation unit can be optimized arbitrarily
00:00:50 <kmc> for example you wouldn't need to save caller-save registers around a call to a function that happens to not use those registers
00:00:58 <kmc> (that's assuming the function isn't inlined anyway)
00:04:52 -!- Lord_of_Life_ has joined.
00:07:20 -!- Lord_of_Life has quit (Ping timeout: 272 seconds).
00:07:20 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:07:23 <b_jonas> `ehlist http://eheroes.smackjeeves.com/comics/2750792/how-to-defeat-a-hero/
00:07:24 <HackEso> ehlist http://eheroes.smackjeeves.com/comics/2750792/how-to-defeat-a-hero/: b_jonas
00:10:03 <shachaf> kmc: I mean putting things like clobbered registers and maximum stack size in the "type" of a function.
00:10:31 <shachaf> Also do C compilers actually change the calling convention for static non-inline functions?
00:10:54 <kmc> they might
00:11:14 <kmc> in Rust the calling convettion is part of the type
00:11:23 <kmc> you can't pass a fn as an extern "C" fn
00:11:36 <shachaf> That makes sense. But there are a few fixed conventions.
00:13:02 <kmc> how do you mean
00:13:13 <kmc> are you saying you should be able to define your own conventions?
00:16:51 <shachaf> I'm saying you can have a convention per function depending on how many registers it needs and so on.
00:17:20 -!- b_jonas has quit (Quit: leaving).
00:19:54 <shachaf> These seem like things you can do in general. If you have a DAG of functions it's easy, and if you have a cycle I guess you can just go with the conservative option (unlimited stack, standard calling convention).
00:20:27 <esowiki> [[Farm]] https://esolangs.org/w/index.php?diff=60005&oldid=59958 * BMO * (+4094)
00:20:51 -!- Remavas has quit (Read error: Connection reset by peer).
00:21:36 -!- Remavas has joined.
00:21:39 -!- Remavas has changed nick to Remavas[AFK].
00:54:03 -!- copumpkin has joined.
01:26:32 -!- orbitaldecay has joined.
02:22:33 -!- sebbu has quit (Ping timeout: 245 seconds).
02:28:14 -!- sebbu has joined.
02:47:33 <esowiki> [[User:Orby]] M https://esolangs.org/w/index.php?diff=60006&oldid=59939 * Orby * (-30)
03:00:28 -!- Remavas has joined.
03:02:33 -!- Remavas[AFK] has quit (Ping timeout: 245 seconds).
03:32:38 -!- oerjan has joined.
03:47:11 <HackEso> Saneb is too normal to invent things, but he likes to watch SV and play Vorld of Varcraft.
03:51:41 -!- FreeFull has quit.
04:01:40 <oerjan> <b_jonas> shachaf: also mediawiki doesn't allow us to put pluses in the language name <-- . o O ( i'm starting to worry about b_jonas - this and claiming helium in zeppelin's explode... )
04:01:47 -!- Remavas has quit (Ping timeout: 244 seconds).
04:02:03 <oerjan> also about my own gramar and spling
04:03:23 <shachaf> Hmm, there are definitely pluses in language names on the wiki.
04:08:13 <oerjan> that's why i'm worried hth
04:57:12 <shachaf> maybe "that was actually clear from the context" or something along those lines
05:22:24 -!- arseniiv has joined.
05:50:26 <oerjan> huh they've rewritten the dialogue of the third last girl genius comic. seems like they remembered tarvek had already met the castle fragment
05:55:26 <oerjan> oh there's a comment edit below
06:02:33 -!- tromp has quit (Remote host closed the connection).
06:11:03 <oerjan> the second monster statue from the right looks a bit like the one over mechanicsburg
06:17:51 <oerjan> (http://www.girlgeniusonline.com/comic.php?date=20140611 for that one)
06:37:09 <kmc> shachaf: should there be more cat emojis in the Unicode, y/y
06:37:57 <shachaf> kmc: will you adopt a cat and/or a cat emoji
06:41:29 -!- tromp has joined.
06:47:17 -!- tromp has quit (Ping timeout: 255 seconds).
07:09:48 -!- AnotherTest has joined.
07:14:25 -!- AnotherTest has quit (Ping timeout: 250 seconds).
07:46:25 -!- oerjan has quit (Quit: Nite).
08:29:02 -!- tromp has joined.
08:31:01 -!- tromp has quit (Remote host closed the connection).
08:31:17 -!- tromp has joined.
08:40:39 <orin> I won't be adding anymore emoji to my font since windows refuses to display them in my font
08:41:15 <orin> I will hoever, be getting back to adding more characters regularly
08:57:01 <orin> also remember how killing pulseaudio was common solution for ubuntu problems a few years ago?
08:57:22 <orin> well today I ahve a problem with my mouse freezing up on windows 10
08:57:44 <orin> google says the solution is to kill the Realtek Audio Manager
08:58:16 <myname> at uni we have an issue with debian where the cursor sometimes is invisible for a few minuts after login
09:17:49 -!- tromp has quit (Remote host closed the connection).
09:36:48 -!- tromp has joined.
09:37:06 -!- AnotherTest has joined.
09:58:51 -!- orbitaldecay has quit (Ping timeout: 256 seconds).
10:20:59 <orin> good to see that bdf2ttf.c is still working
10:21:14 <orin> http://orenwatson.be/bdf2ttf.htm
11:04:21 -!- xkapastel has joined.
11:06:21 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60007&oldid=60002 * Helen * (-257) Updated impossible popular problems entry
11:14:31 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60008&oldid=60007 * Helen * (+1005) Added a section for common algorithms
11:27:28 -!- MDude has quit (Ping timeout: 246 seconds).
11:32:15 -!- MDude has joined.
11:37:20 <orin> ᕫᕬᕭᕮᕯᕰᕱᕲᕳᕴᕵᕶᕷᕸᕹᕺᕻᕼᕽ᷂᷊᷀᷁᷃᷄᷅᷆᷇᷈᷉⨌⨍⨎⨏⨐㌀㌁兩硝硫硬碁碑磨礁礎秀租秩称稚稲稼稽稿穂穏穫突窃窒窟窮窯竜端符筒箇箋箸範篤簿籍籠粋粒粗粘粛粧糧糾紋紛紡索紫累紳紹絞絡継維綱網綻緊緒締緩緯緻縁縄縛縝繁繊繕繭繰罰罵罷羞羨翁翻翼耐耗聘聵肌肖肘肝股肢肩肪肯胆胎胞胴脂脅脇脊脚脱腎
11:38:46 <Taneb> Looks like you're testing a font there
11:39:12 <orin> Taneb: yah these are the new characters in the newest version of my font
11:40:10 <orin> I got back into it yesterday and have been adding characters again
11:47:37 <orin> I refactored my ttf parser
11:48:23 <orin> http://orenwatson.be/ttfinvread.htm
11:49:35 <orin> a and wrote a program to compare the character inventories of two files
11:49:39 <orin> http://orenwatson.be/invcmp.htm
11:51:03 <orin> which allowed me to more easily get a list of which characters exist in a new ttf as opposed to the old one
12:05:53 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
12:11:54 -!- Lord_of_Life has joined.
12:31:08 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60009&oldid=59992 * A * (+458)
12:32:01 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60010&oldid=60009 * A * (-18) /* Examples */
12:44:20 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60011&oldid=60008 * Helen * (+31) /* Continuation on the above by User:Helen */ Corrected myself on my statement about a subtraction algorithm
13:00:10 -!- Meme19 has joined.
13:09:15 -!- Meme19 has quit (Ping timeout: 256 seconds).
13:10:24 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60012&oldid=60010 * A * (-63) /* Examples */
13:10:49 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60013&oldid=60012 * A * (+29) /* Machine code interpreter */
13:15:23 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60014&oldid=60011 * A * (-96) Division would be unneccesary, since subtraction is not yet implemented.
13:15:50 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60015&oldid=60014 * A * (-1) /* Continuation on the above by User:Helen */
13:25:30 -!- danieljabailey has quit (Ping timeout: 250 seconds).
14:37:44 <orin> hmm is there an efficient way to verify that there are no characters that look exaclty the same?
14:40:31 <orin> if I loaded all chars into memry at same time it would be uhh
14:41:35 <Taneb> Sort them graphically in some way?
14:42:55 <orin> the characters are represented as 18x16 bitmaps
14:43:03 <Taneb> There are definitely sorting algorithms designed so you don't load everything at once
14:43:45 <orin> so I could just output those as strigs somehow
14:43:58 <orin> then use gnu sort?
14:44:51 <orin> 18 divides 6 evenly so each pixel row could be 3 base64 digits
14:45:29 <orin> does gnu sort use a mergesort on large files?
14:47:38 <orin> hmm, never mind the data isn't *that* large, only 2 megabytes
14:47:47 <orin> I'll use qsort
14:48:19 <Taneb> > let n = 2 * 2^20 in n * log n
14:48:58 <orin> might take a bit
14:49:42 <myname> you can do integer sorting in n * sqrt(log log n)
14:50:24 <Taneb> This is exactly what something like radix sort is good for
14:53:23 -!- AnotherTest has quit (Ping timeout: 245 seconds).
14:53:28 <orin> ah yeah. If I keep splitting the dataset based on each bit then when I'm at the last one, I'll have verified whether there are any repeats
14:54:18 <lambdabot> 4973232364097866421553822481468208401004561507973477174404639768931594970125...
14:54:34 <Taneb> Well, there's certainly a lot of possible characters...
14:57:36 <orin> yeah but most of those possibilities look like white noise
14:58:15 <orin> and one of the goals of my font is to as much as possible keep characters looking distinct from each other
14:59:47 <orin> so what I'll do is make two buffers
15:00:00 <orin> each containing pointers to bitmaps
15:00:24 <orin> and in a loop split the buffer by one bit
15:00:54 <myname> you could also make a giant hashmap with a reasonable hash function for each character
15:01:24 <orin> hmmm or maybe double buffering is overkill
15:02:01 <orin> how many recursion levels can tpyical C environment handle
15:03:21 <orin> yeah I think I'll do the loop instead even if I have to be clever
15:05:02 <int-e> > length ['\0'..] * 18*2 -- bytes
15:06:24 <int-e> I'm sure orin has fewer glyphs than that. :)
15:06:35 <int-e> So sorting them all to find duplicates shouldn't be a big deal, really.
15:06:54 <orin> Currently I've got 21130
15:08:57 -!- sleepnap has joined.
15:09:06 <int-e> Ah, catching up is hard. "<orin> I'll use qsort"
15:09:52 <Taneb> int-e: it's fun to overthink things
15:10:20 <int-e> . o O ( overthinking, what does that even mean? )
15:10:47 <int-e> what's more problematic is that there will be duplicates
15:11:26 <orin> int-e: that's what I'm trying to find
15:11:41 <HackEso> [U+006F LATIN SMALL LETTER O] [U+043E CYRILLIC SMALL LETTER O] [U+03BF GREEK SMALL LETTER OMICRON]
15:11:42 <orin> if there are duplicates I want to knwo what they are
15:11:56 <orin> int-e: thsoe all look different in my font
15:12:18 <int-e> that seems awkward. :)
15:12:34 <orin> cyrillic о is more squarish and greek ο is shorter
15:13:32 <orin> still different.
15:13:47 <orin> I'm more worried about the math symbols and such
15:15:43 <orin> em space is shown with little letters saing "EMSP"
15:16:25 <orin> although some environments stubbornly refuse to show any glyph for space characters
15:16:44 <orin> ok I don't even
15:16:52 <HackEso> U+26D0 CAR SLIDING \ UTF-8: e2 9b 90 UTF-16BE: 26d0 Decimal: ⛐ \ ⛐ \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals)
15:17:05 <orin> I didn't draw that one yet
15:17:37 <orin> http://orenwatson.be/fontdemo.htm
15:18:51 <myname> what about invisible plus vs invisible minus?
15:19:32 <int-e> myname: dym times, rather than minus?
15:21:12 <orin> I need to update my cjkwidth function, some charactrs are being whown the wrong width
15:22:13 <orin> and some of these need to be redrawn becuase they became emoji and thus became wide
15:23:24 <orin> hmm or maybe it's better to leave them... I'll think about it
15:24:16 <myname> there is a 69 emoji? that will be so misused
15:24:58 <orin> myname: it's the Cancer astrological sign lol
15:25:12 <myname> what's the difference :D
15:25:29 <orin> I agree emojis have become a cancer
15:26:50 -!- AnotherTest has joined.
15:27:09 <int-e> myname: there are emoji modifiers as well
15:27:54 <orin> yeah i've yet to find a terminal, or terminal-oriented program, that handles those things correctly or at all really
15:28:27 <int-e> `` unidecode $(unicode 1F9B0)
15:28:28 <HackEso> [U+1F9B0 - No such unicode character name in database]
15:29:06 <int-e> Unicode Character 'EMOJI COMPONENT RED HAIR' (U+1F9B0)
15:29:52 <int-e> I'm secretly waiting for the emoji part of Unicode to become TC.
15:32:54 <orin> my font includes some emoji but browsers and even some terminals simply refuse to display them in my font
15:33:34 <orin> so I'm focusing on non-emojis
15:34:47 <orin> emojis can be handled by some other lunatic, this lunatic is working on pixelating every possible mathematic operator and all the most common kanji
16:24:12 <orin> wow google is pushing ahead with crippling ad blockers
16:24:28 <Taneb> Of course they are, ads are their main source of income
16:25:15 <orin> they gave a press release that superficially appears to back down but actually doesn't
16:30:40 <orin> idiot newspapers are reporting that google won't block ad blockers
16:31:18 <orin> "Another clarification is that the webRequest API is not going to be fully removed as part of Manifest V3. In particular, there are currently no planned changes to the observational capabilities of webRequest (i.e., anything that does not modify the request)."
16:32:00 <orin> ^ meanwhile, in reality, the post confirms that ublock and other ad blockers will no longer be allowed to use the existing API to filter content
16:32:22 <orin> only "observe" it
16:32:36 <int-e> "would have blocked 10/11 requests"
16:33:00 <orin> https://groups.google.com/a/chromium.org/forum/#!topic/chromium-extensions/WcZ42Iqon_M
16:33:12 <orin> here's the full post
16:33:28 <int-e> https://www.theregister.co.uk/2019/02/20/google_nest_secret_microphone/ is nicely written
16:33:41 <int-e> (unrelated, except it's also about Google)
16:34:01 <orin> I'm glad I never switched to chrome in the first place
16:35:04 <int-e> "Dynamic Rule Support: We agree that this is valuable in creating sophisticated content blocking extensions, and will be adding support for declarative rules that can be added or removed at runtime to the declarativeNetRequest API." ... uh, right, that's not what we mean by dynamic blocking.
16:36:12 <orin> hehehehe such weasel. much handwave. wow
16:40:02 -!- Hydra_ has joined.
16:42:46 <orin> I mean, they are aware that people can tell whether ads are being blocked?
16:43:24 <orin> I don't see how this won't lead to a large exodus of adblock users to other browsers
16:43:26 -!- Hydra_ has quit (Client Quit).
16:44:42 <myname> well, as long as they won't sync with your bookmarks and passwords, that may be hard
16:44:57 -!- Erika has joined.
16:45:46 <myname> multiple devices as well
16:45:49 <int-e> (though there the trend seems to be not to have a website but a custom app)
16:45:51 <orin> int-e: I use firefox on mobile
16:45:58 <myname> and google did forbid chromium forks to sync
16:46:00 <orin> I don't use any website-apps
16:46:14 <myname> mobile browsers all suck
16:46:21 <myname> but the duet mode in chrome dev is nice
16:46:26 <orin> firefox munges chromium bookmarks
16:46:30 <orin> not sure about passwords
16:47:09 <int-e> of course the timing of these changes is also interesting
16:47:33 <int-e> this is happening shortly after MS announced they're discontinuing Edge... https://www.theverge.com/2018/12/4/18125238/microsoft-chrome-browser-windows-10-edge-chromium
16:47:42 <orin> if you have a website and an app I always use the website. having so few apps means my phone battery lasts much longer than my dad's
16:49:38 <myname> that depends on what you do imho
16:52:47 <orin> myname: well my dad has all these apps he rarely uses constantly loading new messeges and content whereas my phone only does this when I visit a website
16:52:56 -!- moei has joined.
16:53:32 <orin> my phone therefore does less work when I'm not using it
16:53:52 <orin> and as a result only needs charging every 4 or 5 days
16:54:06 <myname> yeah, that's crap. but there are services where an app does provide additional features
16:54:37 <myname> like, i will always take the youtube app over the website
16:54:55 <orin> you can't block ads in the youtube app
16:55:01 <orin> so it has less features
16:55:22 <orin> and wastes data
16:55:43 <int-e> "you can't block ads in the youtube app" is the main reason for all those apps, I'm afraid
16:56:02 <orin> yup. firefox mobile with ublock origin
16:58:27 <orin> you can watch youtube on mibile with no ads, and look at another website while it plays
16:58:43 <orin> all features that the youtube app deliberately does not have
16:59:19 -!- Erika has quit (Ping timeout: 256 seconds).
16:59:33 <orin> billionaires hate him! this 1 cool trick
17:03:48 <myname> orin: maybe _you_ can't
17:04:49 <myname> and you can watch a video while doing whatever you want
17:04:50 <orin> myname: oh are you paying for redtube, er, youtube red, er, youtube premium?
17:05:16 <myname> orin: http://vanced.app
17:05:53 <orin> eh, that's an extra app
17:06:11 <orin> I don't go for these extra apps
17:06:54 <myname> at least the rooted way just replaces it
17:07:36 <orin> just use firefox
17:08:24 <myname> watchlist handling is horrible in browser
17:11:00 <orin> you could just hit "request desktop site" if your phone has high DPI
17:12:40 <myname> the website lacks features the app has
17:14:33 <orin> I don't really go for watchlists as much as super long videos
17:14:44 <orin> https://www.youtube.com/watch?v=DX2-yTicXs0 liek this
17:17:54 <orin> because I hate the slight lag betweeen longs in playlists
17:19:14 <myname> i rarely use youtube for music
17:19:53 <orin> I rarely use youtube for anything except music
17:26:45 -!- danieljabailey has joined.
17:59:43 <esowiki> [[BitBounce]] N https://esolangs.org/w/index.php?oldid=60016 * Hakerh400 * (+12154) Publish BitBounce
18:00:45 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=60017&oldid=59915 * Hakerh400 * (+16) Add BitBounce to the list
18:29:46 <orin> lol nike shoes "bricked" by android app
18:30:00 <orin> intenet of shit
18:32:55 -!- Phantom_Hoover has joined.
18:38:50 <orin> weird fact: 0x64 == 0144 == 100
18:39:27 <orin> this is weird because all of those are squares in decimal
19:03:53 <orin> U-FF60 to U-FF9F can augment ascii to form a base-128 system. this has the advantage of looking like the matrix raining code
19:05:55 <orin> therefore the computers in the matrix must have used 7-bit groupings
19:18:56 <orin> for example, in this version fo base 128, the number イェpK is 57681234 in dec
19:32:27 -!- danieljabailey has quit (Ping timeout: 240 seconds).
20:11:00 -!- b_jonas has joined.
20:29:48 <kmc> half-width kana?
20:30:14 -!- tswett has joined.
20:31:55 <tswett> I'm starting to get kinda desperate for work. If anyone's got stuff that needs doing, let me know.
20:35:52 -!- FreeFull has joined.
20:43:11 <b_jonas> shachaf: gcc allows a little bit of control over function calling conventions, but not as much as you're asking for. https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc/x86-Function-Attributes.html#x86-Function-Attributes
20:45:25 -!- tswett has quit (Ping timeout: 256 seconds).
20:48:00 <shachaf> b_jonas: I don't think it's very practical in a language like C or C++
20:48:25 <esowiki> [[Pizza Delivery]] https://esolangs.org/w/index.php?diff=60018&oldid=59949 * Cortex * (+725)
20:59:34 <esowiki> [[Pizza Delivery]] https://esolangs.org/w/index.php?diff=60019&oldid=60018 * Cortex * (+21)
21:21:11 <b_jonas> `bobadventureslist http://bobadventures.comicgenesis.com/d/20190219.html
21:21:12 <HackEso> bobadventureslist http://bobadventures.comicgenesis.com/d/20190219.html: b_jonas
22:04:14 -!- Remavas has joined.
22:10:31 <lambdabot> LHBP 202200Z VRB01KT CAVOK M02/M02 Q1025 NOSIG
22:11:35 -!- arseniiv has quit (Ping timeout: 255 seconds).
22:24:04 -!- xkapastel has quit (Quit: Connection closed for inactivity).
22:25:08 <esowiki> [[BitBounce]] M https://esolangs.org/w/index.php?diff=60020&oldid=60016 * Hakerh400 * (+0) fixed typo
22:25:08 -!- Essadon has joined.
22:25:23 -!- Essadon has quit (Max SendQ exceeded).
22:38:18 -!- xkapastel has joined.
23:20:39 -!- sleepnap has left.
23:33:56 -!- AnotherTest has quit (Ping timeout: 255 seconds).
23:39:26 <shachaf> int-e: imo what if snprintf was a coroutine that you could resume with a new buffer if it runs out of space?
23:40:25 <kmc> cocoa coated co-cones
23:51:07 -!- Remavas has changed nick to Remavas[AFK].
23:54:16 -!- tromp has quit.
23:56:09 -!- Remavas[AFK] has changed nick to Remavas.
00:04:13 -!- tromp has joined.
00:05:12 -!- tromp has quit (Remote host closed the connection).
00:07:01 -!- Lord_of_Life_ has joined.
00:08:34 -!- Lord_of_Life has quit (Ping timeout: 250 seconds).
00:08:34 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:35:06 -!- oerjan has joined.
00:40:47 -!- heroux has quit (Ping timeout: 246 seconds).
00:41:34 -!- heroux has joined.
00:46:23 -!- b_jonas has quit (Quit: leaving).
00:51:29 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:44:05 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:00:11 <oerjan> @tell orin <orin> this is weird because all of those are squares in decimal <-- it's not as random as you think, because 100 and 144 are square in _all_ bases.
02:00:49 <oerjan> (well, big enough to have them)
02:01:51 <oerjan> > [6*n+4 | n <- [1..16]]
02:01:53 <lambdabot> [10,16,22,28,34,40,46,52,58,64,70,76,82,88,94,100]
02:02:10 <oerjan> that does seem more coincidental
02:05:09 <oerjan> hm n needs to be even, and then it's 3*(n/2) + 1
02:07:01 <oerjan> the squares of odd numbers * 2
02:09:49 <oerjan> oh, it's the square of numbers not divisible by 3, * 2
02:12:03 <oerjan> > [(3*n+i)^2 | n<-[0..], i<-[1,2]]
02:12:05 <lambdabot> [1,4,16,25,49,64,100,121,169,196,256,289,361,400,484,529,625,676,784,841,961...
02:12:21 <oerjan> > [(3*n+i)^2*4 | n<-[0..], i<-[1,2]]
02:12:23 <lambdabot> [4,16,64,100,196,256,400,484,676,784,1024,1156,1444,1600,1936,2116,2500,2704...
02:32:27 <FreeFull> The fact that 100 is square in all bases is pretty obvious
02:34:18 -!- tromp has joined.
02:35:10 <FreeFull> oerjan: 121 will be square in all bases too
02:37:23 -!- FreeFull has quit.
02:38:44 -!- tromp has quit (Ping timeout: 246 seconds).
02:52:32 <oerjan> and others, but then it's too big for base 10
02:53:48 <oerjan> now prove that they all have odd length
02:54:21 <oerjan> or disprove, if you disagree
02:55:10 <oerjan> length 2 is pretty obviously impossible
02:57:20 <oerjan> but i'm not sure about the larger even ones, just a hunch
02:58:08 <oerjan> i suppose it can be seen as a polynomial problem
02:59:08 <oerjan> but maybe evens can work even if they cannot be a square of a polynomial
03:03:37 <int-e> Apparently not. http://www.isibang.ac.in/~sury/polys.pdf Section 3. (via https://math.stackexchange.com/questions/1157780/polynomials-such-that-pk-ql-for-all-integer-k/1157825#1157825)
03:13:30 <int-e> Though the proof of Lemma 3.2 has a gap, this isn't a direct application of Lemma 3.1... I guess the trick is to use P_1'(x)P_2(x)...P_r(x) in the proof of lemma 3.2, instead of just P_1'(x)?
03:13:42 <int-e> (when using Bezout)
03:14:43 <int-e> that last 3.2 should be 3.1
03:21:37 <int-e> Oh this really is less miraculous than it may seem at first... 100 in base n is 144 in base (n-2), for all n > 6.
03:22:19 <int-e> But the 64 is still an accident :)
03:48:57 -!- Remavas has quit (Quit: Leaving).
03:54:12 <kmc> is there any deep reason why 10^0.3 is so close to 2
03:54:25 <kmc> or is this just a very convenient coïncidence for engineers?
03:56:35 <kmc> who pretty much assume 3 dB = factor of 2
03:57:15 <kmc> which also means 2^10 = 30 dB = 1000
03:57:46 <kmc> which is amusingly the same probably as kB vs KiB
03:57:53 <kmc> btw I think dB should be used for more things
03:58:29 <kmc> e.g. probability
03:58:48 <kmc> then you can bayes rule with only addition
03:58:56 <kmc> but I'm not sure, whether 0 dB should be 1 or 0.5 or what
04:00:26 <kmc> 0 dB = 1 seems most natural to me, but this lesswrong article uses 0.5 https://www.lesswrong.com/posts/GDLP8MjvyhK3wx6hc/the-quick-bayes-table
04:00:40 <kmc> and if there's anyone I trust to massively overthink this sort of thing, it's the Rationalists
04:01:32 <kmc> my friend lives in a Rationalist group house and they have whiteboards all over the walls with prediction markets for various events, ranging from personal to worldwide
04:02:14 -!- tromp has joined.
04:03:32 <pikhq> This seems a touch silly.
04:03:48 <kmc> the last part?
04:04:12 <kmc> i mean, i agree
04:04:17 <kmc> i don't think anyone takes it that seriously
04:04:27 <kmc> and they play for fake points iirc
04:04:56 <pikhq> That actually sounds about right really.
04:05:14 <kmc> one could say it's practice for honing one's probability estimating skills
04:05:47 <kmc> rationalism is... interesting
04:05:59 <kmc> it's not quite a doomsday sex cult, but it's not entirely NOT a doomsday sex cult
04:06:21 <pikhq> Don't get me wrong though, I'm all about a sex cult. :P
04:07:05 -!- tromp has quit (Ping timeout: 255 seconds).
04:08:41 <kmc> I mean, it would be more appealing if not for various stories I've heard about people behaving badly
04:09:00 <pikhq> Yeaaah, that sort of thing can go wrong pretty easily.
04:09:20 <pikhq> And I'm exactly the sort of person that's easily susceptible to that, so
04:10:37 <kmc> I'm friends with some self-identified rationalists, and dating one, but I don't have any desire to get closer than that. it enriches my life in small doses
04:10:44 <kmc> their solstice service was lovely
04:11:45 <shachaf> I went to a few MIRI workshops and I'm going to another one next month.
04:12:00 <kmc> shachaf: they got you
04:12:16 <kmc> shachaf: have you run into edwardk now that he works at MIRI?
04:12:28 <shachaf> Yes, he's been at the workshops.
04:13:25 -!- xkapastel has joined.
04:14:45 <shachaf> when are you moving back to the bay are twh
04:14:51 <oerjan> . o O ( should MIRI worry about time-travelling Terminators )
04:15:13 <pikhq> If my current job gives me a 100% raise, I might consider it.
04:15:44 <pikhq> Yes, I started as an SRE at a company in Denver last month.
04:15:55 <pikhq> And I have a BS in applied math now.
04:16:54 <pikhq> And lemme tell you, 6 figure income goes a lot further when your rent is under $1k.
04:18:01 <shachaf> my rent when i worked at google was $500 or something
04:18:21 <shachaf> also it was a small windowless room, which i don't think is quite legal
04:18:30 <shachaf> once i was woken up by a burglar in the room
04:18:42 <pikhq> Yeah, this is for a whole apartment
04:19:04 <pikhq> And I doubt that room is $500 now. :)
04:19:16 <pikhq> Unless it's out in, like, Gilroy, too.
04:19:55 <shachaf> but have you considered moving to the bay area and also getting a 100% raise
04:20:26 <pikhq> I doubt that getting both is possible, and also I honestly like Colorado.
04:21:05 <pikhq> And for that matter, my current job
04:23:25 <j4cbo> yeah, i moved from the Castro to the Sunset to Montana
04:23:55 <j4cbo> noooot interested in going back to the bay area
04:24:06 <pikhq> May also help to know Colorado is my _home_, so
04:34:16 <kmc> don't move to the bay area
04:34:25 <kmc> most people i know here want to leave
04:34:35 <kmc> our most likely plan is to move to the Denver area
04:34:48 <kmc> sometime within the next year or two
04:34:48 <pikhq> Come to Colorado, we have weather
04:34:49 <kmc> but it's still very much up in the air
04:34:56 <kmc> I like Colorado
04:35:16 <kmc> and it shares one of the main things I love about here (lots of awesome natural areas nearby)
04:35:28 <kmc> oh and weed
04:36:20 <shachaf> kmc: one time you said that if you moved to sf you'd eat burritos every day
04:37:15 <pikhq> Our burritos are perhaps inferior, but they are at least quite readily available.
04:37:35 <shachaf> kmc: how come you aren't in any unlogged offtopic channels that i'm in tdnh
04:38:01 <kmc> Colorado is probably a better fit for me politically too
04:38:22 <pikhq> Liberal, but not actively disfunctional?
04:38:46 <kmc> socially liberal, but with a libertarian streak
04:39:08 <j4cbo> sounds like most Montana cities
04:39:34 <j4cbo> outside the cities it’s v red :(
04:39:42 <kmc> yeah but the state level laws for LGBT people (for example) suck in MT
04:40:00 <pikhq> Yeah, that's a bit of a dealbreaker for me.
04:40:01 <kmc> HRC puts MT in their lowest category and CO in the highest
04:41:09 <kmc> but yeah the urban vs. rural divide is sharp in almost every state
04:41:16 <kmc> big cities go blue even in the reddest of states
04:42:10 <pikhq> Not that anywhere in MT counts as a _big_ city.
04:45:30 <j4cbo> someone asked me what the nearby “big city” was (I’m in Missoula)
04:45:37 <j4cbo> I was like... this is it
04:47:00 <kmc> even my hometown of Des Moines is substantially bigger than missoula (or billings)
04:47:00 <pikhq> By their definition of "big", pretty sure the "nearby" one would probably be something like Seattle, Salt Lake, or Denver.
04:47:16 <pikhq> None of which are all that close.
04:47:25 <j4cbo> yeah, or maybe Spokane (3 hours)
04:48:05 <j4cbo> I go there for Trader Joe’s
04:48:24 <pikhq> Which is also not really a big one, but it'd probably at least register as a city with them.
04:49:26 <kmc> you drive 3 hours to get to trader joe's?
04:49:42 <kmc> I mean, TJ's is pretty awesome but that seems excessive
04:50:10 <pikhq> When you live in more rural parts of the country you just get used to much longer travel times.
04:50:39 <pikhq> My mom for a while had a 2 hour *commute*.
04:50:44 <shachaf> this is your brain on carz
04:51:07 <j4cbo> like a few times a year
04:51:26 <kmc> pikhq: my wife has a 3 hour per day commute :(
04:51:30 <kmc> but she's on a bus with wifi and such
04:51:40 <kmc> j4cbo: fair enough
04:51:47 <kmc> I visit places 3 hours away at least a few times a year
04:52:30 <shachaf> can you draw me a commutative diagram
04:53:34 <pikhq> About... 133 miles.
04:53:53 <kmc> bay area commutes are really bad cause we can't build dense transit-oriented housing
04:55:08 <kmc> we love the environment soooooo much that we hold up transit and housing for decades in "environmental review"
04:56:16 <kmc> so instead people spend hours and hours per day driving
04:56:19 <kmc> love that environment
04:56:26 <pikhq> Well yeah, gotta consider the risks to the environment from getting rid of cars
04:58:02 <kmc> https://i.redd.it/gilx3e4wcsh21.jpg
04:59:20 <j4cbo> “environment” in California means “impact on nimbys”
05:28:01 <esowiki> [[Semordnilap]] https://esolangs.org/w/index.php?diff=60021&oldid=60003 * Oerjan * (+41) /* Examples */ The language demands this example
05:29:57 <oerjan> i suppose this is the other kind of esoteric
05:42:21 <esowiki> [[Quine]] https://esolangs.org/w/index.php?diff=60022&oldid=59968 * Oerjan * (+73) /* How to write quines */ Add obvious technical requirement (and sweep a bit of prior discussion under the "freely" carpet)
05:48:57 <shachaf> kmc: did you see that paper about a compacting malloc
05:49:12 <shachaf> https://arxiv.org/abs/1902.04738
05:50:39 -!- tromp has joined.
05:55:05 -!- tromp has quit (Ping timeout: 255 seconds).
06:18:33 -!- arseniiv has joined.
06:22:02 -!- xkapastel has quit (Quit: Connection closed for inactivity).
07:34:38 -!- tromp has joined.
07:39:24 -!- tromp has quit (Ping timeout: 268 seconds).
07:40:02 -!- arseniiv has quit (Read error: Connection reset by peer).
07:40:19 -!- arseniiv has joined.
07:49:31 -!- xkapastel has joined.
08:03:04 -!- oerjan has quit (Quit: Nite).
08:15:54 -!- AnotherTest has joined.
08:41:41 -!- tromp has joined.
09:26:07 -!- AnotherTest has quit (Ping timeout: 258 seconds).
09:39:50 -!- AnotherTest has joined.
10:02:03 -!- xkapastel has quit (Quit: Connection closed for inactivity).
10:13:31 <esowiki> [[Special:Log/newusers]] create * Dev cat * New user account
10:27:51 -!- tromp has quit (Remote host closed the connection).
10:30:23 -!- imode has joined.
10:42:29 -!- tromp has joined.
11:21:47 -!- AnotherTest has quit (Ping timeout: 255 seconds).
11:33:19 -!- AnotherTest has joined.
12:06:08 -!- Lord_of_Life_ has joined.
12:09:15 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
12:09:15 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:31:21 -!- nfd has joined.
12:33:02 -!- tromp has quit.
12:34:41 -!- nfd9001 has quit (Ping timeout: 255 seconds).
13:00:46 -!- imode has quit (Ping timeout: 250 seconds).
13:08:36 -!- tromp has joined.
14:49:05 -!- TellsTogo has joined.
14:53:27 -!- AnotherTest has quit (Ping timeout: 268 seconds).
14:54:34 -!- Sgeo has joined.
14:57:14 -!- Sgeo__ has quit (Ping timeout: 246 seconds).
15:04:05 -!- Sgeo_ has joined.
15:07:06 -!- Sgeo has quit (Ping timeout: 268 seconds).
15:32:52 -!- xkapastel has joined.
15:34:41 -!- MDead has joined.
15:35:33 -!- Sgeo has joined.
15:37:50 -!- MDude has quit (Ping timeout: 255 seconds).
15:37:56 -!- MDead has changed nick to MDude.
15:38:27 -!- danieljabailey has joined.
15:38:33 -!- Sgeo_ has quit (Ping timeout: 268 seconds).
15:45:03 -!- sleepnap has joined.
16:18:32 -!- sleepnap has left.
16:25:32 -!- MDude has quit (Ping timeout: 255 seconds).
16:35:04 -!- MDude has joined.
17:10:16 -!- AnotherTest has joined.
17:54:14 -!- b_jonas has joined.
18:02:34 -!- xkapastel has quit (Quit: Connection closed for inactivity).
18:17:59 -!- TellsTogo has quit (Ping timeout: 256 seconds).
18:18:32 -!- oerjan has joined.
18:19:31 <oerjan> @tell int-e i was too tired to look at the paper you linked yesterday, so i put it aside, and then before i looked back at it i'd found a simpler proof myself.
18:20:32 <oerjan> @tell int-e well, beyond the first section that mentioned that you could multiply by n! to get integer coefficients, which is my first step (multiplying by (n!)^k)
18:21:07 <oerjan> @tell int-e Second: if P(0) = a^k, replace P(x) by P(x+a) to get 0th coefficient 0.
18:26:24 <oerjan> @tell Third: If a_i is the first non-zero coefficient of the polynomial, but i < k, and p is a prime, then p^i divides P(p), thus p^(i+1) | p^k | P(p), thus a_i p^i | p^(i+1) and a_i | p. But p was arbitrary so a_i = 0.
18:28:40 <oerjan> @tell int-e Oops, wait, that P(x) to P(x+a) step is wrong isn't it. Darn.
18:30:47 <oerjan> ...and _now_ my brain is tired again.
18:32:37 -!- oerjan has quit (Quit: Later).
18:42:25 -!- xkapastel has joined.
19:00:15 <HackEso> [11,11,11,15,15,23,12],[5,5,5,3,53,45,16,26,00,20,15,16,22,25,45,91,32,11,15,27,06,01,11,01,47,22,30,13,43,21,11,13,29,61,65,17,19,12,28,17,11,01,23,20,16,20,81,18,32,25,58,22.,1985,10.301350435,1555466973690094680980000956080767,13720946704494913791885940266665466978579582015128512190078...
19:02:11 <HackEso> rm: cannot remove 'wisdom/link': No such file or directory
19:07:21 -!- imode has joined.
19:07:26 <HackEso> E-modules are modules over a web ring. Uaneb invented them.
19:07:49 <HackEso> ZOMGMODULES is both a small blonde veterinarian and just modules over the ring of ZOMGs.
19:08:22 <HackEso> D-modules are just modules over the ring of differential operators. Taneb invented them.
19:17:52 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ?ring: not found
19:17:56 <HackEso> Addition, subtraction and multiplication have a certain ring to them.
19:18:15 -!- Essadon has joined.
19:18:17 <int-e> `last wisdom/links
19:18:18 <HackEso> last: cannot open /var/log/wtmp: No such file or directory
19:18:35 <int-e> `dontaskdonttelllist
19:18:36 <HackEso> dontaskdonttelllist: quintopia myname int-e
19:18:46 -!- Essadon has quit (Max SendQ exceeded).
19:21:09 <b_jonas> ``` hg cat -r9527 wisdom/links # int-e:
19:21:10 <HackEso> links is one of the very few HTML renderers that doesn't try to store a full document tree with heavyweight objects for each node just in case javascript wants to modify it later, so it's the only engine that can render those HTMLs that are automatically converted from a PDF and put each letter in a separate element.
19:22:22 <int-e> (IIRC that was a fungot quote, so devoid of information :P)
19:22:22 <fungot> int-e: and what of it? i couldn't find anything in the cl way. that's why we need hygienic quasiquote
19:22:45 <int-e> fungot: sounds exciting, carry on
19:22:45 <fungot> int-e: make it not heap allocated. i donŽt have any how to do with timing and velocity, basic ai routines, etc
19:25:10 <HackEso> https://hack.esolangs.org/repo/
19:26:49 <HackEso> /usr/bin/tail: option used in invalid context -- 1
19:30:06 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: main: not found
19:30:12 <HackEso> HackEso just froze off their fingers!
19:30:19 -!- TellsTogo has joined.
19:33:13 <int-e> b_jonas: I thought there was a command for that (cat last version of deleted file) but I may be imagining things. (It certainly sounds like a command that we should have.)
19:34:09 <fungot> int-e: well that's stupid :p they'll send invitations soon to the people who ' /quit'? you'd never reach total fnord. oli tosin fnord fnord fnord
19:34:11 <HackEso> .nosaer fo eciov dna tocsam lennahc devoleb ruo si tognuf
19:34:21 <HackEso> wisdom/links//links is one of the very few HTML renderers that doesn't try to store a full document tree with heavyweight objects for each node just in case javascript wants to modify it later, so it's the only engine that can render those HTMLs that are automatically converted from a PDF and put each letter in a separate element.
19:34:46 <int-e> `` thanks shachaf | shachaf1sum
19:34:46 <HackEso> 6ro3on25ro57osq9s333s90o7r00s78501o4r165 -
19:35:45 <shachaf> int-e: why are you on dadtl
19:37:09 <int-e> Because 95% of the time highlighting me here will work just fine.
19:42:36 <int-e> orin: dontaskdonttelllist
19:42:51 <int-e> (It took me a minute to figure that out, and I had the right context.)
19:43:08 -!- tromp has quit (Remote host closed the connection).
19:43:09 <orin> I was tinking dad time line
19:43:53 <int-e> ... whatever that may be.
19:46:53 -!- imode has quit (Quit: WeeChat 2.4).
19:50:57 <int-e> . o O ( "hmm" is one of the most expressive words in the english language, which is very impressive indeed because it has no vowels at all! )
19:59:29 <fizzie> Heh, one of the few bits of Finnish from fungot's IRC dataset there.
19:59:29 <fungot> fizzie: that seems to have separated from the srfi set.'
19:59:37 <fizzie> ("oli tosin fnord fnord fnord").
20:20:23 <int-e> :t tell . Endo . (:)
20:20:24 <lambdabot> MonadWriter (Endo [a]) m => a -> m ()
20:26:46 -!- tromp has joined.
20:30:55 -!- tromp has quit (Ping timeout: 246 seconds).
21:01:18 -!- arseniiv has quit (Ping timeout: 245 seconds).
21:10:48 -!- FreeFull has joined.
21:21:24 -!- tromp has joined.
21:26:08 -!- tromp has quit (Ping timeout: 255 seconds).
21:41:34 <orin> I should finish my terminal-based font editor so I don't have to use fontforge
21:42:37 <orin> AFAICT I built most of it except the save function
21:42:56 <orin> which is kind of the most important part of an editor lol
21:43:06 <orin> I guess right now it's a font viewer
21:44:52 <orin> http://www.orenwatson.be/bdfedit.htm
21:46:06 <orin> oh apparently I didn't implement adding new characters either
21:56:19 <orin> still, as a challenge I did it without using ncurses
22:20:31 -!- TellsTogo has quit (Ping timeout: 256 seconds).
22:25:33 -!- tromp has joined.
23:02:10 -!- tromp has quit (Remote host closed the connection).
23:14:38 -!- tromp has joined.
23:20:03 -!- AnotherTest has quit (Ping timeout: 245 seconds).
23:53:12 -!- tromp has quit (Remote host closed the connection).
00:06:55 -!- Lord_of_Life_ has joined.
00:09:50 -!- Lord_of_Life has quit (Ping timeout: 250 seconds).
00:09:51 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:10:45 -!- b_jonas has quit (Quit: leaving).
00:12:52 <kmc> what kind of font are you making orin
00:15:22 <orin> kmc: I am working on a terminal/pixel font, 16 pixels tall and 9 or 18 pixels wide, supporting lots of unicode characters
00:15:50 <orin> kmc: http://orenwatson.be/fontdemo.htm
00:17:10 <orin> kmc: currently supports european languages, korean, hebrew, arabic, and devanagari, as well as a lot of japanese but not all
00:17:20 <kmc> that's a lot of characters
00:18:01 <orin> kmc: 21130 so far
00:18:17 <kmc> and you drew each one?
00:18:34 <orin> kmc: I drew all of the non-hangul
00:18:51 <orin> kmc: which is 9958 in total
00:19:17 <shachaf> orin: imo why do you have yiddish text there
00:19:17 <orin> the hangul I drew the components and wrote a program to combine them
00:20:24 <orin> shachaf: yes iirc. it's been a year since I worked on this
00:21:07 <orin> shachaf: ideally I need a sample text with the hebrew dots to demonstrate it supports them
00:21:45 <shachaf> whoa, a cross-language portmanteau
00:37:41 -!- oerjan has joined.
00:39:34 -!- tromp has joined.
00:40:00 <oerjan> . o O ( He can never remember the dontaskdonttelllist, so he put it here for convenience. )
00:40:43 <shachaf> int-e: don't you run lambdabot? make your own dontaskdonttelllist hth
00:43:07 <int-e> shachaf: It sometimes happens that people ask lambabot related questions via @ask/@tell, for example because they are from a channel that I'm not in. So blocking @tells to me on the lambdabot side is not really feasible.
00:43:21 <lambdabot> auto-reply. Lets lambda-bot auto-reply if someone sends you a message
00:44:08 -!- tromp has quit (Ping timeout: 255 seconds).
00:45:01 <int-e> It's funny that this help message spells lambdabot with a hyphen.
00:45:32 <int-e> > git grep lambda-bot
00:45:32 <int-e> lambdabot-social-plugins/src/Lambdabot/Plugin/Social/Tell.hs: { help = say "auto-reply. Lets lambda-bot auto-reply if someone sends you a message"
00:45:34 <lambdabot> • Variable not in scope: git :: t0 -> t1 -> a
01:07:33 -!- TellsTogo has joined.
01:14:27 -!- digitalcold has quit (Remote host closed the connection).
01:34:14 -!- tromp has joined.
01:38:34 -!- tromp has quit (Ping timeout: 244 seconds).
01:50:03 -!- TellsTogo has quit (Quit: Page closed).
02:32:06 -!- xkapastel has quit (Quit: Connection closed for inactivity).
03:12:40 <esowiki> [[Special:Log/newusers]] create * CNatcharian * New user account
03:15:07 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=60023&oldid=59994 * CNatcharian * (+204)
03:22:35 -!- tromp has joined.
03:26:43 -!- tromp has quit (Ping timeout: 245 seconds).
03:28:29 <orin> ok, save function is now working. need to optimize the BBX line tho
03:30:26 -!- imode has joined.
03:31:51 <orin> once that is done, I'll be ready to stop using the bloated fontforge to design my font
04:00:48 -!- arseniiv has joined.
04:17:16 -!- tromp has joined.
04:19:33 <esowiki> [[Special:Log/newusers]] create * Adamthekiwi * New user account
04:23:15 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=60024&oldid=60023 * Adamthekiwi * (+260)
04:23:48 -!- imode has quit (Ping timeout: 245 seconds).
04:24:45 -!- adamthekiwi has joined.
04:36:05 <esowiki> [[Letterbox]] N https://esolangs.org/w/index.php?oldid=60025 * CNatcharian * (+5476) Created the page
04:40:40 -!- tromp has quit (Ping timeout: 250 seconds).
04:43:29 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=60026&oldid=60017 * CNatcharian * (+16) /* L */
04:50:22 * oerjan spots a flightless bird in the channel
05:03:25 -!- adamthekiwi has quit (Ping timeout: 256 seconds).
05:08:01 -!- FreeFull has quit.
05:22:47 <orin> I have figured out how to correctly calculate the bounding box for a glyph in BDF format
05:23:00 <orin> and output the coreect hex codes
05:23:55 <orin> whcih means soon I can say o revwar to fontforge in favor of bdfedit.c
05:25:22 <shachaf> orin: but did you fix your build system yet twh
05:25:55 <orin> but none of my font revisions after this one will include fontforge's obnoxious
05:25:58 <orin> COMMENT "Generated by fontforge, http://fontforge.sourceforge.net"
05:26:05 <orin> in the font file
05:26:35 <orin> with reference to sourceforge, the notorious malware site
05:28:09 <orin> instead I will be editing my font with a glorious C terminal program
05:39:24 <orin> http://orenwatson.be/bdfedit.htm
05:39:32 <orin> still need to fully test it
05:42:43 <HackEso> U+5176 CJK UNIFIED IDEOGRAPH-5176 \ UTF-8: e5 85 b6 UTF-16BE: 5176 Decimal: 其 \ 其 (其) \ Uppercase: U+5176 \ Category: Lo (Letter, Other) \ Bidi: L (Left-to-Right)
05:47:37 <orin> https://imgur.com/slDzqqc
05:47:50 <orin> ^ character now drawn using bdfedit.c
05:51:36 <orin> downloaded the bdf file to verify that it is valid and the character is in fact present
05:56:33 <orin> converted to TTF using my bdf2ttf.c and vwala! it shows up in my font!
05:57:37 <orin> end to end test is great success!
05:59:24 <HackEso> U+002E FULL STOP \ UTF-8: 2e UTF-16BE: 002e Decimal: . \ . \ Category: Po (Punctuation, Other) \ Bidi: CS (Common Number Separator) \ \ U+002E FULL STOP \ UTF-8: 2e UTF-16BE: 002e Decimal: . \ . \ Category: Po (Punctuation, Other) \ Bidi: CS (Common Number Separator)
06:06:15 -!- tromp has joined.
06:11:16 -!- tromp has quit (Ping timeout: 272 seconds).
06:16:14 <HackEso> U+1F60D SMILING FACE WITH HEART-SHAPED EYES \ UTF-8: f0 9f 98 8d UTF-16BE: d83dde0d Decimal: 😍 \ 😍 \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals)
06:56:05 -!- adamthekiwi has joined.
07:03:54 -!- oerjan has quit (Quit: Nite).
07:12:37 -!- adamthekiwi has quit (Ping timeout: 256 seconds).
08:17:07 -!- tromp has joined.
08:47:35 -!- AnotherTest has joined.
08:48:52 -!- b_jonas has joined.
08:48:58 <HackEso> #esoteric bitmap fonts include: \oren\'s font http://www.orenwatson.be/fontdemo.htm , lifthrasiir's font https://github.com/lifthrasiir/unison/ , b_jonas's font http://www.math.bme.hu/~ambrus/pu/fecupboard20-c.pcf.gz , fizzie's font https://github.com/fis/rfk86/tree/master/web/font , FireFly's fonts http://xen.firefly.nu/up/fonts/
08:49:05 <b_jonas> kmc: ^ orin's is among there
08:57:51 -!- tromp has quit (Remote host closed the connection).
09:31:26 -!- tromp has joined.
09:42:07 -!- LKoen has joined.
09:51:37 -!- b_jonas has quit (Quit: leaving).
10:02:35 -!- AnotherTest has quit (Ping timeout: 255 seconds).
10:15:05 -!- rodgort has quit (Quit: Leaving).
10:16:33 -!- AnotherTest has joined.
10:22:23 -!- rodgort has joined.
10:26:47 -!- xkapastel has joined.
10:29:52 -!- AnotherTest has quit (Ping timeout: 246 seconds).
10:47:47 -!- danieljabailey has quit (Ping timeout: 244 seconds).
11:08:11 <esowiki> [[]] https://esolangs.org/w/index.php?diff=60027&oldid=59878 * Salpynx * (+114) /* 99 Bottles */ better output
11:10:54 <esowiki> [[]] https://esolangs.org/w/index.php?diff=60028&oldid=60027 * Salpynx * (+22) /* External resources */ TC proof example link update and TC category
11:29:09 -!- 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.”).
11:34:34 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=60029&oldid=60004 * Salpynx * (+182) /* */
11:45:39 <HackEso> U+05D0 HEBREW LETTER ALEF \ UTF-8: d7 90 UTF-16BE: 05d0 Decimal: א \ א \ Category: Lo (Letter, Other) \ Bidi: R (Right-to-Left)
11:45:46 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=60030&oldid=60029 * Salpynx * (+587) /* The Waterfall Model */
12:07:15 -!- Lord_of_Life_ has joined.
12:10:50 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
12:10:50 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:22:33 <esowiki> [[Aheui]] https://esolangs.org/w/index.php?diff=60031&oldid=58459 * Puzzlet Chung * (-85) /* External resources */
12:43:15 -!- Essadon has joined.
12:43:41 -!- Essadon has quit (Max SendQ exceeded).
12:44:05 -!- Essadon has joined.
13:24:37 -!- AnotherTest has joined.
14:26:29 -!- xkapastel has quit (Quit: Connection closed for inactivity).
14:49:30 -!- danieljabailey has joined.
14:58:06 -!- xkapastel has joined.
15:33:33 -!- sleepnap has joined.
16:10:07 <esowiki> [[Talk:Onov]] N https://esolangs.org/w/index.php?oldid=60032 * AIden * (+146) Created page with "This seems difficult to understand. Maybe you could add a picture? --~~~~"
16:19:03 <kmc> shachaf: hichaf
16:50:25 -!- bobby has quit (Quit: bye bye).
17:10:30 -!- sleepnap has quit (Ping timeout: 252 seconds).
17:20:26 -!- arseniiv has quit (Ping timeout: 255 seconds).
17:23:13 -!- sleepnap has joined.
18:16:29 -!- xkapastel has quit (Quit: Connection closed for inactivity).
18:18:10 -!- CNatch has joined.
18:23:03 -!- FreeFull has joined.
18:23:10 <HackEso> CNatch: 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.)
18:24:41 -!- CNatch has quit (Ping timeout: 256 seconds).
18:28:11 -!- danieljabailey has quit (Ping timeout: 246 seconds).
18:28:14 <fungot> int-e: and hr definitely tells you something
18:28:42 <shachaf> int-e: since when do you relcome tdnh
18:29:43 <int-e> shachaf: I've done that on occasion, when I'm not in the mood for `wElCoMe or `WeLcOmE
18:29:52 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: welcom: not found
18:30:02 <int-e> that's clearly an oversight
18:30:09 <HackEso> elcome o he nternational ub or soteric rogramming anguage esign nd eployment! or ore nformation, heck ut ur iki: <ttps://solangs.rg/>. (or he ther ind f soterica, ry #soteric n Fnet r ALnet.)
18:30:53 <HackEso> welcome "$@" | sed s/\\\<.//g
18:34:29 <int-e> @google "two time pad"
18:34:30 <lambdabot> https://crypto.stackexchange.com/questions/2249/how-does-one-attack-a-two-time-pad-i-e-one-time-pad-with-key-reuse
18:35:41 <int-e> and it's also bad crypto
18:36:32 <shachaf> Is there something like OTP but less malleable?
18:38:16 <int-e> Sure... add a message authentication code.
18:43:06 <shachaf> OK, but some ways of encrypting things are malleable even without MACs.
18:44:33 <shachaf> I mean, xor is pretty much a worst-case scenario.
18:44:42 <int-e> you can also use your favourite cipher to mix the bits thoroughly before using the OTP
18:45:38 <shachaf> Also ciphers are passé. It's all about unkeyed permutations nowadays.
18:46:08 <int-e> Bascially any nonlinear map, or possibly even a secret linear map (GCM seems to be using such a beast)
18:49:53 -!- b_jonas has joined.
18:53:32 <kmc> you attack it by adding them mod whatever
18:53:40 <kmc> which gives you the modular sum of two plaintexts
18:53:46 <kmc> which you can attack with frequency analysis or w/e
19:11:22 <kmc> shachaf: how does that work? is the key part of the plaintexT?
19:12:45 <b_jonas> shachaf: xor in itself isn't bad if you use it properly. and these days you don't have to carry long one-time pads either, because we have good methods to generate arbitrarily long crypto secure pseudo-random sequences and xor your things with it.
19:13:20 <b_jonas> You still have to make sure never to resuse the same part of the sequence, but that's still true even if you use something more complicated than xor, xor just might be slightly more trivial to attack if you do that than other schemes.
19:13:23 <kmc> that's just a stream cipher
19:13:25 <kmc> with a nonce
19:14:12 <b_jonas> You still have to be careful about following the protocols, and getting the key to the other party securely but never divulging it otherwise, and using proper secure random generators to get a key.
19:16:00 <shachaf> kmc: https://gimli.cr.yp.to/gimli-20170627.pdf
19:16:07 <b_jonas> Jules Verne's ''La Jangada'' is an example for what people did back when they didn't have such a nice crypto-secure key-extension scheme, so they just reused the same very short key repeated over and over in the same long message.
19:16:35 <kmc> shachaf: I don't have time to read a paper rn
19:16:36 <b_jonas> That is a bad way to do crypto, and in fact the outcome in the novel is that the crypto is eventually broken.
19:16:54 <b_jonas> Mind you, it wasn't so easy to use good crypto before computers.
19:17:22 <kmc> b_jonas: I think an electromechanical device like Enigma could be made nearly as secure as modern computer-based ciphers
19:17:30 <kmc> but the theory to do so did not exist back then
19:17:39 <kmc> also it might have to be prohibitively expensive / large
19:17:40 <kmc> I'm not sure
19:17:57 * kmc ponders how to implement Salsa20 with gears and shit
19:17:58 <b_jonas> kmc: the Enigma wasn't secure, as history shows, and I don't think it was reasonably possible either back in the 19th century when Verne wrote those books
19:18:17 <kmc> I also want to try doing it by hand
19:18:36 <kmc> b_jonas: I know it wasn't secure, due to algorithmic design flaws
19:18:55 <kmc> but I don't think it's fundamentally impossible to implement a secure cipher that way
19:19:00 <kmc> I have also not thought about it in detail.
19:19:29 <b_jonas> kmc: I don't know if that'd be possible or not. I always think that crypto requires a bit more computation than you can do that way, but I'm not sure.
19:19:40 <kmc> I mean it wouldn't be particularly fast
19:19:44 <kmc> but the operations can be simple
19:19:53 <kmc> for Salsa20 you need 32-bit xor, 32-bit addition, and bitwise rotations
19:20:15 <kmc> mechanical calculators existed, xor is even easier, rotations are trivial
19:20:27 <kmc> you could at the very least make a mechanical or electromechanical device that helps working Salsa20 by hand
19:20:33 <kmc> by implementing the basic ops
19:21:08 <b_jonas> well, that book has an unusually long message ciphered, it might be more practical to do something like that for very short messages, and those are still helpful in a war, like the original intent of the Enigma machines was
19:21:26 <kmc> they also made many operational mistakes with the enigma
19:22:28 <b_jonas> It's so long that I think the novel doesn't even quote the whole multi-page document, only the last paragraph.
19:22:38 -!- grumble has changed nick to `-_-`grumble.
19:23:00 <b_jonas> kmc: well, there's the problem that you have to remember the secret key, but it's a war and you might be killed without having time to destroy physical evidence
19:23:06 <b_jonas> so that can be a bit tricky
19:23:41 <b_jonas> it could be done if the soldiers using the machines were required to learn like a 160-bit secret key by heart, but it's not trivial
19:24:08 <kmc> for salsa32 you also need a 512 bit storage
19:24:10 <kmc> which is not trivial
19:24:33 <b_jonas> yeah, if they write temporary values on a sheet of paper, then they need to burn those sheets of papers properly
19:25:10 * kmc ponders lunch
19:27:57 <b_jonas> That's not the only novel of Jules Verne that features cryptography. There are two more.
19:28:55 <b_jonas> ''Mahtias Sandorf'' is another: in that one the crypto is broken because someone steals the physical copy of the key by a social engineering attack.
19:31:01 <b_jonas> And yes, the first one is ''Voyage au centre de la Terre'', which uses even more insecure crypto than ''La Jangada''
19:31:48 <b_jonas> Though that was admittedly a feature: A. S. wanted the message to be found and read in the future.
19:32:27 <b_jonas> He just wanted to hide it a little because the inquisition was burning all his writings.
19:36:10 -!- `-_-`grumble has changed nick to grumble.
20:04:42 <b_jonas> ``` welcome | perl -pe's/[a-z]\b//g' # int-e: let me try that
20:04:43 <HackEso> Welcom t th internationa hu fo esoteri programmin languag desig an deploymen! Fo mor informatio, chec ou ou wik: <http://esolang.or/>. (Fo th othe kin o esoteric, tr #esoteri o EFne o DALne.)
20:05:06 <b_jonas> huh what... that doesn't seem right
20:05:17 <b_jonas> it's actually https and esolangs
20:05:27 <b_jonas> I was wondering why it didn't remove the p from the http and the g from the esolang
20:12:48 -!- imode has joined.
20:24:17 <kmc> I'm working on this ChaCha20-by-hand
20:24:55 <kmc> so far I've made a table for 8 bit addition (with carry-out)
20:25:33 <kmc> the goal is to have a number of tables and worksheets so that you can do it fairly quickly w/o thinking very much
20:26:29 <kmc> working on 32 bit words as hex
20:26:32 <kmc> I think this is p. esoteric
20:26:54 <kmc> addition you can do with the grade school algorithm + a 4 or 8 bit addition table
20:27:05 <kmc> xor is easy to do nibble-wise
20:29:42 -!- tromp has quit (Remote host closed the connection).
20:31:22 <b_jonas> kmc: I know I can do addition and bitshift and all the other operations by hand, the question is more like how many of them you need for the crypto.
20:31:37 <b_jonas> because, you know, I can do an addition by hand, but the computer can do a billion of them
20:31:41 <kmc> rotation is a bit harder, might need to convert to binary and back. I haven't thought about a clever way to do that
20:31:52 <kmc> b_jonas: are you knowledgable about the ChaCha20 algorithm?
20:32:45 <kmc> each quarter-round has four additions, four XORs, and four rotations
20:33:03 <kmc> (and two of the rotations are multiples of 8, which makes things easier)
20:33:20 <b_jonas> and sure, usually I do additions and multiplications to only one and a half digit precision, but I know how to do them more precisely if I have to
20:33:28 <kmc> and there are 20 rounds
20:33:46 -!- tromp has joined.
20:33:51 <b_jonas> kmc: four additions of what word length?
20:34:07 <kmc> it's all 32 bit math
20:36:41 <kmc> so that's 960 32-bit operations per block, and each block gives you 512 bits
20:37:46 <kmc> optimistically it could take 3 hours of nonstop work, which... okay, it's a lot
20:38:13 <kmc> and i don't think it can really be parallelized, but you could have several people take turns
20:38:16 <b_jonas> kmc: that could be done, but there's not much point these days, because a small electronic device can do it too
20:38:26 <kmc> point? this is #esoteric
20:38:49 <b_jonas> so do it with a mechanical computer
20:39:01 <kmc> if you use baudot code then 512 bits gives you about 100 characters, which is a pretty good size message
20:39:26 -!- xkapastel has joined.
20:39:37 <b_jonas> that always reminds me of Mojo Jojo's speech, when he says "not with mechanical machines" and "with my own two hands"
20:39:46 <kmc> b_jonas: I'm interested in secure communications after an EMP or other catastrophic event which renders most electronics unusable or difficult to find
20:39:52 <kmc> it's a proof o concept
20:39:56 <kmc> i'm sure it could be done more efficiently
20:40:11 <kmc> you could also simply use fewer rounds, if you don't expect a high capability attacker
20:40:39 <b_jonas> kmc: but I said *small* electronic device. even after an EMP some of those would survive. an older electronic calculator from the eighties.
20:41:07 <kmc> ultimately it is an arbitrary constrained problem for fun
20:41:33 <b_jonas> hmm, now I have to rewatch that speech
20:42:36 <b_jonas> the one in the Powerpuff Girls episode "Mr. Mojo's Rising", where Mojo Jojo does a strange victory speech on the particular way he's defeated the Powerpuff Girls
20:43:17 <b_jonas> https://powerpuffgirls.fandom.com/wiki/Mr._Mojo%27s_Rising/Transcript has a transcript of the episode, the speech starts at "YES!! I have defeated the Powerpuff Girls!"
20:43:28 <kmc> episode title's a reference to a The Doors song :)
20:43:31 <b_jonas> but it's better with the actual audio and video
20:43:37 <b_jonas> which you can also find on the internet
20:44:27 <kmc> RC4 takes only 6ish byte operations per output byte
20:44:31 <kmc> but RC4 is pretty well broken
20:47:03 <b_jonas> and then there's a second, shorter monologue at the end of the episode. Mojo Jojo is good in those.
20:47:56 -!- S_Gautam has joined.
20:48:06 <b_jonas> and he actually says "bare hands" rather than "two hands"
20:48:13 <b_jonas> ironic because he always wears gloves
20:49:45 -!- tromp has quit (Remote host closed the connection).
20:51:12 -!- aeyxa has joined.
21:05:06 -!- Camto has joined.
21:09:02 -!- aeyxa has quit (Quit: Page closed).
21:14:56 <kmc> did you ever see this wooden adder? https://hackaday.com/2009/10/13/binary-adder-will-give-you-slivers/
21:17:24 <b_jonas> kmc: that's just a third-part article about Matthias Wandel's adder
21:17:57 <b_jonas> http://woodgears.ca/marbleadd/
21:19:05 -!- S_Gautam has quit.
21:19:16 <b_jonas> kmc: I've also seen a water adder with no moving parts other than water and air in the pipes, but I'm not sure if it actually worked. it was exhibited in the Technisches Museum Wien, in a way that it didn't work, and it may have worked but the setup was a suspiciously plausibly deniable one
21:19:31 <b_jonas> which really looked like they rigged up to save face after they promised a water adder but couldn't get it work.
21:19:37 <kmc> I saw water based gates as an old MIT project
21:20:16 <b_jonas> I think it's possible to make such a thing work in principle, but they would have needed several more iterations of debugging and glassblowing, and just ran out of time.
21:21:11 <b_jonas> It could add zero plus zero reliably though.
21:29:25 -!- tromp has joined.
21:32:15 -!- Camto has quit (Ping timeout: 256 seconds).
21:33:47 -!- tromp has quit (Ping timeout: 255 seconds).
21:41:51 <fizzie> There's the https://en.wikipedia.org/wiki/MONIAC but that's quite different.
21:42:11 <fizzie> The first photo looks really familiar, but they say it's in New Zealand, and I haven't been there.
21:43:02 <fizzie> (I guess they could've had it do a tour in some other museum, though it doesn't look that portable.)
21:43:48 <b_jonas> fizzie: no, I don't think it's related
21:44:18 <fizzie> Oh, they've built several.
21:44:18 -!- tromp has joined.
21:44:28 <fizzie> http://collection.sciencemuseum.org.uk/objects/co64127/phillips-economic-computer-analog-computer is in the Science Museum here.
21:44:42 <b_jonas> fizzie: http://math.bme.hu/~ambrus/pu/adder
21:45:05 <b_jonas> sorry, it's not a very good picture
21:57:00 -!- tromp has quit (Remote host closed the connection).
22:03:40 -!- tromp has joined.
22:33:45 -!- Remavas has joined.
22:34:07 -!- Remavas has changed nick to Remavas[AFK].
22:35:05 -!- Remavas[AFK] has quit (Client Quit).
22:40:24 -!- Remavas has joined.
22:44:35 -!- Remavas has quit (Remote host closed the connection).
22:45:00 -!- Remavas has joined.
23:13:18 -!- Remavas has changed nick to Remavas[AFK].
23:15:50 -!- AnotherTest has quit (Ping timeout: 258 seconds).
23:18:48 -!- Remavas[AFK] has changed nick to Remavas.
23:20:13 <zzo38> I have a idea of esolang that you can move a cursor and put black and white Go stones onto a infinite grid; if a stone is already there nothing happens, but otherwise you can attach a event code to the stone added and it is executed when that stone is captured. (I think you can make a tape out of this)
23:20:36 <kmc> that's cool
23:24:47 -!- b_jonas has quit (Quit: leaving).
23:27:54 <esowiki> [[Aheui]] https://esolangs.org/w/index.php?diff=60033&oldid=60031 * Puzzlet Chung * (+13) /* External resources */
23:28:01 -!- Camto has joined.
23:35:37 -!- Remavas has changed nick to Remavas[AFK].
23:39:11 -!- Camto has quit (Ping timeout: 256 seconds).
00:07:59 -!- oerjan has joined.
00:08:29 -!- Lord_of_Life_ has joined.
00:11:11 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
00:11:18 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:19:39 -!- tromp has quit (Remote host closed the connection).
00:48:06 -!- Remavas[AFK] has changed nick to Remavas.
00:59:18 -!- tromp has joined.
01:03:47 -!- tromp has quit (Ping timeout: 245 seconds).
01:14:23 -!- aeyxa has joined.
01:15:34 <shachaf> https://twitter.com/x86instructions/status/1099115314766401536 "JTNJ - Jump To Next JTNJ"
01:27:22 -!- imode has quit (Ping timeout: 250 seconds).
01:30:58 -!- Remavas has changed nick to Remavas[AFK].
01:39:21 <HackEso> VFNMADDUP CLFLUSHF VFMADD132SD VPROL VCMPNE SCATTERNLOGD RDTSC VPCMPLT_OQPS VPXORW VCVTSS
01:41:07 <fizzie> (Unfortunately I uppercased those for æsthetic reasons, which means they can't be meaningfully interpolated with any of the other `words which are all lowercase.)
01:42:06 -!- sprocklem has quit (Ping timeout: 250 seconds).
01:43:44 -!- sprocklem has joined.
01:47:44 <HackEso> hansaittamassanoittele edustaamille lakseltansa raamme kuvittamallas hattomaa ohjaamaksentä afganisimmiltani korviltani myksemmetenkiehuville
01:47:59 -!- sleepnap has left.
01:48:41 <HackEso> zmetyczny nieokładowolutowa radiofalokorpcy eurowuję rozprę
01:49:01 -!- FreeFull has quit.
01:51:19 <kmc> fizzie: I like --opcode :D
01:51:28 <kmc> `words --opcode 15
01:51:29 <HackEso> PSUBSB MOVUPS VGATHERDPD VCVTDQ VCMP CMOVQW MOVNZ KSHIFTRW VUNPCKLDQ KSHIFTRW VCMPGE VPSRAVD HINT VRCPPS SHADDB
01:51:47 <fizzie> It's a little too prone to actually generating existing opcodes.
01:51:58 <kmc> like movups
01:52:18 <fizzie> I took the data from the http://zem.fi/2014-04-05-opquiz thing.
01:52:18 <kmc> and RDTSC from the previous batch
01:52:52 <fizzie> That one has a 1:1 ratio of existing to nonexisting opcodes, assuming no bugs.
01:53:10 <kmc> hey, I got an acknowledgement
01:53:30 <kmc> i don't remember making that suggestion but it sounds like the kind of thing I would say
01:53:45 <fizzie> I didn't remember you had anything to do with it either, but apparently so.
01:53:52 -!- Remavas[AFK] has quit (Quit: Leaving).
01:53:55 -!- tromp has joined.
01:54:37 <fizzie> http://esolangs.org/logs/2014-03-27.html#lAf
01:55:02 <kmc> VFNMADD231SD is real o_O
01:55:54 <fizzie> They have a bunch of opcodes with variants named 132/213/231 depending on which operand means what.
01:56:03 <kmc> mm, I was wondering about that
01:56:08 <kmc> VPCLMULHQLQDQ is quite a mouthful as well
01:57:48 <fizzie> The x86 list is from NASM, https://www.nasm.us/doc/nasmdocb.html -- although I don't think they had such a nice list available before, I pulled it from the code.
01:58:23 -!- tromp has quit (Ping timeout: 255 seconds).
02:09:33 <int-e> BB0_RESET. 0F3A. N/A. Reset the BLT Buffer 0 pointer to the base. - come again?
02:10:03 <shachaf> ais523: Were you the person who suggested something like, there should be a kind of struct in C that can only exist as an lvalue, not an rvalue?
02:11:43 <int-e> These Geode things are messy.
02:13:08 <int-e> I'm playing fizzie's quiz and this is the second Geode-only instruction that messes me up.
02:14:48 <int-e> Correct: 39/50... third attempt. I don't think I can do much better without an extraordinary amount of luck; I'm guessing about half of the time.
02:17:48 <int-e> (It's really more than half of the time... for most of the vector instructions I just try to find a plausible reading of the so-called mnemonic.)
02:20:24 <int-e> https://en.wikipedia.org/wiki/Geode_(processor) - seems it's pretty much dead as well.
02:21:57 <int-e> Does ARM suffer from this, I wonder? Vendors adding their own instructions to accomodate custom functionality?
02:32:52 -!- moei has quit (Ping timeout: 258 seconds).
02:33:51 -!- moei has joined.
02:34:35 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60034&oldid=60013 * A * (-35) /* Machine code interpreter */
02:41:19 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60035&oldid=60034 * A * (+239) /* Examples */
02:47:25 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60036&oldid=60035 * A * (+246) /* Examples */
02:48:05 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60037&oldid=60036 * A * (+37) /* Examples */
02:53:50 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60038&oldid=60037 * A * (+175) /* 99 bottles of beer program */
03:04:26 -!- Essadon has quit (Quit: Qutting).
03:15:04 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60039&oldid=60038 * A * (+23) /* 99 bottles of beer program */
03:19:08 -!- MDude has quit (Ping timeout: 246 seconds).
03:34:21 -!- aeyxa has quit (Ping timeout: 256 seconds).
03:41:53 -!- tromp has joined.
03:46:17 -!- tromp has quit (Ping timeout: 245 seconds).
04:19:53 <esowiki> [[OwoScript]] N https://esolangs.org/w/index.php?oldid=60040 * Finianb1 * (+5342) Add owoscript
04:23:57 -!- aeyxa has joined.
04:50:18 -!- S_Gautam has joined.
05:03:27 <esowiki> [[Stoned-Go]] N https://esolangs.org/w/index.php?oldid=60041 * Zzo38 * (+2150) Created page with "[[Category:Languages]][[Category:2019]] [[Stoned-Go]] is a esoteric program language involving Go stones on a infinite grid, which is initially empty. In addition to the grid..."
05:03:51 <esowiki> [[Stoned-Go]] https://esolangs.org/w/index.php?diff=60042&oldid=60041 * Zzo38 * (+19)
05:05:25 <esowiki> [[Stoned-Go]] https://esolangs.org/w/index.php?diff=60043&oldid=60042 * Zzo38 * (+255)
05:05:58 <zzo38> Is the new article I added on esolang wiki good yet?
05:09:47 <orin> [[list of lists that do not include themselves]]
05:29:50 -!- tromp has joined.
05:34:23 -!- tromp has quit (Ping timeout: 255 seconds).
05:38:27 -!- aeyxa has quit (Ping timeout: 256 seconds).
05:39:09 -!- xkapastel has quit (Quit: Connection closed for inactivity).
05:39:35 -!- aeyxa has joined.
06:00:31 -!- arseniiv has joined.
06:13:12 <zzo38> I think that a tape can easily be made up with [[Stoned-Go]], although making conditions and loops and stuff (other than the loop of the entire program) seem may be a bit more difficult to do (although maybe it is easy too, but I have not thought of it; I only say a tape is easily because I have already thought of it)
06:23:05 <esowiki> [[OwoScript]] https://esolangs.org/w/index.php?diff=60044&oldid=60040 * Oerjan * (+4) reduction to -> reduction from
06:27:00 <oerjan> i think the last time i tried to correct such an error, it was i who got it wrong
06:28:37 <shachaf> if you use a confusing enough preposition no one will know what you mean so they'll just fill in the one that makes sense
06:33:29 <oerjan> i don't know what you're talking between
06:37:05 <aeyxa> probably between two walls
06:54:36 <oerjan> definitely like talking notwithstanding the wall
06:59:58 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
07:18:06 -!- tromp has joined.
07:22:42 -!- tromp has quit (Ping timeout: 250 seconds).
07:37:09 -!- gurmble has joined.
07:40:36 -!- nfd has quit (Excess Flood).
07:40:36 -!- copumpkin has quit (Excess Flood).
07:40:36 -!- grumble has quit (Quit: fire's in your eyes, and this chaos, it defies imagination).
07:41:07 -!- gurmble has changed nick to grumble.
07:42:37 -!- copumpkin has joined.
07:51:14 -!- oerjan has quit (Quit: Nite).
08:00:59 -!- aeyxa has quit (Quit: Page closed).
08:23:44 -!- sleffy has joined.
08:23:44 -!- sleffy has quit (Client Quit).
08:44:43 -!- tromp has joined.
09:14:34 -!- tromp has quit (Remote host closed the connection).
09:16:02 -!- tromp has joined.
09:42:08 -!- AnotherTest has joined.
09:45:56 -!- LKoen has joined.
10:04:59 <esowiki> [[Special:Log/newusers]] create * Kantoros1 * New user account
10:50:38 -!- b_jonas has joined.
11:01:27 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=60045&oldid=60024 * Kantoros1 * (+317) Introduced myself
11:04:58 -!- 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.”).
12:09:09 -!- Lord_of_Life_ has joined.
12:11:14 -!- xkapastel has joined.
12:12:28 -!- Lord_of_Life has quit (Ping timeout: 272 seconds).
12:12:28 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:15:33 -!- LKoen has joined.
14:14:00 -!- 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.”).
14:20:49 -!- xkapastel has quit (Quit: Connection closed for inactivity).
14:22:54 -!- FreeFull has joined.
14:23:11 -!- xkapastel has joined.
14:23:32 -!- tromp has quit (Remote host closed the connection).
14:33:50 -!- danieljabailey has joined.
14:52:52 -!- lambdabot has quit (Remote host closed the connection).
14:55:40 -!- lambdabot has joined.
15:04:16 -!- tromp has joined.
15:08:47 -!- tromp has quit (Ping timeout: 268 seconds).
15:09:40 -!- tromp has joined.
15:38:45 <fizzie> I was hoping for that to be consistent.
15:39:30 <fizzie> (I guess it's just an alias.)
15:44:38 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf
15:44:48 <fizzie> ... srmlebac uenlsbcmra scramble unscramble ...
15:46:41 -!- aloril_ has joined.
15:50:20 -!- aloril has quit (Ping timeout: 272 seconds).
15:57:21 -!- Remavas has joined.
16:00:04 -!- Remavas has changed nick to Remavas[AFK].
16:06:08 -!- aloril__ has joined.
16:09:38 -!- aloril_ has quit (Ping timeout: 250 seconds).
16:12:26 -!- Remavas[AFK] has changed nick to Remavas.
16:17:27 -!- FreeFull has quit (Quit: Kernel update).
16:18:19 -!- FreeFull has joined.
16:30:48 -!- xkapastel has quit (Quit: Connection closed for inactivity).
16:44:37 -!- arseniiv has quit (Ping timeout: 246 seconds).
17:14:10 -!- Remavas has quit (Quit: Leaving).
17:33:22 -!- danieljabailey has quit (Ping timeout: 245 seconds).
18:21:39 -!- xkapastel has joined.
18:27:26 <esowiki> [[Stoned-Go]] https://esolangs.org/w/index.php?diff=60046&oldid=60043 * Zzo38 * (+71)
18:50:17 <zzo38> I have added a command into Glasm for preventing the ROM size from shrinking after a specified phase; sometimes if this is not done then the addresses will not stabilize, and will result in a "too many phases" error. But, is there a better way, or is it inevitable?
19:04:19 -!- MDude has joined.
19:24:07 -!- Phantom_Hoover has joined.
20:01:37 <orin> I added copy and paste commands to my font editor
20:02:00 <orin> and the ability to shift the bitmap in up down left and right
20:32:23 -!- aeyxa has joined.
20:43:31 <esowiki> [[Pizza Delivery]] https://esolangs.org/w/index.php?diff=60047&oldid=60019 * Cortex * (+434)
20:45:59 <zzo38> OK, that is good, then
20:47:21 <zzo38> What font editor is that? What file format(s) can it use? Can .pcf be used? Can other formats be used?
20:53:15 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=60048&oldid=60026 * Cortex * (+21)
20:59:09 <esowiki> [[Pizza Delivery]] https://esolangs.org/w/index.php?diff=60049&oldid=60047 * Cortex * (+48)
21:09:03 -!- Cale has quit (Ping timeout: 264 seconds).
21:18:15 -!- MDead has joined.
21:18:54 -!- tromp has quit (Remote host closed the connection).
21:18:58 -!- xkapastel has quit (Quit: Connection closed for inactivity).
21:20:38 -!- MDude has quit (Ping timeout: 246 seconds).
21:20:40 -!- MDead has changed nick to MDude.
21:21:33 -!- Cale has joined.
21:35:26 -!- danieljabailey has joined.
21:37:23 -!- 7GHAAAWSQ has joined.
22:23:47 -!- danieljabailey has quit (Ping timeout: 245 seconds).
22:56:08 <Taneb> It took me way to long to realise why my sorting algorithm didn't seem to be doing anything
23:02:18 <aeyxa> that's what you get for using proper capitalization
23:14:48 -!- bobby has joined.
23:15:20 -!- xkapastel has joined.
23:19:46 <kmc> > sort "olleH"
23:24:28 <kmc> I have 410 words in /usr/share/dict/words which are in ASCIIbetical order (after removing capitalized words)
23:25:49 <aeyxa> I was just wondering how many words are already sorted
23:26:45 <kmc> the longest of which is 'billowy'
23:26:51 <kmc> > sort "ywollib"
23:27:11 <Taneb> I've got a bigger dictionary, and get "aegilops"
23:27:23 <kmc> i don't know that word
23:27:49 <kmc> the shortest one is... 'a'
23:27:51 <Taneb> It's a kind of grass
23:28:49 <Taneb> Hmm, I think my bogobogosort implementation is broken, it's too slow
23:35:41 <kmc> bogobogosort?
23:37:23 <Taneb> http://dangermouse.net/esoteric/bogobogosort.html
23:39:21 <Taneb> https://arin.ga/NFZmWv is my code (in Haskell, for GHC 8.6 with vector and random libraries)
23:40:18 <aeyxa> "run overnight, did not finish"
23:56:05 -!- Remavas has joined.
23:56:18 -!- AnotherTest has quit (Ping timeout: 264 seconds).
23:58:55 -!- aeyxa has quit (Ping timeout: 256 seconds).
00:04:57 <lambdabot> *** "aegilops" wn "WordNet (r) 3.0 (2006)"
00:04:58 <lambdabot> n 1: goat grass [syn: {Aegilops}, {genus Aegilops}]
00:05:05 <fizzie> Wordnet puts that in uppercase.
00:08:59 -!- Lord_of_Life_ has joined.
00:12:05 <fizzie> Opportunistically combining two topics in one, the longest in-order x86 opcodes are 5 letters; there are several (addps, addss, cmovz, cmpps, cmpss, cmpsw, kmovw, knotw, loopz).
00:12:08 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
00:12:09 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:14:28 <fizzie> (And in fact it's the same length for all the architectures I had in the opcode quiz, unless you also count MMIX's "16addu".)
00:15:27 <fizzie> We were talking about it yesterday, http://zem.fi/2014-04-05-opquiz
00:17:26 <fizzie> I'm generally not much better than chance.
00:17:56 <FireFly> I'm not sure what this tells me
00:18:19 <shachaf> whoa, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0593r3.html
00:18:30 <shachaf> A lot more things are technically UB in C++ than I thought?
00:18:47 <Taneb> shachaf: oh yeah, basically everything
00:19:17 -!- Remavas has quit (Read error: Connection reset by peer).
00:19:25 -!- Remavas-Hex has joined.
00:20:25 <shachaf> I would've thought that struct T { int a, b; }; T *p = (T *)malloc(sizeof (T)); p->a = 5; ... would be OK.
00:23:21 <FireFly> C++, or as I like to call it, C plus UB
00:23:45 -!- Remavas-Hex has changed nick to Remavas-Hex[AFK].
00:53:36 -!- 7GHAAAWSQ has quit (Remote host closed the connection).
01:07:29 <orin> shachaf: because you didn't check the malloc for null
01:07:47 <shachaf> No, even when malloc succeeds.
01:07:53 <orin> shachaf: supposedly malloc is allowed to return null I think
01:10:15 <orin> shachaf: wait, so malloc-ing any complex type is UB in C++? I'm glad the g++ dev's aren't stupid enough to take advantage of that UB by removing the entire function when that is done
01:10:27 <shachaf> If you don't placement new it or something, apparently?
01:13:29 <shachaf> maybe i'll just give up on c++ hth
01:13:37 <orin> huge amounts of technically undefined C++ code exist in my codebase
01:14:02 <shachaf> don't worry, only its behavior is undefined
01:16:00 <orin> because a lot of code relies on being able to mmap arrays of structs and then read them
01:23:03 <int-e> shachaf: ironically that issue was raised, but apparently not addressed, in 2014... http://open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#1116 ("Additional note, February, 2014")
01:23:38 <int-e> also... that page is huge.
01:24:49 <shachaf> int-e: so: scrap c++ and go back to c?
01:25:36 <int-e> try some avr assembly
01:25:59 * int-e could dust off his arduino... hmm... nah.
01:27:02 <int-e> You can just give up the illusion of ever writing portable C++ code.
01:27:18 <shachaf> how about a language where the compiler+standard don't fight me
01:30:34 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:33:10 -!- tromp has joined.
01:38:08 -!- tromp has quit (Ping timeout: 255 seconds).
01:51:48 -!- tromp has joined.
01:52:15 -!- tromp has quit (Remote host closed the connection).
01:52:30 -!- tromp has joined.
01:53:56 -!- tromp has quit (Remote host closed the connection).
01:55:25 -!- tromp has joined.
01:56:36 -!- tromp has quit (Read error: Connection reset by peer).
01:57:03 -!- tromp has joined.
02:01:17 -!- tromp has quit (Ping timeout: 245 seconds).
02:10:50 -!- oerjan has joined.
02:15:21 -!- salpynx has joined.
02:20:33 <zzo38> You can try other assembly language too
02:20:45 <shachaf> zzo38: I'd like to write moderately portable programs, though.
02:20:54 <shachaf> I mean, I know you don't really need anything except MMIX.
02:21:37 <zzo38> Yes, then you can use C, or you can write a program for a portable VM (Z-machine, Glulx, NES/Famicom emulators, etc)
02:22:33 <shachaf> I can just write all my programs for NES/Famicom
02:22:48 -!- Remavas-Hex[AFK] has quit (Quit: Leaving).
02:23:09 <zzo38> Depend on the program. It is especially good for many kind of game programs, at least.
02:23:57 <shachaf> What about the kind of game programs that do 3D rendering at 1920x1080 at 60fps?
02:25:44 -!- danieljabailey has joined.
02:25:49 <zzo38> Then the resolution is too much for NES/Famicom. (Although also many game is having 3D rendering even without 3D game play geometry, which seems an unnecessary use of 3D rendering to me, in most cases)
02:26:17 <shachaf> That's true. 2D games are usually better.
02:26:35 <shachaf> I want a game that has two space dimensions and one time dimension, visualized as a third space dimension.
02:27:49 <zzo38> You could try to make up some kind of game that does that if you want to do, and then see if it is good or isn't.
02:31:53 <orin> shachaf: Let's make CDB == "C with Defined Behaviour". just enumerate all types of undefined behaviour in C, and define it
02:32:20 <int-e> shachaf: I'd love to say that no sane compiler would ever optimize code based on that kind of undefined behavior... but I would have said the same thing about the x + y < x test for overflows (where y is known to be nonnegative) :-(
02:32:21 <oerjan> didn't someone do that
02:32:54 <int-e> oerjan: gcc, quite infamously
02:33:05 <orin> int-e which is why both my company and the linux kernel use -fwrapv option
02:33:08 <int-e> because the compiler writers didn't back down.
02:33:11 <oerjan> um my response was to orin
02:33:27 <shachaf> int-e: I think undefined signed overflow can be justified in some cases?
02:33:34 <shachaf> Probably not a great default, though.
02:33:37 <int-e> oerjan: for once I believe this was not inferrable from context :)
02:34:00 <orin> shachaf: I mean the original justification was that some old computers used ones complement
02:34:37 <shachaf> There are other justifications.
02:34:40 <oerjan> int-e: it could be inferrable from the fact i don't type that fast hth htht
02:34:44 <int-e> shachaf: I imagine it was meant to allow signaling overflows...
02:34:57 <shachaf> Like doing 64-bit arithmetic on a 32-bit integer or something?
02:35:00 <shachaf> Anyway, look, C is a mess.
02:35:07 <shachaf> What can I use instead of C?
02:35:25 <orin> shachaf: fortran 2003?
02:35:40 <orin> shachaf: it's object oriented
02:36:08 <orin> and gcc supports it
02:36:59 <orin> shachaf: also Ada I guess?
02:37:24 <shachaf> orin: object oriented automatically rules it out hth
02:37:29 * int-e runs . o O ( Over The Hills And Far Away )
02:37:31 <zzo38> LLVM doesn't have macros though; one use of macros is to help writing portable programs, since otherwise the program might not be portable
02:38:05 <orin> shachaf: well fortran objects are optional
02:38:28 <int-e> @google "abject lesson"
02:38:29 <lambdabot> https://owlcation.com/humanities/abject-lesson-vs-object-lesson
02:39:14 <int-e> ... that was much better than I hoped for.
02:39:40 <orin> shachaf: I think fortran is probably the smoothest drop-in replacement for C
02:40:24 <oerjan> that was an unusually helpful cookie acceptance menu
02:41:41 <orin> shachaf: but fortran has UB too, just not as much
02:41:49 <int-e> ... didn't enable Javascript. No menu.
02:43:03 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60050&oldid=60039 * A * (+30)
02:43:26 <orin> I guess there is rust, which prevents alot of runtime errors by creating lots of compile time errors
02:43:43 <salpynx> zzo38: I've tried to create a Truth-machine for Stoned Go (nice concept!): (+1[]?)+2[|+1()]-1()-2[]+2[]+2()-1+1()+0-4[]+0+2 then append [] black for input 0 , () white for input 1. Output to be read from the column below the last stone placed. I'm abusing / misunderstanding the loop | section, but I'm not sure how else to conditionally loop, unless I set up a naturally looping capture configuration, but then I believe there are Go
02:44:37 <zzo38> salpynx: It is meant there is no conditional loop; only the entire program can be looped (although the initialization part only runs the first time)
02:46:47 <salpynx> I was "innovating" and was hoping each code block inside brackets could have an init and loop portion [<init code>|<optional loop code>]
02:47:06 <zzo38> (There are other esolangs too, where the entire program runs in a loop; it is same here)
02:49:25 <salpynx> I'll try to get the same effect another way, but wanted to suggest it in case you thought it was a good idea (code blocks being full programs too)
02:49:52 <oerjan> salpynx: i think your long message got cut off
02:50:01 <zzo38> salpynx: That could be a variant, I suppose
02:50:22 -!- tromp has joined.
02:51:05 * oerjan only knows how to fix that in irssi
02:51:23 <salpynx> oerjan: ah, yes, thanks! "I believe there are Go rules to prevent that."
02:52:17 <zzo38> The rules prohibiting repeated positions do not apply here.
02:52:22 <zzo38> (Perhaps I should mention)
02:52:30 <salpynx> "A stone may not be played so as to recreate a previous board position with the same player to play again". Not that stoned go has multiple players
02:53:12 <salpynx> Probably good to mention, I felt bound by it even though it was not mentioned as a restriction
02:54:40 -!- tromp has quit (Ping timeout: 246 seconds).
02:56:54 <salpynx> I seem to enjoy writing Truth-machines for IO limited esolangs.
02:57:13 <esowiki> [[Stoned-Go]] https://esolangs.org/w/index.php?diff=60051&oldid=60046 * Zzo38 * (+681)
02:59:29 <salpynx> zz038: thanks! Also for the / command. When I wrote my above code it didn't exist and I was using +0 for the same effect
03:02:52 <salpynx> I tried a while ago to write a truth-machine in Thue-Mirr but got frustrated making bigger and bigger layouts that didn't do what I wanted, then losing track of the positions.
03:04:00 <zzo38> I don't know what is even possible with Thue-Mirr; it seems to be chaotic to me
03:04:08 <salpynx> I'd need an interpreter to make more progress, paper and pencil didn't get me anywhere
03:04:58 <salpynx> yeah, I thought just trying semi-random input and see what happens would be a good way to get a feel for what is possible
03:19:00 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60052&oldid=60050 * A * (+372)
03:20:05 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60053&oldid=60052 * A * (+17)
03:21:30 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60054&oldid=60053 * A * (-17) /* Turing-completeness */
03:21:52 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60055&oldid=60054 * A * (+29)
03:25:51 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60056&oldid=60055 * A * (-89) /* 99 bottles of beer program (currently incomplete) */
03:26:07 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60057&oldid=60056 * A * (+0)
03:26:21 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60058&oldid=60057 * A * (-30) /* 99 bottles of beer program (currently incomplete) */
03:35:00 -!- xkapastel has quit (Quit: Connection closed for inactivity).
03:35:02 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60059&oldid=60058 * A * (+261) /* 99 bottles of beer program (currently incomplete) */
03:41:34 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60060&oldid=60059 * A * (+144) /* 99 bottles of beer program (currently incomplete) */
03:44:58 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60061&oldid=60060 * A * (+49) /* 99 bottles of beer program (currently incomplete) */
03:46:04 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60062&oldid=60061 * A * (+24) /* 99 bottles of beer program (currently incomplete) */
03:53:48 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60063&oldid=60062 * A * (+274)
04:00:44 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60064&oldid=60063 * A * (+1) /* 99 bottles of beer program (currently incomplete) */
04:04:14 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60065&oldid=60064 * A * (+85) /* 99 bottles of beer program (currently incomplete) */
04:06:56 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60066&oldid=60065 * A * (+76) /* 99 bottles of beer program (currently incomplete) */
04:07:20 <esowiki> [[Assembly language]] https://esolangs.org/w/index.php?diff=60067&oldid=60066 * A * (+4) /* 99 bottles of beer program (currently incomplete) */
04:08:50 <esowiki> [[Lenguage]] https://esolangs.org/w/index.php?diff=60068&oldid=40885 * Cortex * (+91)
04:20:53 <oerjan> ^bf ,[.,]!`le/rn philosophical zombie//Philosophical zombies are everyone in this channel except me.
04:20:53 <fungot> `le/rn philosophical zombie//Philosophical zombies are everyone in this channel except me.
04:20:56 <HackEso> Learned 'philosophical zombie': Philosophical zombies are everyone in this channel except me.
04:22:14 <shachaf> `` hoag | grep '^<fungöt>'
04:22:16 <HackEso> <fungöt> le/rn philosophical zombie//Philosophical zombies are everyone in this channel except me. \ <fungöt> list `list
04:22:40 <shachaf> `` hoag | grep '^<lambdaböt>'
04:22:42 <HackEso> <lambdaböt> list \ <lambdaböt> run echo 'lambdabot: @where hackegoloop' >lambdabotloop
04:23:48 <shachaf> `1 hoag | awk '{print substr($1,2,length($1)-2)}' | sort | uniq -c | sort -rn
04:23:51 <HackEso> 1/10: 3359 oerjän \ 1362 shachäf \ 609 ellioẗt \ 426 b_jonäs \ 396 boil̈y \ 357 hppavilion[1̈] \ 335 int-̈e \ 314 fizzïe \ 226 Jafët \ 222 tsweẗt \ 203 ais52̈3 \ 177 GreyKnigḧt \ 175 wob_jonäs \ 165 km̈c \ 162 rdocöc \ 148 Tanëb \ 144 zgrëp \ 138 Rouj̈o \ 113 mromän \ 107 moon̈_ \ 102 mroman̈_ \ 98 Phantom_Hoovër \ 97 Bik̈e \
04:23:58 <HackEso> 2/10: 92 nortẗi \ 90 noood̈l \ 88 izaber̈a \ 85 FireFl̈y \ 74 coppr̈o \ 71 olsnër \ 68 Sgëo \ 64 mrhmous̈e \ 54 hagb4r̈d \ 52 monq̈y \ 52 Gregör \ 50 c00kiemon5tër \ 49 itidus2̈1 \ 48 Zarutiän \ 48 ThatOtherPersön \ 45 \oren̈\ \ 44 moon_̈_ \ 43 Moon̈_ \ 40 zzo3̈8 \ 38 guestböt \ 37 ran̈c \ 37 iön \ 36 FreeFul̈l \
04:24:12 <HackEso> 3/10: 33 Elronn̈d \ 32 quintopïa \ 31 xfïx \ 30 moonythedwar̈f \ 30 hppavilion̈1 \ 27 mnoq̈y \ 27 Hjull̈e \ 23 __kerbal__̈_ \ 22 orën \ 22 Moon_̈_ \ 22 blottër \ 22 alercäh \ 18 Sgeö_ \ 18 pikḧq \ 17 ZombieChenëy \ 16 Dongër \ 15 Kaynaẗo \ 15 gameman̈j \ 14 oren̈_ \ 13 moon̈y \ 12 zui438̈s \ 12 prooftechniqüe \ 12
04:28:14 <HackEso> 10/10: 1 a`a`a`a`jo8äs \ 1 a`a`a`a`jo7äs \ 1 a`a`a`a`jo6äs \ 1 a`a`a`a`jo5äs \ 1 a`a`a`a`jo4äs \ 1 a`a`a`a`jo2äs \ 1 a`a`a`a`jo1äs \ 1 a`a`a`̈a \ 1
04:28:40 <HackEso> 7/10:ybdën \ 2 tswetẗ_ \ 2 Taneb|Hovercraf̈t \ 2 spiriẗy \ 2 sleff̈y \ 2 singingbanan̈a \ 2 salpyn̈x \ 2 oklopöl \ 2 noog̈a \ 2 mushroöm \ 2 Moon__̈- \ 2 monoton̈e \ 2 lezsakdom̈i \ 2 lexand̈e \ 2 lambdaböt \ 2 hppavilion1̈_ \ 2 greyooz̈e \ 2 fungöt \ 2 fcraẅl \ 2 carad̈o \ 2 a`a`a`a`jo3äs \ 1 Warrigal
04:28:53 <shachaf> yikes, what happened to the encoding there?
04:29:00 <HackEso> 7 | xxd/10:/bin/sed: -e expression #1, char 3: unknown command: `|'
04:29:04 <HackEso> /hackenv/bin/`: line 5: xxd: command not found
04:29:25 <shachaf> I guess the obvious thing happened
04:29:55 <shachaf> It got cut off mid-code-unit and so my IRC client interpreted that as ISO-8859-1 or whatever encoding it uses when a thing isn't valid UTF-8
04:31:19 <shachaf> That is the de facto standard for how IRC encoding works.
04:31:27 <HackEso> 0000000 2f37 3031 793a 6462 cc65 6e88 5c20 2020 \ 0000010 2020 2020 3220 7420 7773 7465 cc74 5f88 \ 0000020 5c20 2020 2020 2020 3220 5420 6e61 6265 \ 0000030 487c 766f 7265 7263 6661 88cc 2074 205c \ 0000040 2020 2020 2020 2032 7073 7269 7469 88cc \ 0000050 2079 205c 2020 2020 2020 2032 6c73 6665 \ 0000060 cc66 7988 5c20 2020 2020 2020 3220 7320 \ 0000070 6e69 6967 676e 6162 616e cc6e 6188 5c20 \ 0000080 2020 2020 2020 3220 7320 6c61 7970 cc6e \ 0000090 78
04:31:29 -!- FreeFull has quit.
04:33:29 <shachaf> When I'm emperor I'm going to ban big endian.
04:33:35 <oerjan> i vaguely recall handling this is a feature request i've previously refused
04:33:56 <shachaf> are you refusing feature requests on shaventions now
04:34:11 <shachaf> I guess you rewrote the thing that breaks lines up or something? I don't remember.
04:34:51 <shachaf> Also on my list of things to ban: Long stack traces.
04:34:53 <oerjan> i made it break more accurately, but it doesn't care about utf-8 sequences
04:35:02 <shachaf> That'll take care of both Java and recursion.
04:35:33 <shachaf> fizzie: Can we send commits directly to HackEso instead of doing through IRC?
04:35:41 <shachaf> I'll just rewrite everything in C. It'll be great.
04:38:36 -!- tromp has joined.
04:43:12 -!- tromp has quit (Ping timeout: 250 seconds).
04:57:50 -!- arseniiv has joined.
05:16:43 <esowiki> [[Pyhton (sic)]] N https://esolangs.org/w/index.php?oldid=60069 * Something Fawful * (+7346) Added new Esolang that I created recently.
05:24:17 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=60070&oldid=60048 * Something Fawful * (+32) /* P */ added Pyhton [sic] to the list.
05:30:54 <zzo38> I think small endian is generally better, but do not intend that big endian will be banned
05:33:27 <zzo38> (Knuth seems to prefer big endian, as far as I can tell)
05:37:42 <zzo38> Do you mean why Knuth prefer big endian?
05:42:54 <zzo38> Glulx is also big endian, and Z-machine is big endian (although version 3 Z-code can be big endian or small endian, but small endian was never used), and OASYS does not define endianness (OAI requires the endianness and int size to match the computer it is running on, although my own implementation of OASYS doesn't care), and TAVERN has no run-time endianness but the story file is small-endian except lump sizes are PDP-endian.
05:45:44 <zzo38> Free Hero Mesh also has no runtime endianness, but binary files in a puzzle set use small endian (except lump sizes in a Hamster archive, which are PDP-endian)
05:46:09 <zzo38> Knuth's MIX seems to have no endianness, although MMIX uses big endian.
06:12:21 <zzo38> Sometimes if aplay is interrupted when the audio is almost finished playing, I get a error message that says: Assertion 'pthread_mutex_destroy(&m->mutex) == 0' failed at pulsecore/mutex-posix.c:81, function pa_mutex_free(). Aborting.
06:26:30 -!- tromp has joined.
06:31:05 -!- tromp has quit (Ping timeout: 255 seconds).
07:05:28 -!- oerjan has quit (Quit: Nite).
07:33:52 -!- xkapastel has joined.
07:38:42 -!- tromp has joined.
08:03:10 <b_jonas> zzo38: no, I read 7.1.3 as not expecting a clear preference either way between little-endian and big-endian.
08:44:59 <b_jonas> oh, an opcode quiz. let me try that. thanks, fizzie.
08:46:48 <b_jonas> aeyxa, kmc: https://esolangs.org/logs/2019-02-18.html#ldi for list of words whose letters are sorted alphabetically
09:27:53 -!- AnotherTest has joined.
09:40:26 -!- xkapastel has quit (Quit: Connection closed for inactivity).
09:52:26 -!- salpynx has quit (Quit: Page closed).
10:31:47 -!- Phantom_Hoover has joined.
10:31:48 -!- Phantom_Hoover has quit (Changing host).
10:31:48 -!- Phantom_Hoover has joined.
10:46:57 <HackEso> This page is under construction.
10:49:40 <rain1> There is a mastodon account that posts random screenshots of ZZT games, quite fun to see all sorts of random ones
10:49:57 <rain1> https://botsin.space/@worldsofzzt
10:51:29 <HackEso> A manometer is a device for testing real men by putting them under pressure.
10:54:12 <b_jonas> `learn o is a popular comedy fantasy webcomic. It's about a group called the Order of the Stick, as they go about their adventures with minimal competence, and eventually stumble into a plan by an undead sorcerer to conquer the world, and they're out to stop him and conquer their personal problems at the same time. Hopefully not in that order.
10:54:15 <HackEso> Relearned 'o': o is a popular comedy fantasy webcomic. It's about a group called the Order of the Stick, as they go about their adventures with minimal competence, and eventually stumble into a plan by an undead sorcerer to conquer the world, and they're out to stop him and conquer their personal problems at the same time. Hopefully not in that order.
11:43:34 -!- Essadon has joined.
11:44:10 -!- Essadon has quit (Max SendQ exceeded).
12:07:02 <HackEso> hagb4rd is one spacey fellow. Spaaaaaaaaaaaaaaace.
12:07:04 <HackEso> hagb4rd is one spacey fellow. Spaaaaaaaaaaaaaaace.
12:07:42 <b_jonas> just how many dups are there?
12:07:56 <b_jonas> ``` sha256sum wisdom/* | sort | uniq -D
12:07:57 <HackEso> sha256sum: wisdom/8: Is a directory \ sha256sum: wisdom/le: Is a directory \ sha256sum: 'wisdom/'$'\302\257''\('$'\302\260''_o)': Is a directory \ sha256sum: 'wisdom/'$'\302\257''\('$'\302\260\342\200\213''_o)': Is a directory \ sha256sum: 'wisdom/'$'\302\257''\_('$'\343\203\204'')_': Is a directory
12:09:30 <HackEso> lrwxrwxrwx 1 1000 1000 7 Jul 8 2017 wisdom/h4gb4rd -> hagb4rd \ -rw-r--r-- 1 1000 1000 51 Jul 8 2017 wisdom/hagb4rd
12:11:34 -!- Lord_of_Life_ has joined.
12:13:02 <b_jonas> ``` set -e; cd wisdom; find -type l -printf "%p -> %l\n"
12:13:03 <HackEso> ./СССР -> ссср \ ./the usual suspect -> usual suspect \ ./perpetuum mobile -> perpetual motion machine \ ./r.i.p. -> rip \ ./☆ -> * \ ./h4gb4rd -> hagb4rd \ ./issue -> .doorstop \ ./the reals -> real \ ./off by two error -> off by two \ ./wolfram -> stephen wolfram
12:13:05 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
12:13:39 <HackEso> You do not have the clearance necessary to view this entry.
12:13:45 <HackEso> You do not have the clearance necessary to view this entry.
12:13:54 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:40:09 <fizzie> shachaf: I'm not sure if that's in the spirit of the thing.
12:45:04 <b_jonas> is it "resemblance" or "resemblence"? wisdom/ance is truncated too short, it's not in there
12:46:09 <b_jonas> repungance, resemblance. there it is
12:56:15 <HackEso> bent-bill knot-hatch? ¯\(°_o)/¯
13:15:15 <HackEso> associate degree? ¯\(°_o)/¯
13:18:57 -!- FreeFull has joined.
14:29:08 -!- Essadon has joined.
14:40:11 -!- Phantom_Hoover has quit (Remote host closed the connection).
14:43:07 <HackEso> Canaima is a secret Venezuelan project to overrun #esoteric with incomprehensible people who have no idea why they're here.
14:53:49 -!- Phantom_Hoover has joined.
15:17:31 <zzo38> rain1: It is look like they are not making invisible walls to be invisible.
16:49:59 <int-e> Huh, how have I missed out on hg histedit for all this time? It's basically the same as git rebase --interactive... and I've been missing that a lot.
17:07:14 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
17:10:17 -!- Phantom_Hoover has joined.
17:27:44 <shachaf> fizzie: Can you figure out a way to make it in the spirit?
17:32:34 <fizzie> shachaf: I don't know, maybe I could make a built-in command like `fetch, except `patch (to pull in a diff to apply from a URL) or `pull (to pull a commit from a hg repo). I'd like it to have the usual safeguards, like the .hgignore handling and stuff.
17:36:46 <b_jonas> you could just download the patch to tmp with a fetch, then apply it with a command. that's two lines, but that's not too big of a problem, right?
17:37:14 <b_jonas> uses of fetch usually work like that
17:37:20 <b_jonas> because you can't do much with just fetch
17:41:16 -!- xkapastel has joined.
17:41:50 <fizzie> All the uses of `fetch I've seen have basically just updated a single "binary" or a data file.
17:42:19 <fizzie> But it's true that you should be able to apply a patch via fetching to tmp.
17:42:35 <shachaf> what if there was a directory you could edit in real-time
17:43:00 -!- ais523_ has joined.
17:43:31 <b_jonas> fizzie: I think I fetched a targz at least once
17:43:36 <b_jonas> and I think we have a working xz
17:43:52 <HackEso> Usage: xz [OPTION]... [FILE]... \ Compress or decompress FILEs in the .xz format. \ \ -z, --compress force compression \ -d, --decompress force decompression \ -t, --test test compressed file integrity \ -l, --list list information about .xz files \ -k, --keep keep (don't delete) input files \ -f, --force force overwrite of output file and (de)compress links \ -c, --stdout write to standard o
17:43:59 <b_jonas> so you could download a tarxz too
17:44:35 <b_jonas> admittedly I also fetched single files, like M:tG comp rules texts or yawgatog oracle dumps, for clarity of the commands
17:44:58 <fizzie> I guess you do have to provide your own URL though. It's not as convenient as just pushing a commit.
17:45:47 <b_jonas> well, you don't have to use fetch. you can also break up the patch in irc-line long chunks and tunnel it to hackeso
17:45:53 <b_jonas> but that's not very convenient, and freenode might ban you
17:46:20 <b_jonas> there was also a web interface that let you http upload text I think
17:46:49 <b_jonas> if there also a mail interface where you send commands and you receive the response?
17:46:53 <zzo38> Other way to do would be listen to one port on the server that you can write a filename and then upload all of the data and then close the connection, and then on the IRC you can move the file from the temporary "incoming" directory to where you want it and give it the filename you want.
17:50:41 <ais523_> <shachaf> https://twitter.com/x86instructions/status/1099115314766401536 "JTNJ - Jump To Next JTNJ" ← that's basically an ASM version of literate programming, isn't it? having a "toggle comment" marker is pretty much the hallmark of a literate programming language, and that's pretty much what JTNJ does in practice
17:51:42 <zzo38> ais523_: I think that if the instruction is encoded then, you might not know what is another instruction or just some other data, unless it is defined as a macro.
17:53:27 <int-e> To be even marginally useful, the instruction should jump to the instruction *following* the next JTNJ.
17:54:40 <b_jonas> ais523_: I don't think it's the hallmark of a literate programming language. C has a toggle comment, /*/ , and I don't think that makes it literate programming.
17:54:50 <ais523_> <shachaf> ais523: Were you the person who suggested something like, there should be a kind of struct in C that can only exist as an lvalue, not an rvalue? ← I don't remember saying that, but it's the sort of thing I'm interested in so maybe I did
17:55:13 <ais523_> b_jonas: hmm, that might be an interesting style for writing a C program in
17:55:28 <ais523_> really, a language being literate isn't a property of the language, but of how it's used
17:55:32 <int-e> . o O ( "fault on first non-X-mapped page beyone RIP" )
17:56:03 <ais523_> does RIP here mean "64-bit instruction pointer" or "rest in peace"?
17:56:25 <int-e> (the former was the intended meaning)
17:58:36 <ais523_> <zzo38> Is the new article I added on esolang wiki good yet? ← you've defined the two possible current directions as "vertical" and "horizontal", then you have commands for moving in the current direction or the opposite of the current direction, but it matters whether the current direction is left or right, or up or down, due to the tiebreak for when a large group is captured
17:59:33 <ais523_> also, the syntax for the inner loop variant is just weird, as | affects the whole block that contains it but the location of the | within the block doesn't seem to matter
18:00:36 <HackEso> Sober spaces are the dual of Stoned spaces. Taneb invented them.
18:00:42 <zzo38> ais523_: Ah, yes, but, negative numbers are the top left (perhaps should mention) for if multiple trigger programs are executed. Also, the | in the inner loop variant is supposed to still have the initialization part and loop part, although maybe it is not clear
18:00:42 <HackEso> Stone spaces were invented by P. T. Barnum as a hoax.
18:01:12 <shachaf> ais523_: Or maybe just some some structs shouldn't be assignable by value or something.
18:01:39 <ais523_> oh right, I was definitely suggesting something that played around in that space
18:01:42 <shachaf> Anyway I think I thought it was kind of silly but now I'm more sympathetic to it.
18:02:41 <b_jonas> shachaf: rust has structs that aren't assignable by value these days, non-Sized ones
18:03:46 <b_jonas> you also notionally have them in C, where you technically can copy the struct, but it's not really meaningful, because it's not the full struct, just a struct describing the header, and you can only meaningfully manipulate it through passing a pointer to it to library functions
18:03:50 <ais523_> I think I wanted a very clear difference between things which act like value types but are immutable, things that are mutable but persist and can't easily be copied or deallocated, and temporaries which are mutable but can't be used as anything but local variables and fields of other temporaries
18:04:30 <ais523_> b_jonas: non-Sized things aren't copiable by value only because Rust doesn't have enough information to generate the code that copies them, though, I think
18:04:38 <shachaf> I said this the other day: "People talk about const a lot, but the const/non-const distinction seems less important to me than the distinction between values and memory locations (in C terms, rvalues and lvalues). Most languages really muddle this distinction (although even C does make it)."
18:04:45 <ais523_> it's not a philosophical objection to the by-value copy, that's what !Clone is for
18:05:26 <b_jonas> ais523_: it's not really "only". you use structs that are neither sized nor unsized if you don't want rust to move them.
18:05:32 <ais523_> shachaf: I see this the opposite way round (which may be the contrapositive of your point of view?): if something is immutable, the distinction between value and memory location doesn't actually /matter/, and that's one of the big gains of immutability
18:05:43 <b_jonas> that could be because they're ones that have a pointer to themselves, or for other reasons
18:05:49 <ais523_> whereas if something is mutable, it has an identity, and keeping track of that is very important
18:06:03 <ais523_> b_jonas: isn't that what Pin is for?
18:06:22 <b_jonas> ais523_: Pin can help too... hmm
18:06:45 <b_jonas> really I don't quite understand how Pin works
18:07:14 <lambdabot> cjs says: I have to explain this shit to people. I mean, I start out right, "Hey, you know how you always have these bugs because what you thought was in the variable is not there?" And I get all of
18:07:14 <lambdabot> these nods of agreement. "Well, I've found a new language that solves that problem." Audience: "Ooooh! How?" Me: "There's no variables!" And then they all start moving away from me slowly....
18:07:41 <int-e> (no lvalues! bliss!)
18:08:11 <ais523_> is "variable" there being used in the sense of "assignable variable" / "lvalue", or in the more general sense that also includes things like lambda bindings?
18:08:44 <int-e> It's the assignable thing.
18:09:03 <b_jonas> maybe intermediate, so that global constants are still allowed?
18:09:03 <int-e> Ah mutable is the word.
18:09:10 <shachaf> ais523_: Well, "const T *x" in C doesn't even say that *x is immutable
18:09:23 <int-e> b_jonas: their are defined, not assigned
18:09:48 <ais523_> I work in a CS department, "variable" has the second meaning by default here, so "assignable variable" is the phrase we came up with to unambiguously describe the sort of variable that most programmers mean
18:09:58 <shachaf> Anyway I'd still quite like a language that doesn't have lvalues at all, only pointers.
18:10:32 <b_jonas> and then there's assign-once variables
18:10:34 <ais523_> (other hazards of terminology include "while" being considered to be tail-recursion)
18:10:35 <shachaf> It's really pretty odd that even pseudocode algorithms confuse a value with a memory location.
18:10:56 <shachaf> There's the implicit operation of "the value stored in this location at this time" and people don't even notice it
18:11:16 <int-e> b_jonas: In the pure Haskell setting that's not part of the semantics; it's an implementation detail of lazy evaluation.
18:11:21 <ais523_> I was very impressed by Algol 68, which gets the terminology right for the distinction (and then, unfortunately, went and invented a shorthand that caught on and caused all the terminological problems)
18:11:34 <b_jonas> int-e: I'm more thinking of the prolog version of assign-once variables
18:11:49 <shachaf> ais523_: I was also impressed by some parts of Algol 68
18:11:59 <ais523_> the C code "int x; x = 6;" translates to Algol 68 "ref int x = loc x; x := 6;"
18:12:09 <ais523_> the shorthand for that would be "int x := that
18:12:19 <ais523_> **"ref int x = loc int; x := 6;"
18:12:33 <ais523_> there was shorthand like "ref int x := 6"
18:12:42 <shachaf> I think a shorthand is OK?
18:12:59 <ais523_> also the Algol 68 is still wrong, I added a trailing semicolon by mistake (semicolon in algol is a separator, not a terminator)
18:13:21 <ais523_> the shorthand's useful, at least
18:13:46 <ais523_> but I really liked the concept of "variables are never named, only constants have names"
18:14:13 <shachaf> I think I was going to have a thing like "x := var(6)"
18:14:20 <b_jonas> whereas in Forte, constants are never named, because the constants are variable too
18:14:29 <ais523_> (for people reading this who don't already know, "ref int x = loc int" creates a new constant x which is the name of a stack slot, you can mutate the value within the stack slot)
18:14:48 <ais523_> b_jonas: well, Forte is a joke, but it's a thought-provoking joke
18:14:50 <shachaf> Where var is an alloca-style thing that allocates memory for the rest of the block and also assigns a value to that memory.
18:15:06 -!- ais523_ has quit (Quit: brb).
18:15:13 <b_jonas> ais523_: right. it's thought provoking because the variable line numbers behave like a computed come from
18:16:15 <shachaf> ais523_: The thing I don't like is all the automatic coercions they needed to add to make code readable. It seems to make things very ambiguous.
18:17:47 <b_jonas> what does often lead to interesting design is that if you have a resource that can be named, then you should also allow to allocate instances of it that aren't named but only referenced indirectly
18:27:04 <b_jonas> but of course it can also lead to insane overuse and bad coding
18:27:30 -!- ais523_ has joined.
18:28:12 <ais523_> shachaf: I also think the coercions were a mistake
18:29:17 <ais523_> in my thesis I worked with Idealized Algol, which has no implicit coercions (it allows ! as an explicit ref x → x coercion, and is call by name so no explicit proc x → x coercion is needed)
18:29:39 <ais523_> actually, forcing a thunk in Idealized Algol is really difficult
18:30:03 <ais523_> you can force an integer by assigning it to a variable, and force a boolean using an if or while statement, and that's about it; most other types can't be forced at all
18:31:07 <b_jonas> ais523_: is that like haskell without seq, where you can force an algebraic data using case, or force an integer using <, or force a function by calling it?
18:32:04 <shachaf> ais523_: But code without the coercions seems to have way too much dereferencing.
18:32:10 <shachaf> To the point of being hard to read.
18:33:21 <ais523_> fizzie: the opcode quiz gave me "FS" and I wasn't sure what to say because I was unclear about the definition of an opcode; "FS:" is a segment override prefix, but a) does the colon matter, b) do prefixes count as opcodes? it could do with some clarification
18:33:54 <ais523_> shachaf: in Idealized Algol, incrementing an integer-holding variable x is "x := !x + 1"
18:34:04 <shachaf> Yes, that's simple enough.
18:34:07 <ais523_> it takes a bit of getting used to but it's not too bad to write in (and OCaml does it the same way)
18:34:18 <shachaf> https://en.wikipedia.org/wiki/BLISS does this too
18:34:28 <b_jonas> ais523_: is that where SML got the names for the operators for mutable cell?
18:34:34 <ais523_> at least in the subset I implemented for my thesis, the only dereferencable things were integer-holding variables
18:34:39 <shachaf> But slightly more complicated code has a lot more dereferencing.
18:34:46 <ais523_> b_jonas: I have no idea who borrowed from who
18:34:57 <b_jonas> I always thought it strange that ! is a reader in SML but a writer in forth
18:35:05 <shachaf> Say the array indexing operator, which presumably returns a pointer rather than a value (so it's morel ike + in C), right?
18:35:14 <ais523_> (we're implementing this in hardware, thus any assignable referenceable thing is a set of bits in memory somewhere, thus is an integer by definition)
18:35:58 <ais523_> shachaf: the newarray statement in Idealized Algol produces a function from integers to variables
18:36:07 <b_jonas> eh, just because it's in hardware doesn't really make it an integer. except perhaps as much as it only has finitely many values.
18:36:36 <shachaf> I'm talking about the design of a language for programming computers, though.
18:36:41 <zzo38> Well, it is a sequence of bits which can be interpreted as and manipulated as a integer.
18:36:47 <ais523_> so writing an array element would be, e.g., a(6) := 7, reading an array element would be, e.g., !(a(6)), which can be written !a(6) due to careful choice of operator precedence
18:37:06 <ais523_> (the choice is harmless because (!a)(6) would necessarily be a type error, given that in the subset we were using, ! always returns an integer)
18:37:40 <b_jonas> ais523_: hmm, and can you write multi-axis arrays?
18:38:11 <ais523_> b_jonas: there isn't a builtin for them, but you can create them using a curried wrapper function that linearizes the index
18:38:31 <shachaf> arr[!i, !j] = min(!arr[!i, !j-1], !arr[!i-1, !j], !arr[!i-1, !j-1]) + 1
18:38:51 <shachaf> It seems like worrying about where to dereference is a big part of the work of writing that line
18:39:02 <ais523_> something like let a = newarray a0(25) in \x.\y.a0(x+y*5) would work
18:39:50 <ais523_> shachaf: it's fairly easy, every use of a variable name is dereferenced with either ! or :=
18:40:01 <ais523_> the first use of arr is dereferenced with :=, thus you need ! everywhere else
18:40:27 <shachaf> I'm not saying it's conceptually difficult, only distracting
18:40:47 <shachaf> Switching between a.x and a->x in C is already annoying.
18:41:26 <b_jonas> shachaf: come to the rust side. we have implicit dereferencing, and lots of other false exaggerations about how perfect the language is.
18:41:56 <shachaf> Rust just has lvalues and rvalues, like C
18:42:11 <fizzie> ais523_: Yes, it's a little unclear. The opcode list is from NASM, which allows "FS" as a standalone instruction, and as a rep-style prefix, in addition to the typical fs:... operand form: http://ix.io/1BWX
18:42:26 <b_jonas> shachaf: oh, is this still about not wanting lvalues? come to rust or scheme then.
18:42:35 <ais523_> fizzie: well, it considered IIRC it considered FS to be fake
18:42:57 <ais523_> but it's a surprisingly philosophical question for what you'd expect to be an objective quiz
18:42:59 <shachaf> b_jonas: This is about wanting a language to replace C.
18:43:22 <ais523_> shachaf: fwiw, my thoughts on lvalues and rvalues were more about wanting a language to replace Java than to replace C
18:43:56 <ais523_> C-like languages have a number of considerations of their own, e.g. abstracting away low-level details is not always desirable
18:44:22 <shachaf> I guess ALGOL 68 is garbage-collected.
18:44:36 <shachaf> But I don't think that has much to do with any of these features.
18:46:12 <fizzie> Oh. Right, the exact definition for "opcode" I've used there is really a NASM implementation detail, it's everything in the nasm_insn_names[] array. Apparently prefixes (even if they can be used as a standalone statement) are handled separately.
18:46:14 <ais523_> I think Algol 68 is GCed because people weren't sure there were alternative schemes to stack allocation and a GCed heap at the time
18:46:27 <ais523_> refcounting would have been considered a form of GC, but a broken one
18:47:04 <ais523_> hmm, this reminds me of the problem I'm stuck on at work
18:47:20 <shachaf> The alternative scheme of manual memory management was presumably known?
18:48:34 <ais523_> I'm trying to prove a GC algorithm correct; however, the way it deals with reference cycles is by delegating cases with suspected reference cyclesto a second GC algorithm, which means I need to somehow prove "this GC algorithm is correct given an oracle for breaking cycles"
18:49:05 <ais523_> shachaf: I'm not sure, manual deallocation feels like a more modern feature than GC/automatic deallocation
18:49:24 <ais523_> probably because memory leaks have become more survivable over time
18:49:45 <ais523_> (Rust does not consider memory leaks a correctness issue, for example)
18:49:59 <b_jonas> maybe it was GCed because they wanted to compile it to a web scripting language that would be ran on client side in browsers, and they didn't want webpages to leak memory in the browser
18:50:31 <b_jonas> they didn't want telex messages to leak memory in the receiving post office
18:50:42 <shachaf> ais523_: What, you're saying garbage collection predated malloc/free?
18:51:08 <ais523_> I'm not sure, but it wouldn't surprise me, at least in languages higher-level than assembly
18:51:21 <ais523_> Lisp is GC'ed, and a very old language
18:51:24 <b_jonas> ais523_: it does feel more modern, yes, because lisp was traditionally garbage collected
18:51:34 <ais523_> and other languages of a comparable age were typically statically allocated
18:51:41 <ais523_> b_jonas: yes, Smalltalk is GC'ed
18:52:23 <b_jonas> whereas some other languages just don't allow pointers, so everything is singly owned
18:52:49 <shachaf> But cons cells -- which I assumed were reference-counted in the original LISP for some reason, though I never checked -- are a much more specific thing than general GC
18:53:18 <b_jonas> or every variable is allocated once in the program and never freed, like in BASIC or FORTRAN
18:53:37 <b_jonas> shachaf: sure, the memory allocation and deallocation gets much simpler if every block is of the same size
18:53:41 <b_jonas> the gc sweep itself not much
18:53:49 <b_jonas> but the memory management does get much simpler
18:53:56 <b_jonas> so it's easier to implement on small machines
18:55:07 <ais523_> I'm reading the paper which is the first description of garbage collection (1959); it also talks about stack allocation as though it were a new/interesting innovation for the paper (maybe it was)
18:55:44 <ais523_> apparently it used mark-and-sweep
18:55:56 <ais523_> (stop-the-world mark-and-sweep, that is)
18:56:21 <b_jonas> ais523_: if I understand correctly, it was sort of a new thing to store local variables on a stack to implement lexical scoped variables (without closures), which makes sense because you don't need that if you don't have recursive structs
18:56:26 <ais523_> it does sort-of imply that malloc/free came earlier, or at least was considered to be obvious to people reading the paper
18:56:39 <ais523_> b_jonas: it was to implement recursive functions
18:56:40 <b_jonas> if you only have non-recursive structs, then you can give every local variable a static address
18:57:05 <ais523_> but stack allocation is often more efficient than static allocation even in the absence of recursion
18:57:20 <ais523_> because it lets more variables share with each other and thus uses less memory
18:57:41 <b_jonas> ais523_: exactly. I mean, look at the Knuth books, they don't take recursive functions granted, recursive functions are introduced in the future (not yet released) parts of vol 4, even though the normal MMIX calling convention puts locals on a stack
18:57:47 <ais523_> in most programs that don't use recursion, there's no execution which would end up with every function running at the same time in one big long call chain
18:58:03 <ais523_> unless the program is very simple
18:58:17 <b_jonas> it does technically mention recursive functions earlier, but doesn't go (sorry) deep into them
18:58:27 <ais523_> hmm, now I'm starting to have an esolang idea
18:58:38 * ais523_ thinks about a language where all the functions being in one big call chain is an essential part of the design
18:58:45 <ais523_> presumably you do flow control by rearranging the call chain
18:59:06 <b_jonas> ais523_: not really. if your call graph is known statically and acyclic (which is the most common case when you know there'll be no recursion) then you can maximally overlap variables so it's as efficient as a stack
18:59:17 <b_jonas> overlap them with a static address that is
18:59:33 <ais523_> is the set of overlaps always solvable?
18:59:48 <b_jonas> sure, just go either from inside to out, or from outside to in, in the graph
18:59:51 <b_jonas> or in any partial order really
18:59:59 <b_jonas> and assign variables to the lowest addres slot that wasn't used yet
19:00:10 <int-e> stacks ware awful, they make it impossible to put the value of a variable into the immediate operand of an instruction ;-)
19:00:28 <ais523_> say you have three functions, a, b, c, a(false) calls b(true), b(false) calls c(true), c(false) calls a(true)
19:00:51 <b_jonas> ais523_: I said the call graph, as in, the graph of possible calls, is known at compile time, and is acyclic
19:00:58 <b_jonas> as in, each function can only call functions defined earlier in the code
19:01:11 <b_jonas> if you do have three functions like that, then yes, you can't allocate the variables statically
19:01:16 <ais523_> oh, a(false) calls b(true), a(false) calls c(true), b(false) calls c(true)
19:01:58 <ais523_> but it's still more efficient with a stack, because b's locals and c's locals need to share when called from a, but not when b is called directly
19:03:26 <ais523_> I think the difference here is that a→b→c is approximately a possible call chain but the full chain never actually happens in practice, thus you can implement it with only two functions' worth of stack space
19:03:33 <ais523_> but the static analysis thinks it needs three
19:04:05 <b_jonas> and that's the kind of design that ends up with deadlocks in the kernel between the file system driver and two other modules
19:04:53 <zzo38> fizzie: Also about the opcode quiz: "TETRA" is a assembler directive in MMIX, but is not itself a instruction. Other things can apply to other instruction sets (although sometimes, it depend what assembler is in use). Also with 6502, which instruction are possible can also depend what variant of 6502, such as NMOS or CMOS or whatever.
19:05:35 <zzo38> In Glulx, it is necessary to define the maximum amount of stack space needed, although the stack is not addressable in Glulx.
19:05:42 <ais523_> I kind-of assumed it wouldn't be using the unofficial instructions
19:05:56 <b_jonas> though on the other hand, if a calls b and b calls c and c calls d, and b and d have 4 bytes of stack frame, and a and c have 8 bytes of stack frame that must be aligned to an 8 byte boundary, then you end up using 28 bytes of stack or 24 bytes of statically allocated variables
19:05:56 <ais523_> which don't even have consistent names
19:06:01 <zzo38> (I do not really know how to estimate though)
19:06:06 <ais523_> or even functionalities, in some case
19:06:28 <zzo38> ais523_: Even if you do not use unofficial instructions, still some instruction are difference from NMOS or CMOS 6502.
19:06:45 <b_jonas> we could also have separate versions of the x86 quiz for the intel notation and the at&t notation
19:06:46 <ais523_> (there are stable instructions like LAX, and unstable instructions which are deterministic on some 6502s, deterministic with diferent behaviour on other 6502s, and nondeterministic on still other 6502s; their behaviour often doesn't make much sense even when it's stable)
19:06:49 -!- galaxie has joined.
19:07:30 <galaxie> Hi! My mind is blanking, I feel like I was on the esolang wiki or maybe WikiPedia but I think I remember another visual-based esolang that wasn't Piet or Piet++. Anyone have any idea what that might be?
19:07:35 <zzo38> With LAX, there is actually a bug (even the bugs have bugs in 6502) with immediate operands
19:07:39 <b_jonas> but of course the x86 quiz is tricky because you would have to update it with new instruction names every year
19:07:48 <zzo38> galaxie: No, but you can try looking in the categories in esolang wiki
19:08:13 <b_jonas> galaxie: do you mean https://esolangs.org/wiki/Piet%2B%2B
19:08:31 <b_jonas> yeah, what zzo38 says then, try https://esolangs.org/wiki/Category:Non-textual
19:08:35 <ais523_> galaxie: there are quite a few image-based esolangs; the massive polyglot on Stack Exchange implements many of them at once
19:09:19 <ais523_> hmm, the Turing Tumble is listed in that category
19:09:54 <ais523_> I'm suspicious of the claims that it's TC, given that a) it doesn't have infinite memory and b) the most obvious means of giving it infinite memory (putting an infinite number of identical boards side by side) isn't obviously TC; it might be subtly TC though
19:09:56 <b_jonas> ais523_: that category isn't only for image-based esolangs of course. it contains object-based ones like https://esolangs.org/wiki/Efghij
19:10:07 <ais523_> yes, and music-based languages like Fugue
19:10:15 <galaxie> Non-texual, what didn't I see that..
19:10:28 <ais523_> ugh, now my Fugue hello world has got stuck in my head again
19:10:31 <b_jonas> aren't music-based in a different listing?
19:10:48 <ais523_> it's surprisingly catchy for generated music; perhaps being based on a specific BF program gives it a sort of structure that generated code normally lacks
19:10:51 <b_jonas> (most of which are garbage incidentally, but then, which esolang category isn't)
19:11:28 <ais523_> I'm tempted to say "Category:Shameful", which is arguably supposed to be entirely garbage, but I have a soft spot for ESME
19:11:34 <galaxie> Braincopter, that was it! Thanks!
19:11:58 <ais523_> fwiw, my first thought was Brainloller
19:12:32 <ais523_> it's hard to define ESME as a terrible language because it's more performance art than language
19:12:55 <ais523_> it's like if TURKEY BOMB was defined by example rather than specification (I rather like TURKEY BOMB too)
19:13:17 <b_jonas> ais523_: the trick is that the first esolang with any schtick is often great, but it gets boring when a dozen other articles on the wiki copy it
19:13:37 <b_jonas> eg. Ook! has a place in my heart, but it wouldn't if it were invented now
19:14:04 <ais523_> it is probably better than brainfuck for most of the things brainfuck is good at, except for code golf and the things where the two languages are identical
19:14:17 <ais523_> the language benefits from having an entirely meaningless syntax
19:14:58 <ais523_> I think there have been some uses of it in education, to help people understand what is and isn't important in a language
19:16:37 <b_jonas> hmm... showing that the syntax isn't important? dunno, grown up to meet both the original and the horrible Hungarian syntax versions of LOGO and Excel sort of shows that syntax in theory isn't important, but bad syntax can make you really hate the language
19:17:13 <ais523_> there's a hungarian notation version of LOGO?
19:17:16 <b_jonas> I'll keep the English FD BK LT RT PU PD thank you
19:17:45 <zzo38> b_jonas: Not only with x86 there will eventually adding new instructions, although you could perhaps specify a version number (does it even have version numbers?). Glulx has version numbers, although Glulx also has "push" and "pull" which are not themself opcodes but are abbreviations for other opcodes. There are also some extensions which are not part of the core specification.
19:17:53 <ais523_> fwiw, I wrote The Waterfall Model Online in Hungarian notation because JavaScript is untyped, and it helped me catch at least one error
19:18:06 <ais523_> but in general it's pointless doing it when the compiler does it for you
19:18:07 <b_jonas> ais523_: I'm not sure how much ... there's definitely a library of function definitions that give hungarian abbreviation synonyms to common commands
19:18:18 <ais523_> oh, Hungarian the language, not the naming style
19:19:00 <b_jonas> yes, the language. not the lpszFoo thing.
19:19:44 <zzo38> And then, Z-machine is even more difficult. There are two sets of names for instructions (Infocom and Inform), and then different instructions per version (ZIP, EZIP, XZIP, YZIP), features which are Inform extensions, and features which are precluded by Inform extensions.
19:20:04 <ais523_> "lpsz" seems broken as a type system, anyway; the zero-terminated string /is/ a pointer, under standard C conventions, thus a long pointer to it would be a char**, not a char*
19:20:35 <zzo38> Is it Microsoft who used "lpsz" for this purpose?
19:20:37 <b_jonas> zzo38: and x86 instructions that existed in certain old AMD cpus but are no longer in the latest ones
19:20:43 <b_jonas> because the intel extensions won out
19:20:46 <ais523_> zzo38: I'm not sure they invented it but they're the most famous users of it
19:20:48 <zzo38> b_jonas: OK, that too
19:21:01 <b_jonas> zzo38: Microsoft is just the most popular ones who use it, they're not the first ones
19:21:16 <ais523_> b_jonas: haven't even some Intel instructions died out?
19:21:48 <b_jonas> ais523_: I think only some really strange ones that were never intended to be used in mainstream programs, but only to debug the processor or something
19:22:09 <b_jonas> ais523_: there are a lot that are not allowed in 64-bit mode, but still allowed in 32-bit code
19:22:20 <b_jonas> that's mostly done to free up some of the one-bit opcode space
19:22:31 <zzo38> I think x86 also has different instructions for 64-bits and 32-bits, and maybe also 16-bits I don't know
19:22:33 <ais523_> this reminds me, there was a bit of a row in some minor processor semi-recently (last several years), because it had an instruction to switch the processor into a mode with an entirely different set of opcodes
19:22:54 <zzo38> ais523_: Doesn't ARM do that?
19:22:56 <ais523_> and it used a different security model, which in practice meant the feature was usable as a hardware backdoor even though that doesn't appear to have been the original intention
19:23:37 <b_jonas> zzo38: yes, ARM has like three different opcode modes, plus like two or three different vector extensions ... but then, x86 also has three vector extensions now
19:24:00 <b_jonas> ais523_: also some instructions "died out" in the sense that the cpu still supports them but there isn't a good reason to use them
19:24:27 <ais523_> b_jonas: more interestingly, there are some duplicate instructions which fit into different naming schemes and have different encodings
19:24:43 <ais523_> the processor treats them identically, but you're supposed to use one for ints and one for floats in case future processors care about the distinction
19:24:45 <b_jonas> ais523_: yes, but MMIX does that to an extreme
19:24:59 <b_jonas> ais523_: oh yes, that was the vector instructions, that mattered for performance for a while
19:25:36 <b_jonas> basically they had pseudo-register that were closer to integer vector execution units and ones that were closer to float vector execution units, and the cpu had to transfer between them if you used the wrong bitwise vector instrs
19:25:39 <zzo38> Yes, MMIX has separate instructions for signed or unsigned 64-bit load/store, even though the function is same.
19:25:53 <b_jonas> also aligned and unaligned instructions that don't differ on new cpus unless you turn on some compatibility flag
19:26:13 <b_jonas> maybe they differ, but the unaligned ones no longer have a penalty, so you can always write them even for aligned operands
19:26:21 <ais523_> movaps versus movups really does matter, IIRC
19:26:40 <b_jonas> ais523_: not in the latest cpu iirc, but let me look it up in the opt'n manuals
19:27:53 <b_jonas> actually, let me look it up in Agner's manuals, that's simpler
19:28:09 <ais523_> some searches imply that movups is as fast as movaps at moving the data as of Nehalem if the data happens to be aligned
19:28:16 <zzo38> (I suppose one possible reason using LDO and LDOU even though is same is for profiling; I have used unofficial 6502 opcodes with same meaning as official ones for profiling in NES/Famicom emulators, before.)
19:28:20 <ais523_> but that the instruction decoder is apparently faster at decoding a movaps instruction
19:29:22 <ais523_> zzo38: did you use the duplicate NOPs, or are there duplicate instructions that have an actual effect?
19:30:19 <zzo38> ais523_: There are both. Mostly it is the duplicate NOPs I used, although the others can also be used.
19:30:47 <zzo38> (Although I have also used unofficial instructions that do not duplicate any official instructions, in places where those unofficial instructions are seeming like useful.)
19:31:34 <ais523_> LAX seems like it would be useful quite frequently; many of the others are rather specific but (if stable) would still help in places where their functionality happens to be needed
19:32:21 <zzo38> I only use the stable ones
19:32:24 <b_jonas> chapter 13.9 of https://www.agner.org/optimize/optimizing_assembly.pdf seems to imply that on modern cpus the movdqa have no advantage over the movdqu anymore
19:32:50 <b_jonas> ais523_: hmm wait, you ask about the single float load instructions instead? hmm
19:33:15 <ais523_> if the difference really is in the instruction decoder, I could believe that movdqa equals movdqu but movaps decodes faster than movups
19:33:29 <ais523_> because even instructions that are equivalent in effect will decode in different ways
19:33:29 <b_jonas> I'm not sure then, maybe this is only for some instructions
19:34:02 <b_jonas> ais523_: yes, they're really not the same, because movups is for four bytes, whereas movdqa is for a full 16 or 32 byte register
19:34:22 <ais523_> no, movups is the whole register I think
19:35:02 <ais523_> the difference in instruction naming is that movups is effectively treating the register as an array of scalars, whereas movdqu is treating it as one big number
19:35:08 <ais523_> but for a copy that doesn't matter
19:35:19 <b_jonas> ais523_: no, I think the difference is that integer vs float like above
19:35:35 <b_jonas> they used to differ in older cpus, and you use the one that mathes the next instructions on that regiseter
19:35:56 <b_jonas> if you do float ops then you use the movups, if you do integer ops next then you use movdqu
19:36:21 <ais523_> really, x86 is just a huge mess :-D
19:36:42 <b_jonas> this is not really the messy part
19:36:47 <zzo38> Yes, especially the modern x86. The original 8088 was not so messy as the modern one.
19:36:53 <fizzie> There's a performance difference in some Core microarchitectures if you mix "domains" for SSE, the domains being integers vs. floats.
19:36:58 <ais523_> it would be considered messy, if not for the fact that it has the rest of x86 to compete with
19:37:23 <b_jonas> oh, did you know that to compile 3 byte or longer nops for padding, you want to know which of the first eight integer registers have not been written for a while, because those nops have a false dependency?
19:37:31 <b_jonas> so the compiler has to think even to just insert a fucking padding
19:37:54 <fizzie> You *can* use movdqa to move floats around, and movaps to move integers, but you should be using whatever matches the operations you're going to do with them next.
19:37:56 <ais523_> is that on Intel or AMD or both?
19:38:08 <b_jonas> ais523_: intel, and possibly only some intel cpus
19:38:09 <ais523_> IIRC AMD's advice for long NOPs is to just keep stacking operand size modifiers on a NOP
19:38:24 <ais523_> so it goes NOP, WORD PTR NOP, WORD PTR WORD PTR NOP, etc.
19:38:25 <b_jonas> ais523_: yes, that's also a sad part, you need different nop instructions for the different cpus
19:38:29 <ais523_> that is at least easy to remember
19:38:35 <ais523_> Intel's advice is a lot more complex
19:38:37 <b_jonas> ais523_: amd's decoder handles that well, intel's decoder is slow in that
19:38:39 <zzo38> I did not know that, but yes it is a messy thing in x86, and x86 is also extremely messy in too many ways
19:38:49 <ais523_> b_jonas: presumably this is why AMD advises it :-D
19:39:18 <b_jonas> this is intel optimization manual chapter 3.5.1.10
19:39:31 <ais523_> 6502 has an unofficial two-byte NOP which is basically just NOP with an immediate argument
19:39:46 <fizzie> And the "mixing SIMD data types" is right after, in 3.5.1.11.
19:39:47 <ais523_> is there a NOP version with a two-byte argument, making an unofficial three-byte NOP?
19:40:18 <zzo38> ais523_: Yes, and it is faster than just one byte NOP twice. There is NOP with two byte argument, although it isn't actually no operation; it reads from the specified address and then does nothing with the result.
19:40:40 <ais523_> oh, OK, so that might actually do something with some mappers
19:40:46 <ais523_> as they'll be able to observe the read even though the read value isn't used
19:40:54 <b_jonas> ais523_: intel recommends LEA with a mod-m/r byte and a one-byte displacement
19:41:08 <zzo38> (Which might be used if some addresses have side effects for reading, such as some PPU registers, and some mappers)
19:41:16 <ais523_> the NES has some registers which have side effects when read
19:41:19 <b_jonas> it's strange, because there _is_ a nop with a two-byte opcode and one byte of mod-m/r
19:41:23 <ais523_> b_jonas: where is the address being loaded?
19:41:24 <b_jonas> but apparently that's slower or something
19:41:36 <b_jonas> ais523_: back in the same register
19:41:50 <b_jonas> ais523_: like, loads the address 0[EAX] to EAX
19:41:54 <ais523_> I'm not even conviced that's a /false/ dependency at this point
19:42:07 <ais523_> in C, I wouldn't expect "x = x;" to be a NOP
19:42:19 <ais523_> like, I wouldn't be surprised if it did nothing, but I also wouldn't be surprised if it did something
19:42:34 <b_jonas> ais523_: yes, but this isn't C, and the optimization manual explicitly says that it's a true nop
19:42:36 <ais523_> especially if x was being changed concurrently in another thread
19:42:51 <ais523_> but I guess that as we're talking about a register here, it can't be shared with anything
19:42:59 <fizzie> "The other NOPs have no special hardware support. Their input and output registers are interpreted by the hardware. Therefore, a code generator should arrange to use the register containing the oldest value as input, so that the NOP will dispatch and release RS resources at the earliest possible opportunity."
19:43:17 <b_jonas> in this case I believe the optimization manual knows what it's talking about. I know it has typos, I've reported at least one, but usually it's right.
19:43:18 <fizzie> ("Other" meaning anything else than the "xchg eax, eax" one-byte NOP.)
19:43:37 <ais523_> do the other cases of xchg even have their same meanings?
19:43:57 <b_jonas> ais523_: what do you mean "their same meanings"?
19:44:17 <ais523_> b_jonas: well, the code of xchg eax, eax was repurposed for nop
19:44:18 <b_jonas> the statement talks about other nop instructions they recommend, not about other cases of xchg
19:44:24 <ais523_> as on a 32-bit processor it's a true nop and was commonly used for that purpose
19:44:41 <ais523_> but on a 64-bit processor, an actual xchg eax, eax instruction would clear the top 32 bits of rax
19:44:54 <ais523_> so xchg eax, eax would have had to be given a different encoding
19:45:19 <ais523_> I'm wondering if the xchg r, r instructions with different registers than eax twice still have the same encoding as on 32-bit x86, or whether those were also moved
19:45:34 <kmc> the linux kernel has a header with n-byte nops for various n
19:45:40 <kmc> on various microarchitectures
19:46:33 -!- tromp has quit (Remote host closed the connection).
19:46:34 <fizzie> ais523_: The one-byte instruction has an implicit EAX as one operand.
19:46:40 <zzo38> ais523_: Yes, NES has some registers that have side effects when read. Some mappers also have, such as my Famizork mapper, where the bankswitching register doesn't care about read/write. It does care the value in the data bus though; the bankswitching register is mapped in many addresses including some over the mirrors of the console's RAM, so it switches to the bank specified by the value in RAM.
19:46:53 <fizzie> ais523_: It's 90+rd for "XCHG EAX, r32" (for the 32-bit size).
19:47:05 <ais523_> fizzie: so instructions like xchg eax, ebx still keep their encodings?
19:47:14 <ais523_> now I wonder what the canoncial way to clear the top 32 bits of rax are
19:47:52 <zzo38> (I don't know of any other mapper that maps stuff over stuff internal to the console, except that MMC5 spies on some of the PPU registers.)
19:47:57 <fizzie> Yes, they use 87 /r for XCHG r/m32, r32.
19:48:23 <b_jonas> ais523_: that is a good question, now I'm confused. lookging up how this works in the manual. you know by the way that XCHG EAX with a register has a special one-byte shortcut encoding, and that's the one byte nop, right?
19:48:44 <b_jonas> whereas eg. XCHG EDX, EDX is a different encoding with a normal mod-r/m byte
19:48:47 <b_jonas> but that doesn't invalidate your question
19:50:14 <b_jonas> sadly this is the kind of info that is really hard to find in the intel manual
19:50:46 <zzo38> (Famizork also uses the smallest bank size than all other mappers: A bank is only a single byte long.)
19:51:27 <fizzie> I assume "xchg eax, eax" encoded the long way (87 C0) would actually clear the top 32 bits, but I doubt that's the "canonical" way.
19:52:17 <fizzie> Fun fact: ndisasm decodes 90 to "nop" and 87 C0 to "xchg eax, eax", but assembles "xchg eax, eax" into a nop: http://ix.io/1BXb
19:52:25 <ais523_> reading around this subject, I discovered that apparently "xor r10d, r10d" is a more efficient way to zero r10 than "xor r10, r10" is, even though you need a rex prefix either way
19:53:08 <ais523_> because some processors only recognise the zero-extended 32-bit version as a special case (this is the case that matters for the first eight registers as those don't need the prefix)
19:54:24 <kmc> what a mess
19:54:33 <zzo38> fizzie: Why does it do tat?
19:55:07 <fizzie> zzo38: I would guess they haven't specifically considered that case, and it just falls out of how it got implemented.
19:56:47 <fizzie> GNU as, on the other hand, assembles "xchg %eax, %eax" into 87 C0.
19:57:07 <ais523_> incidentally, one processor architecture idea I had was to make the registers one bit wider than the memory that's intended to be read/written with them
19:57:19 <ais523_> and then remove the flags, conditionals instead look at the values in a register
19:57:23 <fizzie> (...in 64-bit code. In 32-bit code it assembles it to a 90-nop.)
19:57:40 <ais523_> so, e.g., jump-if-carry would jump if the top bit of a register were set
19:57:41 <fizzie> So I guess for proper comparison I should've said bits 64 to nasm too.
19:57:51 <int-e> fizzie: which makes a difference
19:58:03 <fizzie> Well, that's reasonable enough.
19:58:17 -!- arseniiv has quit (Ping timeout: 246 seconds).
19:58:28 <b_jonas> ais523_: the AMD manual says that the 0x90 opcode, if it would exchange EAX with EAX (that isn't always the case because of REX prefix), has special handling to preserve the upper dword of RAX
19:59:03 <ais523_> that's a reasonable way to define the behaviour (although I think defining it as NOP would be even more reasonable!)
19:59:32 <b_jonas> ais523_: it does say it's treated as a NOP
19:59:45 <b_jonas> ais523_: also the intel manual also says that at the XCHG instruction's description
19:59:55 <zzo38> Nevertheless that is strange
20:00:20 <b_jonas> ais523_: the AMD manual actually uses the phrase "true NOP"
20:01:12 <b_jonas> whereas the intel uses the phrase "alias for NOP" (as in, there's a set of NOP instructions documented separately)
20:01:47 <int-e> They'd have to invent a new one byte nop otherwise. And one byte opcodes are a very scarce resource.
20:02:23 <b_jonas> ais523_: as for zeroing the register, I think that also depends on the cpu and you'd best check what the optimization manual for the right processor series says or what agner's manual says
20:03:04 <ais523_> b_jonas: zeroing an entire register, the consensus is that if you don't care about the flags, 32-bit xor is the best option regardless of the register
20:03:18 <zzo38> Still it look like strange if 0x90 opcode does not normally do that, then why it should do then?
20:03:26 <b_jonas> ais523_: yes, I also thought of putting the carry on top of the register in such a way that only a few instructions access it, the others that write the register write an unspecified value in that bit, and the ones that read the register usually ignore that bit, except for special ones that read the carry
20:03:32 <zzo38> What is strange in Glulx is the "copys" and "copyb" instructions, which work differently from all other instructions.
20:03:40 <ais523_> I'm more interested in partial zeroes of the high byes (e.g. rax %= 256)
20:03:47 -!- grumble has quit (Quit: grumble).
20:03:50 <fizzie> b_jonas: What happens if you put in a REX prefix that doesn't have REX.W set in front of 90?
20:04:15 -!- grumble has joined.
20:04:26 <b_jonas> ais523_: I'm quite sure the opt manual says things about that, both for index registers and vector registers
20:04:36 <fizzie> (ndisasm -b 64 decodes both "40 90" and "42 90" as plain nop, but not sure if I'd trust that.)
20:05:03 <ais523_> anyway, I had better go home, I think
20:05:14 <ais523_> bye everyone (I typoed that as "byte", maybe I should have left it?)
20:05:31 -!- ais523_ has quit (Quit: quit).
20:08:24 <b_jonas> fizzie: IIUC if you make it exchange EAX with R8L or R8L with R8L then it will clear the bits above bit 32 of all registers involved, but check the manuals before you want to depend on that
20:09:37 <fizzie> Sure, I was just wondering what happens if you still make it "XCHG EAX, EAX" but just put in REX prefix, either just plain 40 or with the SIB index register extension bit (which doesn't affect anything) set.
20:12:59 <b_jonas> ais523: hmm, interesting. the intel opt'n manual does talk about zeroing reigsters, but doesn't seem to say that to clear one of the high eight index reigsters with XOR or SUB, you should use 32-bit instead of 64-bit operands
20:13:34 <b_jonas> (or I'm looking at the wrong place)
20:14:42 <b_jonas> fizzie: if you use the one-byte shortcut XCHG EAX,EAX with a REX prefix that does nothing, that will still be a nop
20:15:12 <b_jonas> I'm not sure if you use the normal non-shortcut encoding that has the mod-r/m byte
20:15:40 -!- tromp has joined.
20:15:42 <b_jonas> I think with the mod-r/m byte it will clear the top half of the registersso won't be a nop
20:16:21 <int-e> b_jonas: the question is whether the REX prefix does something in this case... namely turn the nop into a "proper" xchg eax,eax.
20:18:29 <int-e> (I guess it could also raise a #UD, wouldn't that be fun :) )
20:19:57 <b_jonas> int-e: no, I told you it doesn't
20:20:05 <b_jonas> even with the REX prefix, it would be a NOP
20:20:23 <b_jonas> it might be a less efficient NOP of course, but still a NOP
20:32:32 -!- tromp has quit (Remote host closed the connection).
20:33:13 <int-e> experimentally you're right
20:44:50 -!- tromp has joined.
20:46:51 <b_jonas> ``` set -e; cd tmp; >a.c echo $'#include <stdio.h>\n#include <stdint.h>\n''int main() { uint64_t x = 0xC69B455dd809C270; asm(".byte 0x90" /* one-byte NOP */: "+a"(x)); printf("x=%016lX,\n", x); return 0; }'; gcc -fdiagnostics-color=never -Wall -O a.c; ./a.out
20:46:55 <b_jonas> ``` set -e; cd tmp; >a.c echo $'#include <stdio.h>\n#include <stdint.h>\n''int main() { uint64_t x = 0xC69B455dd809C270; asm(".byte 0x87, 0xC0" /* ordinary XCHG EAX, EAX */: "+a"(x)); printf("x=%016lX,\n", x); return 0; }'; gcc -fdiagnostics-color=never -Wall -O a.c; ./a.out
20:47:41 <int-e> 0x40 0x90 is what we were discussing
20:48:43 <b_jonas> ``` set -e; cd tmp; >a.c echo $'#include <stdio.h>\n#include <stdint.h>\n''int main() { uint64_t x = 0xC69B455dd809C270; asm(".byte 0x40, 0x90" /* shortcut NOP with redundant REX prefix */: "+a"(x)); printf("x=%016lX,\n", x); return 0; }'; gcc -fdiagnostics-color=never -Wall -O a.c; ./a.out
20:51:10 <b_jonas> how do I request specifically the R8 register in a gcc extended asm statement?
21:04:35 <b_jonas> ``` set -e; cd tmp; >a.c echo $'#include <stdio.h>\n#include <stdint.h>\n''int main() { uint64_t x = 0x0912A80D0A994D81; uint64_t y = 0xC8162E5AEE063460; asm("mov %1, %%r8\n\t.byte 0x45, 0x87, 0xC0\n\tmov %%r8, %1" /* XCHG R8D, R8D */: "+a"(x),"+r"(y):: "cc","r8"); printf("x=%016lX, y=%016lX,\n", x, y); return 0; }'; gcc -fdiagnostics-color=never -Wall -O a.c; ./a.out
21:04:36 <HackEso> x=0912A80D0A994D81, y=00000000EE063460,
21:04:40 <b_jonas> ``` set -e; cd tmp; >a.c echo $'#include <stdio.h>\n#include <stdint.h>\n''int main() { uint64_t x = 0x0912A80D0A994D81; uint64_t y = 0xC8162E5AEE063460; asm("mov %1, %%r8\n\t.byte 0x41, 0x90\n\tmov %%r8, %1" /* shortcut XCHG EAX, R8D */: "+a"(x),"+r"(y):: "cc","r8"); printf("x=%016lX, y=%016lX,\n", x, y); return 0; }'; gcc -fdiagnostics-color=never -Wall -O a.c; ./a.out
21:04:41 <HackEso> x=00000000EE063460, y=000000000A994D81,
21:33:05 <b_jonas> ``` set -e; cd tmp; >a.c echo $'#include <stdio.h>\n#include <stdint.h>\n''int main() { uint64_t x = 0x0912A80D0A994D81, z; register uint64_t y asm("%r8") = 0xC8162E5AEE063460; asm(".byte 0x41, 0x90" /* shortcut XCHG RAX, R8D */: "+a"(x),"+r"(y):: "cc"); z = y; printf("x=%016lX, y=%016lX,\n", x, z); return 0; }'; gcc -fdiagnostics-color=never -Wall -O a.c; ./a.out
21:33:07 <HackEso> x=00000000EE063460, y=000000000A994D81,
21:33:33 <b_jonas> ^ that's the official answer for how to get the value to the R8 register for the asm statement, per https://gcc.gnu.org/onlinedocs/gcc-8.3.0/gcc/Local-Register-Variables.html#Local-Register-Variables
21:44:16 <b_jonas> the required syntax is strange
21:51:03 -!- xkapastel has quit (Quit: Connection closed for inactivity).
21:57:13 <esowiki> [[Pyhton (sic)]] M https://esolangs.org/w/index.php?diff=60071&oldid=60069 * Something Fawful * (+2) /* Hello World */ fixed a typo in the second program that made it output "Hhllo World!" instead of "Hello World!"
21:58:29 <fizzie> I didn't know you could include the % in a local register variable, I've only seen it as `register uint64_t y asm("r8")`.
22:01:44 <b_jonas> fizzie: the docs aren't specifically clear about this. I include the percent sign and hope that if I shouldn't include the percent then I'll get a warning or error.
22:03:22 <b_jonas> the inline asm expects at&t notation, so I expect I should name registers the way at&t notation names them
22:05:01 <fizzie> That's reasonable, although so is the argument that % is just the sigil for a register in an assembly statement and not part of the register name.
22:05:32 <fizzie> You do get an error for invalid names, so since both %r8 and r8 don't error out, I'm guessing they're treated the same.
22:08:38 <b_jonas> fizzie: I don't know any sense in which it's not part of the register name, unless you're using intel syntax, which we clearly aren't using. the rust people argue that the name of the macro is `print` rather than `print!` and the `!` is a sigil to _invoke_ the macro, which makes sense because if you want to _define_ a macro, you don't use the bang.
22:08:56 <b_jonas> I don't know a context where you refer to the register without the percent sign
22:09:10 <b_jonas> in C/C++ code with gcc or assembly code
22:12:41 <fizzie> Well, in a 'register' variable you can. :)
22:13:48 <fizzie> More seriously, the GNU as manual says "AT&T register operands are preceded by ‘%’", which you can definitely read as saying the % part is not part of the register, but part of the syntax for referring to a register.
22:14:25 <kmc> you can do intel syntax inline asm these days
22:14:49 <fizzie> Also, the canonical excample at https://gcc.gnu.org/onlinedocs/gcc-8.3.0/gcc/Extended-Asm.html#Extended-Asm puts "rdx" in the clobber list without a % prefix.
22:15:23 <fizzie> (Look for "rdtsc" on the page.)
22:15:39 <esowiki> [[Pyhton (sic)]] M https://esolangs.org/w/index.php?diff=60072&oldid=60071 * Something Fawful * (+1) /* Truth Machine */ Fixed some errors in the code here too. I probably shouldn't have tried to copy the code directly from another computer.
22:16:00 <fizzie> (I don't know what an "excample" is.)
22:16:15 <b_jonas> kmc: sure, by assembling with yasm
22:16:32 <fizzie> You can use Intel syntax with GCC as well.
22:16:48 <b_jonas> fizzie: ok, good point about that example in the manual
22:17:11 <fizzie> By switching with -masm=intel globally, or by adding the right ".intel_syntax noprefix" directives around an inline asm segment.
22:17:49 <fizzie> (Though I don't think there is a "resume whatever the previous syntax was" directive, so you can't make an inline asm segment that works both with -masm=intel and not.)
22:18:29 <fizzie> (They should have a .pop_syntax.)
22:18:50 <kmc> or like scoped to labels
22:19:05 <kmc> .intel_syntax noprefix 1f; ... 1:
22:19:08 <kmc> the numbered relative labels are tg
22:19:22 <kmc> oh, there's popsection too
22:19:24 <kmc> fizzie: youv'e seen the metadata table tricks that Linux does?
22:20:35 -!- MDude has quit (Ping timeout: 255 seconds).
22:21:13 <kmc> here's an example https://github.com/torvalds/linux/blob/v4.20/arch/arm/include/asm/assembler.h#L246-L251
22:21:48 <kmc> that macro inserts an instruction sequence x, and also writes an entry into a special section __ex_table. the linker is told with "a" to append all of these into that section
22:22:00 <kmc> and the entry refers to the address of the instruction sequence
22:22:10 <kmc> which is handled in object code using relocations in the usual way
22:22:16 <kmc> Linux uses this trick for many things
22:22:31 <kmc> this particular example, the goal is to annotate instructions which read from userspace memory
22:22:44 <kmc> so that if they fault, the kernel can return -EFAULT or whatever, instead of panicing as with a usual kernel-mode fault
22:22:46 <b_jonas> kmc: Linux used to have many dirty tricks back when gcc didn't have all the features they needed. these days less and less of them are needed.
22:23:03 <kmc> they also use it for various sorts of self modifying code
22:23:16 <kmc> for example, the kernel has a table of every single LOCK prefix in the code
22:23:32 <kmc> if a SMP-capable kernel is booted on single-core machine, it can overwrite those LOCKs with NOPs
22:23:44 <kmc> there are many forms of smc in the linux kernel
22:23:59 <kmc> in order to do tracing, debugging, and to reoptimize the same binary kernel for different CPUs at boot time
22:24:02 <kmc> b_jonas: what's even better
22:24:05 <kmc> if you hot(un)plug a CPU
22:24:10 <kmc> it will rewrite them /at runtime/
22:24:13 -!- MDude has joined.
22:24:13 <b_jonas> yeah, there was probably an intermediate time betweenm the time when everyone had non-SMP machines and when everyone had SMP machines
22:24:38 <kmc> I know debian shipped a separate -smp kernel at one point, which would avoid the need for this
22:24:47 <kmc> but it's useful in general to have a single kernel binary that works well on as many machines as possible
22:24:50 <kmc> b_jonas: I believe so
22:24:50 <b_jonas> there are machines with hotplugged cpus but only one core in a cpu?
22:25:00 <b_jonas> kmc: sure, the separate smp makes sense because there are differences other than lock prefixes
22:25:18 <b_jonas> but that was back in x86_32
22:25:21 <kmc> and of course ksplice uses self modifying code too
22:25:26 <kmc> which is how I know about thi sstuff
22:25:33 <kmc> because it also has to play nice with the OTHER forms of smc
22:25:44 <b_jonas> most x86_64 cpus have more than one core, so the non-smp kernels became irrelevant
22:26:04 <b_jonas> you might still want them in a virtualized environment
22:26:07 <kmc> smc tricks use stop_machine() which essentially gives one kernel thread full control of the machine (ignoring SMM and the other stuff that goes on below the OS layer)
22:26:17 <kmc> b_jonas: I think that's part of the justification, yeah
22:26:50 <b_jonas> and some people do run linux on underpowered arm machines
22:26:55 <b_jonas> those may still be single-cored
22:26:55 <kmc> fun fact: the PowerBook Duo had a hot-plug FPU
22:27:02 <kmc> in the dock
22:27:23 <kmc> you could use it as a graphics workstation at your desk, then take it portable and run the same code, albeit slower, with soft FPU
22:27:27 <kmc> really neat imo
22:27:37 <kmc> I guess the modern version is having a GPU on Thunderbolt or something
22:27:42 <b_jonas> features that are only ever used in servers in banking industry that have to be super-reliable
22:28:01 <b_jonas> do they have a hot-plug motherboard too?
22:28:06 <b_jonas> I don't know how that would work
22:28:32 <kmc> the powerbook?
22:28:37 <kmc> FPUs as discrete chips were common back then
22:28:50 <kmc> you would need to run some bus lines from the internal mobo to the doct through the dock connector
22:28:56 <kmc> but you'd probably need that for other things, anyway
22:29:19 <b_jonas> "run the same code, albeit slower, with soft FPU" => that was done a lot without hotplug too, on machines with optional cpus, such as the 386 and 486, where programs overwrite float operations at load time
22:29:21 <fizzie> I think Lenovo has switched to Thunderbolt-based docks, and some of those do have external GPUs, like the https://www.lenovo.com/gb/en/accessories-and-monitors/docking/universal-cable-docks-thunderbolt/Thunderbolt3-Graphics-DockUK/p/G0A10170UK
22:29:21 <kmc> the dock is a thing you slide the whole laptop into, like it's a huge tape cartridge or something :D
22:29:26 <kmc> b_jonas: right
22:29:51 <kmc> b_jonas: I think that was common on OS Classic because, even aside from this weird PowerBook, most macs didn't ship with a FPU, but many people would add one
22:29:52 <b_jonas> so that the first one and half bytes of the operation were either WAIT; ESC or INT
22:30:29 <kmc> unfortunately the 68LC040 has a hardware erratum which prevents kernel mode FPU emulation from working correctly :/
22:30:39 <b_jonas> it needn't even be a discrete chip or anything, as long as the same binary is distributed to clients with different machines
22:31:02 <kmc> as I discovered when trying to install Debian on a LC 475 back... gosh, almost 20 years ago
22:31:09 <kmc> smh, i'm old now
22:31:15 <kmc> in fact I'm older than I've ever been
22:31:18 <kmc> and now I'm older still
22:31:26 <b_jonas> oh, and it needn't even overwrite the individual calls in load time, so it doesn't need a symbol table, it can just have the emulation routines overwrite their caller
22:32:29 <kmc> the 68k mac linux bootloader is an ordinary OS Classic program which kexecs linux
22:32:52 <kmc> it relies on macos to set up some of the hardware
22:33:03 <kmc> and besides which the actual boot rom is only equipped to boot mac os
22:33:11 <kmc> (and maaaaybe A/UX)
22:34:18 -!- SomethingFawful has joined.
22:34:36 <fizzie> The PPC Mac Linux I was using ran the kernel hosted on the Mach microkernel.
22:34:39 <fizzie> https://en.wikipedia.org/wiki/MkLinux
22:35:40 <fizzie> I think the bootloader was slightly odd too.
22:35:46 <kmc> I tried that as well
22:36:20 <b_jonas> kmc: I have no problem with that unless it slows down the boot process too much. doesn't windows do something like that too these days?
22:36:43 <kmc> you know, I've noticed that every bootloader eventually grows to be an OS, which needs its own bootloader
22:36:56 <b_jonas> as in, sometimes I suspect that it pre-loads some parts of the default windows during the boot menu, at least the parts it can safely discard if you choose to boot a different OS
22:37:00 <fizzie> (I think on the iBook I could run a more regular Linux? MkLinux was just on the Performa some-number-or-another.)
22:37:05 <b_jonas> the windows bootloader that is
22:37:15 <kmc> fizzie: yeah, the G3+ OpenFirmware macs are easier to do linux
22:37:21 <kmc> I ran stock Debian on a toilet-seat iBook among others
22:37:32 <kmc> OFW can load an ELF (or whatever) image kernel easily
22:37:38 <fizzie> Right, yes, they did the OpenFirmware thing.
22:37:43 <b_jonas> "toilet-seat iBook"? what's that?
22:37:47 <kmc> b_jonas: google it
22:37:56 <esowiki> [[Pyhton (sic)]] https://esolangs.org/w/index.php?diff=60073&oldid=60072 * Something Fawful * (+14) lowercased the title.
22:38:10 <b_jonas> I don't know much about older apple hw, because they weren't too popular here
22:38:34 <b_jonas> the modern apple are more popular these days
22:38:48 <b_jonas> still not as popular as in the US, I believe
22:38:55 <fizzie> OpenFirmware has a Forth shell, it's the greatest thing.
22:40:28 <kmc> a friend of mine spent a while writing a QR code decoder in OFW forth, for OLPC
22:41:13 <kmc> they have a supported way to root the machines, but they ship locked down in order to deter theft. the idea is that you get the lock key out of band. and the easiest / cheapest way would be a qr code
22:41:22 <kmc> but I think in the end it didn't work :/
22:41:34 <b_jonas> I used loadlin on DOS to load linux. DOS is less of an operating system than the stuff they cram into boot loaders these days.
22:42:45 <kmc> you could use loadlin and then you could use other hacks to run your Linux root filesystem on FAT16 so they could coexist without partitioning
22:42:54 <SomethingFawful> okay uh, question, if I have a Python interpreter for the esolang I have recently made, would I be wanting to upload it on an external server somewhere or would I be uploading it to esolangs.org directly.
22:44:04 <shachaf> kmc: when i give up on all software should i write in c or should i make a new language first
22:44:28 <fizzie> When I was making sure my SS5 was still at least somewhat working (before giving it away), it turned out the EEPROM chip had given up, and the only way I could make it boot was to say "1 0 mkp real-machine-type 1 mkp 8 2 mkp 0 3 mkp 20 4 mkp 87 5 mkp cc 6 mkp 1d 7 mkp c0 c mkp ff d mkp ee e mkp 0 f 0 do i idprom@ xor loop f mkp" in the OpenBoot prompt on every restart.
22:44:35 <b_jonas> how large is grub2 these days?
22:44:49 <b_jonas> I hope it still fits a floppy at least
22:44:57 <kmc> that's quite a mouthful
22:45:07 <kmc> b_jonas: probably not including every single module
22:45:15 <kmc> but for a minimal boot yeah
22:45:15 <b_jonas> cna loadlin append-load a kernel that's stored on more than one floppy disk?
22:45:27 <kmc> good question
22:45:33 <b_jonas> because these days kernels don't fit floppies either
22:46:26 <fizzie> SomethingFawful: If it's of non-trivial size, it's probably a better bet to pick one of the code hosting sites (github, gitlab, bitbucket) and link to that. Or https://github.com/graue/esofiles if graue is actually still accepting pull requests.
22:46:43 <b_jonas> kmc: huh, I never tried to have linux and dos coexist without partitioning, except in as much as storing the kernel on the DOS partition
22:47:04 <b_jonas> I do know that you can use umsdos or whatever that thing is called to do that, but I don't think it's a particularly good idea
22:47:27 <b_jonas> someone came in with an on-topic question
22:48:15 <SomethingFawful> I want to say at less than 5 KiB it's size is currently qualifiable as Trivial, but we'll see when I get those last 2 functions done.
22:48:57 <b_jonas> SomethingFawful: if the interpreter isn't too large and you can and want to allow distributing it without license constraints per https://esolangs.org/wiki/Esolang:Copyrights , then you can put it on the wiki
22:49:12 <b_jonas> you can link from an externally hosted copy no matter what
22:50:42 <fizzie> I think somewhere between two and ten screenfuls of text is the boundary what's still reasonable to embed in a wiki article.
22:51:00 <fizzie> I don't know what you can do as a file upload, I think the existing ones are almost exclusively pictures.
22:51:38 <zzo38> To run DOS program and Linux on same computer I just use Linux, and then use a emulator to run the DOS programs. (There is still the use with DOS; it boots much faster than Linux or Windows, and if you use only DOS programs then it may work much better than other operating systems. Or if you want a sufficiently small operating system for some simple thing, DOS will do.)
22:51:39 <fizzie> Apparently not "almost" but "entirely", per https://esolangs.org/wiki/Special:MediaStatistics
22:52:29 <b_jonas> zzo38: well sure, that is the reasonable thing to do _now_, when we have machines with tons of memory
22:52:31 <fizzie> (Why does Bitz hello world2.jpg have application/photoshop as its MIME type, and no links?)
22:53:23 <b_jonas> fizzie: we're in esoteric-land. you could upload a polyglot that's both an image and an interpreter.
22:53:26 <zzo38> Yes, but still if you have a machine with less memory or other video card, is another thing you might use DOS for, perhaps.
22:53:55 <fizzie> b_jonas: In this case, looks like someone has uploaded a .psd file with a .jpg extension.
22:54:00 <b_jonas> zzo38: yes, that's why back when I only had such machines, I dual-booted rather than used an emulator
22:54:08 <b_jonas> also the emulator software was more buggy back then
22:54:51 <fizzie> Photoshop's native file format.
22:55:09 <fizzie> (Gimp can open it, that's why I know what's inside.)
23:04:38 -!- xkapastel has joined.
23:28:15 <esowiki> [[Pyhton (sic)]] https://esolangs.org/w/index.php?diff=60074&oldid=60073 * Something Fawful * (+108) added a link to the offical implementation.
23:32:29 -!- AnotherTest has quit (Ping timeout: 246 seconds).
23:47:51 -!- oerjan has joined.
23:52:15 -!- Essadon has quit (Quit: Qutting).
00:00:03 -!- danieljabailey has quit (Quit: ZNC 1.6.6+deb1ubuntu0.1 - http://znc.in).
00:11:44 -!- Lord_of_Life_ has joined.
00:13:48 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
00:13:48 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:23:02 <zzo38> Does DOS even have a "do not fragment" flag? Otherwise is it even possible to boot from a non-DOS kernel stored there, since the bootloader for the other operating system might not undertsand the DOS file system?
00:32:00 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:37:29 <fizzie> I don't think it does. IIRC, the SYS command specifically ensures that the two files *DOS* needs to boot (MSDOS.SYS + IO.SYS) are stored contiguously and at the start of the data area. At least on some versions.
00:38:17 <fizzie> ...I don't think it does have a "do not fragment" flag for files, that is. A lot of bootloaders know how to understand FAT, though.
00:48:06 -!- FreeFull has quit (Quit: kernel update).
00:49:17 -!- FreeFull has joined.
00:55:06 <kmc> zzo38: it would be possible with something like LOADLIN which runs as a DOS program
00:55:11 <kmc> or the LILO approach
00:55:21 <kmc> LILO, iirc can boot a kernel off ext2 which is not contiguous
00:55:34 <kmc> it stashes the fragment addresses somewhere (MBR?)
01:03:08 <fizzie> I think the sector map is in a file (/boot/map). Not sure how it finds that file though.
01:06:46 <kmc> fizzie: most likely its own sector address is in the MBR
01:06:52 <kmc> and it's small enough to be guaranteed to be one chunk
01:06:54 <kmc> but I'm not sure
01:07:10 * kmc tries to remember why /boot was traditionally separate anyway
01:11:42 <lambdabot> ENVA 250050Z 27021KT 9999 -SHRA SCT032 OVC047 07/02 Q1030 RMK WIND 670FT 28020G31KT
01:15:44 <fizzie> kmc: Problems with accessing all the sectors of large disks via BIOS functions was at least one reason.
01:16:09 <kmc> these days one has an EFI partition instead
01:16:32 <kmc> I'm pretty salty that they went with EFI rather than OpenFirmware for modern PC hardware
01:16:49 <kmc> I've never tried coding for EFI, although I know it's not that difficult and you can even target it with Rust
01:17:00 <kmc> uses PE executables, and there's a large set of system calls available
01:17:08 <kmc> I really think you could write nontrivial application software to run in EFI
01:17:18 <kmc> although I'm not sure if you have access to multiple cores or other fanciness
01:37:29 <shachaf> MULTIOCULAR CAT FACE WITH HEART-SHAPED EYES
01:37:42 <shachaf> SMILING SPIDER FACE WITH HEART-SHAPED EYES
01:38:36 <shachaf> No one has adopted MAN IN BUSINESS SUIT LEVITATING?
01:40:09 <b_jonas> zzo38: re do not fragment flag, if I understand correctly, the S attribute on files is or was interpreted by defragmenters as a sign to not move the file, as in, keep all clusters where it currently resides, and this was relied on by past bootloaders that are like lilo in that they load the system files from fixed locations,
01:40:21 <kmc> BULLET WITH BUTTERFLY WINGS
01:41:28 <b_jonas> but the boot loader of current versions of DOS actually parse the root directory and the FAT enough that this is no longer necessary, except possibly on ancient disks with sectors smaller than 512 bytes.
01:41:57 * kmc implemented FAT12 once for a course project
01:41:59 <kmc> it's really not hard
01:42:21 <b_jonas> kmc: sure, but you also have to implement fat16 to boot from a hard disk
01:42:51 <b_jonas> otoh you only have to implement the part that reads, not the part that writes, and you don't need to descend into directories, because the files needed at boot are in the root directory
01:43:55 <b_jonas> DOS can also boot from a compressed filesystem, in which case I believe the three system files will be marked such that they aren't compressed, but I don't know the details of this, because I never tried to set that up, I only made file systems other than the boot fs compressed
01:44:20 <b_jonas> there is also at least one third-party software that makes DOS support a custom file system and lets it boot from it
01:46:44 <kmc> oh, which one?
01:46:57 <b_jonas> kmc: a separate /boot is practical for various reasons. I use a separate boot because I use grub-l, which doesn't understand ext4, but my root file system is ext4. one could use a separate /boot so that the boot loader doesn't have to understand RAID, or EFI partition tables, or even access the boot disk on hardware level at, or to boot from hard disk but use an nfs mount for most of the file system, etc
01:47:33 <b_jonas> or to boot using loadlin, which uses the underlying DOS to read the kernel (and initrd), and DOS only reads FAT-12 and FAT-16
01:47:45 <kmc> for RAID servers, I like to put the bootloader on a USB stick
01:48:24 <kmc> I had a server with full disk encryption, and the USB stick had both the bootloader and the encryption key. so it was capable of unattended boot, but I could take the USB stick out and ship the rest of it cross-country without worrying about my data being read
01:48:58 <b_jonas> heck, at one point I even booted windows 95 from a floppy disk, to avoid having to set up and maintain a bootloader that can choose between booting DOS and Win95 and Linux on the same machine and hard disk.
01:49:41 <kmc> BITD i used loadlin and my 'bootloader' menu was in AUTOEXEC.BAT
01:49:45 <kmc> for Win98/Linux
01:50:04 <kmc> later on I triple booted Win98/Win2k/Linux and used NTLDR as my first bootloader
01:50:12 <b_jonas> but like you said above, boot loaders these days contain a whole operating system, so there are few things for which you'd need a separate /boot if you're willing to trust the boot loader
01:50:35 <kmc> it was surprisingly easy. you'd install LILO/GRUB into the non-master boot record, dd those 512 bytes onto the NT drive and you're ready
01:51:06 <b_jonas> kmc: just Win98/Linux is fine. that's what all the Linux distributions were geared to support, to get people into Linux. I did triple boot among DOS, Linux, and Win95OSR2, and I didn't quite trust the Win95 enough, so its boot went on the floppy
01:51:31 * kmc tries to remember if she had any other weird boot setups
01:51:53 <kmc> I've written my own MBR programs
01:51:55 <kmc> not bootloaders though
01:51:56 <shachaf> remember when you used windows nt as your kernel with linux userspace
01:51:57 <b_jonas> kmc: oh! Win98/Win2k/Linux triple book. nice.
01:52:07 <kmc> shachaf: if by "when" you mean "now"?
01:52:19 <kmc> i'm literally talking to you through mosh in WSL
01:52:38 <b_jonas> kmc: I tried too. I wrote one that just wrote a message on the screen.
01:53:00 <kmc> I switched back to Windows last year after 15 years as a die-hard Linux user
01:53:09 <kmc> this shocked my friends much more than me changing gender
01:53:30 <shachaf> kmc: if you had a single-use halting oracle what would you ask it twh
01:53:57 <kmc> how can entropy be reversed
01:54:50 <b_jonas> The grub-l setup is hopelessly obsolete. I'd have to get rid of it if I used a boot hard disk larger than two terabytes, but that might not happen soon: even if I buy larger hard disks, the boot disk will probably be one of the two I have now.
01:54:58 <kmc> what's grub-l
01:55:12 <b_jonas> kmc: it's the collective name for the grub versions with major version number 0
01:55:19 <b_jonas> any grub that isn't grub2 or grub4dos
01:55:37 <b_jonas> grub with 1 in its version number counts as grub2 before it was released
01:55:47 <kmc> so it's just old grub
01:56:31 <b_jonas> I'll probably want to switch to grub2 for my next computer even if grub-l could technically work though, as a way to introduce redundancy so that I can boot quickly if the boot hard disk dies.
01:57:30 <oerjan> `addquote <ais523_> ugh, now my Fugue hello world has got stuck in my head again
01:57:32 <HackEso> 1332) <ais523_> ugh, now my Fugue hello world has got stuck in my head again
01:58:16 <HackEso> A module is like a vector space, except with a ring instead of a field.
01:58:43 <shachaf> oerjan: what's the joke twh
01:59:01 <HackEso> 6169:2015-11-02 <oerjän> learn A module is like a vector space, except with a ring instead of a field.
01:59:48 <HackEso> A vector space is just a module over a field.
02:02:11 <HackEso> Politicians try to stay within the lie bracket: Not so many lies that voters cannot stand it, but not so few that they think you have nothing to give them.
02:02:22 <HackEso> 6174:2015-11-02 <oerjän> le/rn lie bracket/Politicians try to stay within the lie bracket: Not so many lies that voters cannot stand it, but not so few that they think you have nothing to give them.
02:02:30 <shachaf> is this entry outdated twh
02:04:25 <b_jonas> shachaf: we could amend it s/Poli/Most poli/
02:04:43 <b_jonas> it wasn't completely true in the past either, there were always some exceptions
02:05:00 <Sgeo> Who pinged me?
02:05:11 -!- SomethingFawful has quit (Ping timeout: 256 seconds).
02:05:48 <shachaf> There was an olist and a pbflist
02:06:04 <oerjan> <kmc> how can entropy be reversed <-- i think shachaf is subtly hinting that the oracle only gives one bit of answer.
02:06:06 <shachaf> We were talking about Ada, maybe you have a highlight on that?
02:07:47 <b_jonas> shachaf: the olist was almost a week ago
02:08:10 <oerjan> <shachaf> oerjan: what's the joke twh <-- hm i guess there isn't one.
02:09:02 <pikhq> kmc: Let's be honest, OS choice is _clearly_ more significant and invariant than gender, anyways
02:09:24 <b_jonas> kmc: I'm not surprised on anyone switching back to windows. windows has changed a lot, and hardware too.
02:09:34 <kmc> and there are people who dual-boot gender
02:09:36 <shachaf> oerjan: There as one, see below.
02:09:39 <kmc> b_jonas: indeed
02:09:41 <b_jonas> a lot of computer environment things changed.
02:09:46 <kmc> b_jonas: and linux has changed too, and not for the better
02:09:48 <kmc> s y s t e m d
02:09:54 <kmc> although I'm still not free, because WSL runs systemd :(
02:10:04 <b_jonas> I'm not changing to windows, but I can at least understand it better
02:10:06 <kmc> another advantage of windos is that more of the weird ham radio software runs in windows
02:10:16 <kmc> it was an easier switch than I thought
02:10:19 <shachaf> all operating systems are bad
02:10:19 <kmc> it was a slippery slope
02:10:23 <shachaf> as a result of being software
02:10:28 <kmc> got a new laptop, thought "hm I'll poke around Win10 while I decide which distro to install"
02:10:32 <kmc> "might as well get chrome"
02:10:41 <b_jonas> I was required to do a lot of things on windows for work, in my current job and my previous job too
02:10:43 <kmc> "hey this is actually usable. what, there's a tiling WM built in?"
02:10:54 <b_jonas> kmc: you could still use both windows and linux
02:10:56 <kmc> "wow it boots fast and the battery life is incredible"
02:11:03 <oerjan> <shachaf> oerjan: There as one, see below. <-- i'm not convinced i considered it a joke when writing it. or now.
02:11:05 <kmc> "let's try out this WSL thing"
02:11:05 <b_jonas> it's not like computers or disks are so expensive that you can't have both
02:11:15 <kmc> but I have literally only needed actual Linux one time
02:11:17 <kmc> and I used a VM
02:11:24 <kmc> I didn't even really need it then
02:11:32 <kmc> it was just easier than figuring out how to install adb in Windows
02:11:44 <shachaf> oerjan: Well, they were added within two minutes of each other.
02:11:57 <esowiki> [[User:Cortex/draft]] https://esolangs.org/w/index.php?diff=60075&oldid=58971 * Cortex * (-811) Blanked the page
02:12:22 <HackEso> D-modules are just modules over the ring of differential operators. Taneb invented them.
02:13:08 <b_jonas> ``` set -e; cd wisdom; find -type l -printf "%p -> %l\n" # should all of these symlinks in wisdom exist?
02:13:08 <HackEso> ./СССР -> ссср \ ./the usual suspect -> usual suspect \ ./perpetuum mobile -> perpetual motion machine \ ./r.i.p. -> rip \ ./☆ -> * \ ./h4gb4rd -> hagb4rd \ ./issue -> .doorstop \ ./the reals -> real \ ./off by two error -> off by two \ ./wolfram -> stephen wolfram
02:14:00 <HackEso> Twinkle, twinkle, little star!
02:14:58 <oerjan> shachaf: um, neither is a joke. a vector space really _is_ just a module over a field.
02:15:28 <shachaf> Neither is a joke individually, the joke is the two definitions taken together.
02:15:36 <shachaf> Circular definitions. Is the joke.
02:15:54 <esowiki> [[Pyhton (sic)]] https://esolangs.org/w/index.php?diff=60076&oldid=60074 * Something Fawful * (+95) aded categories
02:16:31 <HackEso> Applicative functors are just monoids in the category of endofunctors.
02:17:29 <b_jonas> shachaf: actually the module one is sort of a joke. just not a very good one.
02:18:37 <shachaf> oerjan: your jokes are good and you should feel good hth
02:18:59 <HackEso> 1/2:1005) <kmc> LIST OF ACRONYMS: List Integrating Some Terminology Of Fine Authentic Credibility Relating to Our New Year Media System \ 505) <fizzie> Isn't "strip nomic" just another word for all dating, though? \ 481) <monqy> game where you flip a coin but it's really really big \ 856) <kmc> i like the idea that if you name your country a Soviet Republic you automatically get the right to call up Lenin on the telephone and complain about bathroom pranks
02:19:15 <HackEso> 2/2: \ 195) <oklopol> hey speaking of young, some kinds asked me to buy some tobacco for them and i did, and then they were all likd "wow that guy's coool" when i told them i don't need their money
02:19:24 <b_jonas> I'm not sure if I even have a good joke somewhere in there. maybe the vacuum tube one isn't good either.
02:19:29 <kmc> fizzie I like your remark
02:23:09 <zzo38> Use Windows or Linux if you want (since many programs can run on both anyways), or dual-boot if you want, but I find Linux is mostly much better than Windows (although there is also stuff that both Linux and Windows do badly, as well as stuff that work better with Windows, but mostly Linux is much better).
02:23:32 <oerjan> <ais523_> there's a hungarian notation version of LOGO? <-- now i'm wondering what prefixes it uses. iirc Logo itself already uses : as a sigil
02:23:41 <pikhq> One thing I've found is that running Linux on a laptop is just hell.
02:23:53 -!- simeon28 has joined.
02:24:17 -!- simeon28 has quit (Client Quit).
02:24:25 <zzo38> You might also prefer to purchase a computer with Linux already installed. (I purchased the computer I am using now it came with Linux already installed. Although, it is not a laptop computer, but they also sell laptop computers with Linux, too)
02:25:13 -!- Sgeo_ has joined.
02:27:30 -!- Sgeo has quit (Ping timeout: 264 seconds).
02:27:54 <HackEso> scowrevs="$(/usr/bin/paste -sd'|' /hackenv/share/scowrevs)"; hg log -r "tip:0 & ! ($scowrevs)" "$@" | sed 's/\(\(^\| \)[<Itb][^ ]*\)\([^ ][^ ]\)/\1̈\3/'
02:32:43 <b_jonas> oerjan: ouch yeah, Excel can also use decimal comma instead of decimal dot, in which case three punctuation characters change, and this can be changed separately from the language
02:33:21 * oerjan is making a pun on hungarian notation in case b_jonas missed it
02:33:55 <oerjan> or, not even a pun, just a more common meaning
02:34:31 <b_jonas> oerjan: https://esolangs.org/logs/2019-02-24.html#lkj
02:35:05 <oerjan> um, i literally quoted that
02:35:06 <b_jonas> oerjan: also it gets boring after a while. try the "Hungry" pun, in case I haven't heard that.
02:35:44 <b_jonas> or maybe something about reverse polish notation
02:36:04 -!- b_jonas has quit (Quit: leaving).
02:36:11 <oerjan> i think you meant to link to a later comment that i hadn't yet got to. or should have.
02:42:30 -!- galaxie has left.
02:42:42 <HackEso> Ostrich used to be a large middle European empire in frequent conflict with Turkey. After a famine it sort of split into Ostrich/Hungry. Alas its policy of keeping its head in the sand did not get it through the Great War, and with its final attempts to take flight failing, it ended up cut into several pieces.
02:44:15 -!- xkapastel has quit (Quit: Connection closed for inactivity).
03:14:40 <kmc> pikhq: what linux laptop problems do you have
04:00:43 -!- danieljabailey has joined.
04:47:06 -!- dingwat has quit (Quit: Connection closed for inactivity).
04:53:34 -!- MDude has quit (Ping timeout: 250 seconds).
05:01:53 <kmc> i haven't had problems in a long time, but almost all my laptops have been thinkpads and I think the rest at least had Intel WiFi cards
05:02:18 -!- FreeFull has quit (Quit: Off to sleep).
05:02:23 <shachaf> Seems to work OK on my Dell laptop
05:03:11 <kmc> ndiswrapper... those were the dark days
05:04:00 <shachaf> going to go edit XF86Config for old times' sake
05:04:13 <kmc> shachaf: don't screw up your modelines
05:04:16 <kmc> or your monitor might explode
05:04:30 <shachaf> ubuntu only works with no xorg.conf file
05:04:42 <shachaf> if i make a file, no matter what i put in it, x just doesn't start
05:04:54 <shachaf> even if i ask it to generate the default file that's supposed to be what it does anyway
05:05:04 <kmc> do you know why?
05:05:10 -!- nfd9001 has joined.
05:05:17 <pikhq> TBH, these days I just use Windows on a laptop with WSL, and mosh to a full Linux system as I need it.
05:05:19 <shachaf> and every time i mess with the video settings things end up worse than before
05:05:27 <kmc> pikhq, same
05:05:31 <nfd9001> does anyone here know of any generalized F-algebra based languages?
05:05:32 <shachaf> the year of linux on the desktop
05:05:44 <kmc> I'm pretty impressed with WSL
05:05:46 <nfd9001> Like, you may only declare algebras and their carriers
05:05:55 <kmc> it can't have been easy to implement most of the linux kernel syscall api
05:06:14 <kmc> the only non-graphical program I've found that doesn't work is GNU Screen
05:06:18 <nfd9001> I still usually use a VM, but WSL is quite nice
05:06:21 <kmc> and I'm 100% willing to blame Screen for that
05:06:35 <shachaf> I don't know what that would be but I like F-algebras
05:07:51 <HackEso> nfd9001: 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.)
05:07:52 <nfd9001> you've probably seen me on #haskell once or twice?
05:08:47 <nfd9001> i've been a passive observer of esolangs before, written a location-based BF, and i have something like half a spec together for a language based on Linda
05:08:57 <nfd9001> which i guess just looks like a weird platonic Erlang
05:09:17 <nfd9001> never was too active here though
05:28:48 <pikhq> kmc: musl reveals a few bugs in it.
05:29:15 <esowiki> [[Increment]] N https://esolangs.org/w/index.php?oldid=60077 * Cortex * (+492) Created page with "'''Increment''' == Commands == {| class="wikitable" |- ! Character !! What it does |- | Any character except the ones listed below || Increment the accumulator by the charact..."
05:29:31 <pikhq> Though the main one I know is that it has the wrong x87 settings, and since musl's libm uses long doubles, it actually ends up showing that.
05:30:30 <zzo38> nfd9001: What is the half of the spec so far?
05:31:11 <kmc> pikhq: Screen has the wrong settings? in what sense
05:31:19 <nfd9001> Hah, it's handwritten, sec
05:31:30 <pikhq> kmc: No, I mean WSL has this bug
05:31:35 -!- arseniiv has joined.
05:33:56 <nfd9001> zzo38: https://cdn.discordapp.com/attachments/465424725146075136/549463743395004416/unknown.png https://cdn.discordapp.com/attachments/465424725146075136/549463882922721311/unknown.png no discussion of syntax in here yet, but i can get to the general idea
05:35:14 <nfd9001> Basically, you should be imaging a Linda-like tuplespace on which abstract processes are trying to pull tuples that match patterns. Their output is just committing more tuples to the bag
05:36:26 <nfd9001> So ("word", x, y, z) -> (z, "otherword", x, x) could describe a machine that matches a tuple where x, y, and z are free variables, then sticks them into the pattern of its output on the right
05:36:39 <nfd9001> and it goes right back into the same bag
05:37:14 <nfd9001> I imagine an efficient compiler would try to inline work, and then it'd all be managed from "the bag" by a work-stealing scheduler
05:38:43 <nfd9001> side effects/atomic actions could be performed by passing tuples to "special machines" you pass arguments and a callback name
05:39:11 <nfd9001> like (cat, a, b, callback) -> (callback, a+b)
05:40:42 <zzo38> OK, I can see what you mean now
05:41:17 <nfd9001> it's far from a fully-baked idea
05:41:36 <nfd9001> probably could use some sort of a combinator
05:47:03 <zzo38> Possibly multiple tuples in either side of the definition (especially if machines are selected at random)?
05:48:20 <nfd9001> Or we could instead explicitly make curried machines, ie. matching on one machine creates another machine which does its work and then stops watching the bag
05:48:59 <zzo38> OK, you could do that then if you want to do, I suppose
05:50:10 <nfd9001> Either way, I'd imagine that a machine can only wait on one tuple match at once, so as to avoid deadlock
05:55:33 <nfd9001> Or we can have some machine that can glom together two tuples
05:56:07 <nfd9001> Whichever way you slice it, it kind of hurts the platonic beauty of the thing. I can't really decide which way to go
05:56:25 <nfd9001> I'm ok with the idea of one machine outputting multiple tuples, conceptually. It'd make perfect sense in Linda
05:58:12 <nfd9001> I'd kiiiiiinda lean towards curried machines being the prettiest solution (maybe then offering uncurried machines as syntactical sugar)
05:58:27 <nfd9001> seems best that i write all that down before I start implementing, haha
05:59:15 <zzo38> Yes, write down before implementing, perhaps write it on the computer. Yes, curried could do
06:02:13 <shachaf> Is this still the F-algebra thing?
06:02:25 <shachaf> imo T-algebras are where it's at
06:02:29 <nfd9001> Nah, this is an older idea I had
06:03:29 <oerjan> nfd9001: shouldn't a language based on Linda be anything _but_ platonic hth
06:04:11 <nfd9001> oerjan: i think i'll literally use a Linda implementation as a backend
06:06:08 <nfd9001> shachaf: hahah DO you know me?
06:06:41 <HackEso> Come and dance and love the fish! Mister Disco summoned it.
06:06:50 <nfd9001> Haskell programmers pronounce Klesli composition "fish"
06:07:23 <lambdabot> ray says: enlarge your kleisli arrow, please the category ladies
06:07:31 <lambdabot> ray says: enlarge your kleisli arrow, please the category ladies
06:07:39 <shachaf> @forget ray enlarge your kleisli arrow, please the category ladies
06:07:42 <lambdabot> edwardk says: i'm MUCH happier with a comonad that lives in the kleisli category of some monad, or a monad that lives in the cokleisli category of a comonad, than I am with a distributive law that
06:07:42 <lambdabot> all it can do is ensure that things are 'maximally terrible' in terms of how much work you do
06:08:02 <lambdabot> shachaf says: <Tekmo> Then you just compose them <shachaf> Uh-oh, Tekmo is going to >=> <Tekmo> using Kleisli composition
06:09:17 <nfd9001> shachaf: where'd you come up with Bellingham? stalking my ip/hn/reddits/github/whatever?
06:09:32 <shachaf> Yes, trying to figure out if I know you.
06:09:39 <nfd9001> not like this nick isn't totally transparent
06:10:02 <nfd9001> my name's right on my github
06:10:43 <pikhq> No fun, your name should be [redacted]
06:11:15 <shachaf> I guess I shouldn't say personally identifying things in a public channel anyway, sorry.
06:11:33 <oerjan> Redac, Ted in publication lists
06:11:34 <pikhq> Yeah, not everyone's okay with that
06:11:46 <pikhq> Particularly one that's publicly logged
06:18:44 <pikhq> Going pretty well, really
06:28:26 -!- tromp has quit (Remote host closed the connection).
06:46:21 <esowiki> [[Thue-Mirr]] M https://esolangs.org/w/index.php?diff=60078&oldid=59784 * Salpynx * (+1) spacing
07:04:56 -!- tromp has joined.
07:09:38 -!- tromp has quit (Ping timeout: 250 seconds).
07:13:22 -!- chal_ has joined.
07:19:54 <esowiki> [[User:Cortex]] https://esolangs.org/w/index.php?diff=60079&oldid=59925 * Cortex * (+16)
07:22:38 <esowiki> [[Joke language list]] https://esolangs.org/w/index.php?diff=60080&oldid=59944 * Cortex * (+43)
07:29:40 <esowiki> [[Talk:Thue-Mirr]] N https://esolangs.org/w/index.php?oldid=60081 * Salpynx * (+2036) Hello World, and termination
07:55:16 -!- oerjan has quit (Quit: Nite).
07:57:21 -!- tromp has joined.
08:36:10 -!- chal_ has quit (Quit: Page closed).
09:15:56 -!- xkapastel has joined.
09:42:29 -!- AnotherTest has joined.
11:01:58 <orin> I have decided rather than figuring out which characters I need to display next to a placeholder ◌
11:02:17 <orin> I will display all characters next to a ◌
11:02:22 <shachaf> orin: how do the cool kids render text nowadays twh
11:02:33 <shachaf> do they use signed distance fields
11:02:47 <Taneb> shachaf: charcoal on wood
11:03:31 <HackEso> Char is a prominent component of charcoal.
11:05:29 <orin> https://imgur.com/w0VTpPD
11:06:13 <orin> my bdf edit program is almost perfect
11:08:00 <shachaf> bdf = boring distance fields?
11:10:13 <orin> Bitmap Distribution Font or something
11:10:21 <orin> it's a font format
11:11:10 <orin> https://en.wikipedia.org/wiki/Glyph_Bitmap_Distribution_Format
11:15:37 <shachaf> i heard bézier curves are where it's at, though
11:15:58 <Taneb> Hard to do in a low-resolution bitmap
11:16:27 <orin> also hard to display in a terminal
11:17:06 <orin> even the "hi res" version above the main editing field is cheating using braille
11:17:37 <shachaf> Why are you displaying in a terminal?
11:20:31 <orin> https://paste.ee/p/BjY2I
11:20:44 <orin> shachaf: so I can edit my font in a terminal
11:24:27 <orin> shachaf: so that it can be the only font by terminals, for terminals
11:26:51 <Taneb> orin: will it work on my receipt printer?
11:28:51 <orin> Taneb: might work
11:29:31 <orin> not sure what format recipt printers take their fonts in
11:33:36 <orin> but I would think 16x9 would be a pixel size they would support
11:39:30 -!- xkapastel has quit (Quit: Connection closed for inactivity).
12:11:53 -!- Lord_of_Life_ has joined.
12:14:53 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
12:14:53 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
13:23:00 -!- xkapastel has joined.
14:18:37 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60082&oldid=60015 * A * (+296) /* Continuation on the above by User:Helen */
14:21:50 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60083&oldid=60082 * A * (+80) /* The attempt will not work, unfortunately */
14:22:39 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60084&oldid=60083 * A * (+1) /* The attempt will not work, unfortunately */
14:48:30 -!- wob_jonas has joined.
14:48:33 <wob_jonas> `bobadventureslist http://bobadventures.comicgenesis.com/d/20190223.html
14:48:34 <HackEso> bobadventureslist http://bobadventures.comicgenesis.com/d/20190223.html: b_jonas
15:04:03 -!- MDude has joined.
15:18:37 -!- tromp has quit (Remote host closed the connection).
15:32:42 -!- xkapastel has quit (Quit: Connection closed for inactivity).
15:37:08 -!- danieljabailey has quit (Read error: Connection reset by peer).
15:46:46 -!- tromp has joined.
16:31:47 -!- Essadon has joined.
17:03:39 -!- xkapastel has joined.
17:19:58 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
17:25:50 -!- Phantom_Hoover has joined.
17:25:50 -!- Phantom_Hoover has quit (Changing host).
17:25:50 -!- Phantom_Hoover has joined.
18:05:00 -!- AnotherTest has quit (Ping timeout: 272 seconds).
18:08:42 -!- tromp has quit (Remote host closed the connection).
18:23:33 -!- dingwat has joined.
18:29:00 <int-e> . o O ( iff and only iff )
18:33:22 <orin> At some point I shoudl refactor my font processing tools so they are more generic
18:33:58 <orin> for example, not hardcoding the size of the font at 9 by 16
18:34:41 -!- arseniiv has quit (Ping timeout: 255 seconds).
18:36:24 <zzo38> Yes, you should probably allow other sizes
18:36:48 <zzo38> Does it support 16-bit characters or only 8-bit characters?
18:37:21 <orin> zzo38: currently processes everything as 32-bit encoding numbers
18:38:04 <orin> but there is an arbitrary limit at 0x20000 in my editor
18:39:02 <orin> the limit shoudl probaby be something else
18:39:16 <orin> what's the maximum unicode code point
18:39:40 -!- tromp_ has joined.
18:40:37 <orin> the BDF format doesn't actually specify what the encoding is though
18:40:51 <zzo38> Yes, although you might want to use some coding other than Unicode. The .pcf format supports 16-bit characters, and the X font system also does (although maybe .bdf allows any number of characters; I don't know)
18:41:30 <orin> .bdf uses a text format with decimal numbers for code points so theoretically it could be any number
18:41:49 <zzo38> orin: Yes, and that is why 0x10FFFF is perhaps too low (although in order to support Unicode, it should be at least that high)
18:42:19 <zzo38> Still you may limit it to 32-bit numbers, even if the file format allows higher numbers.
19:00:37 -!- rain1 has quit (Quit: WeeChat 1.6).
19:03:50 -!- rain1 has joined.
19:07:56 -!- rain1 has quit (Client Quit).
19:09:57 -!- rain1 has joined.
19:13:22 -!- xkapastel has quit (Quit: Connection closed for inactivity).
19:21:45 <zzo38> I had a idea if in some roguelike game that you can fly, but, while flying, you cannot go through doors (even if open), pick up objects, make melee attacks against opponents on the ground, and maybe also you cannot cast some spells, but you can go faster and go over water and statues (but not walls), and it takes time to go up or to land.
19:30:37 -!- b_jonas has joined.
19:34:07 -!- aloril_ has joined.
19:37:32 -!- aloril__ has quit (Ping timeout: 245 seconds).
19:46:43 <b_jonas> correct, in particular in a font you could assign a higher number to a glyphs that isn't the default glyph for any character, but is either a variant for a character, or a ligature. but practically, you probably can't encode those to a BDF/PCF font in a way that terminals will use it, so that only comes up in OTF and other fonts.
19:50:01 <b_jonas> Question. Mozart's ''Die Entführung aus dem Serail'' opera is very popular. "Pedrillo" is the name of a good guy in it. How come then that that name is virtually unused for anything else? Character names in popular fiction works usually get picked up and used as named for real people.
19:50:35 <b_jonas> (It's not the only such name from Mozart's operas, but the one where it seems the most strange.)
20:12:46 -!- FreeFull has joined.
20:13:13 <b_jonas> Oh, another question. Is there a theatre play with no scenes, played entirely with the curtains closed?
20:30:39 -!- bbb_ has joined.
20:31:15 -!- bbb_ has changed nick to Guest16203.
20:31:37 -!- Guest16203 has changed nick to ijkajskajkjkjkj.
20:31:49 -!- ijkajskajkjkjkj has changed nick to Vala.
20:32:01 -!- Vala has changed nick to vala_iksan.
20:33:17 <fizzie> b_jonas: Is that like the theatre equivalent of 4'33"?
20:33:54 <b_jonas> fizzie: no, I don't think so
20:34:07 -!- vala_iksan has changed nick to me.
20:34:10 <b_jonas> fizzie: it doesn't have to be silent or lacking visuals. actors can come in front of the curtain, lit,
20:34:31 <b_jonas> and actors can speak audibly in front of the curtain, or even behind the curtain, although the latter can be harder
20:34:36 -!- me has changed nick to Guest10559.
20:34:39 -!- Guest10559 has changed nick to hello.
20:34:45 -!- hello has changed nick to jhjchfseucfnher.
20:34:50 <fizzie> Oh, I see, I interpreted "scenes" more broadly.
20:34:52 -!- jhjchfseucfnher has changed nick to iiiiiikkiiiiiii.
20:35:02 <b_jonas> it's just that all of it is done as if it were an introduction or transmission between scenes
20:36:00 -!- iiiiiikkiiiiiii has changed nick to iqi.
20:36:21 -!- iqi has changed nick to q2.
20:36:24 <b_jonas> a possible equivalent of 4'33" would be a play or opera with no _acts_, where the audience doesn't even enter the theater hall, they only have conversations with other people on the corridors of the theater
20:38:18 -!- q2 has changed nick to a35.
20:38:33 -!- xkapastel has joined.
20:38:54 <a35> i've been using duolingo lately
20:39:16 <kmc> i like this idea
20:39:33 <b_jonas> I have the feeling that the no act one has been done already
20:39:49 <b_jonas> the no act one probably hasn't been done
20:39:55 <kmc> charge for tickets, people come in wearing their fancy theater clothes, buy drinks, take their seats, lights go down, lights go right back up, intermission, repeat
20:39:58 <b_jonas> I mean the no scene one probably has been done
20:40:07 <kmc> sounds like a good racket
20:40:21 <b_jonas> there are definitely theater plays with only one actor, I've even seen one
20:40:45 <b_jonas> and there's at least one opera with only two solo singers incidentally
20:42:21 <a35> xxxcxKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
20:42:29 <a35> outputs idk newlines
20:42:45 <a35> if anybody is actually using esolangs.org here
20:46:30 <a35> If your ↄ program fails to execute, what language is it?
20:47:50 <b_jonas> a35: we don't use that site, except for the channel logs. we pretty much keep it as a trashcan so that the people who want to write down their really bad ideas have some place to put it, rather than vandalizing wikipedia or some other important site.
20:48:44 <a35> i keep it in microsoft word
20:48:58 <b_jonas> plus I think a few people use the bfjoust hill there
20:49:48 <b_jonas> but ais declared that the hill is now pretty much optimized
20:50:33 <a35> ooh, do you hear that
20:53:45 -!- AnotherTest has joined.
20:55:51 <a35> ok im gonna play nethack im getting bored
20:55:56 -!- a35 has quit.
21:09:21 <b_jonas> and make everything overly general
21:15:59 <orin> what I need is a program that I can pipe things through that will put a timestamp on each line
21:16:27 <kmc> moreutils has that
21:16:29 <kmc> it's called ts, iirc
21:16:33 <orin> is there a standard unix program that can do this or
21:17:03 <b_jonas> orin: perl -pe '$_=time()."\t".$_'
21:18:59 <b_jonas> it gets a bit uglier if you want to use fractions of a second or a specific date format though
22:07:47 -!- Sgeo_ has quit (Read error: Connection reset by peer).
22:10:10 -!- Sgeo has joined.
22:10:17 -!- Lymia has quit (Remote host closed the connection).
22:10:35 -!- Lymia has joined.
22:10:40 -!- imode has joined.
22:21:07 <b_jonas> temperature is predicted to be above zero for the next four days now.
22:21:24 <b_jonas> there's still a little wind, but not too bad
22:32:53 -!- imode has quit (Ping timeout: 246 seconds).
22:48:04 -!- Phantom_Hoover has quit (Remote host closed the connection).
22:54:10 -!- Remavas has joined.
22:54:23 -!- Remavas has quit (Remote host closed the connection).
22:54:28 -!- moei has quit (Quit: Leaving...).
23:18:38 -!- b_jonas has quit (Quit: leaving).
23:22:36 <esowiki> [[User:Plugnburn]] https://esolangs.org/w/index.php?diff=60085&oldid=36923 * Plugnburn * (+113) Added EcmaByter reference
23:24:17 <esowiki> [[BytePusher]] https://esolangs.org/w/index.php?diff=60086&oldid=58086 * Plugnburn * (+157) /* Machines */ added EcmaByter
23:41:08 -!- Essadon has quit (Quit: Qutting).
23:47:19 <fizzie> Here it was the warmest February day in the UK since ever.
23:47:47 <fizzie> Four of the met office measurement stations recorded >= 20°C.
23:48:28 <fizzie> BBC has some nice "a year ago vs. today" picture pairs at https://www.bbc.co.uk/news/uk-47360952
23:53:47 -!- AnotherTest has quit (Ping timeout: 240 seconds).
00:14:14 -!- Lord_of_Life_ has joined.
00:15:27 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
00:15:27 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:21:42 -!- imode has joined.
00:42:08 -!- tromp_ has quit (Ping timeout: 245 seconds).
00:55:20 -!- tromp has joined.
00:55:56 -!- tromp has quit (Remote host closed the connection).
00:56:10 -!- tromp has joined.
00:57:26 -!- tromp has quit (Remote host closed the connection).
01:14:43 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=60087&oldid=59990 * Cortex * (+108)
01:29:08 -!- imode has quit (Ping timeout: 255 seconds).
01:37:24 -!- tromp has joined.
01:41:32 -!- tromp has quit (Ping timeout: 246 seconds).
02:06:42 <kmc> ts supports custom formats and output to microseconds
02:14:05 -!- tromp has joined.
02:14:32 -!- tromp has quit (Remote host closed the connection).
02:14:45 -!- tromp has joined.
02:16:09 -!- tromp has quit (Remote host closed the connection).
02:23:20 -!- imode has joined.
02:26:49 <shachaf> How should coroutines work if you wanted them to be really efficient?
02:26:57 <shachaf> I'm thinking about it and the details are actually tricky.
02:27:03 <shachaf> I wonder whether anyone's done it properly.
02:28:16 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:39:26 <kmc> shachaf: well, in some cooperative RTOSes, you are only allowed to yield in main()
02:39:34 <kmc> (or some rule morally equivalent to that)
02:39:58 <kmc> so there's a tight bound on the per-coroutine stack size
02:40:13 <kmc> anyway, can you elaborate?
02:42:06 <shachaf> So there are a bunch of different use cases, but let's say we're talking about asynchronous I/O.
02:42:37 <shachaf> If you want to write a complicated thing that does asynchronous I/O, you can write a state machine by hand.
02:42:55 <shachaf> Or you can make small cooperative threads with full stacks of their own.
02:43:12 <shachaf> Which is nice but kind of wasteful with respect to memory use and unnecessary cache misses and so on.
02:43:53 <shachaf> If you have compiler support, you can maybe have it generate something like the state machine for you, and do liveness analysis and everything and make it nice.
02:44:03 <shachaf> But I'm wondering about the details of how it should work.
02:44:18 <shachaf> Especially when you have asynchronous things that call other asynchronous things and so on.
02:47:02 <shachaf> The coroutine state machine state is effectively a second stack, used only for async state
02:47:49 <shachaf> This is good because the stack is smaller and you only use it for things that really need to be saved (your regular stack is in cache so you don't want to switch stacks completely).
02:48:08 <kmc> the question then is could you sensibly tell the compiler which things don't need to be saved
02:48:21 <kmc> or would that be a nightmare
02:48:57 <shachaf> It should be able to figure it out?
02:49:22 <shachaf> If you tag your async functions then only their variables that are saved across yield calls need be saved.
02:54:09 -!- tromp has joined.
02:57:21 -!- oerjan has joined.
02:58:32 -!- tromp has quit (Ping timeout: 246 seconds).
03:10:34 -!- FreeFull has quit.
04:06:12 <esowiki> [[Thue-Mirr]] https://esolangs.org/w/index.php?diff=60088&oldid=60078 * Salpynx * (+236) I made an interpreter to test my "Stretching-the-Truth"-machine
04:07:59 <shachaf> kmc: Man, this is trickier than I thought.
04:08:07 <shachaf> do you have good ideas twh
04:10:37 <kmc> I don't do good ideas
04:10:41 <kmc> only bad ones
04:10:47 <kmc> bad advice for a price
04:13:09 <kmc> varies according to circumstance
04:38:41 -!- tromp has joined.
04:42:47 -!- tromp has quit (Ping timeout: 240 seconds).
04:59:36 -!- S_Gautam has joined.
05:24:05 <kmc> do you have any cake
06:13:35 <esowiki> [[Special:Log/upload]] upload * Salpynx * uploaded "[[File:Pentagraph.png]]"
06:24:23 <esowiki> [[Talk:Thue-Mirr]] https://esolangs.org/w/index.php?diff=60090&oldid=60081 * Salpynx * (+869) Pentagraph program, graphing Thue-Mirr "chaos"
06:26:45 -!- tromp has joined.
06:31:05 -!- tromp has quit (Ping timeout: 255 seconds).
06:33:33 -!- tromp has joined.
06:34:01 -!- tromp has quit (Remote host closed the connection).
06:34:15 -!- tromp has joined.
06:35:56 -!- tromp has quit (Remote host closed the connection).
06:52:15 -!- arseniiv has joined.
07:06:55 -!- tromp has joined.
07:09:17 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
07:13:05 -!- tromp has quit (Ping timeout: 268 seconds).
07:30:29 -!- imode has quit (Ping timeout: 246 seconds).
07:42:09 -!- tromp has joined.
07:49:08 -!- oerjan has quit (Quit: Nite).
07:57:00 <esowiki> [[Talk:BytePusher]] https://esolangs.org/w/index.php?diff=60091&oldid=52813 * Plugnburn * (+171) /* (Virtual) Machines */
08:17:37 -!- tromp has quit (Remote host closed the connection).
08:18:25 -!- tromp has joined.
08:22:17 -!- tromp has quit (Remote host closed the connection).
08:22:33 -!- tromp has joined.
09:25:26 -!- arseniiv has quit (Read error: Connection reset by peer).
09:25:26 -!- arseniiv has joined.
09:27:26 -!- trnv2 has joined.
09:28:09 -!- arseniiv_ has joined.
09:30:05 -!- 17WABYY79 has joined.
09:30:05 -!- arseniiv has quit (Read error: Connection reset by peer).
09:30:05 -!- 17WABYY79 has quit (Read error: Connection reset by peer).
09:30:05 -!- trn has quit (Ping timeout: 245 seconds).
09:31:00 -!- trnv2 has changed nick to trn.
09:33:23 -!- arseniiv_ has changed nick to arseniiv.
09:46:37 -!- AnotherTest has joined.
12:12:59 <esowiki> [[Special:Log/newusers]] create * Edible Melon * New user account
12:13:57 -!- Lord_of_Life_ has joined.
12:16:41 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
12:16:46 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:25:25 -!- nfd has joined.
12:27:41 -!- AnotherTest_ has joined.
12:30:24 -!- nfd9001 has quit (Ping timeout: 246 seconds).
12:30:24 -!- heroux has quit (Ping timeout: 246 seconds).
12:30:29 -!- rain1 has quit (Ping timeout: 255 seconds).
12:30:29 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
12:30:29 -!- AnotherTest has quit (Ping timeout: 255 seconds).
12:30:30 -!- bobby has quit (Ping timeout: 255 seconds).
12:30:31 -!- AnotherTest_ has changed nick to AnotherTest.
12:30:33 -!- heroux has joined.
12:30:34 -!- wob_jonas has joined.
12:30:47 <wob_jonas> for reference, see https://esolangs.org/logs/2018-12.html#lYfc the previous discussion on how to implement coroutines
12:31:57 -!- rain1 has joined.
12:32:26 -!- bobby has joined.
12:33:32 -!- Lord_of_Life has joined.
12:38:23 -!- S_Gautam has joined.
12:47:01 -!- Essadon has joined.
12:47:30 -!- Essadon has quit (Max SendQ exceeded).
13:10:04 -!- xkapastel has joined.
13:27:00 -!- Vorpal has quit (Ping timeout: 257 seconds).
13:34:49 -!- grumble has quit (Quit: in lieu of the innuendo in the end know my intent though).
13:35:39 -!- grumble has joined.
14:35:00 -!- Sgeo_ has joined.
14:36:17 -!- Sgeo has quit (Ping timeout: 245 seconds).
14:40:05 -!- Soni has quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.).
14:41:54 -!- Soni has joined.
14:57:32 -!- AnotherTest has quit (Ping timeout: 245 seconds).
15:06:43 -!- Sgeo__ has joined.
15:07:40 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
15:09:47 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
16:49:47 <esowiki> [[User:OdinSmodin]] N https://esolangs.org/w/index.php?oldid=60092 * Areallycoolusername * (+26) Created page with "I lost this account. Heck."
16:49:48 -!- xkapastel has quit (Quit: Connection closed for inactivity).
17:54:15 -!- xkapastel has joined.
18:33:42 -!- Phantom_Hoover has joined.
18:33:42 -!- Phantom_Hoover has quit (Changing host).
18:33:42 -!- Phantom_Hoover has joined.
18:40:31 -!- AnotherTest has joined.
18:41:03 -!- FreeFull has joined.
19:03:57 -!- arseniiv has quit (Ping timeout: 258 seconds).
19:19:31 -!- b_jonas has joined.
19:35:32 <b_jonas> I just payed online with debit card through an online payment website that has a fallback to allow paying without javascript. I think this is a first.
19:44:39 -!- tromp has quit (Remote host closed the connection).
20:04:31 -!- 59NAAJ5ZK has joined.
20:19:20 -!- sftp has quit (Ping timeout: 268 seconds).
20:20:15 -!- sftp has joined.
20:28:06 -!- Lord_of_Life has quit (Excess Flood).
20:28:21 -!- Lord_of_Life has joined.
20:29:45 <Taneb> Can someone recommend me a new rubik's cube
20:33:15 <int-e> . o O ( get a megaminx )
20:36:37 <Taneb> int-e: I'm thinking something with an obvious isomorphism to the original
20:38:19 <int-e> Uh, one can buy 17x17x17 cubes now? Crazy...
20:39:41 <int-e> Anyway, I know too little. Stickerless is nice but that doesn't really narrow it down much.
20:41:26 <int-e> isomorphic, eh... there's the mirror cube variant (which I imagine would be really awkward to handle)
20:42:39 <int-e> But apparently that doesn't stop people from offering speed cubing variants of those... "Shengshou Mirror Speed Cube"
20:43:15 <int-e> https://images-eu.ssl-images-amazon.com/images/I/512Tno1siWL._AC_US218_.jpg ... I guess that's the standard checkerboard pattern
20:45:33 <Taneb> int-e: basically I'm looking for a 3x3x3 cube that isn't a really stiff one I bought in a toy store whose stickers are coming off
21:03:03 <b_jonas> Taneb: ask #rubik on this irc network, they can give good advice about that
21:04:25 <b_jonas> Taneb: I bought two decent cubes last year, the one I prefer is "Quyi TheValk 3"
21:04:50 <b_jonas> note that "3" is the version number, not size
21:04:58 <esowiki> [[User:Cortex]] https://esolangs.org/w/index.php?diff=60093&oldid=60079 * Cortex * (+323)
21:29:33 <esowiki> [[YesNoMaybeUnknown]] N https://esolangs.org/w/index.php?oldid=60094 * Cortex * (+1365) Created page with "'''YesNoMaybeUnknown''' is an esolang created by [[User:Cortex|]] using quaternary digits (or quits). These 4 values are represented as: * ? (unknown) * 0 (no) * (maybe) *..."
21:30:00 <esowiki> [[User:Cortex]] https://esolangs.org/w/index.php?diff=60095&oldid=60093 * Cortex * (+24)
21:39:02 <kmc> oh i have a mirror cube!
21:39:06 <kmc> (or had; I haven't seen it in a while)
21:39:22 <kmc> it is definitely more difficult to handle
21:39:26 <kmc> and it looks way cool
21:40:00 <kmc> I first encountered one while drunk at a New Year's party and it became an object of obsession for a little while
21:42:22 <shachaf> I think I first encountered one at your house.
21:47:54 <Taneb> My brother's girlfriend got me a cube whose faces change colour depending on the light
22:16:10 <kmc> Taneb: that's neat
22:28:02 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
22:44:10 -!- AnotherTest has quit (Ping timeout: 268 seconds).
22:57:46 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:11:51 -!- 59NAAJ5ZK has quit (Remote host closed the connection).
23:21:39 -!- b_jonas has quit (Quit: leaving).
23:51:23 -!- tromp has joined.
23:55:31 -!- tromp has quit (Ping timeout: 246 seconds).
00:14:05 -!- Lord_of_Life_ has joined.
00:15:28 -!- hakatashi1 has quit (Remote host closed the connection).
00:15:49 -!- hakatashi has joined.
00:16:58 -!- Lord_of_Life has quit (Ping timeout: 272 seconds).
00:17:01 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
01:44:08 -!- FreeFull has quit.
02:10:25 <esowiki> [[ESOPUNK/Commands]] https://esolangs.org/w/index.php?diff=60096&oldid=57713 * Blacksilver * (+54) ;
02:13:55 <esowiki> [[ESOPUNK/Commands]] https://esolangs.org/w/index.php?diff=60097&oldid=60096 * Blacksilver * (+88) C example for REPL
04:10:13 <esowiki> [[Special:Log/newusers]] create * N9netyn9ne * New user account
04:11:48 -!- lllllllllwith10l has joined.
04:12:06 -!- lllllllllwith10l has quit (Client Quit).
04:19:48 -!- xkapastel has quit (Quit: Connection closed for inactivity).
05:04:49 <Sgeo__> Do any copies of the old esoteric Minecraft world exist?
05:05:12 -!- tromp has joined.
05:09:28 -!- tromp has quit (Ping timeout: 246 seconds).
06:12:24 -!- arseniiv has joined.
06:53:23 -!- tromp has joined.
06:54:35 -!- oerjan has joined.
06:58:08 -!- tromp has quit (Ping timeout: 244 seconds).
07:28:50 -!- oerjan has quit (Quit: Nite).
07:46:25 -!- tromp has joined.
08:15:02 <shachaf> ais523: So the nice thing about C lvalues is that you can syntactically see whether something is being copied.
08:15:11 <shachaf> That's the thing I don't like about ALGOL 68 style coercions, I guess.
08:52:54 -!- bobby has quit (Ping timeout: 268 seconds).
08:54:30 -!- bobby has joined.
09:02:18 -!- bobby has quit (Ping timeout: 258 seconds).
09:02:37 -!- bobby has joined.
09:47:53 -!- AnotherTest has joined.
11:10:25 <orin> . o O (In the future, "crispy" will be a slur against genetically modified people, because of CRISPR)
11:30:41 -!- sftp has quit (Ping timeout: 268 seconds).
11:33:56 -!- sftp has joined.
12:15:30 -!- sftp has quit (Ping timeout: 250 seconds).
12:16:11 -!- Lord_of_Life_ has joined.
12:17:40 -!- Lord_of_Life has quit (Ping timeout: 250 seconds).
12:17:40 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:17:59 -!- sftp has joined.
14:24:12 -!- xkapastel has joined.
14:27:17 -!- tromp has quit (Remote host closed the connection).
14:36:56 -!- tromp has joined.
15:40:46 -!- tromp has quit (Remote host closed the connection).
16:10:07 -!- S_Gautam has joined.
16:14:53 -!- tromp has joined.
16:19:22 -!- tromp has quit (Ping timeout: 246 seconds).
16:26:24 -!- tromp has joined.
17:24:40 <kmc> shachaf: don't you love the options Notepad gives for character encoding https://i.imgur.com/rSB1x24.png
17:25:11 <Taneb> ...I guess the two "Unicode" options are UTF-16?
17:28:23 <j4cbo> “fuck the astral planes”
17:30:56 <kmc> let's find out
17:31:48 * kmc creates a notepad document with one character, the poo emoji
17:32:23 <kmc> "ANSI" -> 3f 3f (literal "??")
17:32:34 <kmc> "Unicode" -> ff fe 3d d8 a9 dc (BOM + UTF-16LE)
17:33:16 <kmc> "Unicode big endian" -> fe ff d8 3d dc a9 (BOM + UTF-16BE)
17:34:13 <kmc> "UTF-8" -> ef bb bf f0 9f 92 a9 (what the fuck, it has a BOM even in UTF-8)
17:34:21 <kmc> windooooooows
17:35:13 <j4cbo> msft loves their utf8 boms
17:35:50 <kmc> there should be a D&D game, where a character has control of the astral plane, meaning they get powers related to each non-BMP character
17:35:55 <kmc> that could be pretty powerful
17:36:11 <kmc> there are a bunch of hieroglyphs for egyptian gods and stuff
17:37:11 <kmc> where's my airspy hf+ :(
17:37:15 <kmc> wrong channel, but whatever
17:50:38 <kmc> answer: it's on the slow boat from china
17:51:13 <kmc> (shipped 2.5 weeks ago)
17:51:18 <kmc> or actually I think it has entered the US by this point
17:51:34 <kmc> and in the hands of USPS, so I may get it in another few days
17:52:10 <kmc> I wonder why "ANSI" gives ?? and not ?. my guess is it's because Windows works on UCS-2 internally, and the fallback-conversion routine isn't aware of surrogate pairs
18:00:05 -!- Phantom_Hoover has joined.
18:28:40 -!- FreeFull has joined.
18:51:51 -!- moei has joined.
18:59:21 <shachaf> kmc: you can't quite blame microsoft for being utf-16 since they were early to the unicode thing
18:59:46 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
19:00:23 <shachaf> you can make fun of notepad anyway though
19:06:03 -!- tromp has quit (Remote host closed the connection).
19:12:16 <esowiki> [[Talk:Lenguage]] https://esolangs.org/w/index.php?diff=60098&oldid=53850 * Ais523 * (+1925) /* Practical problems trying to use Lenguage */ new section
19:12:43 <esowiki> [[Talk:Lenguage]] https://esolangs.org/w/index.php?diff=60099&oldid=60098 * Ais523 * (+65) /* Practical problems trying to use Lenguage */ finish unfinished sentence
19:29:21 -!- Essadon has joined.
19:41:01 -!- tromp has joined.
19:45:27 -!- tromp has quit (Ping timeout: 245 seconds).
19:56:35 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
20:11:59 -!- b_jonas has joined.
20:13:52 -!- arseniiv has quit (Ping timeout: 246 seconds).
20:43:46 -!- S_Gautam has joined.
20:44:07 <esowiki> [[User:Cortex]] https://esolangs.org/w/index.php?diff=60100&oldid=60095 * Cortex * (+0) /* Quine */
21:20:31 <kmc> shachaf: I think at this point making fun of notepad is missing the point, you know what you're getting
21:29:36 -!- tromp has joined.
21:34:04 -!- tromp has quit (Ping timeout: 250 seconds).
22:14:52 <fizzie> The "BOM in UTF-8" thing is I think what it (or some other Windowsy thing) uses as a magic number for UTF-8 text files, and it's sort of semi-sanctioned by Unicode.
22:14:55 <fizzie> "Use of a BOM is neither required nor recommended for UTF-8, but may be encountered in contexts where -- the BOM is used as a UTF-8 signature."
22:16:36 <kmc> UTF-8 is too good
22:16:57 <kmc> the only problem is (and this isn't UTF-8's fault) that so many of the single byte codes are taken by seldom used ASCII control characters :(
22:27:26 <shachaf> all you need is code page 437
22:39:07 -!- tromp has joined.
22:57:12 -!- AnotherTest has quit (Ping timeout: 259 seconds).
23:35:36 -!- tromp has quit (Remote host closed the connection).
23:39:01 -!- b_jonas has quit (Quit: leaving).
23:40:49 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:41:27 <esowiki> [[Special:Log/newusers]] create * Arcorann * New user account
00:12:09 -!- tromp has joined.
00:16:25 -!- tromp has quit (Ping timeout: 246 seconds).
00:16:40 -!- Lord_of_Life_ has joined.
00:19:06 -!- Lord_of_Life has quit (Ping timeout: 264 seconds).
00:19:09 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
00:58:40 -!- Essadon has quit (Quit: Qutting).
01:23:21 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
01:40:38 -!- Sgeo__ has quit (Read error: Connection reset by peer).
01:41:51 -!- Sgeo has joined.
01:43:39 <pikhq> fizzie: Yeah, the (old) standard on WIndows was to use a BOM to indicate a text file is UTF-8, rather than the "ANSI" codepage.
01:44:21 <pikhq> I say "old" because up-to-date Windows 10 now default saves text files as UTF-8 without BOM.
01:46:44 <shachaf> Win32 is even getting UTF-8 functions!
02:00:12 <pikhq> shachaf: Wait, really?
02:00:31 <pikhq> I know they're adding support for UTF-8 *as* the "ANSI" codepage, but
02:00:39 -!- tromp has joined.
02:00:58 <pikhq> (strictly speaking, add*ed* -- it's marked as beta, but you can just toggle it on on a Windows install now, and things just work)
02:05:08 -!- tromp has quit (Ping timeout: 255 seconds).
02:09:37 <esowiki> [[User:12Me21]] https://esolangs.org/w/index.php?diff=60101&oldid=47356 * 12Me21 * (-246)
02:09:55 <esowiki> [[User:12Me21]] https://esolangs.org/w/index.php?diff=60102&oldid=60101 * 12Me21 * (-30)
02:11:45 -!- oerjan has joined.
02:32:26 -!- FreeFull has quit.
02:36:06 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=60103&oldid=60030 * Cortex * (+52)
03:48:57 -!- tromp has joined.
03:53:14 -!- tromp has quit (Ping timeout: 250 seconds).
04:03:59 -!- xkapastel has quit (Quit: Connection closed for inactivity).
04:18:42 -!- tromp has joined.
04:19:12 -!- tromp has quit (Remote host closed the connection).
04:19:25 -!- tromp has joined.
04:20:47 -!- tromp has quit (Remote host closed the connection).
04:54:56 -!- tromp has joined.
04:59:12 -!- tromp has quit (Ping timeout: 245 seconds).
05:01:24 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=60104&oldid=60045 * Arcorann * (+207) /* Introductions */
05:06:41 <esowiki> [[K-on Fuck]] https://esolangs.org/w/index.php?diff=60105&oldid=53897 * Arcorann * (+0)
05:33:04 -!- importnetminecra has joined.
05:33:47 -!- MDude has joined.
05:44:59 -!- importnetminecra has quit (Quit: Page closed).
05:55:11 -!- arseniiv has joined.
06:22:32 <shachaf> pikhq: I mean *U functions to go with *A and *W
06:22:38 <shachaf> That's what I heard, anyway
06:25:34 <pikhq> This makes my occasional plans for world domination, I mean, a saner Windows libc, a lot easier.
06:31:21 <shachaf> pikhq: I heard about it not long ago but now I can't find any reference to it
06:32:19 <pikhq> I mean, my plans for world domination were to start by forcibly creating them as a wrapper for *W, so maybe that's what you're remembering?
06:32:54 <pikhq> (this is a project which I've not done mostly because I more want it to exist than I want to be the person who makes it exist)
06:33:20 <pikhq> It's a lot of work and I'm preoccupied just living thanks
06:33:54 <kmc> living is p. complicated
06:34:14 <pikhq> More so than many people would think.
06:34:35 <shachaf> No, it was people taking about some official Microsoft thing
06:35:04 <pikhq> Alas, I only really know ex-MS devs.
06:35:14 <pikhq> Otherwise I'd ask.
06:42:46 -!- tromp has joined.
06:46:43 <shachaf> pikhq: I can't find any reference to it so who knows
06:47:00 -!- tromp has quit (Ping timeout: 250 seconds).
06:48:10 <shachaf> kmc: for halloween i'm going to be UNICODE BIG ENDIAN
07:21:58 <shachaf> how come unicode has just EGG rather than a big endian and little endian egg
07:22:44 <HackEso> U+0045 LATIN CAPITAL LETTER E \ UTF-8: 45 UTF-16BE: 0045 Decimal: E \ E (e) \ Lowercase: U+0065 \ Category: Lu (Letter, Uppercase) \ Bidi: L (Left-to-Right) \ \ U+0047 LATIN CAPITAL LETTER G \ UTF-8: 47 UTF-16BE: 0047 Decimal: G \ G (g) \ Lowercase: U+0067 \ Category: Lu (Letter, Uppercase) \ Bidi: L (Left-to-Right) \ \ U+0047 LATIN CAPITAL LETTER G \ UTF-8: 47 UTF-16BE: 0047 Decimal: G \ G (g) \ Lowercase: U+0067 \ Category: Lu (Letter
07:23:01 <HackEso> U+0045 LATIN CAPITAL LETTER E \ UTF-8: 45 UTF-16BE: 0045 Decimal: E \ E (e) \ Lowercase: U+0065 \ Category: Lu (Letter, Uppercase) \ Bidi: L (Left-to-Right) \ \ U+0047 LATIN CAPITAL LETTER G \ UTF-8: 47 UTF-16BE: 0047 Decimal: G \ G (g) \ Lowercase: U+0067 \ Category: Lu (Letter, Uppercase) \ Bidi: L (Left-to-Right) \ \ U+0047 LATIN CAPITAL LETTER G \ UTF-8: 47 UTF-16BE: 0047 Decimal: G \ G (g) \ Lowercase: U+0067 \ Category: Lu (Letter
07:23:08 <oerjan> hm this is not helping
07:24:41 <HackEso> bin/icode \ bin/morse-decode \ bin/multicode \ bin/singlecode \ bin/unicode \ bin/unidecode
07:24:50 <HackEso> [U+0045 LATIN CAPITAL LETTER E] [U+0047 LATIN CAPITAL LETTER G] [U+0047 LATIN CAPITAL LETTER G]
07:25:12 <HackEso> [U+0045 LATIN CAPITAL LETTER E] [U+0047 LATIN CAPITAL LETTER G] [U+0047 LATIN CAPITAL LETTER G]
07:25:25 <oerjan> i sense a design flaw here
07:25:47 <oerjan> `` grep EGG share/unic*
07:25:48 <HackEso> Binary file share/unic.txt matches
07:26:08 <oerjan> that's not what i thought it was called
07:26:08 <HackEso> https://hack.esolangs.org/repo/file/tip/share/unic.txt
07:26:32 <HackEso> ls: cannot access 'share/*data': No such file or directory
07:26:36 <HackEso> 11025:2017-06-18 <shachäf> fetch share/unic.txt http://slbkbs.org/unic.txt
07:27:05 <oerjan> `` grep EGG share/Unic*
07:27:06 <HackEso> 1C81;CYRILLIC SMALL LETTER LONG-LEGGED DE;Ll;0;L;;;;;N;;;0414;;0414 \ 1C85;CYRILLIC SMALL LETTER THREE-LEGGED TE;Ll;0;L;;;;;N;;;0422;;0422 \ 10467;SHAVIAN LETTER EGG;Lo;0;L;;;;;N;;;;; \ 1D183;MUSICAL SYMBOL ARPEGGIATO UP;So;0;L;;;;;N;;;;; \ 1D184;MUSICAL SYMBOL ARPEGGIATO DOWN;So;0;L;;;;;N;;;;; \ 1F95A;EGG;So;0;ON;;;;;N;;;;;
07:27:18 <shachaf> `grep --text EGG share/unic.txt
07:27:19 <HackEso> grep: unrecognized option '--text EGG share/unic.txt' \ Usage: grep [OPTION]... PATTERN [FILE]... \ Try 'grep --help' for more information.
07:27:22 <shachaf> `` grep --text EGG share/unic.txt
07:27:23 <HackEso> 10467 SHAVIAN LETTER EGG [𐑧] \ 1D183 MUSICAL SYMBOL ARPEGGIATO UP [𝆃] \ 1D184 MUSICAL SYMBOL ARPEGGIATO DOWN [𝆄]
07:27:52 <oerjan> shachaf: that's not the right file
07:28:10 <shachaf> `fetch share/unic.txt http://slbkbs.org/unic.txt.now
07:28:13 <HackEso> 2019-02-28 07:28:12 URL:http://slbkbs.org/unic.txt.now [1437731/1437731] -> "share/unic.txt" [1]
07:28:14 <shachaf> `` grep --text EGG share/unic.txt
07:28:15 <HackEso> 1C81 CYRILLIC SMALL LETTER LONG-LEGGED DE [ᲁ] \ 1C85 CYRILLIC SMALL LETTER THREE-LEGGED TE [ᲅ] \ 10467 SHAVIAN LETTER EGG [𐑧] \ 1D183 MUSICAL SYMBOL ARPEGGIATO UP [𝆃] \ 1D184 MUSICAL SYMBOL ARPEGGIATO DOWN [𝆄] \ 1F95A EGG [🥚]
07:28:44 <oerjan> but why have two different data files :(
07:29:12 <shachaf> unic.txt is generated from UnicodeData.txt
07:29:33 <shachaf> it follows the format of an old perl script written by larry wall
07:29:40 <shachaf> i should probably scrap it
07:29:53 <oerjan> `` grep --text EGG share/unic.txt | grep -v LEG
07:29:54 <HackEso> 10467 SHAVIAN LETTER EGG [𐑧] \ 1D183 MUSICAL SYMBOL ARPEGGIATO UP [𝆃] \ 1D184 MUSICAL SYMBOL ARPEGGIATO DOWN [𝆄] \ 1F95A EGG [🥚]
07:30:51 <shachaf> Usually I search it in less or another program
07:30:59 <oerjan> anyway, you don't need two EGG characters, as long as you have two KNIFE ones instead
07:31:49 <oerjan> `` grep --text KNIFE share/unic.txt
07:31:49 <HackEso> 2E88 CJK RADICAL KNIFE ONE [⺈] \ 2E89 CJK RADICAL KNIFE TWO [⺉] \ 2F11 KANGXI RADICAL KNIFE [⼑] \ 1F374 FORK AND KNIFE [🍴] \ 1F37D FORK AND KNIFE WITH PLATE [🍽] \ 1F5E1 DAGGER KNIFE [🗡]
07:35:06 <shachaf> It's annoying that grep considers that file binary.
07:46:51 -!- 7YUAA4BLU has joined.
07:55:22 -!- oerjan has quit (Quit: Nite).
08:44:02 <esowiki> [[TrivialBrainfuckSubstitution]] https://esolangs.org/w/index.php?diff=60106&oldid=58508 * Arcorann * (+167)
08:58:46 -!- AnotherTest has joined.
09:25:51 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
09:26:09 -!- AnotherTest has joined.
09:30:22 -!- AnotherTest has quit (Ping timeout: 250 seconds).
09:39:46 -!- AnotherTest has joined.
10:12:13 <lambdabot> LOWI 280950Z 26003KT 160V290 CAVOK 10/00 Q1020 NOSIG
10:32:24 -!- S_Gautam has joined.
10:48:24 -!- Singingbanana_ has joined.
11:34:50 -!- AnotherTest has quit (Ping timeout: 255 seconds).
11:37:38 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60107&oldid=60084 * A * (+246) /* Attempt by User:A */
11:38:54 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60108&oldid=60107 * A * (+67) /* Addition */
11:39:11 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60109&oldid=60108 * A * (+8) /* The attempt will not work, unfortunately */
11:40:56 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60110&oldid=60109 * A * (-165) Multiplication will not be neccesary. Implementing increment and zeroing is enough.
11:42:00 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60111&oldid=60110 * A * (+1) Fix the unmatched bold tag
11:44:52 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60112&oldid=60111 * A * (+181) Add section
11:45:17 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60113&oldid=60112 * A * (-173)
11:45:38 -!- AnotherTest has joined.
11:46:08 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60114&oldid=60113 * A * (-386) Cited, so adding this is unneccesary
11:46:59 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60115&oldid=60114 * A * (+29) /* Attempt by User:A */
11:48:02 <Taneb> It would be really nice if the wiki had some sort of "preview" functionality to A could see if their edits were doing what they expected before saving the page, and allowing them to batch multiple edits into one go with the same sort of visual feedback
11:51:20 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60116&oldid=60115 * A * (+343) /* Continuation on the above by User:Helen */
12:04:07 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60117&oldid=60116 * A * (+152) /* Continuation of the above by User:A */
12:06:55 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60118&oldid=60117 * A * (+162) /* Continuation of the above by User:A */
12:07:59 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60119&oldid=60118 * A * (+47) /* Continuation of the above by User:A */
12:09:18 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60120&oldid=60119 * A * (+19) /* Continuation of the above by User:A */
12:17:11 -!- Lord_of_Life_ has joined.
12:19:08 -!- Lord_of_Life has quit (Ping timeout: 258 seconds).
12:19:08 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:35:17 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60121&oldid=60120 * A * (+104) /* Continuation of the above by User:A */
12:36:01 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60122&oldid=60121 * A * (+83) /* Continuation of the above by User:A */
12:38:39 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60123&oldid=60122 * A * (+47) /* Continuation of the above by User:A */
12:40:59 <esowiki> [[Special:Log/newusers]] create * OttovonBismarck1871 * New user account
12:44:09 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60124&oldid=60123 * A * (+439) /* Continuation of the above by User:A */
12:44:20 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60125&oldid=60124 * A * (-2) /* Continuation of the above by User:A */
12:45:15 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60126&oldid=60125 * A * (+62) /* Continuation of the above by User:A */
12:47:01 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60127&oldid=60126 * A * (-68) /* Zeroing */
12:50:31 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60128&oldid=60127 * A * (+5)
12:51:21 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60129&oldid=60128 * A * (-62) It actually can index the values in the middle.
12:53:06 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60130&oldid=60129 * A * (-2) /* Continuation of the above by User:A */
12:54:27 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60131&oldid=60130 * A * (+74) Nope. I failed.
12:55:39 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60132&oldid=60131 * A * (+101) /* Continuation of the above by User:A */
12:56:18 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60133&oldid=60132 * A * (-9) /* Continuation of the above by User:A */
12:57:14 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60134&oldid=60133 * A * (+51) Done.
12:57:58 -!- xkapastel has joined.
13:06:19 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60135&oldid=60134 * A * (+31) /* Attempt by User:A */
13:07:05 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60136&oldid=60135 * A * (+98) /* Attempt by User:A */
13:09:59 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60137&oldid=60136 * A * (+79) /* Continuation on the above by User:Helen */
13:12:28 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60138&oldid=60137 * A * (-173) /* Attempt by User:A */
13:12:51 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60139&oldid=60138 * A * (+1) /* Attempt by User:A */
13:13:33 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60140&oldid=60139 * A * (-24) /* Attempt by User:A */
13:14:47 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60141&oldid=60140 * A * (+43) /* Attempt by User:A */
13:17:15 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60142&oldid=60141 * A * (+133) /* Attempt by User:A */
13:17:37 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60143&oldid=60142 * A * (+30) /* Attempt by User:A */
13:54:26 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60144&oldid=60143 * A * (-33) /* Attempt by User:A */
13:56:30 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60145&oldid=60144 * A * (-30) /* Attempt by User:A */
14:10:27 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
14:11:12 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60146&oldid=60145 * A * (+5) /* Continuation of the above by User:A */
14:15:24 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60147&oldid=60146 * A * (+7) Modify your continuation
14:20:16 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=60148&oldid=59993 * A * (+167)
14:21:40 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=60149&oldid=60148 * A * (+50)
14:23:55 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=60150&oldid=60149 * A * (+36)
14:24:19 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=60151&oldid=60150 * A * (+7)
14:34:41 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60152&oldid=60147 * A * (+0) /* Continuation of the above by User:A */
14:36:46 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60153&oldid=60152 * A * (+45) /* Continuation on the above by User:A */
14:40:23 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60154&oldid=60153 * A * (+35) /* Attempt by User:A */
14:41:17 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60155&oldid=60154 * A * (+46) /* Attempt by User:A */
14:43:30 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60156&oldid=60155 * A * (+14) /* Attempt by User:A */
14:50:37 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60157&oldid=60156 * A * (-20) /* Continuation on the above by User:A */
15:02:07 -!- AnotherTest has quit (Ping timeout: 268 seconds).
16:19:00 -!- shachaf has quit (Ping timeout: 250 seconds).
16:19:48 -!- shachaf has joined.
17:07:13 -!- AnotherTest has joined.
17:07:51 <esowiki> [[Special:Log/newusers]] create * Maskyy. * New user account
17:10:18 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=60158&oldid=60104 * Maskyy. * (+174)
17:13:37 -!- S_Gautam has joined.
17:51:57 <esowiki> [[Caeos]] N https://esolangs.org/w/index.php?oldid=60159 * Areallycoolusername * (+2131) Created page with "Caeos, pronounced "Say oss", is an esoteric programming language that could produce anything at run time it was made by [[User: Areallycoolusername|Areallycoolusername]]. This..."
17:53:40 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=60160&oldid=60070 * Areallycoolusername * (+39) /* C */
18:03:00 <esowiki> [[Caeos]] https://esolangs.org/w/index.php?diff=60161&oldid=60159 * Areallycoolusername * (+2)
18:11:51 <orin> my font supports the whole shavian alphabet
18:13:29 <orin> however I think it is simpler to use letters that already exist for a english spelling reform
18:17:21 <orin> bI YziG letRs Dat olredE ar on iGliS kEbords it is EzE to swiC to fNetik speliG
18:17:46 <orin> also it makes it look like that spongebob meme
18:19:35 <orin> Dat spunjbob mEm
18:21:09 <int-e> fungot: help me unsee that?
18:21:10 <fungot> int-e: drscheme is a good book in my language. :p i could try. my experience with java has shaped my thoughts on the matter i'll do the next step
18:25:05 <orin> in Du fYCR, spunjbob wil bE revErd as inventR of Du nY iGliS speliG sistM
18:34:48 -!- Essadon has joined.
18:41:04 -!- Phantom_Hoover has joined.
18:46:12 -!- xkapastel has quit (Quit: Connection closed for inactivity).
18:51:20 -!- b_jonas has joined.
18:53:21 <orin> hmm or maybe s/nY/nU
18:55:12 <orin> dependiG on dIalekt, "new" mIt bE prunWnst nU or nY
19:00:00 <orin> Dis is Du mAn problem wiT iGliS speliG refOrm, Dat Der is nO standRd iGliS prunWnsEASN
19:02:42 <orin> EvN Du wRd refOrm, sum pEpL sAy as refOm and oDRs refOrm
19:04:18 <orin> I am not SR hW tU solv Dis
19:06:09 <orin> fungot: yOr nAm is stil fungot Du wA I sAy it
19:06:09 <fungot> orin: ( you asked about it earlier. very funny.
19:06:56 <orin> but sum pEpL mIt sAy funjot insted
19:09:13 <orin> and wen I sAy abWt sum pEpL mIt hEr abUt
19:21:56 -!- arseniiv has quit (Ping timeout: 255 seconds).
19:34:12 <orin> hA, mI erR rAt is betR nW!
19:35:16 -!- 7YUAA4BLU has quit (Remote host closed the connection).
19:41:13 <HackEso> U+1DB8 MODIFIER LETTER SMALL CAPITAL U \ UTF-8: e1 b6 b8 UTF-16BE: 1db8 Decimal: ᶸ \ ᶸ \ Category: Lm (Letter, Modifier) \ Bidi: L (Left-to-Right) \ Decomposition: <super> 1D1C
19:41:47 <HackEso> U+1D41 MODIFIER LETTER CAPITAL U \ UTF-8: e1 b5 81 UTF-16BE: 1d41 Decimal: ᵁ \ ᵁ \ Category: Lm (Letter, Modifier) \ Bidi: L (Left-to-Right) \ Decomposition: <super> 0055
19:45:44 <HackEso> U+1D5B MODIFIER LETTER SMALL V \ UTF-8: e1 b5 9b UTF-16BE: 1d5b Decimal: ᵛ \ ᵛ \ Category: Lm (Letter, Modifier) \ Bidi: L (Left-to-Right) \ Decomposition: <super> 0076
19:46:35 <HackEso> U+1D9C MODIFIER LETTER SMALL C \ UTF-8: e1 b6 9c UTF-16BE: 1d9c Decimal: ᶜ \ ᶜ \ Category: Lm (Letter, Modifier) \ Bidi: L (Left-to-Right) \ Decomposition: <super> 0063
19:47:47 <HackEso> U+1DA6 MODIFIER LETTER SMALL CAPITAL I \ UTF-8: e1 b6 a6 UTF-16BE: 1da6 Decimal: ᶦ \ ᶦ \ Category: Lm (Letter, Modifier) \ Bidi: L (Left-to-Right) \ Decomposition: <super> 026A \ \ U+1D35 MODIFIER LETTER CAPITAL I \ UTF-8: e1 b4 b5 UTF-16BE: 1d35 Decimal: ᴵ \ ᴵ \ Category: Lm (Letter, Modifier) \ Bidi: L (Left-to-Right) \ Decomposition: <super> 0049
19:59:49 <b_jonas> learn nspirators is http://lawcomic.net/guide/?p=517
20:03:51 -!- tromp has joined.
20:07:37 -!- xkapastel has joined.
20:08:43 -!- tromp has quit (Ping timeout: 258 seconds).
20:51:40 -!- FreeFull has joined.
20:56:06 <esowiki> [[Poolshark]] N https://esolangs.org/w/index.php?oldid=60162 * Orby * (+2198) Created page with "Poolshark is a family of languages discovered by [[User:Orby]] during February of 2019. ==Introduction== The execution of a Poolshark program consists of a simulation of a po..."
21:15:50 -!- MDude has quit (Ping timeout: 250 seconds).
21:37:46 -!- tromp has joined.
21:42:16 -!- tromp has quit (Ping timeout: 250 seconds).
21:46:32 -!- MDude has joined.
21:56:50 <HackEso> smlist 495: shachaf monqy elliott mnoqy Cale
22:15:52 -!- moei has quit (Quit: Leaving...).
22:22:49 -!- tromp has joined.
22:30:15 <orin> how could they let bayerische motoren werke buy rolls royce?
22:30:31 <orin> it's still a travesty
22:31:47 <esowiki> [[EWagon]] https://esolangs.org/w/index.php?diff=60163&oldid=52236 * Timtomtoaster * (-540)
22:32:37 <esowiki> [[EWagon]] https://esolangs.org/w/index.php?diff=60164&oldid=60163 * Timtomtoaster * (+11)
22:35:46 <esowiki> [[User:Timtomtoaster]] https://esolangs.org/w/index.php?diff=60165&oldid=51996 * Timtomtoaster * (-325)
22:40:05 <b_jonas> orin: meh, those kinds of ownership changes happen all the time in the automotive industry
22:40:35 <b_jonas> orin: the first year when all the tiny Daewoos had the Chevrolet cross on their front, I was surprised too. I got used to it now.
22:43:38 <esowiki> [[Special:Log/newusers]] create * Orangeyy * New user account
22:44:29 <esowiki> [[Lenguage]] M https://esolangs.org/w/index.php?diff=60166&oldid=60068 * Salpynx * (+16) /* Reference implementation */ display double ''
22:47:23 -!- xkapastel has quit (Quit: Connection closed for inactivity).
23:18:45 -!- Singingbanana_ has quit (Ping timeout: 256 seconds).
23:21:00 -!- AnotherTest has quit (Ping timeout: 268 seconds).
23:25:41 -!- orbitaldecay has joined.
23:26:00 -!- tromp has quit (Remote host closed the connection).
23:45:46 -!- Essadon has quit (Quit: Qutting).
23:47:11 <esowiki> [[Bitch]] https://esolangs.org/w/index.php?diff=60167&oldid=60157 * A * (+16) Declare that I wrote the zeroing operation.
23:48:22 -!- xkapastel has joined.
23:51:22 -!- tromp has joined.