« first day (4224 days earlier)      last day (610 days later) » 

12:08 AM
0
A: Sandbox for Proposed Challenges

Zion mycelia adamancyLive a longer life Conways' Game of Life is a well known cellular automaton "played" on an infinite grid, filled with cells that are either alive or dead. Once given an initial state, the board evolves according to rules indefinitely. Those rules are: Any live cell with 2 or 3 living neighbours ...

 
Ooh
 
neat
 
0
Q: An algorithm to find even sublime numbers

BubblerA perfect number is a positive integer whose sum of divisors (except itself) is equal to itself. E.g. 6 (1 + 2 + 3 = 6) and 28 (1 + 2 + 4 + 7 + 14 = 28) are perfect. A sublime number (OEIS A081357) is a positive integer whose count and sum of divisors (including itself) are both perfect. E.g. 12 ...

 
it's not either (Editor's note: this refers to the sandbox post)
 
@SandboxPosts Vyxal, 2 bytes
 
12:33 AM
1 message moved to ­Trash
 
silly challenge idea "Make your language unusuable... for golfing"
in the fewest bytes, write code such that the rest of the code would have to be really long for a program to accomplish anything
in my lang (lol) i have this ++[]]][]]^{D-^):]][};{N)UO}:]E.which moves the instruction pointer to the 12288th code block
preserving all input as well
so you can still write any valid program but you have to have ~12k .s between my solution and your program
Version which only requires ~64 .s between the solution and the program: Do stuff online
^ simple addition program, input two numbers separated by newline and it will output their sum
 
1:00 AM
Sandbox posts last active a week ago: Program a compiler compiler
 
1:22 AM
is it just me or is the site read-only rn
 
repro'd
 
@thejonymyster have no idea what that means lol
 
repro(duce)d, "i was able to achieve the same effect"
the site is indeed in read only mode lol
 
but like why
is it like some maintenance rn?
 
1:29 AM
oh
but doesnt that usually show like that maintenance page if u try to load a site
 
cool that they were able to make the site readonly instead of strictly down
yeah id think that too
 
2:06 AM
yep
 
Dangit
tfw the site goes readonly on the day I posted a challenge
 
2:22 AM
well it looks like its not read only anymore
 
CMC: given a ragged list, flatten all the second deepest lists
(you can assume the only elements are lists)
examples: [] => [], [[]] => [], [[], [[]], []]=>[[], [], []], [[[[]], []], [[], [[]]]] => [[[], []], [[], []]]
actually does that ruin the point of making it a flatten challenge if i say its only lists lol
thinks i goofed it
god im too tired for this. CMC: just watch this bill nye video
 
2:47 AM
@thejonymyster lol what
 
like when the teacher doesnt teach and just rolls in the tv to show bill nye
 
for me it was more like some random ass hour long documentary but ya lol
 
 
7 hours later…
9:22 AM
What is the most capable 2d language? With a solid implementation
 
Capable in what aspect?
Among early esolangs there's ><> (and its evolution Gol><> which has callable functions, for/while loops, etc)
 
Somewhat easy to program in, decent builtins
Thanks I'll check them out
 
9:37 AM
this is both the online interpreter and full reference of Gol><>
 
@mousetail HAL/S.
 
@mousetail Rail
 
10:35 AM
Thanks
 
11:30 AM
Lol, this must have been written by some AI.
 
@Adám AI written nonsense articles are extremely common for SEO hacking
Seems like the SEO hackers have finally beaten the google algorithm around last year
 
Any search engines that can avoid this? (And also Wikipedia clones…)
 
Not that I'm aware, most other search engines are worse, or just use google internally
It costs google millions if not billions of dollars a year to combat this while these services invest similar amount in methods to break the algorithms. SEO is such a huge industry
 
But what are they trying to achieve? Ad revenue? Surely, human consumers will quickly abandon nonsense pages like that.
 
Yes, that too, also since these pages all boost eachother and actual legit pages by their paying customers
Also they promote scams that also bring in money
 
12:13 PM
my favorite part is how "marc" has 5387 pages of articles
it's not like they don't even have other "authors"
 
I don't know why they even bother naming the obviously fictional author person
 
I wouldn't be surprised if they are in fact a real person lazily assembling dozens of pages a day using copy paste.
Might be cheaper than an AI.
 
the articles are too incoherent
but parts probably could be automatically lifted from elsewhere
 
AI writen doesn't nececairly mean the AI actually writes the text themselves. It might just mean a bot copies random snippets of text from other webpages
 
hell, there might be some giant network of seo farm sites where there's a handful that generate their own garbage and the rest of them rip those off
 
12:21 PM
SEO is getting stupid
At least Vyxal will always be #1 on its search results
... Although crappy github mirrors are showing up on those
 
yep lmao
 
> The latest version of Vyxal is v2.10.3
 
vyxal &lt;file&gt; &lt;flags (single string of flags)&gt; &lt;input(s)&gt;
such an elegant syntax
 
Why would you need to do that when you can wrap lhs?
 
html entities are underutilized on the command line
 
12:24 PM
Also r/vyxal is somehow on the search results despite being completely unused
 
holy shit i can't believe y'all added transpresenting a lambda function
 
And there's abusive stuff like this: http://mars.railpage.com.au/cara-https-github.com/topics/stack-based?l=python (warning: Shows github search results for stack-based stuff in Python then redirects to a casino)
 
Right, and this.
 
You got me lol
 
Figured it'd work, and be in the spirit for misdirections.
 
12:28 PM
Although that's not the first, or even tenth time I've watched that today.
 
I was more afraid of opening some malware infested scam site than a rickroll
 
I'm doing a mockumentary of it for school: "Here we see a Rick Astley, dancing. Believed to be the last of its kind, Rick Astley enjoys singing and dancing, and eats fruits and nuts."
 
ah nice
 
 
1 hour later…
1:37 PM
oh it’s ais
long time no see
 
hi Fatalize
 
@ais523 any new languages you’ve worked on?
 
@Fatalize not really from a golfing point of view; this one was inspired by a CGCC question but is only golfy on one specific question
 
1:59 PM
Ok nice
@ais523 You can read input as bytes
 
Jelly doesn't have a "read input as bytes" builtin
very few esolangs I've seen have both byte I/O and character I/O, most stick to one or the other
 
Makes sense
 
I think A Pear Tree is the only time I've even had to explicitly think about this problem (it frequently uses invalid Unicode to make the checksums work correctly)
 
Though IMHO byte I/O would make the most sense
With perhaps a builtin to interpret at utf-8
 
oh, and 7, that explicitly has Unicodiness options
actually it works on four main encodings (raw bytes, 7's encoding, Unicode, and US-TTY)
but US-TTY (a weird base 6 version of it) is only used internally, not in the output from the program
like, you use it to specify string literals but the output itself is in Unicode
 
2:06 PM
That seems sensable
 
7 is weird because I think more than half the effort put into designing the language went into the I/O :-D
 
@mousetail Wouldn't that add a byte to basically every single program?
 
IO is important. The flexible IO system on CGSE means languages can get away with not thinking about IO at all but it's very important in any other context
 
fwiw I believe that correct for a golfing language is to default to interpreting input as something vaguely JSONish, and have a way to do overrides, even though the override probably costs two bytes
 
@RadvylfPrograms How often do you need unicode? Very rarely. 99% of problems can be solved using just ASCII
 
2:09 PM
you need Unicode to write non-ASCII characters, which I do all the time
in particular I use endash as part of my standard writing, dashes are a commonly used punctuation mark
 
@mousetail And how often do you need to work with raw bytes, where you're not allowed to just take them as a list of ints?
Golfing languages are optimized for golfing
 
no, our golfing languages are optimized for golfing on CGCC
anagol has much stricter I/O rules
 
@ais523 ninja'd :p
 
as do most other golf sites, I think
 
@ais523 This, only because the IO standards here are extremely lax can languages get way with extremely limited IO options
Not nececailry a bad thing
 
2:11 PM
I wouldn't call most golfing languages' IO options limited
 
IO shouldn't really be the focus of a problem or language design
 
You can input any value which the language can understand using ASCII
 
Jelly does seem to have made some attempt at optimizing for stricter I/O rules, with single-byte builtins for splitting and joining on spaces and newlines
@RadvylfPrograms this is true, but then you need a separate program to do encoding/decoding, and also to write an encoder/decoder inside the program itself, so it makes the language a lot less usable
 
@ais523 Never even thought of those in the context of strict I/O honestly
They're just useful in general
 
many of my languages only allow digits and newlines in I/O
if you need something else you interpret it as a list of character codes
but, those languages aren't designed for golfing
 
2:13 PM
FWIW I think the specifics of how I/O is formatted should be done via flags
4
 
Yep that would be fine
 
E.g., there should be a flag which just takes all of the input and passes it as a string
 
Better flags than environment variables
 
I can see an argument for that – although for anagol and the like, there should be some way to embed the flags into the program
 
And one which does the normal JSON-y parsing for more varied input
 
2:14 PM
@RadvylfPrograms split/join on newlines is not too big in actual golfed code on a site where i/o defaults permit lists of lines
 
@UnrelatedString For things like ASCII art though, a list of lines is pretty cheaty
 
on anagol, specifying flags in Perl has an 8-byte penalty + 1 byte per flag, and yet it's still often worth paying
 
Even if it's technically allowed
 
@ais523 i actually just thought of something like this when you mentioned anagol--ship the language with one flag, on by default there perhaps, that enables encoding other flags into the program
 
Most flags are there for like, how the program itself is read or encoded though
 
2:16 PM
@UnrelatedString yes – any language with flags should have a "look at the program for the flags" option, + some encoding that lets the flags go into the program fairly seamlessly
 
I don't think that really makes sense for anything but Vyxal/Japt-style cheaty flags
 
can go in the first byte of the program, for example
 
That adds a byte penalty to every single program
That would be ridiculous
(For a golfing language, at least)
 
better than the actual flag penalty :P
 
Use the first bit of the program instead
 
2:17 PM
@RadvylfPrograms Perl has flags like -p which contain a lot of functionality and look like a Vyxal-style cheat, but are unlikely to have been designed for golfing (although IIRC Perl invented golfing, so it's possible it was there for golfing purposes)
 
1/8th byte penalty
 
I do, however, use -p quite regularly when writing Perl one-liners that aren't meant to be golfed
 
considering perl's aptitude for one-liner utilities i imagine there is sort of a convergence there
common patterns of how you'd use it generalize
 
@ais523 Isn't that an example supporting my side?
 
@RadvylfPrograms I'm not sure I agree – almost every problem needs I/O so making it a mandatory part of the program isn't that weird if you have an inflexible-I/O situation
 
2:18 PM
Perl went with a flag for that, because a flag for that makes more sense than specifying it in the program itself
 
I think Perl went with a flag for that because it was inspired by sed, which also has a flag for that
 
@ais523 I don't really know what that means
 
although in the case of sed, it's the default behaviour and the flag is to turn it off
 
Implicit I/O has been a thing in golfing languages for years, having to add even a single byte of overhead to a golfing language would make it enormously uncompetitive given than answers are typically just a couple of bytes
 
@RadvylfPrograms say you're trying to use a programming language practically, not just for pure golfing – anything you do will need I/O and the format won't always be the same, so it's probably terser to always specify it in the program than to have a default (that needs extra bytes to override)
it would make it uncompetitive at CGCC and only for problems where flexible I/O solves all the I/O problems
it would make it more competitive at anagol, where you often need a custom I/O routine for every single task
 
2:21 PM
And strict I/O sort of falls into two types: I/O that's strict technically (like, requiring input from STDIN), or strict format-wise (e.g., a string, instead of array of lines). The first would make way more sense as flags and isn't at all cheaty, while the second is already possible to encode into programs and no flags are needed for that at all.
 
yes, but having a special-case DSL for it saves a lot of bytes
 
I'm not sure which of the two types of strictness you're talking about
 
because commands that are good for encoding I/O are generally bad for anything else, so you don't want them cluttering up the "main part" of your builtins
 
For the first one, if you're using it practically, it makes way more sense to use a flag
 
mostly the latter
 
2:22 PM
You are suggesting having some commands only available as the first byte right?
 
or first run of bytes – you could make it self-delimiting
 
Yeah, that makes more sense.
 
Then those byte values could be replaced by others later, maybe something that would make no sense at the beginning
 
and those commands would be specialised for changing the I/O encoding
 
2:23 PM
Stuff like file vs. STDIN vs. args and stuff should still be flags IMO, but that sort of thing would be cool (you'd probably want a similar thing for the last byte too)
 
I think in general golfing languages can do more with changing behavior based on neighboring characters and location in the program
 
problems like "write an integer as 6 hexadecimal digits" are actually quite difficult to solve tersely in Jelly, and normally come up only in I/O
 
I think that's mostly just due to its lack of triads
It'd be like, two or three bytes if there was a string padding atom
 
I think the shortest solution to that I found was to add 2²⁴, express as base 16, index into a list of hexadecimal digits and delete the first element
it'd be more than three even with a string padding atom
you need the atom, two arguments, and a separator between the arguments
 
You could also concat a string of six zeroes with the hex representation, and slice the last six chars, probably longer tho
 
2:26 PM
although, if you allocate a byte as the separator, you now have an entire 256 triads that don't clash with anything else
@RadvylfPrograms or prepend a zero while the length of the string is less than 6, that's an algorithm I hadn't thought of last time I tried and might be shorter
oh, the other reason for all this is that except in I/O, you nearly always want little-endian base conversions, but people expect big-endian for I/O
I've lost count of the number of bytes I've lost over the years to base conditions being big-endian by default
 
@ais523 Oh, true. Probably four bytes: hexadecimal pad 0 6 (in some order), maybe five depending on the parsing
@ais523 Big endian would be 1a for 26, right?
I've never seen little endian base conversion if so
 
pad 0 6 has to be pad 0 separator 6 unless you're doing something Brachylog-style where constant arguments to commands have their own character set
@RadvylfPrograms right ­– little endian just reverses the string, a1 for 26 in hex
it is most useful when considering the string as a list of digits, so [10, 1] for 26 in hex
 
I don't know much about Jelly's parsing, but it could always be 0 pad 6, with the assumption that the third argument would typically be implciit
 
because if you convert a range of numbers which have different numbers of digits, the digits with the same place-value are in the same position of the array
 
@ais523 not related to enforcing 6 digit width but i was about to say "wait can't you just use instead of separate base conversion and indexing" then remembered that ØH is 0123456789ABCDEF but uses 1-indexing
 
2:30 PM
@UnrelatedString oh wow, I forgot that :-D
0-indexing and 1-indexing both have their own advantages and disadvantages – I think 0-indexing is usually better if you have some falsey sentinel value and some way to make a truthy 0
 
but 1-indexing is simpler because you can use 0 as the "not found" sentinel
 
1-indexing is useful mostly for the falsiness of 0
 
<aside>I think gluing together single digits into multiple-digit numbers doesn't make any sense in modern golfing languages. x26 should be x 2 6, not x 26, and even more so with leading zeroes
 
and in the context of jelly that definitely wins but that is no reason for not to be inconsistent for the sake of usefulness
 
2:32 PM
Pretty much all modern golfing languages have integer compression already, and it's bound to be more effective than typing out the number whole
 
@RadvylfPrograms I agree – have constants for 0 through 10, plus one or more leading bytes for "this is a multiple-byte number" and then use a much terser base than decimal to specify what it is
 
decimal literals can be useful for hacky transform-eval solutions but at that point you may as well just design a separate mini-language for that so you don't sacrifice anything for everything else
 
that said, in one language I was working on, I did use digit-gluing (in base 11) for numbers of up to three characters in length, but that's because the character set was unusually small
 
@ais523 Yep. That's the approach that I'd use (maybe with a few more single byte constants), and Jelly even already has an integer compression thingy for two digits
 
one of or , I can't remember which
I have memorized how to type almost every character in Jelly's character set – I forget which ones I still have to copy-paste
 
2:35 PM
and jelly's two-digit compression is also a bit confusing to use just by virtue of avoiding being redundant with three-digit decimal literals lmao
 
How do you do the subscripts on your keyboard?
I've found basically all of Jelly's charset on my INTL layout, except the sub/superscripts
 
@RadvylfPrograms Adám’s language bar
 
@RadvylfPrograms caps lock, _, then the character I want to type in subscript
 
speaking of the devil…
 
if you haven't rebound caps lock, like I have, holding right shift and tapping right alt works as a substitute
(my binding for caps lock is shift-shift – it's useful on occasion but not often enough to need an entire key)
also shift-shift is much harder to press by mistake
 
2:38 PM
does not seem to work on the shitty windows intl layout but what does
 
this probably belongs to X11 and/or Gnome, something that's typically only used on Linux at least
 
26 mins ago, by Radvylf Programs
FWIW I think the specifics of how I/O is formatted should be done via flags
Now that this is on the starboard, y'all better not take that out of context :p
 
Too late nerd :p
 
My opinions on golfing language I/O are still summed up by my three black boxes model
@lyxal >:-|
 
@RadvylfPrograms the nice thing about the "flags embedded in the program" model is that you can mess with all three of the boxes without feeling guilty
 
2:42 PM
>:-)
 
Yeah, but IMO you should be able to mess with the first and third one without penalty
 
that's basically what CGCC rules are at the moment
 
The fun part of golfing (and golflang design) isn't whether to use STDIO or file input :p
 
I'm thinking back to the earliest programming languages
 
And IMO our rules should be written to make golfing as fun as possible, without that compromising how fun some other aspect is (e.g., overly loose I/O)
 
2:44 PM
where things like file I/O were defined very differently from today – normally the program would say things like "output to file 4" and what "file 4" was and its format would be defined separately from the program itself
I think CGCC-style golfing languages may be a revival of that
 
Which, IMO, our I/O is a bit of a mess. Our standard I/O is way too loose for most languages, while still being to restrictive for others
 
being allowed to I/O numbers by char code is a lifesaver for many esolangs
 
I don't think JS or Jelly should get to output a list of lines when the challenge wants ASCII art. I don't think JS or Python should be able to take input via variables, but languages which have those and literally no other I/O shouldn't have that hard ban.
 
but yes, one big problem with the I/O defaults post is that it assumes that languages have relatively standard concepts like numbers and lists
 
^
I/O is going to be language-specific, no set of rules can make sense for every language.
 
2:46 PM
if the language has no built-in concept of what a number is, you generally have to write full programs because none of the function methods work
 
I think there should be a set of I/O guidelines, which certain classes of languages are strongly advised to follow, but we should use the same vague "do what you want within reason" thing as we do with flags
 
(with the possible exception of entirely string-based languages, like Retina and yacc; those can take numbers as ASCII representations of their digits, so you can write functions)
but take the example of something like Incident – data can't really move through the program there, it stays in one place permanently
so although it has functions, you can't give them numbers as arguments without defining a complicated chain of callbacks between the function and whatever it is that stores the number
and when you do set up a method of providing arguments like that, the function is no longer reusable because it can't tell where it was called from and thus doesn't know who to ask
you'd probably want to standardise numeric I/O as something like having two functions, where calling the function on a number n is done by calling the first function n times then the second function once
(come to think of it, this is how input is done in 7, which doesn't have numbers in the usual sense – input is a control flow builtin, which loops a number of times equal to the input + 1, EOF gives you a 0-iteration loop)
 
3:15 PM
@thejonymyster Fig, ~1.646 bytes ef
 
3:44 PM
@Seggan woah, hows that work
 
I often wonder about how far I can push the I/O defaults when I solve challenges in Acc!!. It would be most convenient to use unary (and that's the use case the language was designed for). But it is possible to do decimal I/O; it's just really clunky and annoying to write decimal I/O routines every time.
 
0
Q: Carry-less sum given a base b

loopy waltGiven a list of positive integers \$\mathcal I=I_1,I_2,I_3,...,I_n\$ and a base \$b>1\$ return their "carry-less sum", i.e. represent \$\mathcal I\$ in base \$b\$ and sum digit-by-digit discarding carry. Worked example: I = 13, 2, 9; b = 3 In base 3: 111 + 2 + 100 ----- = 210 and back ...

 
@DLosc honestly i think unary would be reasonable then
 
@NewPosts a good example of why base-conversion builtins should be little-endian
 
Yep
 
4:01 PM
@ais523 Lol, two answers so far and we both quoted you
 
4:14 PM
0
A: Sandbox for Proposed Challenges

thejonymystercode-golf functional-programming Are these numbers from the repeated application of this function? Given a list of at least 3 positive integers \$L\$ and a function \$F\$ which takes a positive integer and returns a positive integer, determine if \$L\$ can be sorted such that each element of the ...

 
4:55 PM
in CG&CC-gaming, 11 hours ago, by Aiden Chow
food for thought, we should have a book/reading chatroom lol
Onions?
(Aiden Chow also suggested widening the scope to include movies and TV.)
 
5:11 PM
@thejonymyster for every flatten
nvm i think i misread the cmc
yeah i cant think of a way rn
@Adám Fig (theoretical), ~8.231 bytes (10 chars): %"<%>%</%>
@Adám Fig (theoretical), ~14.816 bytes (18 chars): %"<% %=\"%\">%</%>
blame escaping
still shorter than vyxal
 
5:27 PM
Interesting. Makes me think QuadR could do this as:
.*
<% %="%">%</%>
 
CMP: should i rewrite Fig, a lisplike, in a lisplike?
 
5:57 PM
only if you also write the host lisplike
 
6:33 PM
Every good language can be implemented in itself
 
7:04 PM
Sure, but can it be implemented in a lisplike implemented in itself? :p
Can't go too deeply tho or you'll end up in an xkcd 1764 situation
CMUC: (Chat Mini Unsafe Challenge): A Docker image which, when run, will run itself
 
cloud-ready fork bomb
 
7:33 PM
Is there a name for a data structure where you have a bunch of blocks of data, where you keep a pointer to the next unused block, and when a block is done being used, you move the pointer to that block and replace it with a pointer to that block?
Basically creating a stack with a linked list that keeps track of unused blocks, without any memory overhead (aside from a single pointer)
 
7:43 PM
"you move the pointer to that block and replace it with a pointer to that block" - what?
Do you mean, replace the contents of the recently garbage-collected block with a pointer to the previous head of the linked list of unused blocks?
 
@RadvylfPrograms a... tracing garbage collector?
 
8:29 PM
@pxeger Memory Usage as a Service
 
8:45 PM
sechat v1.0.2 released! This is an important bugfix, I advise you update ASAP
 
@NumberBasher I asked this as a question on meta so we can get an official consensus:
0
Q: Do we want to delete a LYAL nomination after learning the lang?

DLoscCurrently, Language nominations for the "Learn You a Lang for Great Good" chat event, if they get chosen, are subsequently edited to mention that this language was learned on such-and-such a date. We've brought up in chat the possibility of deleting old nominations, like we do for Language of the...

 
9:12 PM
@DLosc Yeah, bad wording. "move (the pointer) to that block and replace it with (a pointer to that block)"
 

« first day (4224 days earlier)      last day (610 days later) »