00:56:00 -!- adu has joined.
01:36:41 -!- adu has quit (Ping timeout: 246 seconds).
01:40:14 <esowiki> [[User:Tetrapyronia]] https://esolangs.org/w/index.php?diff=77514&oldid=77510 * Tetrapyronia * (+0) /* -1 */
01:40:39 -!- adu has joined.
01:52:43 -!- ATMunn has quit (Quit: lol rip).
01:54:08 -!- ATMunn has joined.
03:10:08 -!- adu has quit (Ping timeout: 256 seconds).
03:14:36 -!- adu has joined.
03:19:55 -!- adu has quit (Ping timeout: 272 seconds).
03:23:31 -!- adu has joined.
03:26:22 <zzo38> Why does the throwing distance table in GURPS use the reciprocal of the weight ratio if it is more than 1, but the square root of the reciprocal if it is less than 1?
03:27:23 -!- hendursaga has quit (Ping timeout: 240 seconds).
03:27:29 -!- xelxebar has quit (Remote host closed the connection).
03:28:04 -!- xelxebar has joined.
03:30:06 -!- hendursaga has joined.
04:02:29 -!- xelxebar has quit (Remote host closed the connection).
04:02:58 -!- xelxebar has joined.
05:08:49 -!- Lord_of_Life has quit (Ping timeout: 244 seconds).
05:09:34 -!- Lord_of_Life has joined.
05:13:54 -!- adu has quit (Quit: adu).
06:12:10 -!- gitlogger has joined.
06:44:20 <esowiki> [[Serenity]] M https://esolangs.org/w/index.php?diff=77515&oldid=76341 * Hakerh400 * (+0) /* Instructions */
07:28:11 <esowiki> [[MAWP]] https://esolangs.org/w/index.php?diff=77516&oldid=76684 * Dion * (+1642)
07:37:52 -!- Sgeo has quit (Read error: Connection reset by peer).
07:56:52 <esowiki> [[Special:Log/newusers]] create * X64Mayhem * New user account
08:06:17 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=77517&oldid=77495 * X64Mayhem * (+125) /* Introductions */
08:07:08 -!- imode has quit (Ping timeout: 256 seconds).
08:09:17 -!- hendursa1 has joined.
08:12:03 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:13:52 -!- erdic has quit (Ping timeout: 256 seconds).
08:48:35 -!- cpressey has joined.
08:58:16 -!- arseniiv has joined.
09:02:30 <cpressey> All the yaks are staring me in the face.
09:02:38 <arseniiv> rain1: exactly. There are several approaches in the current Haskell like that one (I think tagless final encoding is another?) and I’m interested how well they are used etc.
09:02:55 <int-e> cpressey: the closest one
09:03:33 <int-e> cpressey: but from a safe distance?
09:03:48 <int-e> I realize I know nothing about yak-shaving.
09:03:53 <fungot> int-e: that the committee do and for organising the election, because, guess what, it shows to the fnord intelligence that is as efficient and effective as possible.
09:04:14 <int-e> Ugh, sounds political... EU? UK?
09:04:18 <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
09:04:45 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
09:04:50 <int-e> fungot: what does this do?
09:04:50 <fungot> int-e: is it possible for one of your b100d and a beating heart tells in me, even the idiots. they are the most delicious bunches,
09:05:42 <int-e> fungot: don't end on a comma like that
09:05:42 <fungot> int-e: but it is your journey i am so over this puzzle,
09:05:58 <int-e> fungot: did they teach you nothing in grammar school?
09:05:58 <fungot> int-e: an old colonel lost, but a new brother gained. together they will ascend, each time you must be adventurin'.
09:06:51 <int-e> . o O ( ^style urandom )
09:08:32 <arseniiv> also in languages with less of a type system. I tried making some stuff with mypy (one of typecheckers for Python) but usually I can’t express things. Though mypy is really neat, it can express unions, self-types and “overloaded” functions (as Python doesn’t have overloads; but you can make several alternative type signatures for a function) and also has Delphi-esque “type of class” thing. Once I used unions for something lik
09:08:32 <arseniiv> e à la carte thing, but I think I couldn’t tie the knot or something; there were some problems if not this one
09:11:26 <arseniiv> I know nothing about yak shaving too
09:12:09 <arseniiv> aren’t they sufficiently sheep-like in this regard?
09:12:09 <rain1> i think knot tying is possible but everything needs to be point free since there's no type level lambda
09:14:33 * cpressey starts preparing some post-it notes that read "Shaggy because not shaved yet because reasons" instead
09:15:12 <int-e> cpressey: do those go on the yaks?
09:25:38 <cpressey> I tried to look into what "final tagless" and "free monad interpreter" and these other things were, the other day.
09:26:31 <cpressey> I guess there were a few interesting things I picked up, but none of it had much appeal to me
09:29:38 <cpressey> The general idea of "evidence types" is a good one.
09:32:11 <cpressey> But it seems like it would be sometimes be difficult to apply. I'm writing a compiler, the language has a fairly complex AST. Some nodes at the leaves of the AST represent names. Those names can be unresolved, or resolved to refer to particular symbols.
09:33:06 <cpressey> It would be great to give them a different type if they were resolved, but, then the AST has to be able to contain two types of name nodes. Should the AST also get a different type?
09:33:25 <cpressey> If not, then it's not very much different from a sum type, which I'm already using.
09:33:43 <int-e> @google "evidence types"
09:34:12 <int-e> Fun. I guess that code bit-rotted.
09:34:43 <cpressey> "evidence type": instead of checking "is this valid", return Just a typed value representing a valid instance of the thing if it is valid, or Nothing otherwise
09:34:52 <cpressey> a.k.a a solution to "boolean blindness"
09:40:28 <int-e> so it was not connected to final tagless nor free monads?
09:40:53 <int-e> (*those* two are, to my mind, at best loosely connected)
09:41:21 <cpressey> Well, final tagless seems to be mainly a version of evidence types where, for each effect, there's an evidence type witnessing the fact that this function may use that effect
09:41:33 <int-e> (in that the expression problem comes up when you want to make a free monad extensible)
09:41:41 <cpressey> Or rather, evidence typeclasses, I suppose
09:42:02 <cpressey> Free monads is more or less something else entirely, yes
09:48:33 <cpressey> The thing with the expression problem is, y'know, I really don't mind recompiling if I have to.
09:50:10 <cpressey> I guess, in a lot of language ecosystems, people still do want to distribute libraries as opaque binary blobs, but.
09:53:19 <int-e> I don't know, isn't the whole expression problem just an admission that deep down, we want OOP ;-)
09:54:56 <int-e> (I'm semiserious about this. The problem is one that in OO languages would be solved by inheritance, plus some visitors.)
09:55:30 <cpressey> Yeah, a lot of this has the feel of typed functional programming trying to play catch-up to OOP.
09:56:16 <int-e> And as for its motivation... I think it still comes up when you want to provide a base tree type in a library and let users extend it with new node types.
10:46:32 <spruit11> Hmm, there was something like a dual to FP's expression problem in OO.
11:00:49 <spruit11> Anyway, though the expression problem exists there are usually okay work arounds to the problem.
11:00:59 -!- cpressey has quit (Quit: Lunch).
11:23:55 <int-e> spruit11: I believe the OO version of the problem is that it's hard to add new operations.
11:24:54 <int-e> (if you follow the pattern of having one method per operation that is overloaded in every inherited object that needs its own behavior)
11:26:19 <int-e> And it doesn't completely go away if you implement the visitor pattern (fold + traverse ;-) ) because now the visitor has a method for each child class, so that becomes hard to extend.
11:27:14 <int-e> programming is hard
11:30:38 <spruit11> Right, but what is never mentioned is that you can sometimes defensively work around it, right? I find that a bit of a shame.
11:33:22 <int-e> that's not buzzword-compatible.
11:33:47 <int-e> hard to write papers about too
11:34:07 <int-e> "we did the boring thing and nothing exciting ever happened"
11:36:05 <int-e> https://xkcd.com/1827/ is relevant
11:41:28 <int-e> (For every success story about a new programming paradigm, how many failures are there? We usually don't know.)
11:46:03 <spruit11> Yah, it's hard to find honest academics.
11:46:44 <spruit11> Usually, you're supposed to figure out all drawbacks to some approach yourself.
11:46:58 <int-e> I don't think it's about honesty per se.
11:52:37 <int-e> There's almost no incentive for writing papers about failures... for the people who fail. I'm sure there are researchers on project management, software engineering and the like who lament that situation... they'd love to analyse failed projects.
11:53:38 <spruit11> I don't care about motives, only about outcome.
11:54:00 <spruit11> It's annoying if you always need to guess what isn't said.
11:57:49 <int-e> Well, sadly, the best place to find honest academics is at the bar near an academic conference... casual and off the record.
11:58:57 <int-e> And most of the publications don't lie either, but their scope is heavily biased towards success.
11:59:32 <int-e> Oh did I mention that many venues have page limits for papers which means the authors have to decide which aspects of their work are most interesting and relevant?
12:00:03 <spruit11> Mwa, I just take industry as a good lead. They're good at shaking out what's useful.
12:02:38 <int-e> and then there's the problem of citations... papers in academia are basically worthless unless they're cited by others
12:04:16 <int-e> industry... yeah that works as long as they don't try to sell you stuff (<cough/>blockchain)
12:14:12 -!- cpressey has joined.
12:54:01 -!- hendursa1 has quit (Quit: hendursa1).
12:54:16 -!- hendursaga has joined.
13:16:31 -!- tromp has quit (Ping timeout: 272 seconds).
13:56:48 <arseniiv> hm industry hm that’s suboptimal still
14:07:02 -!- Sgeo has joined.
14:08:15 <Sgeo> Stumbled on 2/0, a fan-made sequel to 1/0. Attempted to read it, abandoned it quickly.
14:08:49 <Sgeo> Unless it becomes good eventually, I don't recommend it
14:08:59 <Sgeo> I think it might be intentionally annoying
14:33:32 -!- sftp has quit (Ping timeout: 244 seconds).
14:33:40 <Sgeo> ?? was referring to 2/0, the webcomic
14:33:40 <lambdabot> was referring to 2/0, the webcomic
14:39:27 -!- Soni has quit (Ping timeout: 260 seconds).
14:53:25 <esowiki> [[Filth]] https://esolangs.org/w/index.php?diff=77518&oldid=77487 * Bananaapple * (+191) remove some ambiguity
15:18:49 <cpressey> Nonstandard, didactic, coherent. Pick any two
15:20:19 -!- arseniiv has quit (Ping timeout: 260 seconds).
15:23:49 -!- arseniiv has joined.
15:29:20 -!- Soni has joined.
15:39:33 <int-e> cpressey: doesn't didactic imply coherent...
15:40:29 <cpressey> int-e: Not when the person being didactic has a decidedly nonstandard view of the world...
15:41:44 <spruit11> Ah, that rules out most academics again.
15:44:23 <int-e> spruit11: I can't hear you from the top of my ivory tower.
15:44:49 <int-e> spruit11: But ducking makes yoy a bigger target ;)
15:45:31 <spruit11> int-e: I can't hear you either because the mud down here gets into my ears.
15:46:59 <int-e> Oh "yoy", brilliant.
15:52:09 <HackEso> \\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯\\\?\\\ \\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯
15:52:25 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
15:52:35 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
15:52:53 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
15:55:00 <HackEso> whois? No such file or directory
15:55:05 <HackEso> ??(1hackeso) - no description
15:56:08 <arseniiv> I need 100 hours in a day and preferrably not more than 1/3 of them for sleep, to make room for all interesting things, and also for all necessary things
15:56:37 <HackEso> @eval: nothing appropriate.
15:56:46 <HackEso> @ask: nothing appropriate.
15:57:23 <spruit11> Heh, I am so not interested in the difference between file descriptors (ints) and file handlers (FILE*) but I have the feeling I should find out more.
15:57:46 <arseniiv> there are two kinds of them in the same OS? wow
15:58:31 <esowiki> [[Talk:SpaghettiScript]] N https://esolangs.org/w/index.php?oldid=77519 * UltimateProGrammer * (+597) Add note about implementation
15:58:38 <spruit11> C/C++ is messy. I can't find the abstractions I need in C++, dropped down to C, now I find there are two abstractions there. Just to make life convenient.
15:58:59 <spruit11> I think someone else got it right though but I need to get a bit more assurance.
15:59:29 <spruit11> Just hack something usually works out fine too!
16:00:09 <arseniiv> like, what to do instead of descriptors/hadles?
16:00:43 <spruit11> Heh? I am just not very sure how safe it is to mix them.
16:01:17 <arseniiv> ah, then it’s how I understood what you said
16:02:54 <spruit11> I think a FILE* is probably a file descriptor with some extra buffering. Could be okay to mix. Unsure.
16:03:24 <spruit11> Watch me reading GCC code next.. :/
16:03:51 <arseniiv> yeah I’d be anxious with that situation, as if you even experiment with them and they seem to be the same, or in a simple one-to-one relation, then there might be a rare case when they aren’t, so the only hope to cover the general situation is to find the root
16:03:55 <cpressey> spruit11: that is more or less the case. Just fflush() the FILE * before using the file descriptor inside it.
16:07:08 <esowiki> [[SpaghettiScript]] https://esolangs.org/w/index.php?diff=77520&oldid=77440 * UltimateProGrammer * (+77) Add count down
16:08:12 -!- cpressey has quit (Quit: WeeChat 1.9.1).
16:17:04 <esowiki> [[SpaghettiScript]] https://esolangs.org/w/index.php?diff=77521&oldid=77520 * UltimateProGrammer * (+194) Add Converting code from other languages section
16:20:28 <b_jonas> spruit11: darn it, I should help you with the C++ right? give me a moment
16:21:18 -!- LKoen has joined.
16:22:26 <spruit11> b_jonas: Uh, no? I am comfortable thinking this over. It's not a big change, just a thing which will take me some time to get to the stage where I feel comfortable I got it right.
16:22:43 <b_jonas> spruit11: sure, but I think you're missing a few things
16:23:43 <spruit11> Just a bit annoyed that C++ doesn't offer a number of abstractions I find are basic to Unix programming. I need pipes and a shell.
16:24:34 <b_jonas> spruit11: so normally if you want to use both an std::ostream and a FILE on the same descriptor, then yes, you have to flush between them. but if you're using gcc on linux, then libstdc++ knows enough about glibc that they share their buffer, so you don't need that. this is documented in https://gcc.gnu.org/onlinedocs/gcc-10.2.0/libstdc++/manual/manual/io_and_c.html#std.io.c.FILE
16:25:14 <b_jonas> but that works only on the three standard handles I think
16:25:20 <spruit11> THere's no portable means of getting a file handle from a stream, I gathered?
16:26:01 <b_jonas> spruit11: there's no portable way indeed, but there is a nonportable way on linux
16:26:46 <spruit11> Anyway, I could do it but it would become a mess fast I think. I am dropping to C.
16:27:47 -!- Arcorann has quit (Read error: Connection reset by peer).
16:32:13 <b_jonas> but why do you need a file handle from a stream? I thought you need a C++ iostream from a file descriptor, to operate on an iostream after you do a popen
16:33:30 <b_jonas> I don't really see how to do that. https://gcc.gnu.org/onlinedocs/gcc-10.2.0/libstdc++/manual/manual/ext_io.html#manual.ext.io.filebuf_derived is supposed to tell, but it doesn't seem to say whether closing that stream will close the underlying FILE, and it's hard to use this without that.
16:34:32 <b_jonas> you could probably write your own class derived from std::streambuf that handles this though, and that's more portable
16:36:42 <spruit11> Uh, popen doesn't seem to solve what I need/want. I need some exec, probably. Lemme look.
16:39:18 <b_jonas> basically stdio and C++ streams are so weird that sometimes you want your own buffering abstractions
16:40:35 <spruit11> Right, I could do popen for now but preferably I would also obtain a PID.
16:41:33 <spruit11> Dunno. Still in the reading stage and just following what Haskell and Python do.
17:09:46 -!- Lord_of_Life_ has joined.
17:10:55 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
17:11:08 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
17:16:32 <esowiki> [[Special:Log/newusers]] create * CaptainFoxtrot * New user account
17:21:08 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77522&oldid=77517 * CaptainFoxtrot * (+189)
17:43:48 -!- FreeFull has joined.
17:59:55 <esowiki> [[User:DeybisMelendez]] https://esolangs.org/w/index.php?diff=77523&oldid=75705 * DeybisMelendez * (+405) More personal information
18:24:56 -!- nfd9001 has joined.
18:35:02 -!- adu has joined.
18:50:27 -!- LKoen has quit (Remote host closed the connection).
19:11:45 -!- adu has quit (Ping timeout: 240 seconds).
19:46:52 -!- nfd has joined.
19:50:59 -!- nfd9001 has quit (Ping timeout: 260 seconds).
20:27:17 <esowiki> [[InterpretMe]] https://esolangs.org/w/index.php?diff=77524&oldid=74792 * Cortex * (+233) Added python 3 interpreter
20:28:24 <esowiki> [[PythoLambda]] https://esolangs.org/w/index.php?diff=77525&oldid=48920 * Cortex * (+102) Added python 3 interpreter
22:03:14 -!- FreeFull has quit (Read error: Connection reset by peer).
22:20:32 -!- imode has joined.
22:36:12 -!- MDude has joined.
23:06:05 <esowiki> [[User talk:OsmineYT]] https://esolangs.org/w/index.php?diff=77526&oldid=76842 * OsmineYT * (+160)
23:10:06 <esowiki> [[User talk:OsmineYT]] https://esolangs.org/w/index.php?diff=77527&oldid=77526 * OsmineYT * (+68)
23:11:24 <esowiki> [[Special:Log/upload]] upload * OsmineYT * uploaded "[[File:Nou.png]]": File created
23:13:50 <esowiki> [[User:OsmineYT/Sandbox]] N https://esolangs.org/w/index.php?oldid=77529 * OsmineYT * (+18) Created page with "<color:"#ccff00";>"
23:18:29 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=77530&oldid=76840 * OsmineYT * (+167)
23:19:07 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77531&oldid=77529 * OsmineYT * (+14)
23:19:45 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77532&oldid=77531 * OsmineYT * (+5)
23:20:32 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77533&oldid=77532 * OsmineYT * (+3)
23:21:16 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77534&oldid=77533 * OsmineYT * (-2)
23:21:39 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77535&oldid=77534 * OsmineYT * (+0)
23:26:04 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77536&oldid=77535 * OsmineYT * (+26)
23:26:23 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77537&oldid=77536 * OsmineYT * (-1)
23:26:38 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77538&oldid=77537 * OsmineYT * (+1)
23:26:39 -!- iovoid has quit (Ping timeout: 246 seconds).
23:26:53 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77539&oldid=77538 * OsmineYT * (+1)
23:28:51 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77540&oldid=77539 * OsmineYT * (+32)
23:31:16 -!- iovoid has joined.
23:31:47 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77541&oldid=77540 * OsmineYT * (-5)
23:32:09 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77542&oldid=77541 * OsmineYT * (+1)
23:32:32 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77543&oldid=77542 * OsmineYT * (+0)
23:32:54 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77544&oldid=77543 * OsmineYT * (+1)
23:33:50 <esowiki> [[User:OsmineYT/Sandbox]] https://esolangs.org/w/index.php?diff=77545&oldid=77544 * OsmineYT * (-29)
23:39:15 -!- Arcorann has joined.
23:54:47 <esowiki> [[Special:Log/newusers]] create * Lgkmkd * New user account