00:00:08 <ski> nah, in the main key maze, i have moved the `0' key to the left of the `1'-`9' keys
00:00:23 <shachaf> int-e: I was going to correct myself and then I thought no one would be so pedantic as to comment on it.
00:00:36 <shachaf> Anyway I mean a computer that has a numeric keypad connected to it, of course.
00:01:08 <ski> heya shachaf
00:01:16 <int-e> shachaf: Well, I think we have several overly pedantic people here :)
00:02:05 <shachaf> i award you 2.147 billion points
00:02:54 <int-e> shachaf: But there was an undercurrent to my message... I don't like laptop keyboards. So even for the computers that do have a builtin keyboard (which typically lack a numeric keypad), I'd use an external keyboard (and then I usually have a numeric keypad out of habit, and also because I use it for window placement).
00:03:39 <shachaf> you must be some kind of power user
00:03:54 <int-e> shachaf: nah I'm just idiosyncratic
00:04:11 <shachaf> ski is only 483648 points away
00:04:12 <int-e> I still use fvwm2, despite all its flaws.
00:04:36 <shachaf> I'm using i3 but I'm beginning to suspect that tiling window managers are not quite the right thing.
00:05:01 <shachaf> I should think carefully about the standard window management workflows.
00:05:30 <zzo38> I am using i3 (but with my own status line implementation), and it supports floating windows as well as tiling windows, and also tabbed windows.
00:05:41 <shachaf> zzo38: I also wrote my own status line implementation.
00:06:00 <zzo38> They say it is for use with having multiple screens, but I only have one, and it still works OK with only one screen.
00:06:08 <shachaf> It supports floating windows but they're second-class citizens.
00:06:18 <shachaf> My status line implementation is so fancy.
00:06:29 <zzo38> What stuff did you include in the status line?
00:06:57 <shachaf> Chet it out: http://slbkbs.org/tmp/statustext.c
00:07:55 <shachaf> It has things like brightness and volume and CLIPBOARD/PRIMARY size.
00:08:15 <zzo38> (In my computer I put four things: mail counter (checks only if the lease on the mailbox file is broken), system load average (for one minute), RAM usage, date, time (including seconds).
00:08:17 <shachaf> And it listens for updates to all those things so it updates instantly instead of waiting up to a second.
00:09:13 <int-e> // It's probably not a good reason.
00:09:49 <shachaf> I think eventually I'll replace the status bar with my own program so I can draw little graphs and fancy things.
00:10:07 <shachaf> int-e: I'm not going to look up what the reason is, but I maintain high confidence in my statement.
00:12:04 <int-e> I would extend the statement to the existence of pulseaudio :)
00:12:29 <int-e> (but it has stopped causing me trouble some years ago)
00:12:31 <shachaf> I use the libasound API but it ends up going through pulseaudio.
00:13:08 <int-e> I used to have funny effects like a 1s audio delay when playing video... which went away when pulseaudio wasn't running.
00:13:29 <shachaf> Linux audio is such a terrible mess.
00:13:44 <shachaf> Especially when you want to do anything close to real-time audio.
00:14:23 <int-e> My current problem is an inexplicable 1s fade-in when starting a new audio stream. Could be worse...
00:15:22 <shachaf> This statustext program is so good.
00:15:35 <shachaf> You can run it under strace and it does a fairly reasonable number of system calls for every run.
00:16:14 <zzo38> You also use many non-ASCII characters, and I instead am using only ASCII characters.
00:16:50 <shachaf> They're not in ASCII but they are in Unicode.
00:17:12 <zzo38> shachaf: Well, as long as the characters are in the font you are using, then it is OK, I suppose.
00:17:55 <shachaf> Maybe CP437 would be better.
00:18:11 <shachaf> I mean, clearly the right thing would be to just use bitmaps.
00:18:36 <shachaf> It's also ridiculous that I'm drawing a volume meter using characters like ▋.
00:18:46 <shachaf> What an absurdly complicated way of drawing a rectangle.
00:18:57 <int-e> ░▒▓█ are in unicode :)
00:19:13 <zzo38> Also I have not had problems with audio on Linux, except that sometimes if mednafen is started without waiting too long after audio stops playing, then sometimes the audio doesn't work in mednafen.
00:19:28 <shachaf> The characters I'm using give one-eighth precision.
00:19:41 <zzo38> int-e: Yes, and also PC character set (Unicode includes all of the characters in PC character set, but conversion of some of them to Unicode can be ambiguous sometimes).
00:19:54 <int-e> shachaf: no, I just mused about which CP437 characters I miss the most.
00:20:22 <shachaf> Hmm, I'm doing a few system calls more than necessary.
00:20:25 <int-e> And those grayscale characters are near the top of my list.
00:20:39 <int-e> codes 176, 177, and 178, IIRC.
00:20:49 <shachaf> Unfortunately Xlib is doing three identical recvmsg() calls on the same socket that all return EAGAIN before it gives up.
00:21:01 <zzo38> int-e: Yes, those are the PC character codes for them; also 219 for the full block
00:21:28 <shachaf> Do you like the new io_uring system call interface in Linux?
00:21:51 <int-e> The fact that I remember despite not having used them in ... oh ... 15-20 years, says something.
00:21:52 <kmc> what is that
00:22:24 <shachaf> it does asynchronous I/O with a ring buffer interface to the kernel
00:22:35 <shachaf> you can do I/O with zero context switches
00:22:55 <zzo38> I designed UTCS/UTCE (differently than before) to specifically be a character set for use with fix pitch, without needing large tables to figure out widths and how to render stuff and so on; you can just render fixed size bitmaps next to each other and it will work. Also, they include stuff found in many fix pitch character sets of many computers and terminals, some of which is in Unicode and some isn't.
00:23:11 <kmc> but presumably if you run out of stuff to do you would do a system call and sleep?
00:23:33 <shachaf> Right, you can always wait for responses.
00:23:46 <kmc> sounds pretty dope
00:23:50 <shachaf> But even then it's so much better than the existing interfaces.
00:24:03 <shachaf> Well, there were no realistic interfaces for asynchronous I/O in Linux.
00:24:37 <kmc> do you mean asynchronous in a sense different from a epoll() loop?
00:25:13 <shachaf> Also if you don't feed the kernel async requests fast enough it'll stop polling on your request buffer until you wake it up again. Which is fine.
00:25:33 <arseniiv> what a strange bug when [_][][]? executes silently and [__+][][]? fails to pop an argument for some reason, but [___+][][]? again is good and leaves 2 _ 0 on the stack
00:25:47 <shachaf> The io_uring person was suggesting that they could implement support for arbitrary system calls using the same interface.
00:25:54 <shachaf> wouldn't that be the tgest
00:29:43 <shachaf> I should probably upgrade this program to not poll battery/filesystem/whatever on every run.
00:30:22 <shachaf> Instead it should do them on their own schedule like everything else, using a timer or something.
00:31:05 <shachaf> This'll be important (?) if I make it an X program that redraws at 60fps or something. Right now it's not very important.
00:32:54 <int-e> arseniiv: I have some terrible bugs in that area :)
00:33:40 <int-e> arseniiv: [_][][]? is supposed to loop, right?
00:34:35 <arseniiv> it should evaluate [_], take _, see that it’s false and go evaluating “else” part, [], but this doesn’t do anything and it’s all done
00:35:47 <int-e> huh, I interpreted the condition wrong... let me check the old description
00:36:16 <arseniiv> contrary, [__+][][]? should evaluate [__+], find a nonfalse __+ on the stack, then go loop… oh it seems I’m lucky it doesn’t work as expected, it would give an infinite loop
00:36:18 <int-e> hmm, it had a "≠" there, must have misread.
00:36:29 <arseniiv> and I thought it just would loop once
00:36:57 <arseniiv> now I remember that of course that should be an infinite loop
00:37:23 <arseniiv> we can do if with a little more trickery
00:38:18 <int-e> I'd imagine something like [^][][]? with a bit of setup code.
00:38:41 <int-e> but it's a bit tricky
00:38:46 <arseniiv> hm, yes, we simply do: <cond> [][<then-branch> _][<else-branch>]?
00:39:19 <int-e> [][<then-branch>_][<else-branch>_]?.
00:39:21 <arseniiv> ^ is one of intended use-cases also
00:39:43 <arseniiv> we could walk here and there with this loop
00:40:09 <arseniiv> and stop when we had trespassed
00:41:06 <int-e> Ah, sorry, your code is correct. I missed what the _ really did.
00:41:38 <shachaf> zzo38: Do you like this C program?
00:41:44 <shachaf> I like the macros Case and Default. And Struct.
00:42:20 <int-e> *Main> run "[Hello, world!\n];" []
00:42:32 <int-e> arseniiv: ^^ look at all this undefined behavior :)
00:43:10 <arseniiv> it’s too extended an understanding of [...] syntax
00:43:46 <int-e> It's allowed by the specification, I think.
00:44:07 <zzo38> shachaf: I noticed that, and I do not have another comment now
00:44:34 <shachaf> I wrote a fancy abstraction layer for X11 clients.
00:44:50 <arseniiv> int-e: I have fixed a sequence of typos of various dumbness but it seems I need to continue that after I’ll take some rest
00:44:50 <shachaf> It supports a lot of fancy things. It's great.
00:45:31 <zzo38> Why do I sometimes get error messages about the CDROM is not ready, even though I am not using the CDROM?
00:45:31 <int-e> arseniiv: But it's a particular implementation choice, of course. a) programs are represented by strings are represented by bit strings of length 8x<length of string>. b) ; actually accepts any bit string with length divisible by 8.
00:46:42 <arseniiv> <int-e> It's allowed by the specification, I think. => heresy :D okay it’s compliant
00:46:56 <int-e> arseniiv: So the program a) relies on a particular choice of the [] encoding, and b) relies on undefined behvior of ;. So the program is definitely not compliant.
00:48:13 <arseniiv> int-e: I represent them almost this same way, though I do that only if it’s necessary, and in other cases these blocks are “compiled” lists of opcodes (with and without arguments)
00:49:10 <int-e> arseniiv: which indicates another level of complications
00:49:43 <arseniiv> I thought 'H', 'e' etc. print themselves, though it would be a stretch for ' '
00:49:48 <int-e> arseniiv: oh, yeah without the ; that behavior would be wierd.
00:50:41 <int-e> (or, at least, more weird)
00:52:32 <arseniiv> initially I represented blocks as simple strings but then I was ambushed by parsing interleaving with execution and I then decided it would be better to differentiate, and I couldn’t find a simple enough representation of compiled code… then there were bugs related to a forgotten custom string conversion function in the block→context converter… oh
00:58:38 -!- arseniiv has quit (Ping timeout: 272 seconds).
01:00:55 -!- hakatashi1 has quit (Remote host closed the connection).
01:01:10 -!- hakatashi has joined.
01:21:55 <zzo38> I thought to make up set of Magic: the Gathering cards, such as "Ziveruskex and Strixan" set of cards, but clearly a lot more than two cards should be needed, and also other stuff. Such as, if you want to draft this set, then rarities should be assigned, too. If some cards are used in multiple sets, the rarities may be difference per set in case that helps for drafting purpose.
01:35:52 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
01:36:55 -!- Lord_of_Life has joined.
01:41:01 -!- oerjan has joined.
01:42:58 <oerjan> schlock mercenary is fun, but almost every attempt by the author to make connections to real science makes me cringe. ORBITS DON'T WORK THAT WAY. (I think.)
01:44:33 <zzo38> Will you notify them about that?
01:45:14 <oerjan> it's way too late, he's just started the last book in a series of 20.
01:46:29 <oerjan> i don't think people who understand physics are his audience, anyway.
01:47:47 <oerjan> and others probably have griped about his science before.
01:53:18 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:08:45 -!- lambdabot has quit (Quit: totally pointless restart).
02:11:14 -!- lambdabot has joined.
02:25:14 -!- salpynx has joined.
02:38:23 <zzo38> See if I wrote something wrong in story I wrote. If it is wrong, I hope to correct it please.
03:04:51 <salpynx> re. Punctree, can I add some related links? It took me a while to click that zippers were the main point, not simply binary trees, and that "zipper" was not not being used in a loose informal sense.
03:05:30 <salpynx> https://wiki.haskell.org/Zipper seems to cover the basics with regards to binary trees. I _think_ that's how Punctree is using them
03:06:08 <salpynx> https://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced-fp/docs/huet-zipper.pdf appears to be the origin paper for the zipper structure
03:10:43 <salpynx> I now see why (2 _ _) isn't so sensible. The new 'context' term is better. It makes it clearer why there is only going to be one hole. I originally thought a hole was a way to construct a non-perfect binary tree. I now see that it has a special meaning wrt zippers
03:13:59 <salpynx> I sometimes misunderstand things. I thought for months that zz038 was working on a novel network time protocol (NTP) server, until the cognitive dissonance got too much and it suddenly struck me what NNTP actually was
03:19:42 <zzo38> I wrote a NNTP server software already, and now I am working on the client software.
03:20:27 <zzo38> salpynx: I think if the links is useful then it could be added; if it is found to be wrong, someone will remove it
03:28:10 <zzo38> (You do not have to use this server and client software together; you can use any server software and any client software.)
03:36:03 <zzo38> Do you like my new NNTP software?
03:37:10 <esowiki> [[EXAMPL]] M https://esolangs.org/w/index.php?diff=63862&oldid=59649 * A * (-12) No quotes anymore
03:38:47 <esowiki> [[EXAMPL]] M https://esolangs.org/w/index.php?diff=63863&oldid=63862 * A * (+49)
03:42:22 <esowiki> [[Special:Log/delete]] delete * Oerjan * deleted "[[ThisIsTheFoxe]]": Author request: content was: "{{Db-empty}} {{Db-g7}}, {{Db-author}}, {{Db-blanked}}, {{Db-self}}", and the only contributor was "[[Special:Contributions/ThisIsTheFoxe|ThisIsTheFoxe]]" ([[User talk:ThisIsTheFoxe|talk]])
03:45:44 <esowiki> [[EXAMPL]] M https://esolangs.org/w/index.php?diff=63864&oldid=63863 * A * (+95) /* Syntax */
03:48:59 <esowiki> [[EXAMPL]] M https://esolangs.org/w/index.php?diff=63865&oldid=63864 * A * (+376) /* If statement */
03:59:14 <esowiki> [[+-]] https://esolangs.org/w/index.php?diff=63866&oldid=59297 * Voltage2007 * (+1530)
04:13:17 <shachaf> int-e: Did you improve @pl?
04:19:08 -!- ^ has changed nick to uplime.
04:25:49 <esowiki> [[+-]] M https://esolangs.org/w/index.php?diff=63867&oldid=63866 * Voltage2007 * (+158)
04:27:29 -!- sprocklem has joined.
04:27:38 -!- FreeFull has quit.
04:31:46 <esowiki> [[User:Voltage2007]] N https://esolangs.org/w/index.php?oldid=63868 * Voltage2007 * (+1) Created page with "h"
04:58:50 <esowiki> [[Fetlang]] M https://esolangs.org/w/index.php?diff=63869&oldid=53186 * Voltage2007 * (+91)
05:08:47 -!- Cale has joined.
05:54:13 <esowiki> [[Punctree]] https://esolangs.org/w/index.php?diff=63870&oldid=63857 * Salpynx * (+312) /* Related links */ some introductory reading on 'zippers'
06:00:55 <salpynx> I found those links helpful. The Haskell page even has diagrams.
06:04:08 <salpynx> I think Arseniiv asked here about adding math formatting to the wiki a while ago. I'd make use of that. Some sort of TeX like formatting. MathJax looks nice, with in browser HTML and CSS formatting of formulas.
06:05:23 <salpynx> Some of the other mediawiki plugins look to be a pain to install. Is this a wiki feature request that is likely to be fulfilled?
06:08:43 -!- mniip has quit (Ping timeout: 615 seconds).
06:09:01 -!- mniip has joined.
06:09:08 -!- nfd has quit (Read error: Connection reset by peer).
06:20:46 <esowiki> [[If(j)invert()if(l)change()if(q)input()if(t)output(x);]] https://esolangs.org/w/index.php?diff=63871&oldid=57663 * Voltage2007 * (+2100)
06:21:29 <esowiki> [[If(j)invert()if(l)change()if(q)input()if(t)output(x);]] M https://esolangs.org/w/index.php?diff=63872&oldid=63871 * Voltage2007 * (+20) link fix
06:37:18 -!- nfd9001 has joined.
07:01:20 -!- atslash has joined.
07:27:27 <esowiki> [[If(j)invert()if(l)change()if(q)input()if(t)output(x);]] https://esolangs.org/w/index.php?diff=63873&oldid=63872 * Voltage2007 * (+800)
07:35:08 <myname> what an ugly language name
07:37:45 -!- oerjan has quit (Quit: Nite).
08:14:34 <salpynx> zz038: Is your NNTP server live and public somewhere? NNTP via telnet looks like it would be workable enough for low volume messages.
08:19:11 -!- b_jonas has joined.
08:20:42 <b_jonas> Today I found a spider in my bathroom. Two of its legs kept moving after I severed them from the body of the spider. That seems like relevant information that should be mentioned in the description of spiders in the monster manual.
08:30:02 <b_jonas> zzo38: while the computer is powered off, try to remove both the data cable and the power cable from the CD drive and the other end of the power cable from the motherboard, then plug them in again. maybe you were getting an error because the connection to the CD drive sometimes broke. luckily these modern SATA motherboards are somewhat tolerant about that, so they don't just fry like old ones sometimes
08:31:36 <b_jonas> oerjan: people have complained about the science in the Order of the Stick too, but it rarely comes up
08:32:10 <salpynx> zzo38: I am using rfc-1436 and telnet to search your site for NNTP information, I imagine it's like half the experience. I can read, but I can't post. Huh, rfc3977 (NNTP update) was written in 2006
08:38:15 <salpynx> ok, gopher is fun, and nc is better for accessing it
08:47:03 <b_jonas> yep. though zzo38 is also running a http server that lets you access most of the files on gopher, except there's at least three root directories that you have to know about ("/textfiles", "/mtg", "/sql" or something)
08:49:59 -!- b_jonas has quit (Quit: leaving).
09:09:57 -!- atslash has quit (Read error: Connection reset by peer).
09:10:15 -!- atslash has joined.
09:16:41 -!- kmc has quit (Quit: Lost terminal).
09:36:50 -!- AnotherTest has joined.
09:37:29 <int-e> shachaf: I did something in @unpl, and discovered(?) a bug in @pl
09:37:53 <int-e> shachaf: which I might fix if I figure it out, but mostly I won't touch @pl
09:43:38 <int-e> @pl \x -> \x y -> x
09:43:53 <int-e> @pl \z -> \x y -> x
09:45:07 <int-e> all lambdabot (and lambdabot itself) plugins are of the highest code quality
10:22:06 <esowiki> [[Pi]] M https://esolangs.org/w/index.php?diff=63874&oldid=39793 * ThisIsTheFoxe * (+1) /* Brainfuck converter */ http link doesn't work (anymore?)
10:22:31 <esowiki> [[SLOS]] N https://esolangs.org/w/index.php?oldid=63875 * A * (+623) Created page with "[[SLOS]] stands for Scripting Language that's Outstandingly Simple; it tries to create a scripting language(not an interpreted language) that is very esoterically simple. It i..."
10:33:20 <esowiki> [[SLOS]] M https://esolangs.org/w/index.php?diff=63876&oldid=63875 * A * (+799) /* Tools (45 points) */
10:48:09 <esowiki> [[SLOS]] https://esolangs.org/w/index.php?diff=63877&oldid=63876 * A * (-438) /* Program lengths by language (aka Example programs) */ SLOS is doing terribly; I will reset the example programs.
10:52:14 <esowiki> [[SLOS]] M https://esolangs.org/w/index.php?diff=63878&oldid=63877 * A * (+225) /* Program lengths by language (aka Example programs) */
10:53:26 -!- user24 has joined.
11:02:10 <esowiki> [[SLOS]] https://esolangs.org/w/index.php?diff=63879&oldid=63878 * A * (+549) /* Program lengths by language (aka Example programs) */
11:04:08 <esowiki> [[SLOS]] M https://esolangs.org/w/index.php?diff=63880&oldid=63879 * A * (+32) /* Test file readable (11 bytes) */
11:07:50 <esowiki> [[SLOS]] M https://esolangs.org/w/index.php?diff=63881&oldid=63880 * A * (+258) /* Program lengths by language (aka Example programs) */
11:10:27 <salpynx> zzo38: I discovered sqlnetnews and made a test post. I like.
11:17:55 -!- user24 has quit (Quit: Leaving).
11:25:21 -!- john_metcalf has quit (Ping timeout: 248 seconds).
11:27:54 -!- salpynx has quit (Remote host closed the connection).
11:36:05 <int-e> "please verify your device" ... please stop suggesting that nobody else is using temporary cookies that don't survive the end of the session :(
12:04:02 <int-e> shachaf: fun. \x x y -> y is "alpha-renamed" to \$0 $1 $1 -> $1. Which is not wrong, of course...
12:04:19 <int-e> But probably not intended.
12:05:47 <int-e> Okay, this is just embarrassing. let v' = "$" ++ show (M.size fm) ... sure... that must be the size of the context?
12:16:01 -!- arseniiv has joined.
12:24:54 <int-e> shachaf: there, fixed: https://github.com/lambdabot/lambdabot/commit/eebe60ac0700dcfbd34ea4870fa3286e7fb4a58b
12:25:15 <int-e> (but I won't recompile lambdabot for just that... at least not yet)
12:50:42 -!- wob_jonas has joined.
12:52:20 <wob_jonas> int-e: not recompiling lambdabot because you want to fix other bugs in @pl, such as https://esolangs.org/logs/2019-02-02.html#l5d ?
12:54:40 <wob_jonas> nah, you said that was hard to fix
12:56:33 <wob_jonas> I should stop suggesting such things before you just apply a Cisco style "fix" on it
13:29:22 -!- arseniiv has quit (Ping timeout: 246 seconds).
13:34:38 -!- Lord_of_Life_ has joined.
13:36:30 -!- arseniiv has joined.
13:37:08 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
13:37:14 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
14:00:31 -!- atslash has quit (Ping timeout: 246 seconds).
14:01:25 -!- atslash has joined.
14:05:20 -!- MDude has joined.
14:05:44 <zzo38> salpynx: There is a timeout, although I should fix it so that it will reset the timeout if valid input has been received.
14:36:31 <zzo38> OK, I fixed that now
15:09:34 <esowiki> [[Garbage]] https://esolangs.org/w/index.php?diff=63882&oldid=63710 * A * (-18) /* Implementation */ Shorter implementation
15:35:54 -!- wob_jonas has quit (Remote host closed the connection).
15:45:03 -!- atslash has quit (Ping timeout: 245 seconds).
15:45:23 -!- atslash has joined.
16:13:22 -!- atslash has quit (Quit: This computer has gone to sleep).
16:29:48 -!- b_jonas has joined.
16:33:07 -!- b_jonas has quit (Client Quit).
16:33:24 -!- b_jonas has joined.
17:13:08 -!- kmc has joined.
17:14:43 -!- Phantom_Hoover has joined.
18:34:32 -!- ineiros has joined.
18:40:08 -!- atslash has joined.
19:00:48 <esowiki> [[Special:Log/newusers]] create * Fuckerturd * New user account
19:10:10 -!- FreeFull has joined.
19:18:32 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=63883&oldid=63843 * Fuckerturd * (+176) /* Introductions */
19:27:55 -!- adu has quit (Quit: adu).
19:52:49 -!- john_metcalf has joined.
20:00:50 -!- adu has joined.
20:05:59 -!- adu has quit (Remote host closed the connection).
20:06:27 -!- adu has joined.
20:15:00 <b_jonas> arseniiv: I see you've improved the description of the loop builtin in the holed tree language
20:19:02 <int-e> execution of the loop continues until it falls into a hole
20:30:00 <b_jonas> arseniiv: although I don't understand why you added a while loop primitive rather than a simple conditional primitive
20:30:22 <esowiki> [[DerpText]] N https://esolangs.org/w/index.php?oldid=63884 * Fuckerturd * (+2106) Created page with "DerpText, not to be confused with [[Derpcode|similarly]] [[Derplang|named]] languages, is a language made by [[User:Fuckerturd]]. DERP. == Syntax == Commands have one or more..."
20:32:02 <arseniiv> b_jonas: one ring to rule them all
20:32:49 <b_jonas> arseniiv: sure, but why a complicated ring?
20:33:10 <b_jonas> this way, writing a simple conditional is a bit complicated
20:35:18 <arseniiv> b_jonas: I don’t know what I was thinking at the time, but maybe it’s a vestige of BF
20:36:15 <b_jonas> what contributes to this is that the two test primitives are built in a somewhat ugly way too, so there's no easy way that I can see to use them to make a value conditional
20:36:19 <arseniiv> though a simple conditional is not so complicated: <cond>[][<then> _][<else>]?
20:37:02 -!- xkapastel has joined.
20:37:14 <b_jonas> arseniiv: hmm yes, that might work
20:39:40 <b_jonas> yeah, you can probably use the % # @ = tests to write conditionals
20:39:50 <arseniiv> unfortunately, I didn’t fix any interpreter bugs today, I haven’t yet worked on it. One of these bugs is with forever loop [__+][][]? — for some reason it tries to pop an element from an empty stack, but I’m yet to find out at what step exactly
20:39:52 <b_jonas> it's just the < primitive that works a bit odd
20:40:32 <arseniiv> b_jonas: do you think it really needs a rework?
20:41:19 <arseniiv> maybe it can be argued that the current form has some pros
20:41:42 <b_jonas> arseniiv: dunno. I still find it confusing how you introduce a lot of tricky notation
20:41:49 <b_jonas> and then reference them all in the commands list
20:42:11 <int-e> arseniiv: No clue! Works in my unpublished (and unfinished) interpreter.
20:42:13 <arseniiv> I like it when a projection function works like T → Maybe SubT, < is exactly thus
20:42:14 <b_jonas> but I think you're right about the block conditional
20:42:18 <b_jonas> it is simpler than I thought
20:42:53 <arseniiv> b_jonas: I still find it confusing how you introduce a lot of tricky notation> I could name all that with words, would it make a difference?
20:43:01 <int-e> arseniiv: as far as I understand things, it really should not pop from an empty stack, so that must be a bug in the interpreter :)
20:43:20 <b_jonas> arseniiv: I'm thinking more like introduce fewer, and just use a definition directly in the statement list
20:43:46 <b_jonas> like, introduce the substitution middle circle, but write most of everything out in the statement list. possibly in an alternate list or something.
20:44:19 <arseniiv> <int-e> arseniiv: as far as I understand things, it really should not pop from an empty stack, so that must be a bug in the interpreter :) => yeah, I agree, or we’re both mistaken
20:44:58 <int-e> arseniiv: you are using your own interpreter, right?
20:45:04 <b_jonas> It's also confusing how you use "τ→" and "π→" as infix operators. Use a subscript or overscript or something.
20:45:31 <b_jonas> especially as you also use "→" for something totally different
20:46:05 <b_jonas> you use "→" for something different in the "Runtime" section
20:46:33 <b_jonas> you should probably use some completely different notation instead of "τ→" and "π→"
20:47:52 <arseniiv> <b_jonas> like, introduce the substitution middle circle, but write most of everything out in the statement list. possibly in an alternate list or something. => maaaybe. Seems like a lot of work. Initially I reasoned that pure mathematical definitions placed on their own could describe semantics better. E. g. actual commands use _ as a return when the operation is undefined, and that specific _ is not something intrinsic to the operation itself
20:48:30 <b_jonas> I'm also a bit unsure about "_" as the notation for hole
20:49:08 <arseniiv> <b_jonas> you should probably use some completely different notation instead of "τ→" and "π→" => yeah, these are probably not the best notation
20:49:33 <arseniiv> I seem to have seen it somewhere, even
20:49:57 <arseniiv> <int-e> arseniiv: you are using your own interpreter, right? => yeah. Sorry, missed that
20:51:01 <b_jonas> the "_" is confusing because some languages like Haskell and Rust and Prolog use it to mean (sort of) an unnamed variable in a pattern match, and that notation seems to be well-known, so where you're writing matches like "t′ = u′ ∘ (2 _ u)" it gets confusing, you have to remember that that's not what you mean here.
20:51:11 <arseniiv> my interpreter also has some debug commands, pretty useful to find out what goes wrong without calling separate functions of the module in REPL
20:51:38 <b_jonas> what interpreter? interpreter for what?
20:52:55 <arseniiv> b_jonas: though, I positively see the rationale against _, I’m more interested in possible replacements. *?
20:53:35 <arseniiv> <b_jonas> what interpreter? interpreter for what? => Punctree interpreter I’m writing
20:54:43 <b_jonas> definitely not "*". you are already using right arrow as an infix, small circle as both an infix and a suffix, and "2" as a prefix with two arguments. if you started to use "*", that would look like it might be an infix too. parsing your formulas to a tree is already mentally hard enough.
20:54:47 <int-e> with unicode I might use □
20:55:38 <int-e> arseniiv: which is a common notation for holes... in term rewriting
20:56:02 <arseniiv> b_jonas: also maybe I should take 2 away; in my interpreter, I show trees and contexts as 0, _ and (<L><R>)
20:56:12 <b_jonas> int-e: isn't that still the _other_ kind of hole, the one of which you can have any number in a tree, just like "_"?
20:56:14 <arseniiv> this way it’s both compact and not-unreadable
20:56:24 <int-e> (I'd hope this extends to lambda calculus and from there to all the type systems etc, but I'm not sure.)
20:56:36 <b_jonas> arseniiv: eww. add a colon or something.
20:56:43 <int-e> b_jonas: "we" don't distinguish between those two.
20:56:46 <arseniiv> int-e: ah, I thought it’s a character replacement, not an actual square
20:57:20 <b_jonas> or better still, angle brackets and a colon
20:57:34 <int-e> b_jonas: When both multi-hole contexts and contexts are around, a context is a multi-hole context with exactly one hole.
20:57:37 <b_jonas> and I mean the flat angle brackets, not less than signs
20:57:55 <arseniiv> I don’t want a linear length increase of terms representing code blocks, they are huge
20:58:35 <b_jonas> what? this is for the documentation, it has nothing to do with how an interpreter or anything actually represents them
20:59:16 <arseniiv> though if one is to change 0 to an empty string, something like ⟨_:⟨:⟩⟩ can be shorter
20:59:41 <b_jonas> unless you're trying to make an esoteric documentation, but I don't think that's your goal
21:00:00 <arseniiv> <b_jonas> what? this is for the documentation, it has nothing to do with how an interpreter or anything actually represents them => of course, but sometimes I want to print them for debugging reasons
21:00:49 <arseniiv> now I’ve forgot if I agreed to some changes today, and to what ones
21:01:00 <b_jonas> arseniiv: then keep the colon but drop the parenthesis except when the term is on the left of a colon, when writing for debugging, then the common case of a list will be compact
21:01:20 <b_jonas> more compact still than brackets around every pair
21:02:02 <b_jonas> or use (a0,a1,a2,a3:t) for a list, meaning (a0:(a2:(a3:t)))
21:02:12 <b_jonas> or use (a0,a1,a2,a3:t) for a list, meaning (a0:(a1:(a2:(a3:t))))
21:02:23 <arseniiv> I think maybe I should write all that somewhere
21:02:24 <b_jonas> and (a0,a1,a2,a3) meaning (a0:(a1:(a2:(a3:0))))
21:02:56 <b_jonas> but that only if you actually use lists, because the language doesn't seem to be specifically primed for that
21:04:07 <arseniiv> though cons list manipulation would arise sooner or later in the code
21:04:24 <arseniiv> if someone would write something big enough
21:04:53 <b_jonas> you can stick to just colons with parenthesis if you want, Haskell style
21:05:12 <b_jonas> where (a0:a1:a2:a3:t) means (a0:(a1:(a2:(a3:t))))
21:05:27 -!- AnotherTest has quit (Ping timeout: 264 seconds).
21:11:48 -!- atslash has quit (Quit: Leaving).
21:25:27 -!- john_metcalf has quit (Ping timeout: 245 seconds).
21:34:46 <b_jonas> By the way, it's quite creative how the runners managed to get Super Metroid back to GDQ this time (for Summer GDQ 2019) after that the game wasn't featured because they ran out of popular categories to show.
22:06:53 -!- uplime has changed nick to ^.
22:18:38 -!- nfd9001 has quit (Read error: Connection reset by peer).
22:21:20 -!- nfd9001 has joined.
22:26:58 -!- b_jonas has quit (Quit: leaving).
22:27:52 -!- salpynx has joined.
23:01:13 <int-e> That's not a new question, I think.
23:01:39 <shachaf> It's the old question, "Do you like this?", in disguise.
23:01:55 <shachaf> The disguise is that "this" has been substituted with "SAT solvers".
23:02:22 <int-e> shachaf: I mean you've asked this precise question before.
23:03:02 <shachaf> Did you like them at the time?
23:09:20 <shachaf> Someone suggested that dancing links is a good algorithm for SAT.
23:09:24 <int-e> https://esolangs.org/logs/2019-05.html#lJjc
23:09:38 <shachaf> I'm a bit skeptical of that claim but I wonder how well it works in practice.
23:09:41 <int-e> Dancing links... is missing the point.
23:10:11 <int-e> CDCL is where SAT solvers get their power from, and dancing links does nothing even remotely resembling that.
23:10:20 <shachaf> Hmm, I usually feel distress when I read chat logs of myself. So I won't click that link.
23:10:29 <int-e> There's a dancing links elements in the two watched literal optimization though.
23:11:19 <shachaf> I like the 2-watched-literal scheme and particularly how it doesn't need to be reset when backtracking.
23:11:38 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
23:11:50 <int-e> Well when you set a literal to true you set the clauses on its watch list aside.
23:12:18 <int-e> Hmm, "put aside" sounds more correct.
23:12:27 <int-e> But I guess both work.
23:14:27 <shachaf> Also, I found out that apparently parallelizing SAT solvers is very hard.
23:15:13 <shachaf> I expected it to be easy and I still don't really understand why it isn't.
23:17:00 <int-e> Hmm. It's tricky to estimate the size of a subtask in advance, and it's tricky to communicate all the learned clauses to other workers. Oh and single-threaded SAT solver do a lot of restarts...
23:17:49 -!- zzo38 has quit (Remote host closed the connection).
23:18:10 <int-e> Naive parallelization is easy (just give each thread a copy of the clause set and its own prefix to exhaustively search.) Work balancing and actually obtaining a speedup is... oh I don't know whether it's hard but I can see a lot of potential obstacles.
23:18:46 <shachaf> I'm just thinking of naive parallelization like that. Say to two threads.
23:19:26 <shachaf> Even if one thread terminates early fairly often, once it gets working on a prefix that doesn't terminate early, it should be able to proceed mostly independently, shouldn't it?
23:19:51 <int-e> It gets worse because actually SAT solvers may simplify the clause set as well. That's another thing that doesn't parallelize well and needs communication to benefit all workers.
23:19:59 <shachaf> Of course all sorts of tricky things are going on like CDCL, so the clause list isn't constant.
23:20:17 <int-e> shachaf: if you're unlucky that prefix took 99% of the single-threaded SAT solver time.
23:20:33 <shachaf> But I imagine you can have the threads synchronize once in a while to get an up-to-date clause list or something.
23:20:56 <shachaf> int-e: Sure, but if the second thread terminates early, it can synchronize with the first thread and get a new prefix.
23:21:09 <int-e> I have never looked at what the challenges really are. There should be half a dozen papers on parallelizing SAT solvers.
23:21:18 <shachaf> I imagine that you only need to do so many synchronizations before they both have nontrivial prefixes.
23:22:02 <shachaf> I should probably read those papers, but why do that when I can just make up naive algorithms?
23:23:00 <int-e> You could just use an existing SAT solver :P
23:23:09 <shachaf> I should probably write a SAT solver so I learn how all these things work.
23:24:27 <arseniiv> hopefully SAT solvers are useful for typechecking(?)
23:25:35 <shachaf> I have the feeling that if your type system requires a SAT solver, it's too complicated.
23:28:17 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: t̀ype: not found
23:28:23 -!- zzo38 has joined.
23:29:38 <zzo38> Somehow, I got a missing mouse cursor. I tried restarting X, but then I just got a blank screen; the text mode worked though, even though X doesn't. But I rebooted the computer and now it works OK.
23:31:56 <zzo38> (The missing mouse cursor is a problem I have seen on Windows as well; it does not seem to be specific to Linux.)
23:32:08 -!- arseniiv has quit (Ping timeout: 245 seconds).
23:32:26 <shachaf> Maybe your mouse cursor was on another computer.
23:32:31 <shachaf> Or perhaps it slid off the screen onto your desk.
23:36:42 <salpynx> `nc zzo38computer.org 70 <<< textfile/stupid/computers/sound | tail -n5
23:36:43 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: nc: not found
23:37:33 <salpynx> HackEso: that's probably for the best
23:47:36 <zzo38> I think HackEso cannot access arbitrary internet stuff
23:48:16 <zzo38> (Also, if you want to use the parsing with the shell, then you must use a `` or ``` prefix rather than only ` and the command)
23:53:24 <salpynx> that file was literally the last thing I gophered from your site last night before moving to nntp, and it relates to mouse cursors on another computer, just as shachaf joked. Funny coincidence.
23:58:20 <salpynx> zzo38: thanks for fixing the sqlnetnews timeout issue so promptly, it booted me a few times while I was exploring.
23:59:31 <salpynx> I love that HELP refers you to the full RFC 3977, all the details you could possibly require are there :)