00:00:30 yeah universaility is very odd and tricky to pin down 00:00:44 a good definition for without splitting into strong and weak 00:02:51 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 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 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 fwiw the "natural" definition of output in Flooding seems to be "distance in time between two counters zeroing" 00:04:19 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 yeah we just have a counter that tracks how many iterations its been 00:04:47 ok, that's the output then 00:05:10 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 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 we also want the output to be in a nice stairstep pattern so we can easily convert the output to input. 00:07:02 I'm not sure what you mean by a stairstep pattern 00:07:09 of the n creatures we have each of {1...n} remaining toughness 00:07:11 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 ah, I see 00:07:50 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 then to make input of io necromancer 00:09:25 err O->I necromancer 00:10:42 is the current construction able to cast Artificial Evolution infinitely? or does it consume a limited resource? 00:10:54 it consumes a limited resource 00:11:08 we are unable to do anything infinitely 00:11:29 I kind-of assumed there would be some things that would be infinite, but not convertible into damage 00:11:50 there have been versions with infinite colorless mana and similar 00:12:45 but free AEs would give us infinite TYS storm which we can convert into say infinite lingering souls tokens 00:13:02 ah right, you have something that cares about something storm-count-ish 00:14:14 7105 00:14:17 Oops 00:14:20 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 JAA: that's a surprisingly large number to typo into IRC 00:14:54 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 ais523: / = shift + 7 on my keyboard layout, 105 is the window number. 00:15:10 ah right 00:15:33 I guess that people who have hundreds of tabs are more likely to typo tab numbers, because they switch more oftne 00:15:55 It happens so regularly that I should look into writing a script that stops me from sending such messages... 00:15:59 so an AE costs a small sliver of a life 00:16:44 bbiab driving 00:16:47 -!- FortyTwoBB has quit (Quit: Client closed). 00:18:41 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 Xathrid Necromancer 00:22:17 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 welcome back 01:13:35 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 `card-by-name Resolute Watchdog 01:14:24 No output. 01:14:48 "Defender \ {1}, Sacrifice Resolute Watchdog: Target creature you control gains indestructible until end of turn." 01:15:18 its really any card that costs colorless to sacrifice itself and target a creature 01:15:44 `card-by-name Martyr of Spores 01:15:46 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 is the other good option for that slot 01:16:12 presumably this is imprinted on Soul Foundry? 01:16:16 yup 01:17:07 from hand we can either imprint it on soul foundry to get psychic battle ->cowardice triggers 01:17:25 or cast and counter it to get bloodbond march triggers 01:17:55 we need both types of triggers to get the dog back in hand 01:18:30 oh, I see, you counter it in response to the bloodbond march trigger 01:19:18 yeah, thats what chancellor of the annex is for 01:20:03 the chancellor of the annex had me both flummoxed and amused 01:20:18 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 which is exactly what this deck would do, if you ever actually tried to win with it 01:20:46 but we don't want it in our opening hand 01:20:58 we just give it to our opponent 01:21:00 lol 01:21:28 it is actually quite amusing that the TCness construction gives basically everything to the opponent 01:22:04 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 (and in fact you are using Kaervek's Spite, so you control no permanents and have no cards in hand) 01:22:43 yeah we use APNAP to force the stack to stay the way we want 01:23:03 same here 01:23:17 my first attempt to prove magic TC failed because i wasn't able to control the stack order precisely enough 01:23:23 so I was very cognisant of that the second time around 01:23:38 we actually can have some 2/2 zombies from ratadrabrick but none of the legends can affect the board anymore 01:24:38 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 the obvious answer is "the game is a draw" but I don't think that's actually correct 01:25:01 its a draw 01:25:08 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 I think the Magic rules are unable to call the situation a loop unless it actually repeats in a predictable manner 01:26:42 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 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 the controversial wording is "repeating a sequence of events" 01:27:54 because if it isn't a trivial loop, the sequence doesn't actually repeat 01:27:59 yeah 01:28:24 the judges I talked to persuaded me that non-repeating infinite sequences are played out rather than automatically causing a draw 01:28:59 (even though I originally thought it would be a draw) 01:29:54 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 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 lol 01:31:38 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 thats impressive 01:32:03 (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 still impressive 01:33:48 though i don't know yugioh's card pool very well 01:34:11 nor do I – I've been trying to learn enough of it to determine whether yugioh is TC 01:34:25 but I suspect it currently isn't, effects are almost always optional rather than mandatory in yugioh 01:34:49 and isn't boardspace very limited? same problem as like hearthstone 01:35:11 yes, although counters and monster stats both exist as resources that could reasonably be manipulated 01:35:30 it's still hard to do anything useful – there isn't a Wild Evocation equivalent, so almost every card is unusable 01:35:34 `card-by-name Wild Evocation 01:35:35 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 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 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 crazy hoe powercrept that game got 01:38:12 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 yes, it is ridiculous 01:38:27 there is some sort of beauty in it – I have been trying to learn 01:38:37 but it fundamentally makes the game almost impossible to balance 01:39:23 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 or it isn't competitively viable 01:39:48 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 (which is actually possible in Yu-Gi-Oh! mechanics) 01:40:26 (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 companion/commander style effects? 01:40:47 yep, you get 15 of them 01:41:02 that is too many 01:41:15 which are normally lower power than a typical M:tG commander would be, but well, they overbalance it with sheer quantity 01:43:39 its also funny to compare the power of card draw in yugioh to the pokemon tcg 01:44:38 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 like draw 2 cards is busted broken in yugioh, and pokemon is like how about instead timetwister 01:45:03 so both games go through huge numbers of cards in a turn but for different reasons 01:45:16 a costless draw 2 would be broken in pretty much any TCG 01:45:49 but adding a cost can quickly plummet that value, depending on the game 01:46:31 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 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 yeah, netrunner has a much better action economy 01:48:18 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 the fewer resources you have, the harder it is to stop broken infinite combos forming 01:49:29 (that said, even Netrunner has had a few infinite combos, but none that break the game) 01:49:59 yeah, though mtg can subdivide mana into more types 01:50:23 and uses life as a resource pretty heavily 01:50:30 I have mixed feelings about that – color screw feels less fair than mana screw in a way 01:51:04 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 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 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 yeah they have made better fixing lands, but its still a problem 01:52:43 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 because it has, or at least wants, to make 4 mana on turn 1 in order to function 01:53:12 so it's full of Ancient Tombs and Chrome Moxen and the like 01:53:22 well that's pretty ambitious 01:53:47 yes – it's a testament to Magic's card pool that it was even possible to get it semi-consistent 01:53:57 and if you do manage it you usually win 01:54:06 unless you have nothing good to cast with it 01:57:20 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 that deck exists in Vintage, Legacy, Modern and Pauper nowadays 01:57:50 (admittedly the Pauper deck plays 59 spells rather than 60) 01:58:14 is edge of autumn a common? 01:58:25 `card-by-name edge of autumn 01:58:26 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 yes 01:58:56 but I don't think it's played in One Land Spy 01:59:35 I think of it as mostly a card for Doomsday 01:59:39 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 `card-by-name Land Grant 01:59:52 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 that's the primary reason that One Land Spy plays its one land 02:00:26 yeah that one 02:02:35 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 oh, completely 02:03:12 though doomsday is pretty scary in vintage 02:03:55 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 it can play around pretty much everything, but ends up having to play into something else in the process 02:04:50 yeah, i really like the skill of making the right pile and also playing against the optimal pile 02:05:02 at least when its not just over immediately 02:05:34 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 dress down, ancestral recall targeting them, removal, flusterstorm, not to mention what's already on the board 02:09:51 even something like wasteland can do wonders if they weren't expecting it 02:10:58 yeah, or surgical extraction on their doomsday to shuffle their pile 02:12:14 it is fun to watch Doomsday pilots play around Endurance 02:12:33 which is like the Surgical but more so, and because it can be pitch-cast, often comes alongside some other disruption 02:13:45 or noxious revival 02:14:08 I don't think I've seen that one used against Doomsday, that's hilarious 02:18:32 sometimes its all a Bazaar of Baghdad player can do 03:47:46 -!- FortyTwoBB has quit (Quit: Client closed). 03:52:58 [[Brainbits]] https://esolangs.org/w/index.php?diff=118051&oldid=118049 * Yb1 * (+345) thanks None1 & infobox & cleaning errors 04:07:00 [[Three Star Programmer]] M https://esolangs.org/w/index.php?diff=118052&oldid=118050 * Ais523 * (+0) /* Variants */ typo fix 04:26:49 [[Special:Log/upload]] upload * Alx * uploaded "[[File:HolyPy.jpg]]": HolyPy logo. 04:54:27 [[It Is Not What It Is]] M https://esolangs.org/w/index.php?diff=118054&oldid=117265 * PythonshellDebugwindow * (+29) Categories 05:05:32 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 [[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 [[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:
HolyPy Stable-Closed v3.8
. [[File: HolyPy.jpg]] {| class="wikitable" ! Associated file extensions || Descriptor |- | .hpy || The non-compiled extension type recognised by HolyPy. |- | 06:23:19 [[User:Alx]] https://esolangs.org/w/index.php?diff=118057&oldid=116643 * Alx * (+24) 06:24:02 [[User:Alx]] https://esolangs.org/w/index.php?diff=118058&oldid=118057 * Alx * (-36) 07:09:04 -!- cpressey has joined. 07:26:32 An initial state, and a sequence of commands; each command transforms the state. 07:28:13 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 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 Other proof styles put the emphasis on the other side: they list the states, the transformations used are parenthetical. 07:31:31 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 > 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 :1:46: error: parse error on input ‘<--’ 07:35:26 Oh sorry lambdabot, didn't see you there 07:36:50 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 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 wow, that's an unexpectedly long chain between different colors of mana 08:21:36 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 creates a white Spirit token? 08:24:51 -!- __monty__ has joined. 08:35:42 -!- arseniiv has joined. 08:44:39 "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 usually if they have broken cards they just ban or restrict them instead 08:50:14 [[SDOTOS]] https://esolangs.org/w/index.php?diff=118059&oldid=117732 * Infinitehexagon * (+116) 08:50:36 [[SDOTOS]] https://esolangs.org/w/index.php?diff=118060&oldid=118059 * Infinitehexagon * (+0) /* parity */ 08:51:43 [[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 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 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 that sort of thing is why I wrote "can help" instead of "helps" 09:19:44 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 MangledNameFactoryBean 09:34:03 -!- Koen has joined. 09:42:18 -!- cpressey has quit (Quit: Client closed). 10:16:28 [[Talk:Deadfish++]] https://esolangs.org/w/index.php?diff=118062&oldid=117979 * Europe2048 * (-1) 10:41:54 -!- cpressey has joined. 11:01:26 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 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 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 Gotta name all the passes in a micropass compiler, too. 11:05:45 Or more to the point, you can leave them nameless at your peril 11:07:43 Coming up with a name is a way of saving future maintainers the effort of reverse-engineering the definition. 11:08:19 [[Capsule]] https://esolangs.org/w/index.php?diff=118063&oldid=117905 * Leol22 * (-64) 11:26:38 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 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 > let 15 = 3 * 5 in 15 + 1 11:29:45 16 11:30:51 > let 99 = 3 * 5 in 99 + 1 11:30:53 100 11:33:20 Is it just me or is Haskell becoming an increasingly cavalier language these days? 11:35:09 hard to say 11:35:27 maybe there was a warning not reproduced by lambdabot 11:36:43 > do 3 + 3 11:36:45 6 11:37:16 -!- cpressey has quit (Quit: Client closed). 11:37:40 -!- cpressey has joined. 11:38:14 for a minute I thought you had ragequit because you didn't like that 3+3 was 6 11:38:31 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 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 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 (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 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 [[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 [[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 wib_jonas: I've posed it to the #haskell channel 13:25:12 tl;dr ghc doesn't issue warnings unless you tell it to 13:48:30 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 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 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 new behavior, as happens in lots of things other than warnings too. 13:54:41 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 [[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 [[Talk:Brainbits]] M https://esolangs.org/w/index.php?diff=118067&oldid=118066 * None1 * (+0) 14:12:50 [[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 [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=118069&oldid=117867 * Lilchiky * (+774) /* Aleph 2= */ 14:27:02 [[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 [[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 [[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 [[8-Bit]] https://esolangs.org/w/index.php?diff=118073&oldid=118043 * Infinitehexagon * (+65) /* Implementation */ 15:38:14 [[8-Bit]] https://esolangs.org/w/index.php?diff=118074&oldid=118073 * Infinitehexagon * (+2) /* Implementation */ 15:39:38 [[8-Bit]] https://esolangs.org/w/index.php?diff=118075&oldid=118074 * Infinitehexagon * (+1) 15:51:20 [[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 ais523: Out of curiosity, what is it about existing parser generators, in your opinion, that makes them produce inefficient code? 17:06:28 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 I think that's mainly due to accidentally allowing backtracking. 17:08:56 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 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 but yes, main problem with combinators is accidental backtracking 17:35:11 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 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 I guess the latter behaviour is easier to discover in testing 17:39:17 O, finally they are starting to implement "functionname( arguments ORDER BY sortlist )" in SQLite. 17:40:48 does the sorting rearrange one argument relative to another, or does it reorder the elements of a single list-like argument? 17:41:25 I guess the former behaviour only really makes sense with variadic functions 17:41:56 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 I think it means that the function must be a aggregate function. 17:52:29 ais523: the new parser generator that you're considering to make, is that for work? 17:55:31 b_jonas: I don't have a job at the moment 17:55:50 I've been struggling to concentrate for a few years now, possibly long Covid 17:56:07 and I spend so much time unable to do anything 17:56:31 so I'm concerned about getting a job in case I just turn up, fail to do anything and get fired 17:57:08 that sucks 17:57:21 good luck with job hunting then 17:57:42 I've been kind-of wondering if I should make something on my own that I can sell 17:57:46 but even that is going very slowly 18:01:20 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 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 [[Special:Log/newusers]] create * Ice Bird * New user account 21:22:43 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=118077&oldid=118026 * Ice Bird * (+139) 21:24:19 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=118078&oldid=118077 * Ice Bird * (+86) 21:49:26 [[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 [[2 Bits, 1 Byte]] M https://esolangs.org/w/index.php?diff=118080&oldid=100411 * TheBigH * (+108)