←2023-10-17 2023-10-18 2023-10-19→ ↑2023 ↑all
00:00:30 <FortyTwoBB> yeah universaility is very odd and tricky to pin down
00:00:44 <FortyTwoBB> a good definition for without splitting into strong and weak
00:02:51 <ais523> interestingly, experiments with proving things Turing-complete have me convinced that the simplest models are all variants of either counter machines or queue automata, and neither of those allow infinite inputs in the first place
00:03:03 <b_jonas> though it's probably not hard to add output to the M:tG Flooding Waterfall construction, something like you add two special counters and the output is the quotient of their value at termination
00:03:35 <ais523> b_jonas: the construction that FortyTwoBB et al are working on does require output, although they're doing busy beaver so they just need the output as large as possible
00:04:03 <ais523> fwiw the "natural" definition of output in Flooding seems to be "distance in time between two counters zeroing"
00:04:19 <b_jonas> right, though I was thinking yours, with the tournament viable deck, since in that case just rerunning the machine multiple times in parallel to get bits of the output isn't viable
00:04:30 <FortyTwoBB> yeah we just have a counter that tracks how many iterations its been
00:04:47 <b_jonas> ok, that's the output then
00:05:10 <ais523> with FortyTwoBB's idea for halting the program via stopping the death triggers via stopping the deaths rather than stopping the sources of the triggered abilities
00:05:41 <ais523> you could easily have multiple output states by varying which trigger is used to do the stopping, and thus what the creature type that floods the board at the end would be
00:06:08 <FortyTwoBB> we also want the output to be in a nice stairstep pattern so we can easily convert the output to input.
00:07:02 <ais523> I'm not sure what you mean by a stairstep pattern
00:07:09 <FortyTwoBB> of the n creatures we have each of {1...n} remaining toughness
00:07:11 <b_jonas> large number as output is slightly weaker than arbitrary output from the program, so you probably use whatever large number is convenient for the M:tG construction, and don't care if you can make the program output a result of its calculation there
00:07:19 <ais523> ah, I see
00:07:50 <ais523> b_jonas: right, one of the properties of busy beavers is that if you can produce a number X as output, there is no need to be able to produce any number < X
00:08:48 <FortyTwoBB> then to make input of i<n we can make the i+1st output creature a different type and exactly the first i outputs become inputs with an i->o necromancer
00:09:25 <FortyTwoBB> err O->I necromancer
00:10:42 <ais523> is the current construction able to cast Artificial Evolution infinitely? or does it consume a limited resource?
00:10:54 <FortyTwoBB> it consumes a limited resource
00:11:08 <FortyTwoBB> we are unable to do anything infinitely
00:11:29 <ais523> I kind-of assumed there would be some things that would be infinite, but not convertible into damage
00:11:50 <FortyTwoBB> there have been versions with infinite colorless mana and similar
00:12:45 <FortyTwoBB> but free AEs would give us infinite TYS storm which we can convert into say infinite lingering souls tokens
00:13:02 <ais523> ah right, you have something that cares about something storm-count-ish
00:14:14 <JAA> 7105
00:14:17 <JAA> Oops
00:14:20 <FortyTwoBB> so an AE costs a TYS copy from a TYS trigger from ... from a spellweaver volute trigger from casting lingering souls for 2 life.
00:14:38 <ais523> JAA: that's a surprisingly large number to typo into IRC
00:14:54 <ais523> normally when people do that it's something like a tab number, and is often in the hundreds, but I don't think I've seen thousands
00:15:02 <JAA> ais523: / = shift + 7 on my keyboard layout, 105 is the window number.
00:15:10 <ais523> ah right
00:15:33 <ais523> I guess that people who have hundreds of tabs are more likely to typo tab numbers, because they switch more oftne
00:15:55 <JAA> It happens so regularly that I should look into writing a script that stops me from sending such messages...
00:15:59 <FortyTwoBB> so an AE costs a small sliver of a life
00:16:44 <FortyTwoBB> bbiab driving
00:16:47 -!- FortyTwoBB has quit (Quit: Client closed).
00:18:41 <b_jonas> do you need to spend an Artificial Evolution cast on each copy of the Xantrid Necromancer, or do you clone the evolved version and spend a more abundant resource on cloning?
00:19:19 <b_jonas> Xathrid Necromancer
00:22:17 <ais523> I guess it'd be nice to have a list of level/stage resources, in order, to make this sort of question easier to answer – I lost track of it ages ago
00:55:59 -!- Lord_of_Life has quit (Ping timeout: 255 seconds).
00:56:45 -!- Lord_of_Life has joined.
00:58:45 -!- cpressey has quit (Quit: Client closed).
01:07:31 -!- FortyTwoBB has joined.
01:10:29 <ais523> welcome back
01:13:35 <FortyTwoBB> currently, roughly the resources are: colorless mana < creature tokens (can animate artifacts and enchantments) < resolute watchdog tokens < instants < computation happens here < life=black mana < red mana = sorceries < blue mana < green mana < white mana < card draw < poison counters
01:14:22 <ais523> `card-by-name Resolute Watchdog
01:14:24 <HackEso> No output.
01:14:48 <ais523> "Defender \ {1}, Sacrifice Resolute Watchdog: Target creature you control gains indestructible until end of turn."
01:15:18 <FortyTwoBB> its really any card that costs colorless to sacrifice itself and target a creature
01:15:44 <FortyTwoBB> `card-by-name Martyr of Spores
01:15:46 <HackEso> Martyr of Spores \ G \ Creature -- Human Shaman \ 1/1 \ {1}, Reveal X green cards from your hand, Sacrifice Martyr of Spores: Target creature gets +X/+X until end of turn. \ CSP-C
01:15:57 <FortyTwoBB> is the other good option for that slot
01:16:12 <ais523> presumably this is imprinted on Soul Foundry?
01:16:16 <FortyTwoBB> yup
01:17:07 <FortyTwoBB> from hand we can either imprint it on soul foundry to get psychic battle ->cowardice triggers
01:17:25 <FortyTwoBB> or cast and counter it to get bloodbond march triggers
01:17:55 <FortyTwoBB> we need both types of triggers to get the dog back in hand
01:18:30 <ais523> oh, I see, you counter it in response to the bloodbond march trigger
01:19:18 <FortyTwoBB> yeah, thats what chancellor of the annex is for
01:20:03 <ais523> the chancellor of the annex had me both flummoxed and amused
01:20:18 <ais523> in competitive play, you play it in decks that go all-in turn 1 in order to increase the chance that your opponent can't stop you
01:20:31 <ais523> which is exactly what this deck would do, if you ever actually tried to win with it
01:20:46 <FortyTwoBB> but we don't want it in our opening hand
01:20:58 <FortyTwoBB> we just give it to our opponent
01:21:00 <FortyTwoBB> lol
01:21:28 <ais523> it is actually quite amusing that the TCness construction gives basically everything to the opponent
01:22:04 <ais523> in both your construction and mine, the only relevant thing we control during the whole TCness operation is one lingering effect from Arcbond or Massacre Girl
01:22:34 <ais523> (and in fact you are using Kaervek's Spite, so you control no permanents and have no cards in hand)
01:22:43 <FortyTwoBB> yeah we use APNAP to force the stack to stay the way we want
01:23:03 <ais523> same here
01:23:17 <ais523> my first attempt to prove magic TC failed because i wasn't able to control the stack order precisely enough
01:23:23 <ais523> so I was very cognisant of that the second time around
01:23:38 <FortyTwoBB> we actually can have some 2/2 zombies from ratadrabrick but none of the legends can affect the board anymore
01:24:38 <ais523> I've debated the infinite loop rules several times in this channel, to work out what happens rules-wise if you do end up creating a nonterminating program (intentionally or by mistake)
01:24:52 <ais523> the obvious answer is "the game is a draw" but I don't think that's actually correct
01:25:01 <FortyTwoBB> its a draw
01:25:08 <ais523> instead, I think someone gets a slow play penalty unless they concede, but I'm not sure whether it's you or your opponent
01:25:31 <ais523> I think the Magic rules are unable to call the situation a loop unless it actually repeats in a predictable manner
01:26:42 <ais523> if they *were* able, then Magic would probably be uncomputable rather than Turing-complete (but not with a Vintage-legal deck because it involves Shahrazad in order to be able to continue playing after a game is drawn)
01:27:18 <FortyTwoBB> 104.4b If a game that’s not using the limited range of influence option (including a two-player game) somehow enters a “loop” of mandatory actions, repeating a sequence of events with no way to stop, the game is a draw. Loops that contain an optional action don’t result in a draw
01:27:41 <ais523> the controversial wording is "repeating a sequence of events"
01:27:54 <ais523> because if it isn't a trivial loop, the sequence doesn't actually repeat
01:27:59 <FortyTwoBB> yeah
01:28:24 <ais523> the judges I talked to persuaded me that non-repeating infinite sequences are played out rather than automatically causing a draw
01:28:59 <ais523> (even though I originally thought it would be a draw)
01:29:54 <FortyTwoBB> I considered trying to make a Shahrazad-oracle but its difficult to actually make use of the output of which player(s) loses half their life
01:30:02 <ais523> Yu-Gi-Oh!'s infinite loop rules are way more fun in this respect, if an infinite loop is formed there, then the "card responsible" gets destroyed to stop the loop, and it often isn't 100% obvious which card that should be
01:30:19 <FortyTwoBB> lol
01:31:38 <ais523> the rule used to be that it was illegal to make a play that would form an infinite loop, but that got changed when someone created a deck which set up a gamestate in which the opponent doing anything at all would cause an infinite loop to start
01:32:00 <FortyTwoBB> thats impressive
01:32:03 <ais523> (which was mostly a griefing manouver because if you can set up a gamestate that complex, you might as well just win on the spot)
01:33:24 <FortyTwoBB> still impressive
01:33:48 <FortyTwoBB> though i don't know yugioh's card pool very well
01:34:11 <ais523> nor do I – I've been trying to learn enough of it to determine whether yugioh is TC
01:34:25 <ais523> but I suspect it currently isn't, effects are almost always optional rather than mandatory in yugioh
01:34:49 <FortyTwoBB> and isn't boardspace very limited? same problem as like hearthstone
01:35:11 <ais523> yes, although counters and monster stats both exist as resources that could reasonably be manipulated
01:35:30 <ais523> it's still hard to do anything useful – there isn't a Wild Evocation equivalent, so almost every card is unusable
01:35:34 <ais523> `card-by-name Wild Evocation
01:35:35 <HackEso> Wild Evocation \ 5R \ Enchantment \ At the beginning of each player's upkeep, that player reveals a card at random from their hand. If it's a land card, the player puts it onto the battlefield. Otherwise, the player casts it without paying its mana cost if able. \ M11-R
01:36:42 <ais523> and new infinite loops are only likely to be possible in the future if Konami makes a mistake, because the game is currently mostly balanced around being arbitrarily unable to win on turn 1
01:37:21 <ais523> almost all top decks can storm off into a huge field from a random 5-card hand, so the game is balanced by the starting player being unable to actually win on that turn, so they have to set up a lot of disruption, and then the second player tries to win through the disruption and if they can't win that turn they usually lose
01:37:55 <FortyTwoBB> crazy hoe powercrept that game got
01:38:12 <ais523> pretty much any loop with a useful output breaks that because it makes it possible to win on turn 1 and so the second player doesn't get a chance to break the board
01:38:18 <ais523> yes, it is ridiculous
01:38:27 <ais523> there is some sort of beauty in it – I have been trying to learn
01:38:37 <ais523> but it fundamentally makes the game almost impossible to balance
01:39:23 <ais523> in current decks, like half the deck has to be a 1-card combo that can set up a big board by itself starting from an empty field, so that you can try to play the first few and then win with the last when the first few get negated (= countered)
01:39:34 <ais523> or it isn't competitively viable
01:39:48 <ais523> at this rate, they will have to create a 0-card combo in order to keep the powercreep going well enough to sell sets
01:40:03 <ais523> (which is actually possible in Yu-Gi-Oh! mechanics)
01:40:26 <ais523> (although they have been sensible enough not to enable any yet, it's mechanically possible but the card pool isn't there)
01:40:37 <FortyTwoBB> companion/commander style effects?
01:40:47 <ais523> yep, you get 15 of them
01:41:02 <FortyTwoBB> that is too many
01:41:15 <ais523> which are normally lower power than a typical M:tG commander would be, but well, they overbalance it with sheer quantity
01:43:39 <FortyTwoBB> its also funny to compare the power of card draw in yugioh to the pokemon tcg
01:44:38 <ais523> they are weirdly comparable – the difference is that in Yu-Gi-Oh! each card converts itself into 1 card + a little extra when it's played, whereas in Pokémon, 1 card converts itself into 7ish cards but you can only do it once per turn
01:44:58 <FortyTwoBB> like draw 2 cards is busted broken in yugioh, and pokemon is like how about instead timetwister
01:45:03 <ais523> so both games go through huge numbers of cards in a turn but for different reasons
01:45:16 <ais523> a costless draw 2 would be broken in pretty much any TCG
01:45:49 <ais523> but adding a cost can quickly plummet that value, depending on the game
01:46:31 <ais523> in Netrunner, you get four "clicks" per turn and need to spend a click to do pretty much anything, but you can use otherwise unused clicks to gain credits (=mana) or to draw cards, so you can draw 4 cards in a turn as long as you don't do anything else
01:47:04 <ais523> which makes it very hard to get entirely resource-screwed, you can still play if you draw no economy cards, it's just slower
01:47:14 <FortyTwoBB> yeah, netrunner has a much better action economy
01:48:18 <ais523> it is interesting to compare a 1-resource game (cards in Yu-Gi-Oh!) to a 2-resource game (cards and mana in Magic) to a 3-resource game (cards and credits and clicks in Netrunner)
01:49:15 <ais523> the fewer resources you have, the harder it is to stop broken infinite combos forming
01:49:29 <ais523> (that said, even Netrunner has had a few infinite combos, but none that break the game)
01:49:59 <FortyTwoBB> yeah, though mtg can subdivide mana into more types
01:50:23 <FortyTwoBB> and uses life as a resource pretty heavily
01:50:30 <ais523> I have mixed feelings about that – color screw feels less fair than mana screw in a way
01:51:04 <ais523> because it's basically a case of, you can choose how powerful your deck is by choosing how many colors you play, but the more colors you go for, the greater the chance of randomly bricking and having a non-game
01:51:45 <ais523> in Legacy, for example, games where RW Initiative is playing are nearly always determined by how good the RW Initiative deck's starting hand and topdecks are
01:52:03 <ais523> it is very hard to beat unless it bricks, but it bricks quite frequently (usually either mana flood, mana screw or color screw)
01:52:23 <FortyTwoBB> yeah they have made better fixing lands, but its still a problem
01:52:43 <ais523> RW Initiative's primary problem is that it can't actually play good color fixing due to the nature of the deck
01:53:02 <ais523> because it has, or at least wants, to make 4 mana on turn 1 in order to function
01:53:12 <ais523> so it's full of Ancient Tombs and Chrome Moxen and the like
01:53:22 <FortyTwoBB> well that's pretty ambitious
01:53:47 <ais523> yes – it's a testament to Magic's card pool that it was even possible to get it semi-consistent
01:53:57 <ais523> and if you do manage it you usually win
01:54:06 <ais523> unless you have nothing good to cast with it
01:57:20 <FortyTwoBB> like vintage oops! all spells decks that try to make 4 (or 7) mana to win with baullistrade spy (or goblin charbelcher) flipping over their deck with no lands.
01:57:40 <ais523> that deck exists in Vintage, Legacy, Modern and Pauper nowadays
01:57:50 <ais523> (admittedly the Pauper deck plays 59 spells rather than 60)
01:58:14 <FortyTwoBB> is edge of autumn a common?
01:58:25 <ais523> `card-by-name edge of autumn
01:58:26 <HackEso> Edge of Autumn \ 1G \ Sorcery \ If you control four or fewer lands, search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. \ Cycling--Sacrifice a land. (Sacrifice a land, Discard this card: Draw a card.) \ FUT-C, DDG-C
01:58:28 <ais523> yes
01:58:56 <ais523> but I don't think it's played in One Land Spy
01:59:35 <ais523> I think of it as mostly a card for Doomsday
01:59:39 <FortyTwoBB> and i think theres also a card that you can alt cast by revealing you have no lands in hand to search for a basic into your hand
01:59:50 <ais523> `card-by-name Land Grant
01:59:52 <HackEso> Land Grant \ 1G \ Sorcery \ If you have no land cards in hand, you may reveal your hand rather than pay this spell's mana cost. \ Search your library for a Forest card, reveal that card, and put it into your hand. Then shuffle your library. \ MM-C
02:00:02 <ais523> that's the primary reason that One Land Spy plays its one land
02:00:26 <FortyTwoBB> yeah that one
02:02:35 <ais523> it's fun that these decks exist, but would be bad for the game if they were ever top-tier or even second-tier
02:02:54 <FortyTwoBB> oh, completely
02:03:12 <FortyTwoBB> though doomsday is pretty scary in vintage
02:03:55 <ais523> I think Doomsday is good for the game – the Legacy version is great fun to watch if played by someone competent at the deck, and it's also great fun to watch someone competent play against it
02:04:09 <ais523> it can play around pretty much everything, but ends up having to play into something else in the process
02:04:50 <FortyTwoBB> yeah, i really like the skill of making the right pile and also playing against the optimal pile
02:05:02 <FortyTwoBB> at least when its not just over immediately
02:05:34 <ais523> and there are so many cards that beat it, often in bizarre and surprising ways, so trying to work out what to play around / what you might have that can beat what the opponent was playing around is so interesting
02:08:07 <FortyTwoBB> dress down, ancestral recall targeting them, removal, flusterstorm, not to mention what's already on the board
02:09:51 <ais523> even something like wasteland can do wonders if they weren't expecting it
02:10:58 <FortyTwoBB> yeah, or surgical extraction on their doomsday to shuffle their pile
02:12:14 <ais523> it is fun to watch Doomsday pilots play around Endurance
02:12:33 <ais523> which is like the Surgical but more so, and because it can be pitch-cast, often comes alongside some other disruption
02:13:45 <FortyTwoBB> or noxious revival
02:14:08 <ais523> I don't think I've seen that one used against Doomsday, that's hilarious
02:18:32 <FortyTwoBB> sometimes its all a Bazaar of Baghdad player can do
03:47:46 -!- FortyTwoBB has quit (Quit: Client closed).
03:52:58 <esolangs> [[Brainbits]] https://esolangs.org/w/index.php?diff=118051&oldid=118049 * Yb1 * (+345) thanks None1 & infobox & cleaning errors
04:07:00 <esolangs> [[Three Star Programmer]] M https://esolangs.org/w/index.php?diff=118052&oldid=118050 * Ais523 * (+0) /* Variants */ typo fix
04:26:49 <esolangs> [[Special:Log/upload]] upload * Alx * uploaded "[[File:HolyPy.jpg]]": HolyPy logo.
04:54:27 <esolangs> [[It Is Not What It Is]] M https://esolangs.org/w/index.php?diff=118054&oldid=117265 * PythonshellDebugwindow * (+29) Categories
05:05:32 <zzo38> I see that many explanations of category theory seem to use the category of sets as an example, although it seems to me more obvious how a category is like a monoid and that the category of matrices is a more obvious example. Why is that?
05:10:11 <esolangs> [[Muddle++]] M https://esolangs.org/w/index.php?diff=118055&oldid=54819 * PythonshellDebugwindow * (+57) Stub, categories
05:30:13 -!- ais523 has quit (Quit: ais523).
06:21:45 <esolangs> [[HolyPy]] N https://esolangs.org/w/index.php?oldid=118056 * Alx * (+11836) Created page with "= HolyPy = This page is written up on the HolyPy version: <pre>HolyPy Stable-Closed v3.8</pre>. [[File: HolyPy.jpg]] {| class="wikitable" ! Associated file extensions || Descriptor |- | <code>.hpy</code> || The non-compiled extension type recognised by HolyPy. |- | <code>
06:23:19 <esolangs> [[User:Alx]] https://esolangs.org/w/index.php?diff=118057&oldid=116643 * Alx * (+24)
06:24:02 <esolangs> [[User:Alx]] https://esolangs.org/w/index.php?diff=118058&oldid=118057 * Alx * (-36)
07:09:04 -!- cpressey has joined.
07:26:32 <cpressey> An initial state, and a sequence of commands; each command transforms the state.
07:28:13 <cpressey> Lots of programming languages are like this.  But also theorem provers; each command is a tactic, the state is the "proof obligations".
07:28:46 <cpressey> The proofs in such systems look like magical incantations sometimes, but this is mainly because you only see the commands, you don't see the state.
07:30:38 <cpressey> Other proof styles put the emphasis on the other side: they list the states, the transformations used are parenthetical.
07:31:31 <cpressey> As a programmer, it's much easier for me to "see" the unwritten state of a program, than to "see" the unwritten yet-to-be-discharged obligations of a proof.
07:35:16 <cpressey> > the transformations used are parenthetical.  <-- You can go beyond "parenthetical" and leave out the commands completely; but then the proof system has to search for what command must have been meant.  In that direction lies automated proving.
07:35:17 <lambdabot> <hint>:1:46: error: parse error on input ‘<--’
07:35:26 <cpressey> Oh sorry lambdabot, didn't see you there
07:36:50 <cpressey> Just writing about this because realizing my interest in theorem provers is largely an interest in the languages they use (rather than strictly what they can do for you) and why those languages look the way they do.
07:44:45 <cpressey> That's not to say that theorem provers can't do some pretty valuable things for you, of course!
07:50:33 -!- cpressey has quit (Ping timeout: 245 seconds).
08:14:11 <b_jonas> wow, that's an unexpectedly long chain between different colors of mana
08:21:36 <b_jonas> Ravnica has this story where Agrus Kos, a Boros elite soldier, after his death returns as an oathspirit bound to the Azorius. but it seems like the only card that kind of represents this is https://scryfall.com/card/j22/1/agrus-kos-eternal-soldier . wouldn't it be nice if one of the later Ravnica-themed sets added yet another Necromancer, this time an Azorius one, that triggers on any Soldier dying and
08:21:42 <b_jonas> creates a white Spirit token?
08:24:51 -!- __monty__ has joined.
08:35:42 -!- arseniiv has joined.
08:44:39 <b_jonas> "which are normally lower power than a typical M:tG commander would be" => M:tG tried the more powerful free effects once, with companion, but it got so powerful that they had to change their rules to blatantly different than what the printed card says, which I think is an almost unprecedented for modern cards
08:44:54 <b_jonas> usually if they have broken cards they just ban or restrict them instead
08:50:14 <esolangs> [[SDOTOS]] https://esolangs.org/w/index.php?diff=118059&oldid=117732 * Infinitehexagon * (+116)
08:50:36 <esolangs> [[SDOTOS]] https://esolangs.org/w/index.php?diff=118060&oldid=118059 * Infinitehexagon * (+0) /* parity */
08:51:43 <esolangs> [[SDOTOS]] https://esolangs.org/w/index.php?diff=118061&oldid=118060 * Infinitehexagon * (+3) /* Truth-machine */
09:01:22 -!- Sgeo has quit (Read error: Connection reset by peer).
09:11:55 -!- cpressey has joined.
09:13:39 <cpressey> <cpressey> The proofs in such systems look like magical incantations sometimes, but this is mainly because you only see the commands, you don't see the state.  <-- This is also why pointfree style is so opaque. If you add in some "let"s you at least give the intermediate states *names*, which can help in "seeing" them
09:15:59 <b_jonas> cpressey: in that case it must follow that if you program prolog, where every intermediate result has a name, then your program will be even more readable
09:18:57 <cpressey> that sort of thing is why I wrote "can help" instead of "helps"
09:19:44 <cpressey> I don't trust the compiler to do name mangling properly.  I mangle my *own* names at *design time* before I even *write* the code.
09:33:30 <int-e> MangledNameFactoryBean
09:34:03 -!- Koen has joined.
09:42:18 -!- cpressey has quit (Quit: Client closed).
10:16:28 <esolangs> [[Talk:Deadfish++]] https://esolangs.org/w/index.php?diff=118062&oldid=117979 * Europe2048 * (-1)
10:41:54 -!- cpressey has joined.
11:01:26 <cpressey> An alternative to "let" is to keep definitions small, and each definition has a name.  This works for concatenative programming, and also for proofs (this is what lemmas are).
11:01:26 <cpressey> But often it's hard to find a good name because there's no intuition for the intermediate thing you're naming.
11:01:27 <cpressey> If lemmas are useful enough to be reused, they get a name (like "pumping" or "Yoneda") but if they aren't they're just numbered, which hardly helps.
11:04:36 <cpressey> Gotta name all the passes in a micropass compiler, too.
11:05:45 <cpressey> Or more to the point, you can leave them nameless at your peril
11:07:43 <cpressey> Coming up with a name is a way of saving future maintainers the effort of reverse-engineering the definition.
11:08:19 <esolangs> [[Capsule]] https://esolangs.org/w/index.php?diff=118063&oldid=117905 * Leol22 * (-64)
11:26:38 <cpressey> But thinking more about visualizing the intermediate state itself, in a stack-based language, you could have a "stack should look like this now" assertion which can be inserted at any point
11:27:01 <cpressey> Which kind of relates to types.
11:27:08 -!- cpressey has quit (Quit: Ping timeout (120 seconds)).
11:28:08 -!- cpressey has joined.
11:29:43 <cpressey> > let 15 = 3 * 5 in 15 + 1
11:29:45 <lambdabot> 16
11:30:51 <cpressey> > let 99 = 3 * 5 in 99 + 1
11:30:53 <lambdabot> 100
11:33:20 <cpressey> Is it just me or is Haskell becoming an increasingly cavalier language these days?
11:35:09 <Koen> hard to say
11:35:27 <Koen> maybe there was a warning not reproduced by lambdabot
11:36:43 <cpressey> > do 3 + 3
11:36:45 <lambdabot> 6
11:37:16 -!- cpressey has quit (Quit: Client closed).
11:37:40 -!- cpressey has joined.
11:38:14 <Koen> for a minute I thought you had ragequit because you didn't like that 3+3 was 6
11:38:31 <cpressey> No, I just have a lousy connection.
11:39:28 -!- cpressey15 has joined.
11:42:38 -!- cpressey has quit (Ping timeout: 245 seconds).
11:42:47 <cpressey15> Anyway, no warnings from either of those if I try them locally in ghci 9.2.8
11:42:56 -!- cpressey15 has changed nick to cpressey.
11:45:32 <cpressey> It would be great if the increasingly flexible behaviour of `do` was due to it working on any instance of a typeclass called `Doable` but I'm pretty sure it's not
11:45:44 <cpressey> (due you see what I did there)
11:50:01 -!- cpressey has quit (Quit: Ping timeout (120 seconds)).
12:08:36 -!- craigo has quit (Quit: Leaving).
12:17:22 -!- wib_jonas has joined.
12:17:50 <wib_jonas> I've no idea what that let 99 = 3 * 5 in 99 + 1 thing is trying to do and why it's accepted silently
12:48:33 <esolangs> [[CQfuck]] https://esolangs.org/w/index.php?diff=118064&oldid=117171 * Kaveh Yousefi * (+67) Introduced a truth-machine as a third example.
12:49:13 <esolangs> [[CQfuck]] https://esolangs.org/w/index.php?diff=118065&oldid=118064 * Kaveh Yousefi * (+163) Added a hyperlink to my implementation of the CQfuck programming language on GitHub.
13:04:01 -!- cpressey has joined.
13:08:27 <cpressey> wib_jonas: I've posed it to the #haskell channel
13:25:12 <cpressey> tl;dr ghc doesn't issue warnings unless you tell it to
13:48:30 <wib_jonas> cpressey: right, that's the default for gcc or perl too (except maybe a very few warnings). for gcc I'm used to always using -Wall and then occasionally explicitly suppressing warnings. this works much better than with msvc, because gcc's -Wall option (which, despite its name, doesn't enable all warnings) has a set chosen pretty well
13:49:10 <wib_jonas> but it's somewhat reasonable that the IRC bot suppresses warnings for conciseness of both input and output. geordi suppresses most warnings too for that reason.
13:51:18 <wib_jonas> there's of course a little bit of a compatibility problem here, with long-lived projects, because sometimes users of libraries complain that the libraries give warnings in new compilers, since the new compiler added new warnings that are usually useful. the compilers/interpreters have to strike a balance between compatible old behavior and useful
13:51:19 <wib_jonas> new behavior, as happens in lots of things other than warnings too.
13:54:41 <cpressey> Yeah it all adds up; in some sense this is a bot usability issue; I understand why you don't want the channel to be spammed with warnings, but some way to indicate them would be nice.  Maybe privmsg?  Maybe not.
13:56:04 <esolangs> [[Talk:Brainbits]] N https://esolangs.org/w/index.php?oldid=118066 * None1 * (+221) Created page with "Brainfuck is TC only if brackets (loops) can be nested at leastbtwo levels deep, this esolang does not allow this, so it is not TC (probably). --~~~~"
13:56:21 <esolangs> [[Talk:Brainbits]] M https://esolangs.org/w/index.php?diff=118067&oldid=118066 * None1 * (+0)
14:12:50 <esolangs> [[Brainbits]] M https://esolangs.org/w/index.php?diff=118068&oldid=118051 * None1 * (+5) /* Cat program */
14:17:44 -!- cpressey has quit (Quit: Ping timeout (120 seconds)).
14:26:09 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=118069&oldid=117867 * Lilchiky * (+774) /* Aleph 2= */
14:27:02 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=118070&oldid=118069 * Lilchiky * (+2) /* a stronk infinity */
14:40:20 -!- wib_jonas has quit (Quit: Client closed).
14:54:19 <esolangs> [[Beatnik]] https://esolangs.org/w/index.php?diff=118071&oldid=90788 * HaleyHalcyon * (+732) Mentioned lack of vocabulary restriction and example high-value words
14:54:44 <esolangs> [[Beatnik]] M https://esolangs.org/w/index.php?diff=118072&oldid=118071 * HaleyHalcyon * (+4) /* Commands */
15:16:24 -!- Koen has quit (Quit: Leaving...).
15:29:46 -!- ais523 has joined.
15:37:45 <esolangs> [[8-Bit]] https://esolangs.org/w/index.php?diff=118073&oldid=118043 * Infinitehexagon * (+65) /* Implementation */
15:38:14 <esolangs> [[8-Bit]] https://esolangs.org/w/index.php?diff=118074&oldid=118073 * Infinitehexagon * (+2) /* Implementation */
15:39:38 <esolangs> [[8-Bit]] https://esolangs.org/w/index.php?diff=118075&oldid=118074 * Infinitehexagon * (+1)
15:51:20 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=118076&oldid=118070 * Infinitehexagon * (+175)
16:29:38 -!- __monty__ has quit (Ping timeout: 255 seconds).
16:42:15 -!- __monty__ has joined.
16:58:30 -!- cpressey has joined.
17:03:29 <cpressey> ais523: Out of curiosity, what is it about existing parser generators, in your opinion, that makes them produce inefficient code?
17:06:28 <cpressey> I might be misremembering what you said.  You said that parser combinator libraries make it too easy to accidentally build a slow parser.
17:07:13 <cpressey> I think that's mainly due to accidentally allowing backtracking.
17:08:56 <cpressey> I've never tried a PEG parser.  I don't find them very appealing.  Although I've definitely seen people who are definitely fans of them.
17:26:30 -!- cpressey has quit (Quit: Client closed).
17:34:06 <ais523> cpressey (for when you get back): existing parser generators are usually very branchy, so the processor can't predict well unless you're parsing something that follows a predictable pattern
17:34:20 <ais523> but yes, main problem with combinators is accidental backtracking
17:35:11 <ais523> I'm also not a huge fan of PEG parsers: a) despite being linear-time, the constant factors are bad; b) their alternation-like operator is unintuitive and can easily end up accidentally rejecting parses you want to accept
17:36:08 <ais523> actually PEG is a lot like combinators, in the sense that if you write a parser with a combinator library that would accidentally backtrack, the equivalent PEG grammar would accidentally reject some valid inputs
17:36:20 <ais523> I guess the latter behaviour is easier to discover in testing
17:39:17 <zzo38> O, finally they are starting to implement "functionname( arguments ORDER BY sortlist )" in SQLite.
17:40:48 <ais523> does the sorting rearrange one argument relative to another, or does it reorder the elements of a single list-like argument?
17:41:25 <ais523> I guess the former behaviour only really makes sense with variadic functions
17:41:56 <ais523> although, it would be a fun way to do control flow in an esolang, especially if the function were overloaded and the arguments had different types
17:45:30 <zzo38> I think it means that the function must be a aggregate function.
17:52:29 <b_jonas> ais523: the new parser generator that you're considering to make, is that for work?
17:55:31 <ais523> b_jonas: I don't have a job at the moment
17:55:50 <ais523> I've been struggling to concentrate for a few years now, possibly long Covid
17:56:07 <ais523> and I spend so much time unable to do anything
17:56:31 <ais523> so I'm concerned about getting a job in case I just turn up, fail to do anything and get fired
17:57:08 <b_jonas> that sucks
17:57:21 <b_jonas> good luck with job hunting then
17:57:42 <ais523> I've been kind-of wondering if I should make something on my own that I can sell
17:57:46 <ais523> but even that is going very slowly
18:01:20 <ais523> the new parser generator is something that I've been planning for over 3 years now but keep getting things wrong or being too tired to work on it
18:09:10 -!- arseniiv has quit (Quit: gone too far).
18:16:33 -!- __monty_1 has joined.
18:16:49 -!- chiselfuse has quit (*.net *.split).
18:18:13 -!- __monty__ has quit (Ping timeout: 252 seconds).
19:15:55 -!- Europe2048 has joined.
19:26:00 -!- Europe2048 has quit (Quit: Client closed).
19:32:03 -!- vyv has joined.
19:35:25 -!- Europe2048 has joined.
19:35:31 <Europe2048> Hi!
19:58:16 -!- chiselfuse has joined.
20:35:16 -!- vyv has quit (Quit: Konversation terminated!).
20:39:13 -!- Europe2048 has quit (Quit: Client closed).
20:47:09 -!- __monty_1 has changed nick to __monty__.
20:47:25 -!- __monty__ has quit (Quit: leaving).
21:10:27 -!- tromp has quit (Read error: Connection reset by peer).
21:19:19 <esolangs> [[Special:Log/newusers]] create * Ice Bird * New user account
21:22:43 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=118077&oldid=118026 * Ice Bird * (+139)
21:24:19 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=118078&oldid=118077 * Ice Bird * (+86)
21:49:26 <esolangs> [[ForgottenV]] M https://esolangs.org/w/index.php?diff=118079&oldid=82526 * PythonshellDebugwindow * (+39) Stub, category
22:13:59 -!- Sgeo has joined.
23:59:21 <esolangs> [[2 Bits, 1 Byte]] M https://esolangs.org/w/index.php?diff=118080&oldid=100411 * TheBigH * (+108)
←2023-10-17 2023-10-18 2023-10-19→ ↑2023 ↑all