←2020-07-02 2020-07-03 2020-07-04→ ↑2020 ↑all
00:27:00 <int-e> @metar lowI
00:27:01 <lambdabot> LOWI 030020Z AUTO 26004KT 9999 FEW005 BKN007 17/16 Q1017
00:27:48 <shachaf> I put my thing up: https://github.com/shachaf/mustardwatch
00:35:37 -!- tromp has quit (Remote host closed the connection).
00:44:18 <zzo38> I thought of some idea of Magic: the Gathering card: {?} World Enchantment ;; When ~ enters the battlefield, each player may put a world card from their graveyard into their hand. ;; The world rule does not apply. ;; Cumulative upkeep {2}
00:49:04 -!- adu has joined.
00:49:26 <zzo38> Do you like this?
01:35:37 -!- craigo has quit (Ping timeout: 272 seconds).
02:23:51 <zzo38> Would you find the mistake in my program before I did?
02:24:18 <zzo38> (Or if the mistake is rather the test)
02:31:10 -!- adu has quit (Quit: adu).
04:01:50 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
04:48:24 -!- tromp has joined.
04:53:01 -!- tromp has quit (Ping timeout: 244 seconds).
05:21:24 -!- tromp has joined.
05:26:09 -!- tromp has quit (Ping timeout: 272 seconds).
05:57:09 <zzo38> (I think the mistake was actually the test)
06:43:26 -!- LKoen has joined.
06:49:33 <zzo38> I thought of a simple way to make a C and PostScript polyglot program: Write the PostScript code first, with "/* pop" at the beginning, and "quit */" or "currentfile flushfile */" at the end.
06:52:14 <myname> while you are at it, you could also make it lhs
06:53:50 <zzo38> Yes, that can be done easily enough, too.
06:57:14 -!- tromp has joined.
07:04:51 <zzo38> (I don't know if you need a C and PostScript polyglot; I do use C and shell script polyglots though.)
07:14:11 <shachaf> For what?
07:16:15 <zzo38> Mainly to include compilation commands in the file
07:19:17 <shachaf> But all my shell scripts include #!
07:23:18 -!- 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.”).
07:24:57 <zzo38> Yes, although I just run it with "bash xyz.c" or whatever, so #! is not needed in that case (nor is the execute bit needed).
07:31:19 <zzo38> (My shell scripts that are not C programs do include #! at first and do have the execute bit)
07:57:41 -!- cpressey has joined.
08:27:41 -!- sprocklem has quit (Ping timeout: 256 seconds).
08:28:52 -!- sprocklem has joined.
08:46:55 <esowiki> [[StupidStackLanguage]] https://esolangs.org/w/index.php?diff=75045&oldid=74858 * Lebster * (-62) /* Operations */
08:58:43 <b_jonas> zzo38: another way to make a C and PostScript polyglot depends on the C++ digraphs that were introduced to C by the C95 standard: https://www.perlmonks.com/?node_id=520045
09:01:19 <b_jonas> https://www.perlmonks.com/?node_id=523373 has a more polyglot version
09:01:30 -!- TheLie has joined.
09:03:41 <b_jonas> zzo38: the longer C and PostScript polyglot uses a different trick to start out and no digraphs: https://www.perlmonks.com/?node_id=591502
09:03:57 <b_jonas> (I'm pretty sure I know who posted those anonymous nodes.)
09:04:32 -!- b_jonas has quit (Quit: leaving).
09:22:53 -!- atslash has quit (Read error: Connection reset by peer).
09:23:45 -!- atslash has joined.
09:24:02 -!- imode has quit (Ping timeout: 256 seconds).
09:31:00 <esowiki> [[ASCII]] https://esolangs.org/w/index.php?diff=75046&oldid=69949 * Lebster * (+4256) added table
09:31:46 -!- craigo has joined.
09:31:53 <shachaf> `5 w
09:31:57 <HackEso> 1/1:lkoen//LKoen vivait en haut de la Tour Eiffel, mais il s'est préfixé d'un L et s'est envolé. \ paperless//In a paperless world, rock would never lose. \ dew//In the Famous Mountains of York, Taneb makes dew. \ warning//Warnings indicate when you are doing something dangerous, like using operator precedence. \ just intonation//Bad-tempered people can be recognized by just intonation.
09:34:52 <int-e> `cwlprits just intonation
09:34:54 <HackEso> Jafët
09:35:29 <int-e> maybe it was funny in context? seems entirely forgettable to me...
09:37:14 <cpressey> int-e: I think it's play on "bad-tempered" vs "well-tempered"?
09:37:35 <int-e> cpressey: ah, maybe
09:37:56 * int-e isn't very musical.
09:38:21 <cpressey> @tell arseniiv Right, so lambdabot doesn't actually tell you that you have messages, until you *say something* on the channel.
09:38:21 <lambdabot> Consider it noted.
09:38:35 <int-e> cpressey: it certainly makes it better :)
09:39:31 <int-e> cpressey: I believe the main lambdabot authors were the screen- or irc bouncer kind of people.
09:40:00 <int-e> which makes merely joining a channel a bad indicator of activity
09:40:56 <cpressey> it's just that we were trying to figure out what the trigger actually was, the other day
09:41:39 <int-e> It's activity on the channel. And then there's a rate limit, so I suppose testing it out can be a little hard.
09:42:47 <int-e> (I'd have to check the code, but I believe it just keeps a time stamp of the latest notification which is checkd even when there are new messages.)
09:44:19 <int-e> Let me check actually.
09:46:02 <int-e> I'm wrong. There is a rate limit (pretty low, once per day), but it is reset when a new message is added.
09:49:07 <shachaf> It's an above-average pun for wisdom, I think!
09:50:07 <int-e> shachaf: It's good, but too advanced for me.
09:51:32 <int-e> does anybody else find youtube's (relatively new) mini player annoying?
09:53:21 <shachaf> I'm not sure I've seen it.
09:53:24 <int-e> (What happens is that I search for a video, click a thumbnail, and expect to get the video page... but if I click a bit too far to the right it triggers the "add to queue" action that activates the mini player.)
09:53:56 <shachaf> YouTube seems pretty user-hostile to me. They always turn on autoplay which I doubt is what hardly anyone wants by default, but is surely good for \rainbow{engagement}.
09:54:55 <int-e> Good use of the rainbow command.
09:55:24 <int-e> Yes, autoplay is high on my personal list of youtube annoyances.
09:55:33 <shachaf> I would use the actual rainbow command, but I think you have colors and colours disabled.
09:55:44 <int-e> I do.
09:55:48 <shachaf> Anyway, as Google says: "We believe that advertising can be effective without being flashy. We don’t accept pop–up advertising, which interferes with your ability to see the content you’ve requested."
09:55:54 <shachaf> I think YouTube captures this quite well.
09:56:51 <shachaf> Man, the Pragmatics of SAT workshop is in about 4 hours.
09:57:08 <shachaf> I kind of want to try attending but I doubt I should be awake then.
10:00:50 <int-e> I guess the mini player (or rather, the queuing feature that goes with it) could actually be fun if I didn't trigger it accidently so much.
10:01:57 <int-e> But then again, 95% of the time I want to watch one video at a time.
10:02:57 <int-e> I think I even asked here how to play an individual video from a playlist not too long ago.
10:03:35 <int-e> Oh well. Enough whining about bad UI/UX for today. :)
10:08:27 <shachaf> Using random SAT instances for testing was probably not a great idea.
10:10:07 <int-e> hmm
10:11:01 <cpressey> Speaking of \rainbow{engagement}, I am saddened to note that Mozilla has apparently decided that their browser's "blank page" should in fact include headlines/previews of "recommended articles"
10:11:16 <int-e> I know I've read a bit about random instances but nothing stuck.
10:12:14 <shachaf> Well, many of the interesting tricks are just not very relevant for random instances.
10:12:20 <int-e> cpressey: Yeah I still configure it to have a proper blank page.
10:12:47 <shachaf> Apparently there was a lot of progress when people started using industrial instances instead of random instances as benchmarks?
10:13:13 <shachaf> I heard a similar thing about allocators -- that people used to test allocator performance with synthetic workloads, and they became much better when people started using real workloads.
10:13:23 <int-e> It's hard to have random instances that simultaneously exhibt the kind of locality you get in real life.
10:13:49 <int-e> But that's just a vague idea that sounds smart, with no real insight in how to overcome it.
10:14:11 <shachaf> https://ece.uwaterloo.ca/~vganesh/Publications_files/vg2015-SATGraf-SAT15.pdf is probably related to that?
10:15:00 <shachaf> I like the pretty SAT instance pictures.
10:15:04 <int-e> cpressey: mozilla's doing way too much syndication these days.
10:15:22 <int-e> including things like "recommend extensions when you browse"
10:15:28 <int-e> s/when/as/
10:15:31 <cpressey> int-e: Yeah, I've noticed.
10:16:21 <shachaf> Today's recommended extension is .jpg
10:17:36 <int-e> `? password
10:17:37 <HackEso> The password of the month is peeping Tom.
10:19:50 <int-e> Ah right, null window searches.
10:20:00 <int-e> Anyway, July's is still up for grabs.
10:20:20 <shachaf> `learn The password of the month is still up for grabs.
10:20:25 <HackEso> Relearned 'password': The password of the month is still up for grabs.
10:21:39 <int-e> mmm setting potm by proxy
10:21:52 <shachaf> I figured you were doing that.
10:22:06 <shachaf> I mean, with maybe 70% confidence.
10:22:14 <shachaf> Of course I don't get points for saying that after you.
10:22:57 <int-e> I wasn't, but is anybody going to believe that...
10:23:10 <shachaf> Oh no.
10:23:33 <shachaf> Now it's the worst of all worlds for me.
10:23:55 <shachaf> Hmm, I have this function that writes some strings to a FILE * argument. If you pass it stdout it works fine, but if you pass it stderr it writes and flushes a lot of small strings.
10:23:59 <shachaf> What's the way to get around that?
10:24:18 <shachaf> I guess ideally it wouldn't write to a FILE * at all but just give you a string, or something...
10:24:44 <shachaf> Well, I don't know what's ideal.
10:27:03 -!- Lord_of_Life_ has joined.
10:28:20 <int-e> tinker with setbuf() to make stderr buffered, or write to a string buffer, then write that to the file?
10:28:41 <int-e> (or setlinebuf)
10:29:03 <shachaf> I wonder what would be a good API to give callers in practice.
10:29:53 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
10:30:01 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
10:30:07 <int-e> Hmm, wasn't aware of fmemopen.
10:31:10 <int-e> (or its dynamic friend, open_memstream)
10:33:07 <shachaf> That's another thing I was considering.
10:33:26 <shachaf> Or rather I was considering open_memstream, I didn't know about the other one.
10:35:03 <shachaf> In the general case you don't necessarily want the entire output to be in memory, though. You just want a fixed buffer that you can flush.
10:35:28 <shachaf> I guess setbuf works OK but it makes the caller do more work.
10:37:53 <shachaf> Maybe the function should do its own buffering.
10:38:07 <int-e> ideally you'd add a buffer temporarily if there isn't one already... but you can't query whether an fd is buffered, I think.
10:38:33 <int-e> Err, file handle, of FILE * type.
10:39:16 <shachaf> Yes.
10:39:32 <shachaf> I mean, the ideal API to present is maybe something like a state machine, but that makes the function way more work to write.
10:44:19 <cpressey> /* Note: this function makes many small writes to the FILE * passed to it -- it may behoove you to ensure it is buffered. */
10:44:36 <cpressey> That's all I'd do
10:44:42 <int-e> "behoove"
10:44:50 <int-e> so fancy
10:47:00 <cpressey> It's a word that I use strangely frequently considering how funny it is
10:47:11 <cpressey> It's just that it's the mot juste sometimes
10:47:46 <int-e> It's fine, just really rare, and maybe a tad condescending.
10:48:11 <cpressey> "it may be in your interests to ensure that it's buffered" is a bit long. "You might want to ensure it is buffered", maybe.
10:48:20 <cpressey> My point is, I don't know what the caller wants.
10:48:20 <int-e> So maybe a bit out of place for technical documentation? I don't know.
10:48:36 <cpressey> Maybe they want lots of small writes on an unbuffered stream. It's possible!
10:48:55 <int-e> It's hard to phrase this in a way that does not come across as condescending. You are giving advice after all.
10:49:34 <cpressey> The other option is just to have the first part of the comment, and hope the client can infer the second part.
10:50:19 <int-e> As a result, this function may be slow on unbuffered streams.
10:50:56 <cpressey> Sure, that's less opinionated.
10:51:55 <int-e> You better ensure the stream is buffered unless you like your code slowing down to a crawl!
10:52:11 <int-e> You are somewhere in the middle of that spectrum :)
10:52:52 <int-e> This is also really close to bikeshedding.
10:54:14 <shachaf> cpressey: OK, but it's supposed to be maximally convenient to use.
10:54:58 <shachaf> Maybe making every caller do setbuf is OK, but it seems annoying since this'll be in all of my programs.
10:56:40 <int-e> maximal convenience indicates you should bite the bullet and do your own internal buffering, and live with the memory overhead and potential double copying.
10:56:47 <shachaf> The specific case is a function that generates --help text for programs.
10:57:06 <shachaf> So it probably all doesn't matter.
10:57:15 <int-e> otoh this doesn't sound performance critical at all
10:57:37 <shachaf> It isn't.
10:57:45 <int-e> then KISS it
10:58:08 <shachaf> It's just this does things like indenting by printing a bunch of spaces in a loop, and it's not great to have each one be a system call.
10:58:22 <int-e> (Huh, why have I never seen anybody use that as a verb? It's so natural!)
10:58:58 <int-e> I guess the sexual connotations make it inappropriate in most contexts.
10:58:58 <shachaf> I think everyone says "KitSS". It really rolls off the tongue.
11:00:34 <int-e> aren't there things like printf("%*s", n, "")?
11:09:04 -!- craigo has quit (Quit: Leaving).
11:11:34 <shachaf> Oh, hmm.
11:12:45 <shachaf> I guess there are!
11:13:52 <shachaf> That helps with the worst of it. But there are still other things like if (x) { printf("..."); } else { printf(" "); }
11:15:47 -!- craigo has joined.
11:18:38 <cpressey> <shachaf> The specific case is a function that generates --help text for programs. <== I'm going to go out on a limb and say that on modern machines, such text will always easily fit in memory.
11:19:13 <shachaf> It's true. But then the caller would need to give it a buffer or something.
11:19:17 <shachaf> Or it would need to use malloc.
11:20:03 <cpressey> Would it be a sad thing for it to use malloc?
11:20:38 <cpressey> In specific, I had the thought, "If only there was a version of sprintf() that just doubles the size of the buffer each time it would otherwise overflow".
11:21:03 <cpressey> But to be fair I haven't programmed in C in years and years now
11:22:15 <shachaf> Well, it's silly for an API to use malloc if it doesn't need to.
11:22:28 <shachaf> It might not be available.
11:22:37 <shachaf> And it isn't great for temporary allocations anyway.
11:24:39 <int-e> Obviously you should be using CPP magic to make the help message a constant string.
11:25:11 <shachaf> I'm already using too much other magic to generate it.
11:27:08 <int-e> It's important to hang on to those shreds of sanity :)
11:38:19 -!- t20kdc has joined.
11:59:15 -!- cpressey has quit (Quit: Lunch.).
12:02:45 <esowiki> [[H9+]] M https://esolangs.org/w/index.php?diff=75047&oldid=71612 * PythonshellDebugwindow * (+382)
12:03:21 <esowiki> [[H9+]] M https://esolangs.org/w/index.php?diff=75048&oldid=75047 * PythonshellDebugwindow * (+9) /* Interpreter */
12:03:59 <esowiki> [[H9+]] M https://esolangs.org/w/index.php?diff=75049&oldid=75048 * PythonshellDebugwindow * (+49) /* Interpreter */
12:06:04 <esowiki> [[LSCEF]] M https://esolangs.org/w/index.php?diff=75050&oldid=69599 * PythonshellDebugwindow * (+23) /* Usage in interpreters */ cat
12:07:20 <esowiki> [[Screw]] M https://esolangs.org/w/index.php?diff=75051&oldid=64120 * PythonshellDebugwindow * (+22)
12:08:24 <esowiki> [[Echidna]] M https://esolangs.org/w/index.php?diff=75052&oldid=66183 * PythonshellDebugwindow * (+32) cat + stub
12:11:33 <esowiki> [[La We]] M https://esolangs.org/w/index.php?diff=75053&oldid=71968 * PythonshellDebugwindow * (+108) /* External resources */
12:11:47 <esowiki> [[La We]] M https://esolangs.org/w/index.php?diff=75054&oldid=75053 * PythonshellDebugwindow * (+30) /* Implemetation */
12:12:10 <esowiki> [[La We]] M https://esolangs.org/w/index.php?diff=75055&oldid=75054 * PythonshellDebugwindow * (+1) /* Implemetation */ grm
12:12:23 <esowiki> [[La We]] M https://esolangs.org/w/index.php?diff=75056&oldid=75055 * PythonshellDebugwindow * (+0) /* Implemetantion */
12:14:06 <esowiki> [[Starfish]] M https://esolangs.org/w/index.php?diff=75057&oldid=50717 * PythonshellDebugwindow * (-13) link = null;
12:15:10 <esowiki> [[Fish]] M https://esolangs.org/w/index.php?diff=75058&oldid=71248 * PythonshellDebugwindow * (-8) link.hasPipe = false;
12:25:33 <esowiki> [[Thue-Mirr]] M https://esolangs.org/w/index.php?diff=75059&oldid=60088 * PythonshellDebugwindow * (+6) bold + move cats
12:26:31 <int-e> do the esolang cats have whiskers?
12:29:41 <t20kdc> it's a language-dependent thing
12:34:48 -!- arseniiv has joined.
12:35:54 <esowiki> [[BF-ASM:8]] M https://esolangs.org/w/index.php?diff=75060&oldid=74999 * DmilkaSTD * (+184)
12:36:24 <arseniiv> hon. and learned friend fungot how’s the weat
12:36:24 <fungot> arseniiv: ( and he didn't bother.
12:37:04 <arseniiv> …her
12:45:38 <esowiki> [[User:DmilkaSTD]] https://esolangs.org/w/index.php?diff=75061&oldid=75022 * DmilkaSTD * (+335)
12:47:05 -!- adu has joined.
12:53:31 <esowiki> [[Special:Log/upload]] upload * DmilkaSTD * uploaded "[[File:EsohackGraph.png]]"
12:55:10 <esowiki> [[User:DmilkaSTD]] https://esolangs.org/w/index.php?diff=75063&oldid=75061 * DmilkaSTD * (+57)
12:59:03 <esowiki> [[User:DmilkaSTD]] https://esolangs.org/w/index.php?diff=75064&oldid=75063 * DmilkaSTD * (+49)
13:03:38 <esowiki> [[User:PythonshellDebugwindow/(Unnamed language)]] M https://esolangs.org/w/index.php?diff=75065&oldid=75044 * PythonshellDebugwindow * (+585)
13:03:57 <esowiki> [[User:PythonshellDebugwindow/(Unnamed language)]] M https://esolangs.org/w/index.php?diff=75066&oldid=75065 * PythonshellDebugwindow * (+5) escape pipe
13:04:57 -!- cpressey has joined.
13:04:58 <esowiki> [[User:DmilkaSTD]] https://esolangs.org/w/index.php?diff=75067&oldid=75064 * DmilkaSTD * (+58)
13:05:59 <esowiki> [[User:DmilkaSTD]] https://esolangs.org/w/index.php?diff=75068&oldid=75067 * DmilkaSTD * (+15)
13:20:45 <esowiki> [[User:DmilkaSTD]] https://esolangs.org/w/index.php?diff=75069&oldid=75068 * DmilkaSTD * (+70)
13:21:53 <esowiki> [[BF-ASM:8]] M https://esolangs.org/w/index.php?diff=75070&oldid=75060 * PythonshellDebugwindow * (+31)
13:22:41 <esowiki> [[Assemblyfuck]] https://esolangs.org/w/index.php?diff=75071&oldid=56028 * DmilkaSTD * (+45)
13:24:36 <esowiki> [[Assemblyfuck]] M https://esolangs.org/w/index.php?diff=75072&oldid=75071 * PythonshellDebugwindow * (+66) /* See Also: */ cats
13:24:50 <esowiki> [[Assemblyfuck]] M https://esolangs.org/w/index.php?diff=75073&oldid=75072 * PythonshellDebugwindow * (+0) /* Specification and instructions */ 5 += 1
13:32:09 <esowiki> [[Talk:Assemblyfuck]] N https://esolangs.org/w/index.php?oldid=75074 * DmilkaSTD * (+35) Created page with "== My idea for making a compiler =="
13:42:44 <esowiki> [[Talk:Assemblyfuck]] https://esolangs.org/w/index.php?diff=75075&oldid=75074 * DmilkaSTD * (+508)
13:42:57 <esowiki> [[Talk:Assemblyfuck]] https://esolangs.org/w/index.php?diff=75076&oldid=75075 * DmilkaSTD * (-2)
13:43:15 -!- grumble has quit (Quit: Well, would you look at the time. I've almost missed my ambiguous, non-existent appointment that I have scheduled just when I start to lose interest in my current conversation.).
13:43:16 <esowiki> [[Talk:Assemblyfuck]] https://esolangs.org/w/index.php?diff=75077&oldid=75076 * DmilkaSTD * (+13)
13:43:49 -!- grumble has joined.
13:49:17 <esowiki> [[Talk:Assemblyfuck]] https://esolangs.org/w/index.php?diff=75078&oldid=75077 * DmilkaSTD * (+186)
13:49:50 <esowiki> [[Special:Log/newusers]] create * Skyf0l * New user account
13:52:09 <esowiki> [[Talk:Assemblyfuck]] https://esolangs.org/w/index.php?diff=75079&oldid=75078 * DmilkaSTD * (+20)
13:55:06 <esowiki> [[Talk:Assemblyfuck]] https://esolangs.org/w/index.php?diff=75080&oldid=75079 * DmilkaSTD * (+105)
13:55:29 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=75081&oldid=74951 * Skyf0l * (+114) I have added me !
13:57:52 <esowiki> [[User:PythonshellDebugwindow/(Unnamed language)]] M https://esolangs.org/w/index.php?diff=75082&oldid=75066 * PythonshellDebugwindow * (+1112)
14:02:47 <cpressey> arseniiv: hi. Generalized Minksy machine is very cool, but to implement it in Tandem wouldn't you need to be able to define a concrete string representation for each of the values? Would there be a way to do this canonically?
14:04:30 <arseniiv> cpressey: hi!
14:04:33 <cpressey> (btw, Tandem is still broken, because ⊥ and algebraic manipulations hate each other)
14:06:11 <arseniiv> I’d represent values in a prefix (Polish) notation, or maybe in a S-expression notation or similar, but it seems they are all stack-unfriendly
14:07:04 <esowiki> [[Eso2D]] M https://esolangs.org/w/index.php?diff=75083&oldid=72330 * PythonshellDebugwindow * (+261) /* Commands */ code tags + newline is obvious
14:07:15 <esowiki> [[Eso2D]] M https://esolangs.org/w/index.php?diff=75084&oldid=75083 * PythonshellDebugwindow * (-35) /* Truth-machine */
14:08:23 <esowiki> [[Eso2D]] M https://esolangs.org/w/index.php?diff=75085&oldid=75084 * PythonshellDebugwindow * (-16) /* Auto-formatting */
14:08:36 <esowiki> [[Eso2D]] M https://esolangs.org/w/index.php?diff=75086&oldid=75085 * PythonshellDebugwindow * (+12) /* Auto-formatting */ edit spam
14:08:49 <esowiki> [[User:PythonshellDebugwindow/(Unnamed language)]] M https://esolangs.org/w/index.php?diff=75087&oldid=75082 * PythonshellDebugwindow * (+379) /* Elements */
14:08:58 <arseniiv> for example let { data Nat = Z | S Nat; data ListN = N | C Nat ListN }, then I would represent C (S (S Z)) $ C Z $ C (S (S (S Z))) N as CSSZCZCSSSZN or (C(S(SZ))(CZ(C(S(S(SZ)))N)))
14:09:36 <esowiki> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=75088&oldid=74809 * PythonshellDebugwindow * (+12)
14:09:45 <arseniiv> hm no, it seems S-expressions may be friendly if we use something to track open parentheses discarded, why
14:09:46 <esowiki> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=75089&oldid=75088 * PythonshellDebugwindow * (+10)
14:10:33 <arseniiv> well that’s all like you used for the usual Minsky machine with nats, though you used an empty string for Z
14:10:57 <esowiki> [[Talk:Assemblyfuck]] https://esolangs.org/w/index.php?diff=75090&oldid=75080 * DmilkaSTD * (+349)
14:11:09 <arseniiv> CSSZCZCSSSZN => looks Czech and Hungarian to me
14:11:32 <esowiki> [[Talk:Assemblyfuck]] https://esolangs.org/w/index.php?diff=75091&oldid=75090 * DmilkaSTD * (+16)
14:13:25 <arseniiv> cpressey: answering your question in full, yeah, I believe a representation like those would be canonical. We can even use multi-letter constructors, I forgot one can match many characters at once
14:15:49 <arseniiv> like Cons␣S␣S␣Z␣Cons␣Z␣Nil␣ for the prefix version, ending each name in a space. Though this is not the deal of course, but it’s neat we can be faithful to the details of the original haskell-like naming of constructors
14:15:56 <esowiki> [[Talk:Assemblyfuck]] https://esolangs.org/w/index.php?diff=75092&oldid=75091 * DmilkaSTD * (+2213)
14:16:14 <esowiki> [[BF-ASM:8]] https://esolangs.org/w/index.php?diff=75093&oldid=75070 * DmilkaSTD * (+134)
14:16:19 <arseniiv> I like these space brackets ␣␣␣
14:16:30 -!- kspalaiologos has joined.
14:16:50 <arseniiv> I used them sometimes long time ago when I wrote programs by hand
14:17:12 <arseniiv> don’t remember where I learned about them
14:17:46 <cpressey> I see, I think. Well, as long as you can build & consume them from one side only, you only need one stack to hold them (and if you can't, you can probably put them across two stacks, like a tape, if you're prepared to juggle them a bit)
14:17:54 <arseniiv> kspalaiologos: hi how are your languages doing?
14:18:13 <kspalaiologos> I wrote an emulator
14:18:17 <kspalaiologos> for this UM32 thingy
14:18:43 <kspalaiologos> it works, and it's moderately obfuscated
14:18:52 <kspalaiologos> the best settings for some reason break the program so I'm checking it
14:19:08 <arseniiv> cpressey: yeah maybe two stacks would be enough, didn’t thought about that. One is definitely not, as we can’t add from another end. Hmm how about a deque-rewriting language where you can match on both ends?
14:20:27 -!- atslash has quit (Read error: Connection reset by peer).
14:20:59 -!- atslash has joined.
14:21:51 <arseniiv> though that would need a revamp of the Haskell impl as it currently uses lists
14:22:09 <arseniiv> and that would be not a minimal language anymore
14:29:10 -!- RiriSec has joined.
14:29:23 <kspalaiologos> aye
14:30:51 <esowiki> [[User:PythonshellDebugwindow/(Unnamed language)]] M https://esolangs.org/w/index.php?diff=75094&oldid=75087 * PythonshellDebugwindow * (+15) /* Elements */
14:31:54 <esowiki> [[DIVCON]] https://esolangs.org/w/index.php?diff=75095&oldid=74874 * A * (+186)
14:33:44 <esowiki> [[DIVCON]] https://esolangs.org/w/index.php?diff=75096&oldid=75095 * A * (+289) /* Reversible branching */
14:34:35 -!- RiriSec has quit (Quit: WeeChat 2.3).
14:34:52 <esowiki> [[DIVCON]] https://esolangs.org/w/index.php?diff=75097&oldid=75096 * A * (+177) /* Definitions */
14:37:00 <esowiki> [[DIVCON]] https://esolangs.org/w/index.php?diff=75098&oldid=75097 * A * (+93) /* Branching */
14:38:44 <esowiki> [[DIVCON]] https://esolangs.org/w/index.php?diff=75099&oldid=75098 * A * (+105) /* Instruction list */
14:39:32 <cpressey> Hmm. It is a bit difficult to simulate matching either end of a deque, when you simulate the deque with two stacks. Each stack needs to be a full copy and, when you rewrite one of them, you have to make the same change to the other (but since it's upside-down, a fair bit of work is involved)
14:44:43 <esowiki> [[DIVCON]] https://esolangs.org/w/index.php?diff=75100&oldid=75099 * A * (+132) /* Instruction list */
14:46:35 <esowiki> [[DIVCON]] https://esolangs.org/w/index.php?diff=75101&oldid=75100 * A * (+38) /* Unofficial extension */
14:59:03 -!- TheLie has quit (Remote host closed the connection).
15:03:35 <arseniiv> cpressey: yeah, both ends at the same time is tricky. Maybe one could first shuffle all content to the left half-stack, then shuffle the matched amount of character back, and if there’s no match on either end, it should be genuine
15:03:50 <arseniiv> s/character/characters
15:04:59 <arseniiv> oh wait there is no “match any character and then place it here”, that’s a minor difficulty too
15:34:15 -!- Arcorann has quit (Read error: Connection reset by peer).
15:49:01 -!- MDude has joined.
15:49:29 <esowiki> [[User:PythonshellDebugwindow/(Unnamed language)]] M https://esolangs.org/w/index.php?diff=75102&oldid=75094 * PythonshellDebugwindow * (+346) /* Each tick */
15:50:24 -!- adu has quit (Quit: adu).
15:52:28 -!- t20kdc has quit (Remote host closed the connection).
15:57:29 -!- cpressey has quit (Quit: WeeChat 1.9.1).
15:59:12 -!- tromp_ has joined.
16:02:32 -!- tromp has quit (Ping timeout: 260 seconds).
16:24:06 -!- Frater_EST has joined.
16:38:32 <esowiki> [[Esoteric algorithm]] M https://esolangs.org/w/index.php?diff=75103&oldid=64510 * PythonshellDebugwindow * (+59) /* Potential Use */ cat+link
16:45:42 <esowiki> [[ChineseScript]] M https://esolangs.org/w/index.php?diff=75104&oldid=38538 * PythonshellDebugwindow * (+38)
16:47:08 <esowiki> [[Unnamed]] M https://esolangs.org/w/index.php?diff=75105&oldid=44807 * PythonshellDebugwindow * (+78)
16:48:21 -!- adu has joined.
17:00:15 <esowiki> [[Unary Filesystem]] M https://esolangs.org/w/index.php?diff=75106&oldid=73669 * PythonshellDebugwindow * (+61) /* Cat program for 1 char */
17:01:01 <esowiki> [[Unary Filesystem]] M https://esolangs.org/w/index.php?diff=75107&oldid=75106 * PythonshellDebugwindow * (+53) /* Cat program for 1 char */ explain
17:05:23 <esowiki> [[Deviating Percolator]] M https://esolangs.org/w/index.php?diff=75108&oldid=42064 * PythonshellDebugwindow * (+0) /* Interpreters */ clearly made in 2010; the year it was implemented is not the year it was created
17:05:47 <esowiki> [[User:PythonshellDebugwindow/(Unnamed language)]] M https://esolangs.org/w/index.php?diff=75109&oldid=75102 * PythonshellDebugwindow * (+722) /* Object movement */
17:08:31 <esowiki> [[ESOPUNK]] M https://esolangs.org/w/index.php?diff=75110&oldid=70779 * PythonshellDebugwindow * (+42) let pipe: String? = nil; cats.add()
17:09:25 <esowiki> [[Sea]] M https://esolangs.org/w/index.php?diff=75111&oldid=72528 * PythonshellDebugwindow * (+41) another stub-wip
17:09:59 <esowiki> [[Microscript]] M https://esolangs.org/w/index.php?diff=75112&oldid=71076 * PythonshellDebugwindow * (+14) link to /* Brainf*** equivalence */
17:10:07 -!- b_jonas has joined.
17:20:50 <esowiki> [[User:DmilkaSTD]] https://esolangs.org/w/index.php?diff=75113&oldid=75069 * DmilkaSTD * (+11)
17:21:14 <esowiki> [[User:DmilkaSTD]] https://esolangs.org/w/index.php?diff=75114&oldid=75113 * DmilkaSTD * (-11)
17:29:49 -!- Frater_EST has left.
17:33:46 <b_jonas> "<kspalaiologos> I wrote an emulator / for this UM32 thingy" => nice
17:52:51 -!- erdic has quit (Ping timeout: 265 seconds).
17:53:42 <b_jonas> "<shachaf> YouTube [...] always turn on autoplay" => disagreed, in my experience they turn on autoplay but it's easy to turn off and they only turn it back on once every six years or so, so that part isn't too annoying
17:53:55 <shachaf> Well, I mean they turn it on by default.
17:54:09 <shachaf> I do all my browsing in fresh browser sessions so I have to turn it off constantly.
17:54:45 <b_jonas> shachaf: ah. I browse youtube from the same few sessions all the time (as in, same one session at home until I reinstall the OS, one session at the work computer etc)
17:55:21 -!- erdic has joined.
17:55:36 <b_jonas> "<int-e> [...] how to play an individual video from a [youtube] playlist" => there was an easy interface for that in at least some previous version of youtube, let me check
17:55:49 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=75115&oldid=75081 * CubixThree * (+197) I made me go on the tihng!!
17:57:08 <b_jonas> int-e: can't find a very easy way now, the easiest I recommend is to load the video in the playlist then edit the url bar to remove the "list" GET parameter
17:57:30 <b_jonas> that, or use youtube-dl, which can list playlists
17:57:33 <b_jonas> and metadata
18:02:47 <b_jonas> "<int-e> [mozilla] "recommend extensions when you browse"" => how is that a bad thing? that means that they don't put those extensions as stuff suddenly appearing in your browser at a software update and annoying you by default until you disable it. they're showing restraint compared to how firefox usually works by only recommending stuff.
18:05:30 <b_jonas> "<shachaf> this function that writes some strings to a FILE * argument. If you pass it stdout it works fine, but if you pass it stderr it writes and flushes a lot of small strings. / What's the way to get around that?" =>
18:05:42 <shachaf> /last fine
18:05:45 <shachaf> Oops.
18:07:00 -!- kritixilithos has joined.
18:07:39 <b_jonas> if you can afford an extra syscall, then dup stderr, fdopen the dupe, setvbuf it to block-buffered, write into that FILE *, fflush and fclose at leisure. otherwise it's trickier and libc-dependent -- perl and python have easy ways to create an extra file descriptor without duping the underlying handle but libc doesn't.
18:13:11 <b_jonas> if you are using a libc that has the open_memstream function (which is in POSIX and glibc) and can afford to keep all the data that the function writes in memory at once, you can use open_memstream. otherwise glibc has non-portable functions to create a FILE * with custom backend functions, so you can probably implement an equivalent of fdopen that doesn't require duping the fd using that.
18:13:31 <esowiki> [[User:CubixThree]] N https://esolangs.org/w/index.php?oldid=75116 * CubixThree * (+235) I made it!!! :D
18:14:09 <b_jonas> if none of these conditions apply, then I don't know any other solution to get a suitable FILE *, you'll have to make a version of your function with a different interface.
18:16:12 <b_jonas> "<int-e> tinker with setbuf() to make stderr buffered," => setvbuf instead of the ancient setbuf please, but I don't recommend this, the problem is that something else may try to use your stderr, including another thread or a broken fatal error exit function that tries to write diagnostics to stderr and then _exits
18:16:54 <shachaf> b_jonas: I'm fine with a different interface.
18:17:15 <shachaf> In fact I would prefer to have the core API not depend on stdio, so it's usable in more contexts.
18:20:15 -!- Cubix has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.).
18:22:41 <b_jonas> shachaf, int-e: mostly fmemopen is for reading, open_memstream is for writing.
18:26:08 <b_jonas> shachaf: perl and python let you just fdopen in such a way that it doesn't close the underlying fd when you close the fh. they work differently: perl uses refcounting and closes when you close the last fh, python lets you explicitly choose at open time, but for stderr this distinction is irrelevant. libc doesn't have such an interface for FILE*, but in gnu libc you can implement one from the general
18:26:14 <b_jonas> custom FILE creation functions. libstdc++ is similar: no builtin, but you can create a custom outputstream. in both cases, the library handles the buffering, and you effectively implement the write function, not the fwrite function.
18:31:52 <b_jonas> "<shachaf> It's just this does things like indenting by printing a bunch of spaces in a loop, and it's not great to have each one be a system call." => but the libc has printf("%.*s%s\n", (int)indent_count, "", line); for that, and that will not flush until the end
18:32:26 <shachaf> Yes, int-e mentioned that and I'm using it now.
18:32:54 <arseniiv> I’m worried that set-theoretic representation of partitions needs to explicitly forbid empty sets in them. Am I too far gone?
18:34:36 <b_jonas> well technically it's printf("%.s%s\n", (int)(unsigned)(indent_count < 0 ? 0 : indent_count), "", line); so that if you try to indent by more than two gigacolumns you get incorrect indentation instead of undefined behavior, but details.
18:35:58 <b_jonas> no sorry, make that just printf("%.s%s\n", (int)(unsigned)indent_count, "", line);
18:40:37 <b_jonas> "Well, it's silly for an API to use malloc if it doesn't need to." => this is for printing a --help machine. it's not a problem to use malloc for that, as long as you give a compilation option to just omit that entire feature
18:45:20 <shachaf> Well, you might be using it on a platform without malloc.
18:46:44 <esowiki> [[STOD]] M https://esolangs.org/w/index.php?diff=75117&oldid=51984 * PythonshellDebugwindow * (+138) cats
18:48:17 <esowiki> [[Glutton]] M https://esolangs.org/w/index.php?diff=75118&oldid=73148 * PythonshellDebugwindow * (+27) cat /* Processed Ingredients */
18:51:25 <esowiki> [[Cbrain]] M https://esolangs.org/w/index.php?diff=75119&oldid=36339 * PythonshellDebugwindow * (+28) /* External resources */ cats
18:52:19 <zzo38> I have used open_memstream, and there is also the SQLite functions like sqlite3_str_new which don't use the file interface but it can be used for a similar purpose. I also implemented straccum and strfunish in PostScript which is similar and it does use a file interface, like open_memstream in C does. Also, another way if you still need to keep the file descriptor open in C might be to duplicate it (although the effect is not quite the
18:54:49 -!- catern has quit (Excess Flood).
18:55:07 -!- catern has joined.
19:16:16 -!- user24 has joined.
19:34:03 -!- kritixilithos has quit (Ping timeout: 240 seconds).
19:36:12 -!- kritixilithos has joined.
19:40:31 -!- kritixilithos has quit (Client Quit).
19:48:20 -!- kspalaiologos has quit (Quit: Leaving).
19:49:18 -!- TheLie has joined.
20:00:11 -!- nfd9001 has joined.
20:02:00 -!- imode has joined.
20:03:03 -!- nfd has quit (Ping timeout: 258 seconds).
20:03:10 -!- rain1 has quit (Quit: Leaving).
20:08:46 -!- nfd9001 has quit (Ping timeout: 246 seconds).
20:15:24 <esowiki> [[MiniBitMove]] M https://esolangs.org/w/index.php?diff=75120&oldid=51866 * PythonshellDebugwindow * (+430)
20:15:50 <esowiki> [[MiniBitMove]] M https://esolangs.org/w/index.php?diff=75121&oldid=75120 * PythonshellDebugwindow * (+51) header /* Commands */
20:17:41 -!- nfd9001 has joined.
20:19:44 <esowiki> [[Not The Main Worb/ntmw.py]] M https://esolangs.org/w/index.php?diff=75122&oldid=53652 * PythonshellDebugwindow * (+58)
20:20:16 <esowiki> [[Not The Main Worb]] M https://esolangs.org/w/index.php?diff=75123&oldid=53648 * PythonshellDebugwindow * (+32) link
20:23:42 <esowiki> [[Talk:Noit o' mnain worb]] M https://esolangs.org/w/index.php?diff=75124&oldid=34953 * PythonshellDebugwindow * (+54) unsigned
20:35:25 -!- nfd9001 has quit (Ping timeout: 244 seconds).
20:48:19 <esowiki> [[Dirst]] M https://esolangs.org/w/index.php?diff=75125&oldid=40971 * PythonshellDebugwindow * (+32) /* External resources */ see also
20:48:45 <esowiki> [[Folders]] M https://esolangs.org/w/index.php?diff=75126&oldid=70683 * PythonshellDebugwindow * (+27) /* External resources */ see also
20:49:13 <esowiki> [[Folders]] M https://esolangs.org/w/index.php?diff=75127&oldid=75126 * PythonshellDebugwindow * (+25) /* External resources */ cat
20:50:00 <esowiki> [[Unary Filesystem]] M https://esolangs.org/w/index.php?diff=75128&oldid=75107 * PythonshellDebugwindow * (+65) /* Cat program for 1 char */ cat
20:50:23 <esowiki> [[Folders]] M https://esolangs.org/w/index.php?diff=75129&oldid=75127 * PythonshellDebugwindow * (+23) /* See also */ uf
20:50:36 <esowiki> [[Dirst]] M https://esolangs.org/w/index.php?diff=75130&oldid=75125 * PythonshellDebugwindow * (+23) /* See also */ uf
21:09:38 -!- adu has quit (Quit: adu).
21:39:39 -!- catern has quit (Excess Flood).
21:39:59 -!- catern has joined.
22:08:55 <esowiki> [[Special:Log/newusers]] create * Feet2picture * New user account
22:13:08 <zzo38> What is the algorithm for cangjie rendering?
22:15:18 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=75131&oldid=75115 * Feet2picture * (+273) /* Introductions */
22:29:38 -!- Lord_of_Life_ has joined.
22:30:34 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
22:30:57 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
22:43:25 <esowiki> [[GORBITSA]] https://esolangs.org/w/index.php?diff=75132&oldid=74548 * ZippyMagician * (-182) Separate basic and advanced programs
22:56:25 -!- arseniiv has quit (Ping timeout: 246 seconds).
22:57:49 -!- sprocklem has quit (Ping timeout: 264 seconds).
22:59:00 -!- sprocklem has joined.
23:03:00 -!- TheLie has quit (Remote host closed the connection).
23:15:08 -!- user24 has quit (Remote host closed the connection).
23:19:01 -!- sftp has quit (Ping timeout: 272 seconds).
23:22:41 -!- sftp has joined.
23:46:57 -!- imode has quit (Quit: WeeChat 2.8).
23:51:45 <esowiki> [[GORBITSA]] M https://esolangs.org/w/index.php?diff=75133&oldid=75132 * PythonshellDebugwindow * (+2) /* Implementations */
←2020-07-02 2020-07-03 2020-07-04→ ↑2020 ↑all