stalker mode ↑2025 ↑all
2025-10-24
[...]
20:40:46 <b_jonas> ais523: but lisp has user-definable macros, so it is about inventing whatever special-cased syntax you want
20:40:53 <korvo> A one-person consultancy had an utterly cracked way of programming. Each client got a fork of the main code, each fork had all variables as globals, and each query was "atmospheric": it pulled globals into the DB queries as needed to satisfy the client's requests.
20:41:04 <ais523> b_jonas: yes, but people normally don't use it for that
20:41:07 <korvo> No version control, IIRC. Lots of security issues.
20:41:27 <b_jonas> plus lisp has first-class functions, which makes it more likely that you can express such things even without macros
20:41:34 <b_jonas> it even has inline lambdas
20:41:48 <ais523> korvo: heh, reminds me a lot of INTERCAL (and CLC-INTERCAL in particluar, which doesn't quite work like that but feels like it's evolving in that direction)
20:43:14 <ais523> although I originally misinterpreted it as the DB being shared between all customers
20:43:19 <korvo> Found it: https://perlhacks.com/2012/03/you-must-hate-version-control-systems/ He's still going! https://www.perl.com/article/my-guilty-perl-obsession/
20:43:26 <b_jonas> on the more esoteric side, Enchain or other languages with similar syntax are technically a way to avoid the pileup of parenthesis, though not a practical way because the cure is worse than the original symptoms
20:43:51 <b_jonas> but it's at least something we should examine, even if to find out that it's not worth
20:44:01 <korvo> "The side you don’t know is that pipelines is what I’ve coined “atmospheric programming”, which is going to take some describing. If you imagine the difference between an object-oriented fully scoped world, and a flat file where everything is a global variable, sming the pendulum all the way further. Not only is everything global, but everything’s structured to be accessed from everywhere."
20:45:52 <b_jonas> wait what? are the sigils really what used to scare people off perl? I don't think that's true.
20:46:54 <b_jonas> "and edit the program without losing the work it had already done" => the hard part is how to combine that with lambda closures. I was thinkign about that recently.
20:47:00 <ais523> b_jonas: I don't think they're the main thing, but they are the main thing that's visible in simple programs
20:47:29 <esolangs> [[Mango]] M https://esolangs.org/w/index.php?diff=166656&oldid=166654 * RaiseAfloppaFan3925 * (+90) Added my implementation (still a stub implementation)
20:47:42 <ais523> I've done enough A Pear Tree programming to realise just how different the programs look if you remove the dollar signs
20:48:18 <ais523> (A Pear Tree still requires you to use $ sigils on variables in cases that would otherwise be ambiguous, but you can omit them in simple cases)
20:49:04 <b_jonas> wait, that's a different A Pear Tree than I was thinking of
20:49:04 <korvo> Doesn't Perl 5 require the sigils to specify how the variable is loaded from storage? Or is it just an affectation inherited from awk?
20:49:18 <ais523> and in simple programs, as long as you do flow control entirely using eval rather than more sensible ways, it polyglots pretty well with Python
20:49:22 <b_jonas> are there two languages with a similar name?
20:49:43 <b_jonas> no, it's the same Pear Tree, it just does multiple apparently unrelated changes to perl
20:49:56 <ais523> korvo: so Perl sigils specify what type the variable has, where there are three types: scalars, arrays, and maps (which Perl calls hashes)
20:50:39 <ais523> but, Perl has both arrays and array references, and an array reference is a type of scalar
20:51:43 <ais523> and array references are generally much more useful than arrays, and also you don't need an existing array to create them (you can just allocate them at will), so a common Perl programming style uses only array references and map references, rather than array-typed and map-typed variables
20:52:15 <ais523> this means that despite multiple sigils existing, $ (scalar) is overwhelmingly the most commonly used one, and the others are, whilst not actually deprecated, mostly unused nowadays
20:52:34 <korvo> Right, I recall code doing lots of $(this)->meth(); sorts of shapes.
20:53:51 <korvo> I haven't ported Smalltalk or Self to Vixen. I just don't like the syntax enough. I think Self makes a lot of sense at a REPL but not as an orchestration language on disk.
20:54:10 <ais523> a Perl object is implemented as a pair of a package (basically the equivalent of a class) and a place to store the object's data
20:54:29 <ais523> and the place to store the data has to be a scalar, in practice it's usually a map reference, and usually an array reference if it isn't a map reference
20:54:47 <ais523> which means that Perl objects are exclusively accessed using $, the other sigils wouldn't work for them
20:54:59 <b_jonas> "and also you don't need an existing array to create them" => that's a great way to make the sort of mistake where your program seem to work well but later dies when an array happens to be empty. I've made such errors without perl, but I think if you try to program perl in the style that you suggest they'll be more likely.
20:55:10 <ais523> (that said, for my "simple incremental execution Perl" I don't think I'd support objects)
20:55:51 <ais523> b_jonas: well this style usually creates arrays with […] and hashes/maps with {…}, those don't die when the array is empty
20:56:01 <b_jonas> ais523: and now we might have to qualify that statement because more recent perl is adding some different kind of OO as well
20:56:30 <korvo> ais523: Curious, yet another fat-pointer language.
20:56:39 <b_jonas> ais523: oh, I was thinking you'd just { push @$x, $y; } inside a loop without initializing $x
20:56:50 <ais523> korvo: that's a good way to think about it, but Perl pointers are stupidly fat even without that
20:58:19 <b_jonas> ais523: or, and this is the way I encountered the bug in non-perl, you { push @{$x{$z}}, $y; } inside a loop, then later try to use @{$x{$z}} which fails if you never pushed with that particular $z
20:58:49 <ais523> b_jonas: now I'm wondering how hard it would be to just simply make that case work
20:59:13 <ais523> it might be as simple as "indexing undef returns undef"?
20:59:23 <korvo> ais523: Oh, I don't mean it to be a bad thing. Or maybe it's a dialect thing; in USA lingo, we would say that a pointer is not "stupidly fat" but "dummy thicc". But to me a fat pointer is just a pair (script, closure) or (behavior, locals) or (class, attributes) or (vtable, struct) or...
20:59:56 <ais523> korvo: I wasn't taking you as implying it was a bad thing
21:00:04 <korvo> And it seems like they're key to so many languages. D, Go, and Rust all rely on fat-pointer strings. Cello calls itself "a fat-pointer library".
21:00:09 <ais523> I was just thinking that it was the obvious approach for Perl because pointers stored so much data there already
21:00:15 <b_jonas> ais523: it's kind of a tradeoff. perl is already making undef semi-silently work as a number or string. you can make it work as a ref to an empty array too, but eventually you'll get more bugs where something is accidentally uninitialized and you don't notice because perl doesn't warn you than how much bugs you have now from where you meant somethign to be an array ref but perl didn't allow it
21:00:56 <ais523> arithmetic on undef gives a warning, right? which in simple programs is IME usually a false positive
21:01:11 <b_jonas> usually yes, but there are some exceptions
21:02:01 <b_jonas> in particular you can { $x += $z; } in a loop, then use $x, and if the addition never ran then you get a false warning
21:02:15 <ais523> I guess there's also the extreme approach of unifying all the types (which is the thing I like about old versions of Perl)
21:02:32 <ais523> it's easy enough to see how an array and a map could be the same type (Lua does that)
21:02:50 <ais523> and it's also easy to see how an array and string could be the same type (a string could be an array of character codes)
21:03:19 <ais523> with this approach, undef would be an empty string, which logically seems reasonable
21:03:57 <ais523> automatic coercions would be very weird, though, you'd get things like "abc"[1][1] == 8
21:04:10 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:04:22 <b_jonas> some of that wouldn't be compatible with existing perl
21:04:32 <ais523> I know, I'm not trying to be compatible, just inspired
21:05:17 <ais523> I think this unify-everything approach would make sense for a golfing language but not so much for practical use
21:06:06 <ais523> undef as "" might make sense practically, but also might be a big mistake (it reminds me a lot of Go's zero values which I think are probably a mistake)
21:06:25 <korvo> Well, there are two fairly popular systems that have "everything is a char" and "everything is an octet" respectively, but I get what you're saying: it's not maintainable to only deal in bytes.
21:06:53 <ais523> that said, the "exists" operation seems wrong, it's needlessly confusing to have both "undefined" and "nonexistent" as possible map values
21:07:21 <ais523> so I think the language should at least get rid of one of those options, and I'm not sure which one makes more sense to remove
21:07:51 <b_jonas> now that I've been writing programs in a dynamical language in a way where I want them to be maintainable for years, I want types *less* unified rather than more, in order to detect mistakes earlier
21:08:01 <b_jonas> even with dynamic typing I lean that way
21:08:02 <ais523> (when I want to implement a set in current Perl, I normally do it – for efficiency reasons – as a map where a nonexistent value means not included, and an undefined value means included – but this is really confusing in the code)
21:08:36 <ais523> b_jonas: so I really like the approach of strings and integers being treated as the same type and changing based on the operator you use
21:09:03 <ais523> I think this is better than the Python/JS approach of tracking what type is used for the value and having the operators act differently according to it
21:09:32 <ais523> but I also think it's probably correct to error if the operator doesn't match the data being stored
21:09:35 <b_jonas> Lua does that, it doesn't distinguish between a key that's not in a table and a key where the associated value is nil. So do Factorio circuit network by the way, no difference between no value or zero value.
21:09:57 <ais523> e.g. I am happy with "123" + "456" = 579, but not "123a" + "456" = 579
21:10:52 <ais523> ooh, perhaps the correct approach is to treat undef, empty array, and empty map as all equivalent, but make them different once you start storing data in them
21:11:18 <b_jonas> ais523: there could be a middle option where you can format a number to a string implicitly (useful to quickly print numbers for debugging) but you need an explicit conversion to parse a string as a number
21:11:36 <ais523> b_jonas: well Perl is often dealing with numbers read from files or pipes
21:11:59 <ais523> I definitely don't want the program to silently change additions into concatenations because I forgot to change one of those from a string to a number
21:12:14 <ais523> and for scripting uses, I don't really want to explicitly cast either
21:12:50 <ais523> but perhaps the approach would be to add, e.g., a way to regex capture as an integer
21:13:10 <b_jonas> yeah, that would make sense
21:13:15 <ais523> thus forcing the parsing step to exist (and even making it statically checkable), but reducing the syntactic overhead
21:14:29 <b_jonas> there's probably a place for everything, I'm just leaning to more explicitness because of what programs I've had to maintain recently.
21:14:41 <b_jonas> they involve a lot of reading and writing text files.
21:14:46 <ais523> the ideal is lightweight explicitness which happens even without you doing anything
21:14:53 <ais523> type inference is a good example of that
21:15:36 <ais523> now I'm wondering whether Perl with type inference is even possible, or whether it encounters heterogenous data too often
21:18:32 <ais523> you would probably need two types of map, a tuplish one where the set of keys were fixed and each key could have a different value type, and one where all the values had the same type but the keys could be arbitrary
21:18:35 <ais523> (and likewise for arrays)
21:31:48 <zzo38> I think that sigils are helpful in some programming languages, for several purposes such as avoiding conflicting with keywords
21:33:32 <korvo> I liked Neighbors' convention for META II: the keywords all start with a sigil! In their case, it was '.' which led to me thinking of the keywords as methods/attributes of some builtin object with an empty name "".
21:34:04 <b_jonas> zzo38: Enchain will use what I think counts as sigils, % and & , to denote that you're defining a function instead of calling it
21:34:19 <b_jonas> they're still sigils if they go *after* the name, right?
21:36:06 <zzo38> I would say it is still sigils whether it is before or after
21:36:49 <b_jonas> ok, then these are sigils because you have to write them immediately after the function name, you can't put whitespace between them because that changes the meaning
21:36:59 <ais523> korvo: in Algol-68, ". before keywords" is the portable convention for how you write keywords
21:37:31 <ais523> which is used to solve the bootstrapping problem of "how can I tell the compiler how I want to write keywords, without knowing what the keyword syntax is"
21:38:06 <ais523> that said I don't think modern Algol-68 implementations actually follow that rule, but maybe they do
21:38:13 <b_jonas> doesn't fortran use dots to write numeric compare operators?
21:38:22 <b_jonas> some dialects at least
21:38:31 <b_jonas> I may be confusing fortran with something else
21:38:39 <ais523> (the other two rules you can use are "keywords in uppercase" and "any sequence of letters that could be a keyword is" – the latter was combined with an underscore sigil to unkeywordise things)
21:39:10 <ais523> I'm also wondering whether the latter invented the use of underscore to replace spaces in variable names
21:39:13 <ais523> or whether that's older
21:39:21 <ais523> b_jonas: .GT. and the like, I think
21:39:25 <b_jonas> "any sequence of letters that could be a keyword is" => how many two-letter keywords are there?
21:39:28 <ais523> but that has dots at the start and end, rather than just the start
21:39:30 <korvo> ais523: TIL! That makes a lot of sense as far as history.
21:39:49 <zzo38> There is "if" and "do" in C are keywords with two letters, as well as many longer keywords
21:39:55 <ais523> b_jonas: I think "if" is a keyword, I'm not sure about "of", I can't immediately think of any others offhand but there probably are some
21:40:16 <ais523> I haven't looked at Algol-68 for a while
21:41:04 <zzo38> In some programming language, does have "of", "in", "to", and "on" also as keywords
21:41:08 <ais523> korvo: https://en.wikipedia.org/wiki/Stropping_(syntax)
21:41:12 <zzo38> (I don't know about ALgol specifically)
21:41:24 -!- strerror_r has joined.
21:41:56 <ais523> huh, this article suggests that the reason that prefix . was used was so that it would work in 6-bit character sets
21:42:12 <ais523> which I didn't know but makes sense
21:42:15 <b_jonas> once you have a large portion of `do if or is no in to of by as on at` as keywords, it starts to get hard to invent good variable names
21:42:29 -!- strerror has quit (Ping timeout: 260 seconds).
21:43:26 <b_jonas> the one I usually ran into is trying to use `if` for an input file handle and `of` (or `log`) for an output file handle
21:45:08 <ais523> b_jonas: I've accidentally used `i8` as a variable name in Rust in the past
21:45:22 <ais523> this is the only time where variable names and type names being in different namespaces has actually been useful
21:45:38 <b_jonas> ais523: oh, the one that really bit me is `j0` as a function name in C.
21:45:52 <ais523> (that said, IMO Rust should have used titlecase names for its primitive types so that variable name / type name clashes couldn't happen in program that used normal capitalisation style)
21:46:09 <b_jonas> ais523: they should have called that 8i though, or else should have made it a normal identifier rather than a keyword
21:46:17 <ais523> NetHack has a clash with the standard library on "yn" I think
21:46:29 <ais523> (and with C++ keywords on "class")
21:47:15 <zzo38> Some of my C programs also use "class" as the name of a variable or a field of a structure, but it is not C++ so it is OK
21:48:35 <ais523> C keywords actually mostly hit the sweet spot of being clear whilst being unlikely to be a variable name
21:48:51 <ais523> especially "struct" and "enum", those are really good keywords
21:49:17 <ais523> some are not so good, like "long"
21:49:38 <ais523> this implies that maybe truncated words are a good choice for keywords
21:53:47 -!- tromp has joined.
21:57:30 <b_jonas> it's not just the casing that's wrong. whether it's called i8 or I8, it should be an ordinary namespaced name in the prelude that you can shadow, not a keyword. theres' no reason why it should be a keyword. they learned the wrong lesson from C or C++ there. same for true and false, those should be ordinary enum constructors.
21:57:41 <ais523> b_jonas: it isn't a keyword
21:57:57 <b_jonas> why isn't it namespaced then?
21:58:06 <b_jonas> is it like a weak keyword?
21:59:05 <ais523> Rust normally uses prelude imports for that sort of thing (i.e. your program has an implicit «use core::option::Option as Option;» as the start) but I'm not sure whether it does that for primitives
22:00:17 <b_jonas> https://doc.rust-lang.org/nightly/std/prelude/index.html should list all the names of the prelude. Option is there; i8 isn't
22:00:43 <b_jonas> so if i8 isn't a (possibly weak) keyword then I don't know what it is
22:00:58 <ais523> it could just be an identifier in the global scope, I guess
22:02:58 <ais523> b_jonas: it definitely isn't a keyword: https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=1a97b4fab7c45582af9a27e3d2d44ff0
22:03:21 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:03:24 <ais523> (the «r#» prefix is how you create an identifier with the same name as a keyword, that isn'ta keyword)
22:07:34 <b_jonas> ais523: I don't think it's in the global scope, firstly because there are only crates there, secondly because you can't call it ::u8
22:08:11 <ais523> maybe it's just a special case that's inconsistent with the rest of the language, then
22:08:12 <b_jonas> it seems as if it's imported into every namespace as if it were in the prelude
22:08:33 <b_jonas> but can be shadowed like anything in the prelude
22:08:35 <zzo38> I think would be better to have sigils indicating stuff that is not keywords, or use other signs or formatting indicating if it is or not keywords, or to not have reserved words even if they are keywords, depending on the use
22:08:44 <b_jonas> because it's imported as if it were a wildcard import
22:10:40 <zzo38> (I think LLVM uses sigils to indicate stuff other than keywords)
22:11:30 <ais523> I like register sigils in asm because they avoid the problem of a variable and register having the same name
22:12:02 <ais523> especially because new registers get introduced over time, e.g. if I had a variable named zmm0, that would have been fine on old assemblers but might break on newer ones
22:12:06 -!- Sgeo_ has joined.
22:14:55 -!- Sgeo has quit (Ping timeout: 240 seconds).
22:18:21 <sorear> the explanation that was current when I was active was "you know what would make a programming language easier to learn? case and gender"
22:20:03 <ais523> sorear: was that intended sincerely or sarcastically? I know that many people find learning word gender to be one of the hardest parts of learning languages that have it, because it's basically just an extra boolean you have to memorise along with every word
22:20:25 <ais523> at least case has simplifying aspects in addition to complicating aspects
22:21:24 <ais523> fwiw I'm not convinced that sigils generally are bad, but I don't think they benefit modern Perl in particular because almost everything is a scalar
22:21:42 <sorear> perl 5 does not have fat pointers. it has fat *variables*. bless attaches metadata to the memory location (SV) like a tie would
22:22:17 <sorear> 100% sincere with maybe a touch of self-deprecation
22:22:21 <ais523> ah, you are right (although programs are in practice nearly always written in such a way that the distinction is not observable)
22:23:05 <ais523> Perl has so much metadata on everything that it is hard to remember where in particular any given datum is stored
22:25:00 <sorear> I did _write_ one...
22:29:45 <esolangs> [[Fat pointer]] N https://esolangs.org/w/index.php?oldid=166657 * Corbin * (+1948) Stub for a recurring concept that isn't properly addressed on WP.
22:32:27 <ais523> korvo: I'd caveat that the extra data in a fat pointer isn't always a pointer, it just needs to contain "type" information generally, but sometimes that's generics rather than a type name expressed as a vtable
22:33:12 <ais523> Rust slices are only accessible via fat pointers that specifies the length they would have if interpreted as an array, for example (which is a numerical generic rather than a vtable)
22:34:14 <korvo> ais523: Sure. I think of those as degenerate cases of the general concept, though; they're just more specialized.
22:34:55 <ais523> hmm, I guess you can view the slice length as a sort of compressed pointer that stores the entire data of its target inside the space that would otherwise be used for the pointer itself
22:35:09 <korvo> The first component is what we call "green" in JIT theory; it's the component that we want to hold constant and "differentiate with respect to", so to speak.
22:35:09 <sorear> how about fortran multidimensional slice descriptors
22:35:11 <ais523> like, we use the number 5 as a compressed version of "a pointer to a vtable for a length-5 array"
22:40:18 <ais523> hmm, is there a standard name for this sort of pointer/reference-like thing where the thing that is being referenced might actually exist in memory, or might just be generated on the spot?
22:43:01 <sorear> laziness?
22:44:05 <ais523> I don't think it's quite the same
22:44:09 <ais523> it is similar though
22:44:32 <ais523> for a lazy pointer/reference, I would expect the target to be generated on first use and then remain in memory, rather than being generated on every use
22:46:20 <sorear> c++, python, and self are all canonically thin-pointer systems where you either have types at compile time, or the referent of a pointer knows its runtime type because it has a vtable/metadata...
22:46:25 <korvo> "proxy", "facade", "becomer" (https://gbracha.blogspot.com/2009/07/miracle-of-become.html)
22:48:13 <sorear> there's a bit of nastiness around c++ multiple inheritance where sometimes an object has to have multiple vtable pointers and seemingly no-op coercions need to offset the object pointer to point at a different vtable pointer, but everything is still thin
22:48:26 <korvo> Isn't Python canonically fat? The `type` allocator produces objects with a `__class__` and `__dict__`; those are the first and second component of the standard fat pointer.
22:48:49 <ais523> korvo: oh right, "proxy" definitely fits (I'm a bit less familar with the other two)
22:49:08 <korvo> I'll concede that perhaps I misread the Self paper. I haven't actually played with a Self implementation.
22:49:23 <sorear> a fat pointer is local and immutable, you can change the type information on one pointer to an object without changing it for others
22:50:12 <sorear> I suppose you could think of a Python object as a fat pointer to a dictionary, but the existence of slots muddles that interpretation
22:50:34 <sorear> i'd rather think of the object as an object itself that simply delegates some behavior to a dictionary
22:50:44 <sorear> the only Self implementation I've used is V8
22:52:56 <ais523> interestingly Rust has an equivalent to Smalltalk become: (called core::mem::replace), although it's much more restrictive because you need a mutable reference to the thing you are replacing
22:53:43 <ais523> it has become increasingly controversial over time because it breaks invariants that would otherwise exist, some of which would be useful for implementing various language features
22:55:25 <ais523> from my point of view, its biggest issue is that it means that the concept of object identity effectively doesn't exist in Rust, because there's no type-system-level way to observe that an object got swapped out and so you can't tell whether you're still using the same object you were previously using if any code you don't control has had a mutable reference to it
22:55:46 <Sgeo_> ...and I wrote a variation (take_mut) to allow what felt like a missing function in the language >.>
22:56:18 <ais523> Sgeo_: is that core::mem::take, or something else?
22:57:47 <Sgeo_> It's more of a core::mem::replace that can wait for the hole to be filled, passing in a closure. It aborts if the closure panics
22:58:26 <Sgeo_> I sort of wanted there to exist a function that turns (T -> T) into one that takes (&mut T)
22:58:57 <ais523> oh, I see, it leaves an uninitialized hole behind?
22:59:08 <ais523> or, well, a copy of the bits but that you aren't allowed to use
22:59:29 <sorear> replace is interesting because it's the only way to move a non-Clone type out of a mutable reference, if you're working with owned values the lack of identity goes much deeper because there's no way to override operator=
23:00:07 <ais523> this is one of the things that makes me think that Rust &mut is incorrectly defined (I am not opposed to the existence of mutable references but I think the specific choices &mut makes for what you can and can't do are wrong)
23:00:15 <Sgeo_> There's an RFC that failed, calling the function replace_with
23:00:36 <ais523> because it has an invariant that it always points to a valid value of the type, even while reborrowed
23:01:08 <Sgeo_> https://github.com/rust-lang/rfcs/pull/1736#issuecomment-1311564676
23:01:29 <Sgeo_> Composition of safe crates that add functions is unsafe
23:01:45 <ais523> I agree that it would make more sense for a reborrowed &mut to not constrain the type of the thing that it's reborrowing (although, as you say, you would need some separate way to maintain panic-safety in that case)
23:02:11 <sorear> well if you reborrow you have a _new_ reference, mutable or not, which upholds the "has a valid value of the type"
23:02:41 <ais523> sorear: but what if you transmute the new reference
23:02:58 <ais523> this is unsafe, but isn't necessarily unsound
23:04:51 <Sgeo_> I wanted to make some sort of unmovable structure based on the compiler preventing self-referencing structures from being moved. I didn't do so and the community invented Pin.
23:05:01 <Sgeo_> I don't... know if my idea would have worked or not
23:05:14 <Sgeo_> I don't fully understand Pin and the async features
23:05:36 <ais523> Sgeo_: you can actually do that in current safe Rust (unmovable self-referencing structures) but there are a lot of restrictions
23:06:01 <ais523> the basic idea is to have a type with a lifetime parameter that controls the lifetimes of the references inside, and the same lifetime is also used for self on the method calls
23:06:53 <ais523> the main problems are that it only works well with shared references (because if you do it with a mutable reference it doesn't reborrow properly) and nothing self-referencing can have a destructor (otherwise it fails drop check)
23:07:57 <ais523> the latter problem seems to be inherent to the idea of self-referencing structures rather than a limitation of the implementation: a structure has to be dropped after everything it references, so if you have a circular reference you can't drop at all
23:08:13 <ais523> (but if there are no destructors Rust works around the problem by simultaneously forgetting the whole structure)
23:08:18 <b_jonas> when you say that replace is the only way to move out from a mutable reference, do you consider mem::swap equivalent to that? because I'm thinking of mem::swap as the more natural way and mem::replace a wrapper around that
23:08:29 <ais523> b_jonas: yes, swap and replace are basically equivalent
23:08:41 <b_jonas> ok good
23:09:10 <ais523> swap is slightly more fundamental in that trying to implement swap in terms of replace needs a temporary, which you might not be able to initialize correctly
23:09:14 <sorear> korvo: skimming everything posted here is unsustainable and I'll have to go back to mostly ignoring, do you want to move the nql stuff somewhere else or just ping?
23:10:14 <b_jonas> as for moving out and leaving a hole that you will fill before you return, thus breaking panic safety, I wonder if you can do that with a Cell
23:10:38 <b_jonas> Sgeo_: ^
23:11:23 <ais523> b_jonas: you can't move out of a cell unless you swap something in
23:11:37 <ais523> in fact, mem::swap is not the fundamental operation, Cell::swap is
23:12:05 <ais523> you can write mem::swap in terms of Cell::swap (and occasionally have to, e.g. when swapping a mutable reference with a cell; that came up for me recently)
23:12:32 <b_jonas> that makes sense, because you might try to access a cell through another reference
23:14:00 <ais523> that said, it is possible that Cell::swap needs a special case for trying to swap a cell with itself, and mem::swap doesn't
23:14:49 <int-e> b_jonas: hmm do you think this reduction in critical path length is meaningful ;-) https://int-e.eu/~bf3/tmp/shapez-mam-critical.png (right: corresponding snippet from https://int-e.eu/~bf3/tree-mam/ )
23:39:17 <int-e> Hmm I think it's a bit over half a second at 10x belt speed. So not huge when the total latency is like 16s.
2025-10-25
00:27:07 -!- ais523 has quit (Quit: sorry about my connection).
00:34:56 -!- amby has quit (Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement).
00:45:58 -!- ais523 has joined.
00:59:37 -!- strerror_r has changed nick to strerror.
01:40:09 <korvo> sorear: We can stick to GitHub. Also it looks like the channel #nql is empty if you'd like to use that.
02:01:08 -!- Sgeo_ has quit (Read error: Connection reset by peer).
02:01:28 -!- Sgeo has joined.
02:57:38 <b_jonas> int-e: white is the most common color, and apart from white a freeplay shape takes colors from among three adjacent colors of a rainbow, so I feel like you should make the path of white the shortest, and put the rest in rainbow order, so that for at least some shapes the critical path is shorter than the longest necessary.
03:00:16 <int-e> b_jonas: It doesn't matter in my design because I have to wait out the worst case switch-over time anyway, or synchronization may be lost. Well, unless I somehow compute the actual time I suppose, which I won't.
03:00:22 <b_jonas> int-e: but I also don't understand what what you show is on the critical path, don't the rectangles going from right to left take a longer path here, and aren't the rectangles a variable shape?
03:00:40 <b_jonas> ah I see
03:02:47 <int-e> b_jonas: nah, that's not a variable shape, I'm just not supplying the other three because I was lazy
03:03:02 <int-e> I assume "ah I see" means you saw that
03:03:33 <int-e> the main novelty here (for me) is feeding a belt with filters from both sides.
03:04:21 <b_jonas> no, the I see is for the synchronious timing that you have
03:04:42 <b_jonas> oh, you're belt weaving the four shapes
03:04:44 <b_jonas> that's the trick
03:05:20 <b_jonas> yeah, then the path of the shapes is longer
03:05:21 <b_jonas> shorter
03:05:23 <b_jonas> drat
03:06:26 <int-e> I'm somewhat seriously contemplating to actually build a mixed belt design for this (not my idea)
03:07:05 <b_jonas> sure, if you are setting up synchronious setups for everything then you can probably handle at least two colors mixed on each belt
03:07:23 <int-e> where for each quarter, you have one belt that provides all 4 shapes, and another that provides all 7 colors (plus a dummy shape). Which after filtering is *just* enough to feed a double painter.
03:07:27 <b_jonas> but whether that lets you compress this to shorter I'm not sure
03:07:39 <b_jonas> hmm
03:08:03 <b_jonas> all seven colors on the same belt? I see
03:08:34 <int-e> source is this: https://old.reddit.com/r/shapezio/comments/11e54on/20_sec_bmam_flushless/
03:10:17 <int-e> (Which does another crazy thing, where it stacks before cutting, with possibly two stacks in one quadrant. That trick only works for full-height shapes though.)
03:11:23 <int-e> (I don't like the restriction, but the design *is* clever.)
03:13:38 <int-e> Providing resources for that beast would be very cumbersome though. It has, 12 copies of the MAM, and each MAM will require 4x4 shape belts and 3x8 primary color belts (discarding all those unused colors is a huge waste).
03:14:46 <int-e> (but discarding unused shapes isn't, interestingly enough)
03:15:14 <int-e> anyway
03:15:27 <int-e> thanks for humoring me, and good night
03:44:18 <esolangs> [[Tskastic/Command Table]] https://esolangs.org/w/index.php?diff=166658&oldid=158970 * PrySigneToFry * (+98)
03:47:57 -!- ais523 has quit (Quit: quit).
03:48:57 <esolangs> [[User:PrySigneToFry/Sandbox]] https://esolangs.org/w/index.php?diff=166659&oldid=154502 * PrySigneToFry * (+197)
03:49:45 <esolangs> [[User:PrySigneToFry/Sandbox/Users that is also on other place]] https://esolangs.org/w/index.php?diff=166660&oldid=160908 * PrySigneToFry * (+31)
04:28:11 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
04:32:51 -!- slavfox has joined.
04:47:29 <esolangs> [[User talk:PrySigneToFry/Sandbox/Users that is also on other place]] https://esolangs.org/w/index.php?diff=166661&oldid=151882 * I am islptng * (+145)
05:08:14 <esolangs> [[Talk:UnCompetition]] https://esolangs.org/w/index.php?diff=166662&oldid=166641 * Yayimhere2(school) * (+153)
05:08:23 <esolangs> [[Talk:UnCompetition]] https://esolangs.org/w/index.php?diff=166663&oldid=166662 * Yayimhere2(school) * (+118)
05:08:47 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166664&oldid=166630 * Yayimhere2(school) * (+0) /* Description */
05:13:10 <esolangs> [[Unhappy]] https://esolangs.org/w/index.php?diff=166665&oldid=145691 * Yayimhere2(school) * (-28) deleted Turing tarpit category, as there is no proof of such
05:16:03 -!- Yayimhere has joined.
05:17:26 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166666&oldid=166639 * Yayimhere2(school) * (+16)
05:17:37 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166667&oldid=166666 * Yayimhere2(school) * (+118)
06:10:38 <esolangs> [[User talk:Unname4798]] https://esolangs.org/w/index.php?diff=166668&oldid=150990 * Yayimhere2(school) * (+450)
06:21:48 <Yayimhere> hey people, I have a quick question, what is regex? because Ϫ said I should merge regex and my own language, but I couldn't find out what regex actually was
06:41:49 <korvo> Regular expressions.
06:42:07 <Yayimhere> thanks!!!
06:46:37 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166669&oldid=166667 * Yayimhere2(school) * (+117)
07:02:09 <esolangs> [[FUnctional staCK]] N https://esolangs.org/w/index.php?oldid=166670 * CatCatDeluxe * (+13887) Created page with "'''FUnctional staCK''' is a minimal staCK based programming language created by [[User:CatCatDeluxe]] that shares some traits with FUnctional languages. For short, it can be called FUCK, a perfectly innocuous name. Despite the perfectly innocuous name, t
07:15:15 <APic> Hi
07:15:33 <Yayimhere> hi APic!
07:16:00 <APic> Yo Yayimhere
07:18:32 <Yayimhere> whattup!
07:19:27 <esolangs> [[User:CatCatDeluxe]] https://esolangs.org/w/index.php?diff=166671&oldid=89272 * CatCatDeluxe * (+1390)
07:19:53 <Yayimhere> how are ya?
07:20:06 <Yayimhere> and are you doing anything esolang
07:20:38 <esolangs> [[User:CatCatDeluxe]] M https://esolangs.org/w/index.php?diff=166672&oldid=166671 * CatCatDeluxe * (+9) fix the link
08:33:21 -!- tromp has joined.
08:34:39 <Yayimhere> hello tromp!
08:35:08 <tromp> hi
08:37:19 <Yayimhere> how are you?
09:01:10 -!- Sgeo has quit (Read error: Connection reset by peer).
09:06:35 -!- Yayimhere has quit (Ping timeout: 250 seconds).
09:17:11 -!- Yayimhere has joined.
09:27:55 -!- sftp has joined.
09:27:55 -!- sftp has changed hostmask to ~sftp@user/sftp.
09:40:49 -!- Yayimhere has quit (Ping timeout: 250 seconds).
09:50:54 <esolangs> [[]] M https://esolangs.org/w/index.php?diff=166673&oldid=166636 * C++DSUCKER * (-3)
09:52:04 <esolangs> [[User talk:PrySigneToFry/Sandbox/Users that is also on other place]] https://esolangs.org/w/index.php?diff=166674&oldid=166661 * PrySigneToFry * (+115)
10:06:10 -!- Yayimhere has joined.
10:21:26 <esolangs> [[Talk:F calculus]] https://esolangs.org/w/index.php?diff=166675&oldid=166319 * C++DSUCKER * (+131)
10:27:16 <esolangs> [[Unrepetition]] N https://esolangs.org/w/index.php?oldid=166676 * Yayimhere2(school) * (+1344) Created page with "'''Unrepetition''' is a combination of [https://en.wikipedia.org/wiki/Regular_expression Regex], and [[UnCompetition]]. the [[Talk:crypten|original idea]] was created by [[User:]]. == How it functions == fundementally, UnCompetition and Unrepetition func
10:29:53 <esolangs> [[Talk:Crypten]] https://esolangs.org/w/index.php?diff=166677&oldid=166669 * Yayimhere2(school) * (+162)
10:33:33 <esolangs> [[F calculus]] M https://esolangs.org/w/index.php?diff=166678&oldid=166456 * C++DSUCKER * (+18)
10:46:21 <esolangs> [[F calculus]] https://esolangs.org/w/index.php?diff=166679&oldid=166678 * C++DSUCKER * (-1) I made the mistake of changing the section and description but not the code. fixed.
11:14:53 <esolangs> [[CGOLOE]] https://esolangs.org/w/index.php?diff=166680&oldid=135605 * Yayimhere2(school) * (+22)
11:38:43 -!- Lord_of_Life has quit (Ping timeout: 244 seconds).
11:39:08 -!- Lord_of_Life has joined.
11:44:04 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166681&oldid=166664 * Yayimhere2(school) * (+48) /* (Surprisingly enough) a short list of examples(WIP) */
11:48:16 <tromp> I'm fine
11:49:25 <esolangs> [[Unrepetition]] https://esolangs.org/w/index.php?diff=166682&oldid=166676 * Yayimhere2(school) * (+39)
11:50:14 <Yayimhere> great lol!
12:02:10 <esolangs> [[Unrepetition]] https://esolangs.org/w/index.php?diff=166683&oldid=166682 * Yayimhere2(school) * (+53)
12:25:10 -!- amby has joined.
12:55:04 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:58:25 <Yayimhere> hi amby
13:17:29 -!- Yayimhere has quit (Ping timeout: 250 seconds).
13:26:30 -!- tromp has joined.
13:38:22 <esolangs> [[User talk:None1]] https://esolangs.org/w/index.php?diff=166684&oldid=166514 * None1 * (+288) /* SLet */
14:30:38 -!- Yayimhere has joined.
15:48:27 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:05:05 <esolangs> [[GRG]] N https://esolangs.org/w/index.php?oldid=166685 * Yayimhere2(school) * (+1295) Created page with "{{WIP}} '''GRG''' or '''Growth Rate Growth''' is a semi-theoretical esolang created by [[User:Yayimhere]](as In not all formal specifics have been defined), in his search for the computational class of [[UnCompetition]]. it is a combination of a single growth rat
16:14:05 <esolangs> [[Special:Log/newusers]] create * SzymoQwerty * New user account
16:14:22 -!- tromp has joined.
16:16:18 <Yayimhere> oooh, new user!!!
16:16:20 <Yayimhere> lol
16:20:22 -!- sprock has quit (Ping timeout: 260 seconds).
16:27:00 -!- sprock has joined.
16:27:29 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166686&oldid=166590 * SzymoQwerty * (+143) /* Introductions */
16:29:48 <esolangs> [[GRG]] https://esolangs.org/w/index.php?diff=166687&oldid=166685 * Yayimhere2(school) * (+1370)
16:32:11 <korvo> Yayimhere: On UnCompetition's complexity class: what does the language actually compute? Can you show how it would implement some functions on natural numbers? The description of the commands that you've given is too vague for me, so I would need to see some example programs before understanding what the language actually does.
16:33:55 <esolangs> [[GRG]] https://esolangs.org/w/index.php?diff=166688&oldid=166687 * Yayimhere2(school) * (+216)
16:34:52 <Yayimhere> Korvo: I cant give any examples, because even though I know how the language works, I have no idea on how to practically use it(though every program is in some way a form of exponential(see GRG)), tough what is too vague(I would like to try and explain it and revise it on the page)?
16:35:09 <esolangs> [[GRG]] https://esolangs.org/w/index.php?diff=166689&oldid=166688 * Yayimhere2(school) * (+0) /* How it functions */
16:35:27 <Yayimhere> because examples are hard to compute manually
16:35:42 <Yayimhere> and i do not have the experience to write an interpreter as of currently
16:35:53 <Yayimhere> (i also need to leave, however, I will return to respond)
16:40:08 <esolangs> [[Special:Log/newusers]] create * Wlad * New user account
16:51:59 -!- Yayimhere has quit (Ping timeout: 250 seconds).
17:19:40 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:25:44 <esolangs> [[OverDeathKill]] N https://esolangs.org/w/index.php?oldid=166690 * SzymoQwerty * (+1570) Created page with "{{infobox programming language | name = OverDeathKill | paradigm = esoteric | creator = [[User:SzymoQwerty]] | year = 2025 | influenced-by = [[Brainfuck|Brainfuck]] and being sadistic }} '''OverDeathKill''' is an esoteric programming language created by [[Use
17:27:23 <esolangs> [[User:SzymoQwerty]] N https://esolangs.org/w/index.php?oldid=166691 * SzymoQwerty * (+124) Created page with "Im SzymoQwerty and i LOVE making esolangs in python I came here to contribute to esolangs.org (and share my monstrosities)!"
17:28:37 <esolangs> [[OverDeathKill]] https://esolangs.org/w/index.php?diff=166692&oldid=166690 * SzymoQwerty * (-127)
17:39:56 -!- tromp has joined.
18:49:08 -!- Sgeo has joined.
18:49:47 -!- jgardner has changed nick to june-o-lantern.
19:15:38 <esolangs> [[Brainfuck code generation]] M https://esolangs.org/w/index.php?diff=166693&oldid=166025 * Waffelz * (-20) added BFASM and changed the list to be sorted alphabetically and removed redundant links to [[brainfuck]] and others
19:39:06 <APic> Good Nigh
19:39:07 <APic> t
19:49:40 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166694&oldid=166655 * RaiseAfloppaFan3925 * (+607) I am semi-active.
19:53:56 <esolangs> [[User:Jay]] N https://esolangs.org/w/index.php?oldid=166695 * Jay * (+64) Created page with "'''USER: Jay''' <br/> <br/> '''Languages:''' <br/> * Pizzascript"
19:58:31 <esolangs> [[User talk:Jay]] N https://esolangs.org/w/index.php?oldid=166696 * Jay * (+197) /* PizzaScript */ new section
20:02:35 <esolangs> [[User talk:Jay]] https://esolangs.org/w/index.php?diff=166697&oldid=166696 * Jay * (-197) /* PizzaScript */
20:08:38 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166698&oldid=166527 * Jay * (+18) /* P */
20:44:23 <esolangs> [[Special:Log/newusers]] create * Kalavian * New user account
20:55:02 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166699&oldid=166686 * Kalavian * (+192)
20:55:06 <esolangs> [[GenderScript]] N https://esolangs.org/w/index.php?oldid=166700 * Kalavian * (+1196) Created page with "[[Category:2025]] [[Category:Joke languages]] [[Category:Cell-based]] [[Category:Implemented]] GenderScript is a tiny transgender esoteric programming language created by Kalavian in 2025. The source code is available [https://github.com/Kalavian112/GenderScript o
20:56:05 <esolangs> [[GenderScript]] https://esolangs.org/w/index.php?diff=166701&oldid=166700 * Kalavian * (+101)
20:57:03 <esolangs> [[GenderScript]] https://esolangs.org/w/index.php?diff=166702&oldid=166701 * Kalavian * (+37)
20:57:17 <esolangs> [[GenderScript]] https://esolangs.org/w/index.php?diff=166703&oldid=166702 * Kalavian * (+8)
20:57:58 <esolangs> [[GenderScript]] https://esolangs.org/w/index.php?diff=166704&oldid=166703 * Kalavian * (+55)
21:21:01 <esolangs> [[ZeroByte]] N https://esolangs.org/w/index.php?oldid=166705 * Kalavian * (+488) Created page with "[[Category:2025]] [[Category:Zero-dimensional]] [[Category:Unusable for programming]] ZeroByte is a programming language designed for writing other tiny programming languages. A microlang can be implemented in ZeroByte in as little as one byte. ==Syntax== Each function
21:44:18 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:49:17 -!- tromp has joined.
21:51:01 <esolangs> [[2147483647Funge]] N https://esolangs.org/w/index.php?oldid=166706 * Kalavian * (+1919) Created page with "2147483647Funge is a '''2<sup>32</sup>1'''-dimensional programming language. Each cell is written as its location followed by a command. The language also uses a dimension pointer, a 32-bit integer that represents the axis to be moved. Positive values move acro
21:51:27 <esolangs> [[2147483647Funge]] https://esolangs.org/w/index.php?diff=166707&oldid=166706 * Kalavian * (+25)
22:10:11 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:16:35 <esolangs> [[User:TheCanon2]] M https://esolangs.org/w/index.php?diff=166708&oldid=151681 * TheCanon2 * (+21) Added CARP
23:11:38 -!- ais523 has joined.
23:29:47 <esolangs> [[CARP]] N https://esolangs.org/w/index.php?oldid=166709 * TheCanon2 * (+1667) Added CARP
23:30:54 <esolangs> [[CARP]] M https://esolangs.org/w/index.php?diff=166710&oldid=166709 * TheCanon2 * (+0)
23:43:40 <esolangs> [[FUnctional staCK]] M https://esolangs.org/w/index.php?diff=166711&oldid=166670 * CatCatDeluxe * (+0) how did I get that math wrong
23:55:30 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166712&oldid=166597 * Dmiz * (+9)
2025-10-26
00:37:29 <esolangs> [[Gur yvsr]] https://esolangs.org/w/index.php?diff=166713&oldid=163731 * Placeholding * (+12804)
01:44:17 -!- amby has quit (Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement).
03:05:02 -!- op_4 has quit (Remote host closed the connection).
03:05:37 -!- op_4 has joined.
03:31:31 <zzo38> Is deliberately attacking your own pokemon in the Pokemon game (in a double battle) more common or less common than underpromotion in chess?
03:45:27 <ais523> much more common, I think
03:45:54 <ais523> there have been tournaments where it was part of the most common strategy (e.g. using Beat Up on a Pokémon who has Justified)
03:47:06 <ais523> usually the teams are designed to do it, using attacks that have very powerful side effects and do hardly any damage
03:51:15 <zzo38> OK, it makes sense (I have not seen many tournaments). However, there are also cases where it was not the intention when making up the team (or if it is a random battle).
03:51:19 <ais523> one game I played (against an opponent who I think was probably a streamer based on the number of spectators who joined) went like this: on turn 1, my Smeargle used Ally Switch, my opponent's Bisharp used Sucker Punch (failing because I hadn't selected attacking moves), my opponent's Kangaskhan attacked the slot Smeargle swapped into with a normal-type move (failing because I had swapped a Ghost-type there), then my Jellicent used Trick Room; on turn 2, my
03:51:20 <ais523> Smeargle used Volt Switch on Jellicent activating its Weakness Policy and switching in Pelipper who started rain, then Jellicent used Water Spout and OHKOed both opposing Pokémon, on turn 3 Jellicent used Water Spout again and OHKOed both of the opponent's replacement Pokémon
03:51:43 <ais523> smeargle was level 1 and had low special attack, so the Volt Switch on the Jellicent only did marginal damage
03:52:36 <ais523> although, this was mostly a case of almost all my opponent using the same team and picking the same moves in the same contexts, so I had built specifically to counter it
03:54:13 <ais523> attacking a team-mate in a case where you hadn't planned the interaction when designing the team is rare, I don't know how that corresponds to underpromotion in frequency
03:55:03 <ais523> (actually necessary underpromotions in chess are rare, but it's not so rare to underpromote to a rook if that gives a trivially winning endgame, because it reduces the chance of accidentally stalemating the opponent compared to promoting to a queen)
03:58:30 <zzo38> I think I once heard of a situation where someone underpromoted to rook because they did not have a extra queen available near the board and did not want to stop the game to request it.
04:10:15 <ais523> the normal solution to that problem is to use an upside-down rook
04:12:34 <zzo38> I read that it is allowed in USCF but not allowed in FIDE.
04:17:31 <ais523> I imagine it isn't normally a problem at grandmaster level because there are very few positions likely to arise in a grandmaster game where one player has two queens, but neither player thinks they're losing badly enough to resign
04:17:49 <ais523> (it has happened, I think – usually involving multiple queens for both players – but is very rare)
04:18:03 <esolangs> [[User:H33T33]] M https://esolangs.org/w/index.php?diff=166714&oldid=165933 * H33T33 * (+4)
04:19:20 <esolangs> [[WTF]] M https://esolangs.org/w/index.php?diff=166715&oldid=159223 * H33T33 * (-88)
04:28:40 <zzo38> In shogi there is no underpromotion but you can (usually) choose to not promote. Some pieces are strictly a superset of the moves that would be possible when not promoted; is it ever deliberately not promoting in such a case?
04:29:04 <zzo38> (The reason that I can think for doing this would be to avoid the rule prohibiting checkmate by dropping a pawn; maybe there is tsume shogi which involves it, possibly with discovered check by capturing opponent's pawn)
04:46:57 -!- Yayimhere has joined.
04:52:00 <zzo38> Do you have the full copy of the Pokemon team that you had for that game?
04:54:10 <ais523> zzo38: oh, I searched through my old backups and think I was mentally conflating two different games
04:54:18 <ais523> the Ally Switch trick was from a different game
04:54:51 <ais523> in the actual game, Smeargle used Spiky Shield instead
04:56:19 <ais523> here's a version of the team from around that time (I don't know whether it's specific the team I actually used): http://nethack4.org/pastebin/27.txt
04:56:53 <ais523> a later version of the same team had Ally Switch, but wasn't using Volt Switch by then
04:57:16 <Yayimhere> why are you talking about Pokemon? (not to shoo you away just wondering lol)
04:57:53 <ais523> Yayimhere: zzo38 does that sometimes
04:58:05 <Yayimhere> great!
04:58:08 <Yayimhere> lol
04:58:10 <ais523> it's probably offtopic but I'm not sure where the appropriate place would be
04:58:32 <Yayimhere> yea
04:58:33 <Yayimhere> who is zzo38?
04:58:36 <ais523> there have been some attempts to make competitive Pokémon into an esolang but I don't think they worked very well
04:58:56 <Yayimhere> ais523: not surprising
04:59:22 <ais523> come to think of it, I'm actually not sure what complexity class solving Pokémon is in
04:59:40 <Yayimhere> hmmmmm
04:59:47 <ais523> especially given that the attempts by the game developers to prevent endless battles didn't quite work properly
05:00:20 <Yayimhere> I wouldnt be surprised if Pokemon is as powerfull as uknow good ol' magic the gathering
05:00:25 <Yayimhere> *was
05:00:42 <ais523> well, some Turing-complete languages struggle to be Turing-complete, some achieve it trivially
05:00:56 <Yayimhere> in fact
05:01:05 <ais523> M:tG is well into the "achieve it trivially" zone by now, it can do it lots of different ways and with some very simple constructions
05:01:14 <Yayimhere> yea
05:01:15 <ais523> other Turing-complete games, like Netrunner, it's much harder
05:01:28 <Yayimhere> we love TC games around here
05:01:39 <korvo> I'd suggest Pokémon is bounded by PP count, but I wouldn't be surprised to learn that I'm old-fashioned and stuck with an old generation.
05:02:07 <Yayimhere> Tbh, I dont know, I dont play much Pokemon anymore, and barely remember how it works
05:02:19 <ais523> korvo: Recycle + Leppa Berry + Heal Pulse is the best-known combination to intentionally create an infinitely long battle
05:02:32 <ais523> which is somewhat infamous because, in some cases, you can do it despite attempts by your opponent to stop you
05:02:47 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=166716&oldid=166041 * Yayimhere2(school) * (+307)
05:02:54 <ais523> that combination wasn't possible until generation V, there are some combinations that were possible earlier though
05:03:13 <esolangs> [[2I1IF]] https://esolangs.org/w/index.php?diff=166717&oldid=166621 * Yayimhere2(school) * (+22)
05:03:50 <Yayimhere> im just throwing things out here, but could missingno not be useful... somehow?
05:03:54 <zzo38> What I thought should be made up a rule change in Pokemon would be that some items and some movse are "unrecoverable". If a item is unrecoverable then it cannot be recovered during the same battle if it is consumed, and if a move is unrecoverable then that move's PP cannot be recovered during the battle.
05:03:59 <ais523> (there's also the infamous "two Wobbuffets who both have Leftovers" infinite loop in generation III, which was plausibly possible to trigger by accident because Leftovers is a good item to use on Wobbuffet and that was the only requirement for triggering it – it got patched out two different ways in Generation IV)
05:04:30 <ais523> zzo38: there was a very complicated rule change at Smogon intended to try to prevent infinite battles without affecting any legitimate strategy
05:06:13 <ais523> oh, apparently in the end they just gave up trying to find all the possibilities and just banned Leppa Berry + Harvest and Leppa Berry + Recycle
05:06:23 <Yayimhere> lol
05:06:56 <ais523> …which wouldn't be enough unless you ban them both existing anywhere in the team, because you can give an opponent the Leppa Berry with one Pokémon and then steal it back with another (who has Harvest or Recycle)
05:07:38 <Yayimhere> why doesnt Nintendo just give up lol
05:08:49 <ais523> some of the previous versions of the rule looked like this: https://www.smogon.com/forums/threads/banning-leppa-berry.3544604/page-2#post-6335822
05:09:41 <ais523> Yayimhere: oh, Game Freak (who actually make the Pokémon games, even though Nintendo own them) apparently gave up on this sort of stuff years ago (probably decades by this point)
05:10:20 <Yayimhere> ais523: great, I would guess there propably is more looping in the newer versions then lol
05:10:35 <ais523> singles hasn't been reasonably balanced since Generation IV (and even that required a lot of bans), doubles is more balanced but has also been struggling somewhat
05:10:49 <esolangs> [[Category:C++]] N https://esolangs.org/w/index.php?oldid=166718 * SuperSMG5 * (+186) Created page with "Imagine all of the C++, C, and C# Esolangs were all put in one list ''thats what this is for'' well thats what I was going for. If you know how to do this, please let me know"
05:11:36 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=166719&oldid=166620 * Yayimhere2(school) * (+10) /* esolangs */
05:12:25 <esolangs> [[GRG]] https://esolangs.org/w/index.php?diff=166720&oldid=166689 * Yayimhere2(school) * (-9) /* How it functions */
05:13:37 <esolangs> [[GRG]] https://esolangs.org/w/index.php?diff=166721&oldid=166720 * Yayimhere2(school) * (+30) /* How it functions */
05:13:58 <zzo38> It is why I thought that making some moves/items unrecoverable might help, and adding something like the fifty move rule of chess might also help.
05:15:47 <ais523> hmm this Smogon forums thread is actually amazing
05:15:58 <ais523> the previous version I linked was really simple compared to some of the later ones
05:17:28 <esolangs> [[Pass a symbol]] https://esolangs.org/w/index.php?diff=166722&oldid=136619 * Yayimhere2(school) * (+2) /* NOR */
05:20:41 <Yayimhere> ais523: could I mayhaps ask a question about 90?
05:20:53 <ais523> yes
05:22:07 <Yayimhere> thanks! I was just wondering if it was possible to have two(or three ect) 90 programs destroying each other? and also is it possible to have it destroy itself?
05:22:51 <Yayimhere> (sorry if this is answered on the page)
05:23:16 <ais523> destroying each other is definitely possible, if the timing is right
05:23:21 <ais523> destroying itself, I'm not sure about
05:23:42 <Yayimhere> maybe the latter question technically more is a computer question
05:23:51 <Yayimhere> (can a program have access to itself)
05:23:59 <Yayimhere> but thanks!!!
05:24:10 <ais523> I think the spec doesn't prevent the program destroying itself, but the usual implementation would involve attaching a debugger and a program can't attach a debugger to itself, so maybe it would be simpler to disallow that
05:24:28 <ais523> (a program can totally have access to its own memory, it just has to do it a different way from accessing a different program's memory)
05:24:39 <Yayimhere> true
05:24:46 <Yayimhere> thanks!!!
05:26:18 <Yayimhere> also, for the issue of having enough software running, could you not in principle just have a bunch of slightly differently set up instances of the same program?
05:27:02 <ais523> sort-of – the problem is that 90 programs run as quickly as possible and don't have any way to delay or the like
05:27:10 <ais523> so there's a risk that the first program would just exist before you tried to run the second one
05:27:37 <ais523> as such it's going to be unreliable to have a 90 program affecting a second copy of the 90 interpreter because you can't guarantee it's still running at the time
05:27:57 <Yayimhere> oh, i wanst talking about 90 programs specifically
05:28:04 <ais523> (affecting the program itself, while technically possible, wouldn't help at all because that just changes what the program says and you could have written it like that in the first place)
05:28:09 <ais523> ah, I see
05:28:11 <Yayimhere> just like any program
05:29:04 <Yayimhere> for the issue of 90 programs just running as fast as they can, isnt there a way to force a program to run at a certain rate?
05:29:18 <ais523> not within 90
05:29:25 <ais523> you'd have to use a separate program to do it
05:29:53 <ais523> (or edit a separate program into doing that, which would be harder than just editing it to do what you wanted it to do in the first place)
05:29:59 <Yayimhere> yea I know
05:31:20 <zzo38> If the 90 program affects itself, if it is process by an interpreter then the interpreter could be damaged, or it damages the 90 program in a way which depends on the representation it has after it has been read from disk, possibly it has pointers, etc
05:31:26 <Yayimhere> but is there a way to do that on a computer?
05:31:35 <ais523> not easily
05:31:39 <Yayimhere> wow
05:31:50 <ais523> you could run the program in an emulator and tell the emulator to run slowly
05:31:53 <Yayimhere> thats quite surprising actually
05:31:55 <ais523> or you could single-step it in a debugger
05:32:02 <Yayimhere> true
05:32:17 <ais523> or you could tell the kernel to give it only small timeslices (but that makes it run at full speed for a bit, stop for a while, at full speed for a bit, etc.)
05:32:50 <Yayimhere> yea something like that I was thinking
05:32:55 <ais523> I guess you could also underclock the computer, which would slow down everything
05:33:09 <ais523> but I'm not sure how much underclocking modern computers can cope with
05:33:09 <Yayimhere> that isnt very useful though
05:33:23 <ais523> (there have been historical computers that could be underclocked all the way to 0 but I think that doesn't work nowadays)
05:33:37 <Yayimhere> 90 is very dependent on the system it is on
05:34:26 <ais523> yes
05:34:44 <ais523> this would be a major flaw in most practical languages, but is interesting to experiment with with esolangs
05:35:03 <Yayimhere> you kinda have to think of the computer as part of a specific programs function, because that(in principle) can change
05:35:13 <Yayimhere> one mans flaw is another mans experiment
05:37:36 <Yayimhere> i will definetily be experimenting a lot with (theoretical) programming technique's of 90
05:47:43 <zzo38> I have a article in my user page on esolang wiki about some games; it mentions that Magic: the Gathering is Turing-complete but possibly someone should add details about this. (Also, can subgames and infinite loops make it uncomputable?)
05:48:05 <zzo38> (And, can a generalized variant of mahjong somehow be Turing-complete?)
05:51:01 <ais523> zzo38: https://esolangs.org/wiki/Flooding_Waterfall_Model
05:51:23 <ais523> contains a simple proof of M:tG Turing-completeness (simple in terms of the M:tG setup, less simple in terms of proving the resulting language TC)
05:51:36 <ais523> you might want to link it from your userpage
05:52:49 <zzo38> OK, I will link it from the user page.
05:54:22 <esolangs> [[User:Zzo38/Game rules]] https://esolangs.org/w/index.php?diff=166723&oldid=162310 * Zzo38 * (+59) Link to [[Flooding Waterfall Model]]
06:01:27 <zzo38> Why do you have two pokemons with mega evolution stones? (I can think of a few reasons why someone might do that, but I don't know which one(s) are applicable here)
06:01:52 <ais523> zzo38: it's designed for a format where you can only use four Pokémon from your team
06:02:09 <ais523> even though you have six on your team
06:04:10 <zzo38> O, OK. (I should have thought of that, considering that they are level 50, but somehow I did not)
06:07:34 -!- Yayimhere7 has joined.
06:07:40 <Yayimhere7> nooooooooo
06:07:42 <Yayimhere7> lol
06:09:10 <Yayimhere7> so, i was thinking if there was an interesting way to make the main form of data in an esolang threads(and threads within threads and so on)
06:09:43 <ais523> Yayimhere7: https://esolangs.org/wiki/Annihilator
06:09:45 -!- Yayimhere has quit (Ping timeout: 250 seconds).
06:09:53 <Yayimhere7> thanks!
06:14:31 -!- Yayimhere7 has quit (Ping timeout: 250 seconds).
06:14:48 -!- Yayimhere has joined.
06:26:51 -!- Yayimhere has quit (Quit: Client closed).
06:27:04 <b_jonas> "especially given that the attempts by the game developers to prevent endless battles didn't quite work properly" => yeah, it's weird, especially when it's because of endless switching pokemon. you'd think they can put a limit on that, like requiring a move that makes progress before you can switch in the same pokemon in again (or the same pair of pokemons for a double battle).
06:29:27 <b_jonas> if it was just some overpowered healing wearable item that outheals even Struggle backlash damage then it would be harder to prevent infinite loops, but I don't think that can happen in competitive pokemon
06:32:26 <zzo38> I thought of that too, and my idea was to add a rule that if, for six consecutive turns, all active pokemons switch out, then no pokemon is allowed to select switching out during the immediately next turn (after that, this restriction goes away; it also goes away if anyone executes a move)
06:34:28 <ais523> b_jonas: Regenerator heals on switch, for more than Struggle recoil damage
06:34:51 <ais523> so if you have both teams with two regenerators with no PP left, optimal strategy is to switch forever
06:34:57 <ais523> this is unlikely to happen by chance, though
06:36:13 <b_jonas> ais523: is that an ability that you can get in a competitive match?
06:36:17 <ais523> yes
06:36:22 <b_jonas> I see
06:36:37 <ais523> it'd be weird to have it on two different Pokémon in a team, but not completely ridiculous
06:37:22 <b_jonas> meanwhile, Nintendo just released a new Pokémon game with no PP mechanics at all and so no Struggle either. and it's not like the first generation games when the devs had no experience yet and the console was limited.
06:37:40 <b_jonas> ais523: and you'd need that for two teams, right?
06:37:45 <ais523> right
06:38:21 <ais523> PP is weird as mechanics go, especially given how it is often irrelevant but often isn't
06:38:34 <ais523> max PPs have generally been gradually reducing over time, too
06:39:34 <ais523> which has made it more relevant in theory, but the games have been getting less balanced which counteracts that (as unbalanced battles often don't last very long)
06:39:47 <zzo38> I think the new Pokemon game is not like the ordinary Pokemon game though; it is a different game, anyways.
06:39:49 <b_jonas> that doesn't seem weird. decking out is often irrelevant in Magic because usually you want to kill in the first few turns, but sometimes it is relevant, and you can build decks that deliberately want to deck out the opponent
06:45:53 <zzo38> If the nonstandard rules that I had mentioned (as well as something a bit similar to the fifty move rule of chess) would be used, then I think that would help with that as well as with a few other things, I think.
06:49:14 <APic> Hi
06:51:05 <zzo38> (Some of these nonstandard rules will not help if it is intended to be compatible with standard rules, but some are compatible with standard rules. Unrecoverable moves/items are not compatible but the rule about six consecutive turns with switching would be compatible, I think.)
08:07:01 -!- Yayimhere has joined.
08:15:22 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166724&oldid=166698 * Yayimhere2(school) * (+10) /* G */ added [[GRG]]
08:15:36 -!- Yayimhere has quit (Quit: Client closed).
08:15:51 -!- Yayimhere has joined.
08:24:31 -!- Yayimhere has quit (Ping timeout: 250 seconds).
09:55:14 -!- Everything has joined.
10:07:40 -!- Everything has quit (Quit: leaving).
10:32:49 -!- tromp has joined.
11:12:21 -!- Sgeo has quit (Read error: Connection reset by peer).
11:20:08 <esolangs> [[Special:Log/newusers]] create * Esoboring ideas * New user account
11:35:00 -!- amby has joined.
11:38:42 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
11:39:02 -!- Lord_of_Life has joined.
12:12:12 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166725&oldid=166681 * Yayimhere2(school) * (+10) /* See also */
12:15:14 -!- Yayimhere has joined.
12:29:51 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166726&oldid=166694 * RaiseAfloppaFan3925 * (+482) You're tailor-made for this day and age
12:40:36 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166727&oldid=166725 * Yayimhere2(school) * (-22) /* Description */
12:46:04 <esolangs> [[Unrepetition]] https://esolangs.org/w/index.php?diff=166728&oldid=166683 * Yayimhere2(school) * (+389)
13:09:39 -!- Yayimhere has quit (Ping timeout: 250 seconds).
13:22:29 <int-e> `' sunday
13:23:11 <int-e> `' sunday
13:23:13 <HackEso> 759) <zzo38> Sleep on the ceiling next Sunday. \ 918) <boily> not only there is no God, but try to find an APL keyboard on Sunday.
13:31:25 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166729&oldid=166699 * Esoboring ideas * (+266) /* Introductions */
13:38:38 -!- simcop2387 has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
13:38:38 -!- perlbot has quit (Quit: ZNC 1.9.1+deb2+b3 - https://znc.in).
13:59:07 -!- Yayimhere has joined.
14:00:02 <esolangs> [[IEBEL]] N https://esolangs.org/w/index.php?oldid=166730 * Esoboring ideas * (+1184) Created page with "IEBEL is an [[OISC]] [[esoteric programming language]] short for in-equality branch esotering language by [[Esoboring ideas] which doesn't have any interpreters yet ==Memory== Every register has the values of 0-255 ==The instruction== ===Main things=== it is like
14:09:14 -!- pr1sm has joined.
14:09:39 <esolangs> [[Talk:Trilime]] N https://esolangs.org/w/index.php?oldid=166731 * Yayimhere2(school) * (+146) Created page with "nooooo, dont change iiit!!!! --~~~~"
14:14:57 <esolangs> [[Alex]] https://esolangs.org/w/index.php?diff=166732&oldid=77727 * Yayimhere2(school) * (-13) brainfuck does not have a stack. Added stub, as there are only example programs and no actual specification.
14:16:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:24:22 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166733&oldid=166730 * Esoboring ideas * (+1)
14:24:53 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166734&oldid=166727 * Yayimhere2(school) * (+13) /* Description */
14:34:27 -!- pr1sm has quit (Remote host closed the connection).
14:34:41 -!- pr1sm has joined.
14:35:03 -!- pr1sm has quit (Remote host closed the connection).
14:35:17 -!- pr1sm has joined.
14:35:25 -!- pr1sm has quit (Remote host closed the connection).
14:35:39 -!- pr1sm has joined.
14:36:03 -!- pr1sm has quit (Remote host closed the connection).
14:36:17 -!- pr1sm has joined.
14:36:30 -!- pr1sm has quit (Remote host closed the connection).
14:37:28 <esolangs> [[CARP]] M https://esolangs.org/w/index.php?diff=166735&oldid=166710 * TheCanon2 * (+34) Added opcodes
14:39:48 <Yayimhere> damn
14:39:56 <Yayimhere> lol
14:43:48 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166736&oldid=166733 * Esoboring ideas * (+5) /* Truth machine */
14:44:52 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166737&oldid=166736 * Yayimhere2(school) * (-46) /* See also */ delete oisc and esolang from see also, as they are just the category of the language, and they have already been linked
14:45:06 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166738&oldid=166737 * Esoboring ideas * (+7) /* Hello world simple version */
14:47:14 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166739&oldid=166738 * Esoboring ideas * (+48) /* See also */
14:50:13 <esolangs> [[Talk:IEBEL]] N https://esolangs.org/w/index.php?oldid=166740 * Yayimhere2(school) * (+371) Created page with "== See also section hello! so, I'd just like to say, you are using the see also section weirdly. it is mostly for language's and such that are similar to this language, and so it shouldn't have hello world, just because you've implemented a hello world. --~
14:50:30 <esolangs> [[Talk:IEBEL]] https://esolangs.org/w/index.php?diff=166741&oldid=166740 * Yayimhere2(school) * (+3)
14:50:47 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166742&oldid=166739 * Esoboring ideas * (+0) /* Truth machine */
14:58:37 -!- tromp has joined.
15:06:58 <Yayimhere> are there any esolangs that basically function by destroying their own rules. and is it possible to make that Turing complete?
15:20:54 -!- FreeFull has joined.
15:43:09 <b_jonas> Yayimhere: there's a language that destroys integers so you can no longer use them, does that count?
15:43:30 <b_jonas> https://esolangs.org/wiki/Forte
15:43:47 <Yayimhere> b_jonas: like I guess it technically does, but not *really* since integers is data
15:44:01 <Yayimhere> also forte doesn't really destroy it, just, redefines them
15:44:22 <Yayimhere> when im saying rules im thinking like uknow how a CA has rules, or syntax rules, ect ect
15:46:19 <ais523> forte isn't really destroying its own rules, it just ignores a rule that most other languages have
15:46:42 <Yayimhere> ais523: great way to word it lol
15:46:57 <ais523> C-INTERCAL allows you to compile syntax errors, then later on you can create new syntax to give the syntax errors a meaning
15:47:07 <ais523> and they'll actually run
15:47:17 <Yayimhere> huh
15:47:19 <Yayimhere> lol
15:47:26 <korvo> Yayimhere: Is creation of new rules also possible? If not then the system will invariably degenerate as it loses degrees of freedom.
15:47:39 <ais523> (this is interesting because it is actually a compiled language – a syntax error compiles into code that checks to see if the syntax it contained has been defined yet)
15:48:05 <ais523> korvo: that would be manageable if there were infinitely many rules (or infinitely many destroyable parts of a single rule)
15:48:10 <b_jonas> ais523: yes, I'm saying Forte is destroying numbers, not rules
15:48:30 <ais523> Forte's a bit like that, in that after you destroy a number you have no way to get it back, but it's still TC because there are infinitely many numbers to start with
15:48:51 <korvo> There are plenty of machines which boot into an unrestricted mode at first, allowing many sorts of features to be accessed, but then is locked into a restricted mode for the rest of its execution. Some of those machines support further restriction of features, too. But they usually have a minimum amount of features which is enough to write basic logical operations.
15:49:05 -!- Yayimhere has quit (Quit: Client closed).
15:49:09 <b_jonas> ais523: right, it's somewhat like that brainfuck variant that destroys its own tape cells so they can no longer be modified
15:49:18 -!- Yayimhere has joined.
15:49:28 <Yayimhere> hello
15:49:34 <korvo> ais523: Yeah. I suppose I'm assuming a finite number of rules; clearly I'm too logic-brained today.
15:49:48 <Yayimhere> korov: lol
15:50:59 <Yayimhere> maybe a program is made up of: a rule that gets destroyed, then a number, which equals some measure of decay(of the language itself)and then a new rule that gets created when that number is reached
15:51:09 <ais523> Yayimhere: so a common way I go about esolang design, which you might also want to try, is to take your idea and try to work out what the simplest possible version of it is that could possibly be TC
15:51:22 <Yayimhere> ais523: true
15:51:28 <Yayimhere> frog it, ill go try something
15:51:34 <Yayimhere> bye! irc is lagging like hell
15:51:41 <ais523> if the aim is to act entirely by destroying rules, we need infinitely many rules for it to work, and the simplest possible implementation is probably "each rule can only be used once"
15:51:45 <korvo> IRC is always laggy.
15:52:06 -!- Yayimhere has quit (Client Quit).
15:55:23 <korvo> IOW the system's dynamics are a set of permuted sequences of the nats, N → N. Each initial segment of such a sequence corresponds to a legal move. Pretty sure by Gödelian reasoning that this can't be decided; in particular I don't think it's possible to compute a sufficiently-correct approximation of how the rules work by observing legal sequences.
15:58:25 <b_jonas> oh wait, we do have the perfect thing that destroys its own rules
15:59:11 <b_jonas> https://esolangs.org/wiki/Slashalash
15:59:15 -!- simcop2387 has joined.
15:59:45 -!- perlbot has joined.
16:10:22 -!- tromp has quit (Ping timeout: 240 seconds).
16:10:52 -!- Yayimhere has joined.
16:11:19 <Yayimhere> ok people, I think ive gotten an idea for the concept
16:11:28 <Yayimhere> one that might be able to be TC
16:11:54 <Yayimhere> every rule is in a specific rule definition syntax/language(one is to be chosen)
16:12:26 <Yayimhere> then each line is "delete *command* from every rule".
16:13:22 <Yayimhere> at the start of a program there is a string in the same language of rule's, which gets added to every rule statement in the program
16:13:51 <Yayimhere> (this includes the string itself and every *command*(or string technically))
16:14:34 <b_jonas> Yayimhere: https://esolangs.org/wiki/Slashalash and https://esolangs.org/wiki/Fuun_DNA destroy the rules in the program as it uses them
16:14:35 <Yayimhere> i beleive an abstain and reinstate (INTERCAL style) may be useful, but I dont know if its required
16:14:56 <Yayimhere> b-jonas: thanks!
16:15:30 <esolangs> [[///]] https://esolangs.org/w/index.php?diff=166743&oldid=159964 * B jonas * (+97) /* See also */
16:16:05 <Yayimhere> does /// really destroy its own rules?
16:16:19 <Yayimhere> *really*
16:16:20 <Yayimhere> lol
16:19:26 <ais523> I think of /// more as being in the "program queue/stack" genre, where bits of the program delete themselves after they've run but you can add more
16:22:41 <ais523> execline does that too
16:23:00 <ais523> (except I don't think it takes advantage of the way the genre typically does loops)
16:26:42 -!- ais523 has quit (Read error: Connection reset by peer).
16:26:52 -!- ais523 has joined.
16:34:11 -!- Yayimhere has quit (Ping timeout: 250 seconds).
16:45:31 -!- Yayimhere has joined.
16:45:47 <Yayimhere> ais523: in fact
16:46:00 <Yayimhere> (im replying to the /// thing btw)
16:46:07 <Yayimhere> (idk what else you may have been sending)
16:48:11 <Yayimhere> also, for the specific language idea I have proposed, does anyone know a good "rule language"?
16:50:33 <ais523> I think you have to work it out to fit around the rest of the language
16:51:01 <Yayimhere> huh?
16:51:07 <Yayimhere> sorry I dont fully understand
16:51:56 <ais523> like, the rules are the core of the language you're designing
16:52:05 <Yayimhere> yes
16:52:21 <ais523> you need to work out how much power they need to be interesting (i.e. you don't want a single rule to be able to trivialise everything, nor do you want to make the rules so weak you can't get interesting computaiton)
16:52:32 <b_jonas> ais523: yes, I Guess in that view underload destroys rules too
16:53:02 <Yayimhere> b_jonas: by destroy, I dont just mean redefine or similar, I mean delete from existing rules
16:53:10 <Yayimhere> ais523: thanks!!!
16:53:55 <Yayimhere> btw i wad thinking that the rules should be the literal rules of the language itself
16:53:56 <korvo> There aren't any good rule languages. We have good completeness results for several classes of grammar, which can be seen as rewriting systems, but none of them are...good. It doesn't help that "rule" isn't a single standard thing.
16:53:58 <Yayimhere> *was
16:54:40 <Yayimhere> korvo: oh no
16:55:22 <ais523> korvo: one of my pet peeves is how bad the popular grammar specification languages are
16:55:50 <korvo> ais523: Right!? ANTLR's the biggest disappointment.
16:56:10 <ais523> korvo: I hadn't even looked deeply into ANTLR's syntax because I was busy being disappointed with the semantics
16:56:26 <Yayimhere> I guess technically by rules I mean interpreter
16:56:40 <Yayimhere> but each part of the interpreter is in its own little
16:56:41 <Yayimhere> thing
16:56:43 <b_jonas> I guess you could clumsily knock down function definitions in efghij. That's why efghij shops have those big empty warehouse floor spaces, and barely payed interns who rebuild their code from backups when necessary.
16:57:52 <korvo> Yayimhere: Sure. What we're saying is that the choice of objects (the things we manipulate) is connected to the choice of rules (the things that manipulate objects for us). It's easy to see the general idea, but we always have to specialize it for the domain at hand.
16:58:15 <Yayimhere> korvo: in fact
16:58:30 <Yayimhere> (also thanks for all the help guys, really do appreciate it)
16:59:17 <Yayimhere> the rules are already defined, the only thing missing is like, the language to write the rules in
16:59:32 <korvo> Well, what's wrong with the language that you already used for the definitions?
16:59:45 <Yayimhere> thats not a formal language though
16:59:56 <Yayimhere> I need like something an interpreter could interpret
17:00:50 <korvo> Same thing. Like, if you formalize the language you already have, then you'll need to give formal meanings to that language which gives meaning to your rules; if you translate the rules into some other syntax, then you'll need to give formal meanings to that syntax.
17:01:07 <Yayimhere> yea
17:01:17 <Yayimhere> fuck it im making my own rule definition syntax
17:01:33 <Yayimhere> thats most definitely easier than trying to find something good
17:01:46 <korvo> (As Tarski pointed out: there's no ultimate semantics for something as simple as the natural numbers. Maybe we shouldn't try to figure out problems in an ultimate manner.)
17:02:38 -!- tromp has joined.
17:02:46 <Yayimhere> one technically possible thing(if the language is Turing complete) is to make the rules be defined within the language itself
17:02:48 <Yayimhere> which is
17:02:49 <Yayimhere> stupid
17:02:53 <Yayimhere> but oh well
17:03:02 <Yayimhere> maybe I'll do that one day
17:03:14 <korvo> That's not something TC-ness does, though?
17:03:34 <Yayimhere> well it isnt
17:03:52 <korvo> If you want to interpret a language, then that interpreter must be relative to the machine that you're using for interpretation. Even if you're a human doing symbols on paper, you're still interpreting relative to the paper and symbols.
17:04:01 <Yayimhere> yes
17:04:04 <Yayimhere> thats true
17:04:29 <korvo> TC languages aren't defined in terms of themselves. Rather, it's common for programmers to *bootstrap* a language by implementing itself as a demonstration of its generality and usefulness.
17:04:52 <Yayimhere> yea
17:05:08 <korvo> By modus tollens, many programmers consider a language weak for general-purpose use when it can't express an interpreter for itself, or when its interpreter/compiler is ugly.
17:05:19 <Yayimhere> yeayeayeayea
17:05:19 <Yayimhere> (me when I have nothing to say)
17:05:47 <korvo> https://www.mcmillen.dev/language_checklist.html Haaave you seen this yet? This is a great checklist for *serious* languages. Like, stuff you might take to your boss when you have a job in a decade.
17:06:01 <Yayimhere> anyways, I will now make a rule language to describe the rules of this language
17:06:12 <Yayimhere> korvo: no I haven't actually, ill go look at it!
17:06:15 <korvo> This wouldn't apply to most stuff on the wiki. I filled it out for Monte and Cammy, but mostly because I have a serious contempt for mainstream opinions.
17:07:12 <korvo> Yayimhere: There's a great meme in the fourth section. "The most significant program written in your language is its own compiler", followed by "The most significant program written in your language isn't even its own compiler". This is what we mean when we say that a good TC language should be able to implement itself.
17:07:29 <Yayimhere> lol
17:07:52 <korvo> But note also in the fourth section, "No language spec", and "'The implementation is the spec'". These are serious critiques; Python's core team still doesn't take the latter seriously.
17:08:21 <Yayimhere> yea
17:09:50 -!- Sgeo has joined.
17:10:19 <Yayimhere> also I assume the checklist isnt meant to apply to esolangs?
17:10:37 <Yayimhere> because they definetily lack comprehensible syntax
17:12:43 <korvo> https://github.com/monte-language/typhon/blob/92d70fbcbe1291f1aa7c5cedca90345b8a95f6cc/checklist.txt Here's the checklist for Monte.
17:13:13 <korvo> Recall that an esolang is just a language that isn't notable enough for Wikipedia. It's really not more complex than that. I wrote more words here: https://lobste.rs/s/ksrmbf/let_s_take_esoteric_programming
17:13:31 <Yayimhere> k
17:13:33 <Yayimhere> lol
17:13:46 <Yayimhere> (yes, malbolge is not esolang)
17:13:50 <tromp> brainfuck is notable enough for WP:)
17:14:19 <Yayimhere> malbolge. is notable enough. for WP.... XD
17:14:19 <Yayimhere> not to undermine your point though korvo, your not wrong
17:15:16 <korvo> I don't think of Brainfuck or Malbolge as esoteric! I think that folks use "esoteric" as a shield to avoid having to deal with the typical barbs of capitalism: how will you monetize? what's the license? would you sign this contract?
17:15:35 <Yayimhere> lol
17:15:39 <Yayimhere> but wow
17:15:46 <Yayimhere> I guess they are just hard
17:15:51 <Yayimhere> to usee
17:16:06 <korvo> Because those lead to less obvious barbs: why isn't it readable? why isn't it optimized? why doesn't it support my preferred expensive proprietary OS?
17:16:35 <korvo> BASIC's hard to use, but it was shipped as a default for years. C++'s horribly hard to use, and it's considered the most macho and manly way to program.
17:17:01 <Yayimhere> this is the funniest shit ive ever read
17:17:24 <Yayimhere> i am quite sad I cannot fill out this list, as I dont actually have any languages I advocate for
17:18:46 <korvo> You're not expected to be able to fill out this list yet. Don't worry about it. Also, many folks would suggest that the checklist isn't to be taken seriously and that any language designer who uses it is hobbling themselves.
17:19:02 <Yayimhere> true
17:19:15 <Yayimhere> (I know im not expected to, but I'd like to do it)
17:19:32 <Yayimhere> (maybe imm going to fill it in as a joke lol)
17:29:26 <Yayimhere> thats a really funny checklist
17:33:12 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166744&oldid=166729 * Wlad * (+308) Add Wlad's introduction
18:01:15 -!- Yayimhere has quit (Quit: Client closed).
18:04:44 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166745&oldid=166734 * Yayimhere2(school) * (+39) /* (Surprisingly enough) a short list of examples(WIP) */
18:12:36 <b_jonas> "Shift-reduce conflicts in parsing seem to be resolved using rand()" hehe (from that checklist that korvo linked)
18:12:52 <ais523> korvo: I don't think notability is a good way to define esolangs – the other way round is more obvious, there are plenty of very conventionally designed languages which aren't big or well-known enough to have a Wikipedia page (but unfortunately they're generally obscure enough that I haven't heard of most of them)
18:13:58 <korvo> ais523: It's not notability as much as the degree of exploitation which society hopes to induce. An "up-and-coming" language is usually described in terms of its velocity rather than its current features.
18:14:21 <ais523> but something like Malbolge is fairly clearly an esolang, I think, because the design goal of "make the language as hard to write in as possible" is diametrically opposed to the standard goals of programming languages
18:14:33 <korvo> Wikipedia's merely willing to allow capitalist propaganda as primary sources. Many such cases.
18:14:54 <ais523> korvo: I find it hard to see programming languages as generally being inherently capitalist – implementations, maybe
18:15:40 <korvo> The diametric opposition is what, "make the language as easy to write in as possible"? There's only one language in popular use with that goal, Python. Such languages are usually pretty rare and also bad; Quorum's my usual punching bag.
18:16:09 <ais523> korvo: it's more that most languages value being easy to write over being difficult to write – in many cases that isn't a primary goal, but might be a tiebreak
18:16:20 <ais523> tiebreaking by picking the more difficult option would be unusual
18:16:25 <b_jonas> well, python doesn't purely do that, there are a few places where python is harder to write because of some historical compatibility thing, but it is close enough
18:16:25 <ais523> if all other things are equal
18:16:58 <ais523> likewise, most languages will tiebreak by trying to copy what programmers are familiar with and what other languages have done, being different for the sake of being different is how you end up with INTERCAL
18:17:33 <korvo> ais523: A good counterexample is C, which had design goals involving being easy for computers to parse and compile, and was ultimately steered by compilability. It competed with Fortran in that arena and won handily.
18:17:34 <b_jonas> ah yes, that's how you end up with Rust's syntax :-(
18:17:42 <ais523> (working on C-INTERCAL was fun, especially when we found ways to be different that actually had compensating advantages)
18:18:23 <ais523> korvo: you're misunderstanding me – in C, writability is not a primary goal but it is still considered desirable, it just sometimes has to be compromised on to meet other design goals
18:18:27 <b_jonas> ais523: yes, making things different is a goal that you can do in games like M:tG or Factorio and can result in very enjoyable builds
18:18:46 <b_jonas> and sometimes you can discover builds that are different and also better when steered by this
18:18:53 <korvo> ECMAScript's another counterexample; the design goal there was to look like Java and the rush to market ate all other goals. A lot of the worst ugliness like `with` has been deprecated, but that's explicitly because E's authors decided to heavily influence it.
18:19:16 <korvo> ais523: I understand your point but I think it's straight-up wrong, sorry.
18:19:43 <korvo> I'm not very agreeable today and I'll shut up after this. I'm just tired of the way that capitalism's bent all of our sciences.
18:20:11 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:20:32 <b_jonas> korvo: did Javascript really want to look more like Java than look like C? I think it wanted to look like C, but Java also wanted to look like C, and it's only that why they look alike. the Java got in the name for marketing, because Java was already used for in-browser client-side programming
18:20:41 <ais523> I guess a good way to see the point is to consider why most languages are not adding politeness-checking features from INTERCAL – they choose to leave it out, even if excluding them has nothing to do with the language's design goals
18:21:41 <ais523> I think that this is not a coincidence and there's some plausible model of language designers that explains why they are all making the same choice there
18:26:05 <b_jonas> the politeness checking might be one of those jokes that are only funny once
18:26:24 <ais523> b_jonas: yes, but why do languages have a bias towards not including unfunny jokes rather than including them?
18:26:32 <ais523> (and why do most esolangs.org contributors have the opposite bias?)
18:28:34 <b_jonas> for the latter, becuase most people make esolangs alone and it's hard to judge which of your own jokes are funny
18:30:00 <ais523> b_jonas: hmm, I think that might be starting to get close to the esolang distinction
18:30:31 <ais523> the fewer designers a language has, the more likely it is to be an esolang – even if a solo dev attempts to make a practical language it often ends up with esolang-like elements
18:30:39 <b_jonas> I don't care too much about the esolang distinction as in which languages are esoteric, and I'm happy to document non-esoteric languages on the esowiki
18:30:59 <b_jonas> well, maybe I care a little bit
18:31:07 <ais523> b_jonas: historically there was a consensus to not document BANCSTAR on the wiki because it was considered to be not esoteric enough
18:31:14 <ais523> although at some point that changed
18:32:21 <b_jonas> I've documented at least one language on the esowiki that's both clearly non-esoteric and is notable enough for en.wikipedia to hvae an article
18:34:03 <b_jonas> I did make one compromise to the wiki being mostly about esoteric languages, which is that I kept https://esolangs.org/wiki/MIX as the main language on that title, rather than switch it over or at least make it a disambig page
18:42:34 -!- tromp has joined.
19:41:02 <sorear> LiveScript's Java co-branding was a very late change...
20:10:46 <esolangs> [[Gur yvsr]] M https://esolangs.org/w/index.php?diff=166746&oldid=166713 * Placeholding * (-4)
20:12:42 <APic> cu
20:14:39 <zzo38> I made some additions of the programming language check list: gopher://zzo38computer.org/0textfile/miscellaneous/language_checklist.txt
20:16:32 <zzo38> (Probably I missed some stuff)
20:16:59 -!- pr1sm has joined.
20:19:02 <zzo38> And, about which programming languages are "esoteric": I seem to remember someone mentioning that PostScript is both esoteric and not esoteric; it seems to me that PostScript is also both general-purpose and domain-specific, and both text and binary.
20:22:09 -!- pr1sm has quit (Ping timeout: 244 seconds).
20:37:54 -!- pr1sm has joined.
20:41:11 <zzo38> I am not sure that there is really a single clear definition of "esoteric programming", but some of the mentions might be good points
20:42:22 -!- pr1sm has quit (Ping timeout: 240 seconds).
20:44:15 <zzo38> Some stuff I had made which is not really intended to be esolangs nevertheless has unusual stuff, and some other people might have done for other reasons
20:47:06 -!- pr1sm has joined.
20:49:11 <tromp> i think one common characteristic is that esoteric languages are too simple (and often too weird) to be useful for mainstream programming
20:49:46 <tromp> the don't have specification running into a hundred pages
20:50:22 <zzo38> (Some features of Free Hero Mesh are the way that they are for compatibility with MESH:Hero (also has a single designer as far as I know), but some are my own ideas.)
20:50:33 <zzo38> tromp: That is probably also a good point
20:51:22 <tromp> so let me ask: what is the simplest non-esoteric language?
20:52:39 <zzo38> However, uxn is simple but also many useful programs have been made (including text editor, picture editor, calendar, clock, card games, and other programs)
20:56:33 <tromp> are those written in uxn or in some other language that compiles to uxn?
20:58:53 <zzo38> Most of them are written directly in uxn (using the assembler).
20:59:53 <tromp> isn't uxntal the language?
21:00:35 <zzo38> Yes, uxntal is the assembler which is used; it is mostly just writing the instructions directly although there are a few things such as labels, like many assemblers have
21:09:32 <tromp> toy cpus like uxn and chip-8 are somewhat in between esoteric and mainstream languages
21:11:06 <tromp> they would have been mainstream in the hobby computer era but no longer are on modern machines
21:12:32 <tromp> the original scheme had a modest spec at 48 pages
21:15:15 <tromp> R3RS is even shorter at 41 pages
21:16:15 <tromp> while the modern R7RS small edition is 84 pages
21:19:00 <ais523> I can imagine a rudimentary (pre-POSIX) make(1) that's practically useful and very easy to specify
21:19:46 <ais523> from the opposite end, golfing languages are often considered esoteric but can be very difficult to specify
21:20:18 <ais523> (TIO! classifies languages into "practical" and "recreational" rather than "esoteric" and "non-esoteric", and puts golfing languages in the recreational category, even though they are occasionally practically useful)
21:21:12 <zzo38> Tricks to shorten uxn programs are common even though that is (probably) not the primary use of uxn.
21:22:19 -!- ais523 has quit (Quit: quit).
21:25:38 <zzo38> (One advantage of uxn is that it is simpler and can easily be ported to many computers)
21:29:11 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166747&oldid=166712 * Dmiz * (+26)
21:30:45 -!- pr1sm has quit (Remote host closed the connection).
21:35:00 <zzo38> (Some tricks take advantage of circular stacks, such as the "DUP2k EOR2" trick and the "GTHrk JMPrk BRK" trick)
21:51:58 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166748&oldid=166747 * Dmiz * (-21)
22:11:08 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:47:36 <esolangs> [[PizzaScript]] N https://esolangs.org/w/index.php?oldid=166749 * Jay * (+2) Created page with "gh"
2025-10-27
00:37:19 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=166750&oldid=166724 * C++DSUCKER * (+18)
00:38:31 <esolangs> [[PizzaScript]] https://esolangs.org/w/index.php?diff=166751&oldid=166749 * Jay * (+2464) /* PizzaScript */
00:39:40 <esolangs> [[User:Jay]] https://esolangs.org/w/index.php?diff=166752&oldid=166695 * Jay * (+4)
00:40:11 <esolangs> [[PizzaScript]] M https://esolangs.org/w/index.php?diff=166753&oldid=166751 * Jay * (-16)
00:46:46 <esolangs> [[User:Hotcrystal0/Sandbox]] https://esolangs.org/w/index.php?diff=166754&oldid=166172 * Hotcrystal0 * (+1190)
00:58:40 <esolangs> [[PizzaScript]] https://esolangs.org/w/index.php?diff=166755&oldid=166753 * Aadenboy * (+276) formatting + categories
00:58:45 -!- amby has quit (Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement).
01:23:20 -!- FreeFull has quit (Ping timeout: 240 seconds).
01:38:42 -!- pr1sm has joined.
02:00:11 -!- pr1sm has quit (Remote host closed the connection).
02:00:27 -!- pr1sm has joined.
02:17:58 <esolangs> [[Pain]] https://esolangs.org/w/index.php?diff=166756&oldid=160971 * RetroPain * (+45)
02:19:29 -!- pr1sm has quit (Remote host closed the connection).
03:47:43 <esolangs> [[Brugtiohell]] https://esolangs.org/w/index.php?diff=166757&oldid=140738 * Yayimhere2(school) * (+18)
03:59:07 <esolangs> [[Talk:H311 Assembly]] https://esolangs.org/w/index.php?diff=166758&oldid=160428 * Yayimhere2(school) * (+698) /* Welcome to the talk page for Inferno */
04:08:04 -!- Yayimhere has joined.
04:13:46 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166759&oldid=166745 * Yayimhere2(school) * (+140) /* Description */
04:45:13 -!- Yayimhere has quit (Ping timeout: 250 seconds).
05:09:30 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166760&oldid=166759 * Yayimhere2(school) * (-7) /* Description */
05:11:07 -!- Yayimhere has joined.
05:13:06 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166761&oldid=166760 * Yayimhere2(school) * (+12) /* See also */
05:18:14 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166762&oldid=166761 * Yayimhere2(school) * (+114) /* (Surprisingly enough) a short list of examples(WIP) */
05:18:26 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166763&oldid=166762 * Yayimhere2(school) * (+17) /* (Surprisingly enough) a short list of examples(WIP) */
05:24:01 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166764&oldid=166763 * Yayimhere2(school) * (-32) /* Description */
05:27:27 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166765&oldid=166764 * Yayimhere2(school) * (+40) /* Description */
05:37:11 -!- Yayimhere has quit (Quit: Client closed).
07:12:31 -!- tromp has joined.
07:29:30 -!- Sgeo has quit (Read error: Connection reset by peer).
07:30:57 -!- Yayimhere has joined.
07:33:33 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166766&oldid=166765 * Yayimhere2(school) * (+85) /* (Surprisingly enough) a short list of examples(WIP) */
07:57:34 <APic> Hi
07:57:51 <Yayimhere> hello epic!
07:57:54 <Yayimhere> *Apic
08:02:43 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166767&oldid=143373 * Yayimhere2(school) * (+14) /* System */
08:09:45 -!- Yayimhere has quit (Ping timeout: 250 seconds).
08:10:57 -!- Yayimhere has joined.
08:21:20 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166768&oldid=166767 * Yayimhere2(school) * (+387) /* System */
08:27:52 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166769&oldid=166768 * Yayimhere2(school) * (+222)
08:34:27 -!- Yayimhere has quit (Ping timeout: 250 seconds).
08:53:56 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166770&oldid=166742 * Esoboring ideas * (+4) /* Control negatives */
08:55:10 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166771&oldid=166770 * Esoboring ideas * (+1) /* Control negatives */
08:59:48 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166772&oldid=166771 * Esoboring ideas * (+0)
09:00:01 <esolangs> [[IEBEL]] https://esolangs.org/w/index.php?diff=166773&oldid=166772 * Esoboring ideas * (+87)
09:22:31 <esolangs> [[User:Esoboring ideas]] N https://esolangs.org/w/index.php?oldid=166774 * Esoboring ideas * (+184) Created page with "I am very intersted in math and [[esoteric programming language]]s yet i created only [[IEBEL]] and gamma-calculus(didn't publish) i would like some questions ==Questions== ==Answers=="
09:24:58 <esolangs> [[User:Esoboring ideas]] https://esolangs.org/w/index.php?diff=166775&oldid=166774 * Esoboring ideas * (+1) /* Questions */
09:25:39 <esolangs> [[User:Esoboring ideas]] https://esolangs.org/w/index.php?diff=166776&oldid=166775 * Esoboring ideas * (-185) Blanked the page
11:16:39 -!- ais523 has joined.
11:38:42 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
11:38:48 -!- Lord_of_Life_ has joined.
11:40:07 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:10:35 -!- Yayimhere has joined.
12:11:12 <Yayimhere> I think someone may have replied to a message after I logged of from IRC, because I got (2) instead of (1)
12:11:39 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166777&oldid=166769 * Yayimhere2(school) * (-38) /* System */
12:15:04 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166778&oldid=166777 * Yayimhere2(school) * (+233) /* System */
12:17:07 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166779&oldid=166778 * Yayimhere2(school) * (+42) /* System */
12:28:08 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166780&oldid=166779 * Yayimhere2(school) * (+425) /* System */
12:32:30 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166781&oldid=166780 * Yayimhere2(school) * (+0) /* System */
12:36:12 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166782&oldid=166781 * Yayimhere2(school) * (+53) /* System */
12:36:29 <Yayimhere> ok i have a questions
12:36:39 <Yayimhere> arent all languages that can simply define functions TC?
12:36:46 <Yayimhere> since lambda calculus
12:40:46 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166783&oldid=166782 * Yayimhere2(school) * (+131) /* System */
12:43:27 <esolangs> [[Kind n' Single]] https://esolangs.org/w/index.php?diff=166784&oldid=166783 * Yayimhere2(school) * (-85) /* System */
12:45:02 <tromp> if you can define nested functions, and return functions, and not have to type them, then i think yes
12:46:51 -!- Yayimhere has quit (Quit: Client closed).
12:50:02 <esolangs> [[Special:Log/newusers]] create * Wodan58 * New user account
12:52:32 -!- pr1sm has joined.
12:56:40 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166785&oldid=166744 * Wodan58 * (+279) /* Introductions */
12:57:39 <esolangs> [[User:Wodan58]] N https://esolangs.org/w/index.php?oldid=166786 * Wodan58 * (+43) Created page with "Maintainer of the Programming Language Joy."
12:58:00 -!- Yayimhere has joined.
12:58:16 <esolangs> [[User talk:Wodan58]] N https://esolangs.org/w/index.php?oldid=166787 * Wodan58 * (+18) Created page with "Talking to myself."
12:58:59 <esolangs> [[Manfred von Thun]] https://esolangs.org/w/index.php?diff=166788&oldid=166355 * Wodan58 * (+0)
13:26:12 -!- amby has joined.
13:45:12 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:23:33 <esolangs> [[XUS]] https://esolangs.org/w/index.php?diff=166789&oldid=133708 * Yayimhere2(school) * (+40) /* examples */
14:25:50 <esolangs> [[Final Word Of The Day]] https://esolangs.org/w/index.php?diff=166790&oldid=138940 * Yayimhere2(school) * (-68)
14:25:52 <esolangs> [[Yappacino]] M https://esolangs.org/w/index.php?diff=166791&oldid=159592 * RaiseAfloppaFan3925 * (+0) Hoist infobox to the top
14:28:46 -!- tromp has joined.
14:29:16 <esolangs> [[Final Word Of The Day]] https://esolangs.org/w/index.php?diff=166792&oldid=166790 * Yayimhere2(school) * (+2) /* Properties */
14:35:59 <Yayimhere> hello chhat
14:37:02 <Yayimhere> is this documentation good? if not, then why:
14:37:03 <Yayimhere> https://esolangs.org/wiki/Utral
14:40:58 <esolangs> [[Talk:BF Lite]] N https://esolangs.org/w/index.php?oldid=166793 * Yayimhere2(school) * (+152) Created page with "but the cells is the array though. --~~~~"
14:46:19 <esolangs> [[Dango]] N https://esolangs.org/w/index.php?oldid=166794 * RaiseAfloppaFan3925 * (+2026) 1/3 assembled
14:47:43 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166795&oldid=166794 * RaiseAfloppaFan3925 * (+0) wrong brackets, sorry
14:54:24 -!- pr1sm has quit (Read error: Connection reset by peer).
15:22:36 -!- Yayimhere has quit (Quit: Client closed).
15:32:56 -!- Guest47 has joined.
15:33:21 -!- Guest47 has quit (Client Quit).
15:38:02 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166796&oldid=166795 * RaiseAfloppaFan3925 * (+7) Told you I was stupid (fixed Truth machine)
15:39:44 <esolangs> [[User:RaiseAfloppaFan3925]] M https://esolangs.org/w/index.php?diff=166797&oldid=166726 * RaiseAfloppaFan3925 * (+114) add dango to the list
15:42:12 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166798&oldid=166796 * RaiseAfloppaFan3925 * (+11)
15:59:48 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:09:13 <esolangs> [[Manfred von Thun]] https://esolangs.org/w/index.php?diff=166799&oldid=166788 * Wodan58 * (+12)
16:24:07 -!- tromp has joined.
17:21:22 <esolangs> [[Manfred von Thun]] https://esolangs.org/w/index.php?diff=166800&oldid=166799 * Aadenboy * (+2) past tense
17:41:37 -!- pr1sm has joined.
18:11:52 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:26:07 -!- chloetax has quit (Quit: Leaving).
18:29:51 -!- op_4_ has joined.
18:35:19 -!- perlbot_ has joined.
18:36:19 -!- chloetax has joined.
18:37:35 -!- pr1sm has quit (*.net *.split).
18:37:36 -!- perlbot has quit (*.net *.split).
18:37:36 -!- simcop2387 has quit (*.net *.split).
18:37:36 -!- op_4 has quit (*.net *.split).
18:37:36 -!- op_4_ has changed nick to op_4.
18:37:50 -!- perlbot_ has changed nick to perlbot.
18:39:20 -!- simcop2387 has joined.
18:49:35 -!- tromp has joined.
18:50:52 <esolangs> [[Alphabetack]] https://esolangs.org/w/index.php?diff=166801&oldid=151431 * * (+44) Categories
18:51:04 <esolangs> [[Alphabetack]] M https://esolangs.org/w/index.php?diff=166802&oldid=166801 * * (+2)
19:00:14 <APic> cu
19:03:15 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166803&oldid=166798 * RaiseAfloppaFan3925 * (+3) /* Truth Machine */ I am such an idiot :C
19:20:09 -!- ais523 has quit (Quit: quit).
20:00:47 <esolangs> [[Collern]] https://esolangs.org/w/index.php?diff=166804&oldid=166748 * Dmiz * (+43)
20:40:56 <esolangs> [[Lindenmayer]] N https://esolangs.org/w/index.php?oldid=166805 * Calculus is fun * (+1115) Created Lindenmayer
20:40:57 <zzo38> There seems to be JSON query but not so much ASN.1 query
20:55:22 <esolangs> [[Lindenmayer]] https://esolangs.org/w/index.php?diff=166806&oldid=166805 * Calculus is fun * (+126) /* Examples */
22:29:49 -!- Sgeo has joined.
22:32:43 -!- sftp has quit (Ping timeout: 244 seconds).
23:12:25 <esolangs> [[C*]] M https://esolangs.org/w/index.php?diff=166807&oldid=166194 * H33T33 * (+121)
23:18:17 -!- sftp has joined.
23:18:17 -!- sftp has changed hostmask to ~sftp@user/sftp.
23:23:44 <esolangs> [[BFASM]] https://esolangs.org/w/index.php?diff=166808&oldid=166198 * Waffelz * (+3034) update for BFASM v0.1
2025-10-28
00:11:23 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
00:22:31 -!- sftp has quit (Ping timeout: 264 seconds).
00:23:03 -!- sftp has joined.
00:23:03 -!- sftp has changed hostmask to ~sftp@user/sftp.
01:01:45 -!- amby has quit (Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement).
04:02:58 <esolangs> [[User talk:PkmnQ]] https://esolangs.org/w/index.php?diff=166809&oldid=156658 * Yayimhere2(school) * (+289)
04:43:19 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166810&oldid=166766 * Yayimhere2(school) * (+78)
04:46:12 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166811&oldid=166810 * Yayimhere2(school) * (+6) /* (Surprisingly enough) a short list of examples */
04:48:34 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166812&oldid=166811 * Yayimhere2(school) * (+0) /* (Surprisingly enough) a short list of examples */
05:47:08 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
05:48:32 <esolangs> [[UnCompetition]] https://esolangs.org/w/index.php?diff=166813&oldid=166812 * Yayimhere2(school) * (+305)
05:51:42 -!- slavfox has joined.
05:54:23 -!- Sgeo has quit (Read error: Connection reset by peer).
06:29:38 <esolangs> [[Gora]] M https://esolangs.org/w/index.php?diff=166814&oldid=164574 * Ractangle * (+43)
06:34:51 <esolangs> [[User talk:PoptartPlungerBoi]] https://esolangs.org/w/index.php?diff=166815&oldid=148732 * Yayimhere2(school) * (+172)
07:15:22 -!- tromp has joined.
08:06:01 -!- ski has quit (Ping timeout: 264 seconds).
09:03:39 <APic> Hi
09:05:51 -!- ais523 has joined.
09:09:14 <esolangs> [[Special:Log/newusers]] create * CodeMelon * New user account
09:35:02 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=166816&oldid=166785 * CodeMelon * (+412)
09:37:15 <esolangs> [[User:CodeMelon]] N https://esolangs.org/w/index.php?oldid=166817 * CodeMelon * (+45) Created page with "Im making my own language right now type shit"
09:49:34 <esolangs> [[User talk:Tommyaweosme]] https://esolangs.org/w/index.php?diff=166818&oldid=164440 * Yayimhere2(school) * (+232)
10:19:02 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166819&oldid=166803 * RaiseAfloppaFan3925 * (+765) Dango overhaul, maybe I should add cookies :D
10:23:05 <esolangs> [[Final Word Of The Day]] https://esolangs.org/w/index.php?diff=166820&oldid=166792 * Yayimhere2(school) * (+3)
10:27:29 <esolangs> [[User talk:PkmnQ]] https://esolangs.org/w/index.php?diff=166821&oldid=166809 * Yayimhere2(school) * (+118) /* Thanks!!! */
10:58:47 <esolangs> [[Talk:Flash shockwave has been discontinued.]] N https://esolangs.org/w/index.php?oldid=166822 * Yayimhere2(school) * (+158) Created page with "where is the actually documentation ???? --~~~~"
11:18:15 <esolangs> [[Dango]] M https://esolangs.org/w/index.php?diff=166823&oldid=166819 * RaiseAfloppaFan3925 * (+212) memory system + file extensions + paradigm + naming consistencies
11:19:58 <esolangs> [[Talk:Call/cc]] https://esolangs.org/w/index.php?diff=166824&oldid=46403 * Blashyrkh * (+279)
11:38:21 -!- Lord_of_Life_ has joined.
11:38:55 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
11:39:43 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
12:32:25 <esolangs> [[EvenOdd]] https://esolangs.org/w/index.php?diff=166825&oldid=154767 * Yayimhere2(school) * (-1) /* Nand */ Because of pemdas, these brackets are not needed
12:38:49 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:53:49 <esolangs> [[(...) IS 2D!!]] https://esolangs.org/w/index.php?diff=166826&oldid=130365 * Yayimhere2(school) * (-69)
13:12:08 <esolangs> [[Redefine Symbol]] https://esolangs.org/w/index.php?diff=166827&oldid=108791 * Yayimhere2(school) * (+7) /* Computational class */
13:17:39 <esolangs> [[Nope. without a quine including cheating ones but I was extra smart and let the one Quine not be a Quine]] N https://esolangs.org/w/index.php?oldid=166828 * Yayimhere2(school) * (+436) Created page with "'''Nope. without a quine including cheating ones but I was extra smart and let the one Quine not be a Quine''' is [[Nope. without a quine including cheating ones]]
13:17:40 <esolangs> [[User talk:RaiseAfloppaFan3925]] https://esolangs.org/w/index.php?diff=166829&oldid=166594 * RaiseAfloppaFan3925 * (+543) /* Does this count */ new section
13:19:34 <esolangs> [[User talk:RaiseAfloppaFan3925]] https://esolangs.org/w/index.php?diff=166830&oldid=166829 * RaiseAfloppaFan3925 * (+258) /* Oh yeah and this */ new section
13:27:54 -!- tromp has joined.
13:32:09 -!- chloetax has quit (Quit: Ping timeout (120 seconds)).
13:32:52 -!- chloetax has joined.
14:00:46 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:15:17 -!- tromp has joined.
14:21:50 -!- vista_user has joined.
15:04:09 -!- vista_user has quit (Quit: Client closed).
15:41:02 -!- amby has joined.
15:48:52 <esolangs> [[Underflow]] N https://esolangs.org/w/index.php?oldid=166831 * Yayimhere2(school) * (+1504) Created page with "'''Underflow''' is an esolang created by [[User:Yayimhere]], to make a [[Pushdown automata]] able to solve the problem that it is unable to do the problem with a b and c. it is most likely Turing complete, however there is currently no proof of this. == Mem
15:53:41 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=166832&oldid=166831 * Yayimhere2(school) * (+305) /* Commands */
15:56:47 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=166833&oldid=166832 * Yayimhere2(school) * (+143)
15:57:26 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=166834&oldid=166833 * Yayimhere2(school) * (+22) /* Examples */
16:05:25 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:08:54 <esolangs> [[User talk:Ractangle]] https://esolangs.org/w/index.php?diff=166835&oldid=150026 * * (+147) /* A request */ new section
16:13:20 <esolangs> [[Special:Log/move]] move * Aadenboy * moved [[Estrita]] to [[User:Aadenboy/Estrita]]: funny concept, not interesting idea. won't be going anywhere with this any time soon
16:14:04 <esolangs> [[User:Aadenboy]] https://esolangs.org/w/index.php?diff=166838&oldid=166342 * Aadenboy * (-305) move [[User:Aadenboy/Estrita|Estrita]] to the draft list
16:26:04 <esolangs> [[Underflow]] https://esolangs.org/w/index.php?diff=166839&oldid=166834 * Yayimhere2(school) * (+5) /* Examples */
16:27:09 <esolangs> [[Talk:F calculus]] https://esolangs.org/w/index.php?diff=166840&oldid=166675 * Corbin * (+564) Combinators can't decide normal forms of SK (because they aren't decidable!)
16:27:33 -!- tromp has joined.
To update automatically, stalker mode requires a reasonably modern browser with scripts enabled. If this message does not disappear, it's either because of that or a bug. Feel free to get in touch on channel for debugging. Or just work around the issue by manually reloading.