Skip to content

Instantly share code, notes, and snippets.

@razetime
Created October 17, 2022 15:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save razetime/da39f788a48b74be49b624e632bbb861 to your computer and use it in GitHub Desktop.
Save razetime/da39f788a48b74be49b624e632bbb861 to your computer and use it in GitHub Desktop.
Let's make an esolang, accepted proposals for a potential impl

: @Deleted User

calling _() might delete the next line of code

[ 11:51 PM ] nailuj : @Itzz Me

<name> == <value> pls!

[ 11:56 PM ] nailuj : @Chicken

assignment:
<name> == <value>
comparison:
<term> = <term>

[ 12:00 AM ] Itzz Me : @Krix08

if _() deletes the next line of code then maybe randomc() adds a random piece of code next line

[ 12:03 AM ] nailuj : @Krix08

if you try and add 9+10 you get 21 or something idk

[ 12:10 AM ] nailuj : @Deleted User

if condition = true

[ 12:12 AM ] nailuj : @Itzz Me

goto <line in binary> pls!

[ 12:13 AM ] nailuj : @nailuj

self-modifying, can change code at runtime

[ 12:14 AM ] nailuj : @Deleted User

printing sus actually does when the impostor is sus! >:)

[ 12:17 AM ] nailuj : @Krix08

if you print dci it sends the discord invite to this server

[ 12:19 AM ] nailuj : @nailuj

functions and scripts are read bottom to top. function header is still on top

[ 12:23 AM ] nailuj : @Itzz Me

name: DEMOCRACY

[ 12:25 AM ] Itzz Me : @Krix08

name: LeMane (Lets Ma an esolang)

[ 12:25 AM ] nailuj : @Itzz Me

all commands end with pls! as an alt for ;

[ 12:33 AM ] nailuj : @Deleted User

CLI option -e, evals code
no other CLI options, changelog etc displayed trough code

[ 12:33 AM ] nailuj : @nailuj

name: Xol

[ 12:37 AM ] nailuj : @Deleted User

quine() prints itself

[ 12:38 AM ] nailuj : @Itzz Me

dividing by 0 restarts the entire program

[ 12:43 AM ] nailuj : @Itzz Me

scream() is the the print function

[ 12:57 AM ] nailuj : @nailuj

} is opening brace, { is closing

[ 1:11 AM ] nailuj : @Krix08

if you print truttle1 it sends a link to his youtube channel

[ 1:13 AM ] nailuj : @Itzz Me

defining a string needs to have either 'text" or "text'

[ 1:19 AM ] Itzz Me : @Krix08

printing LeCredits sends a list of everyone who worked on the esolang

[ 1:38 AM ] Itzz Me : @Krix08

when printing LeCredits to display LeMane credits, maybe print an ascii version of the logo?

[ 1:51 AM ] Itzz Me : @qh4os

functional() executed the stack contents as a brainfuck substitution language

[ 1:55 AM ] Itzz Me : @Itzz Me

functions are defined with 

funcdef (<name>) <argument> }
<func>
end{

[ 1:58 AM ] Itzz Me : @nailuj

length() executes a length program

https://esolangs.org/wiki/Length as context Length [ 1:59 AM ] Itzz Me : @nailuj

Errors are xor encrypted with key (name of language)

[ 2:01 AM ] Itzz Me : @nailuj

bottles() creates a truth machine

[ 2:13 AM ] Itzz Me : @nailuj

Use ' to separate args

[ 2:14 AM ] Itzz Me : @quintopia

f (on its own as a separate word) pushes false to the hot stack (see https://esolangs.org/wiki/Or)

[ 2:17 AM ] Itzz Me : @Krix08

rename "print dci" for discord invite to "print LeDCI"

[ 2:50 AM ] Itzz Me : @Heav

no command may have another command compose of its start (i.e if ab is a command, abc is not allowed as a command name). commands may otherwise be arbitrary sequences of non-whitespace codepoints

[ 3:00 AM ] Itzz Me : @quintopia

If previous proposal is accepted, the Komodo Dragon is named Villanova.

[ 3:36 AM ] Itzz Me : @quintopia

<speed and speed> decrement and increment respectively the amount by which the IP's address changes after each instruction.

[ 3:39 AM ] Itzz Me : @Deleted User

arbitrary command execution; roll it around and make it dangerous! (only enabled when you pass --arbitrary)

[ 4:26 AM ] nailuj : @quintopia

Lines may contain multiple instructions. goto <bin> pls! goes to the beginning of a line.

[ 2:33 AM ] Itzz Me : @quintopia

Execution halts if the address of the instruction pointer at the beginning of an execution cycle is greater than or equal to the number of instructions in the program.

[ 2:44 AM ] Itzz Me : @nailuj

You can't name variables, they are just v(number)

[ 2:45 AM ] Itzz Me : @quintopia

all instructions on a line are space-separated and the all commands end with pls! as an alt for ; rule should be s/commands/lines/

[ 2:49 AM ] Itzz Me : @quintopia

t (as a word by itself) pushes true to the hot stack

[ 2:50 AM ] Itzz Me : @quintopia

& (as a word by itself) nands the top two items on the hot stack and pushes the result to the cheesy stack

[ 5:45 PM ] Itzz Me : @nailuj

The function named this_isAn_intentionally_longNameWith_no_namingConventionWhatsoever will be automatically executed

[ 5:49 PM ] Itzz Me : @Camto

Following functions declaration syntax, anonymous functions can be made with the following syntax:

sporf <arguments> }
<func>
end{


Yes, sporf is the keyword

[ 5:53 PM ] Itzz Me : @sinner

The compiler should define enormous compiler errors, like: 179: Cannot create cheese.

[ 9:33 PM ] nailuj : @quintopia

randbit is replaced by either t or f with equal probability at compile time

[ 1:54 AM ] Itzz Me : @sinner

There should be concept of libraries, so you can import them as follows:

$libs}<lib>;<anotherlib>:end{.eibs

[ 1:55 AM ] nailuj : @sinner

Also, to make a lib, append this header to file

(libdef)<libname>(eibdef)

[ 1:55 AM ] nailuj : @sinner

And last, but not least, implementation should define standard library that supports binary/hex/octal operations, string operations, IO functions, etc.

[ 2:08 AM ] nailuj : @quintopia

There is an internal FOODLEVEL state, integer initially 0. hot spicy and cheesy pop the named stack and increment FOODLEVEL by 1, 2, or 3 resp. reward is a nop unless FOODLEVEL is positive. if reward succeeds, FOODLEVEL is decremented.

Pringles causes the next hot, spicy, or cheesy command to be repeated until said stack is empty (once you pop, you can't stop)

every command between Pringles and the next hot spicy or cheesy also gets repeatedly executed in order. (it'd be the closest thing we have to a while loop)

[ 2:12 AM ] nailuj : @quintopia

if deletes from the spicy stack anything whose depth from the top of the stack is equal to the depth of a falsy value in the hot stack

[ 2:14 AM ] nailuj : @Anima Libera

awa <variable_name_or_whatever> writes the content of variable_name_or_whatever in a special register, let's call it H.
Every time a top of stack is equal to the content of H, the execution restarts from the beginnig, but with the content of H being the only values in the stacks.

[ 2:15 AM ] nailuj : @nailuj

it actually isn't llvm, if this passess, delete that from history. i regret it

[ 2:15 AM ] nailuj : @nailuj

The main function thing must take an this_ListContains_cOmmandLineArgs even if it doesn't use them

[ 2:16 AM ] nailuj : @nailuj

whisper is like print but there is a chance you can't hear it

[ 2:16 AM ] nailuj : @Anima Libera

h h

[ 2:21 AM ] nailuj : @Anima Libera

byeet discard the bottom value of the stack.

[ 2:29 AM ] nailuj : @nailuj

randjmp causes the program to jump to a random point, be it setting the ip to a random value or skipping a random amount of instructions. implementation defined can crash the program, so use it sparingly

[ 2:32 AM ] Itzz Me : @Camto

The chance you can't hear a whisper is implementation defined. So much so that each implementation must do it differently

[ 2:33 AM ] Itzz Me : @nailuj

if statement syntax: if [condition = true)

[ 2:37 AM ] Itzz Me : @Camto

Lists are a sequence of items and a "tape head", which is initialized to point at the first list item (index 0) upon initialization.
As part of the standard library there is the library list containing at least the functions:
- head_right() it takes the list and moves the tape head one to the right
- moveHeadToLeft() same but to the left
- GetLen() it returns the length of the list
- Fehtc_Tape_Head_Position() it returns the position of the tape head
- rd() it returns the item in the list being pointed to by the tape head

(Edit: to specify, the function names are EXACTLY AS IS, typos included)

[ 2:57 AM ] Itzz Me : @Anima Libera

@ makes the execution slower by waiting 1 second between each instruction.

[ 4:48 AM ] Itzz Me : @Anima Libera

Amogus <variable_name_or_whatever> allow to obtain information from the future. It saves the entire state of the memory in... some place, lets call this saved memory state M. Then the execusion continues but in a silent mode (every output is not outputted, and every input is taken from a random stream of characters instead that from the user). When this silent execusion halts, the content of variable_name_or_whatever is copied into a temporary register XxxXX that is not considered in the memory state. Then the memory state is dropped and replaced by the one in M. Then the content of XxxXX (that survived the memory state replacement due to the fact that it is outside of it) is pushed. The the execusion continues in not silent mode. That should look like nothing happens during this instruction except that one possible future value of variable_name_or_whatever is pushed.
The register M might actually be a stack of memory states, so that the future can also look for even more furure values, etc.

[ 4:57 AM ] Itzz Me : @nailuj

multiline comments are

/6/ comments
are
like
this
in
LeMane



The number between the slashes is how many lines to comment out
@Notgettingmod's comments are single line

[ 5:29 AM ] Itzz Me : @sinner

Comments are denoted as Com@<your comment here>@moC (unless they are in the string, then they don't affect anything)

[ 5:31 AM ] Itzz Me : @Camto

You must declare a variable before using it, and to do so you must use its number but negative. Mutation and getting it is then done with the positive form of the variable number

[ 5:32 AM ] Itzz Me : @nailuj

Lists are just space separated strings

[ 5:33 AM ] Itzz Me : @Anima Libera

ex. <variable_name_or_whatever> appends the content of the variable variable_name_or_whatever to the program

[ 12:59 AM ] nailuj : @nailuj

call (functionname)'arg1'arg2'arg3 is how you call functions

[ 1:30 AM ] nailuj : @Camto

This is to deal with the proposal:
> Lists are just space separated strings
Make string start only with " instead of also ', and only end with '. These now can be nested properly, so "abc "def' ghi' would be like "abc \"def' ghi" in a normal language. Since lists are just space separated lists, this would mean that for example [1, 2, 3] would be done as "1 2 3', [[1, 2], [3, 4]] would be done as ""1 2' "3 4'' and ["a", "b", "c"] would be done as ""a' "b' "c''.

This could work with:
- the introduction of the string/list type, which kinda works like the number/string type in Perl and Raku. This means you can process any list as a string, and any string as a list (which can of course cause errors if a string is used and is malformed). The whole time it's always the same type to the user, so for example the tape head would always remain even when it's a string, just not as part of the string representation.
or by:
- just keeping the thing ambiguously typed, as a kind of union of string and list (if it can be parsed as a list, otherwise it's obviously a string), then when it gets used as a string or a list, it gets cemented as that.
or even:
- type annotation stuff? Would have to be specified by another proposal if so

[ 1:31 AM ] nailuj : @razetime

A line  that matches I'm <statement> prints Hi <statement>, I'm Dad

[ 1:32 AM ] nailuj : @nailuj

If a the implementation is compiled, whispers must be compiled to normal print statements, meaning it will always run. whether or not to include it is up to the implementation

[ 3:36 AM ] Itzz Me : @Anima Libera

escape sequences are autorized in the source code outside of string literals, but since @ is aleardy reserved for an accepted proposal, ~@ is to be used as the escape "character" (which is more like an escape character sequence)
as for what they do: they are simply replaced by what they represent and everything goes normal

[ 3:37 AM ] Itzz Me : @nailuj

Lists are indexed backwards:
5 4 3 2 1. They end at 1

[ 3:38 AM ] Itzz Me : @quintopia

properties can be set to other variables which themselves have properties. however, variables automatically inherit the properties of their properties that have properties. for example if v(0).child is v(1) and v(1).bgcolor is "red" then v(0).bgcolor is also "red". If multiple children define the same property, the parent's value for that property is a list of all values of that property that all of the children have. if the parent already had that property defined before a child had, the child's property shadows the parent's property (we only see the child's value until it is no longer a child).

[ 3:39 AM ] Itzz Me : @nailuj

There is a limited number of variables

[ 3:39 AM ] Itzz Me : @razetime

Python-style "indentation" is required for each line, except from the right(so it isn't really visible)

[ 3:40 AM ] Itzz Me : @quintopia

any characters used to surround groups of characters (such as those initiating and terminating strings, code blocks, comments etc.) must be repeated n times in a row (on both the left and right) if they are delimiting the nth such group (string, code block, comment, etc.) in order of appearance in the source. this ensures that the grammar is VErY not context-free. e. g.  the first string in the source could be "hello' but then the second would have to be ""bewbs'' and the third would have to be """nyaaaaaaaa''' and so on.

[ 3:42 AM ] Itzz Me : @sinner

Updated:

v(-0) == -5 pls!
call (Prop)'v(0)'`new,'2 pls!



v(0) pls!     Com@--> -5@moC
v(0):(new) pls! Com@--> 2@moC



call (Prop)'v(0)'`new,'na pls! Com@na is a special variable that is 0 bytes in size (N/A)@moC

[ 9:44 AM ] BOT mvbot : @nailuj | proposals Fri Mar 12 2021 04:14:57 GMT+0000 (Coordinated Universal Time) "accepted (5 likes)" - @nailuj

Keywords are assignable, so @Deleted User can have his penis functions

[ 9:46 AM ] BOT mvbot : @quintopia | proposals Fri Mar 12 2021 04:16:00 GMT+0000 (Coordinated Universal Time) "accepted (3 likes)" - @nailuj

forge{variablename=x;variablename<y;variablenameUP} ( stuff ) repeats the code segment stuff with variablename taking on every value from 0 to y-1 but not in order: it starts at x, increases by 1 each iteration until it reaches y-1, then wraps back to 0 and increases by 1 each iteration until it reaches x-1 and leaves the loop immediately after. if UP is changed to DOWN it does the same thing backwards: starts at x, decreases to 0, then becomes y-1, then decreases to and ends after x+1.

[ 9:47 AM ] BOT mvbot : @Camto | proposals Fri Mar 12 2021 04:17:09 GMT+0000 (Coordinated Universal Time) "accepted (3 likes)" - @nailuj

https://discord.com/channels/818539616318914609/818545357893664778/819693481156935691
> There is a limited number of variables
The numbers of variables is limited to 7 per scope

[ 9:47 AM ] BOT mvbot : @Camto | proposals Fri Mar 12 2021 04:17:48 GMT+0000 (Coordinated Universal Time) "accepted (3 likes)" - @nailuj

oof, rab, zab, zuuq, xuuq are built-in alternate spellings of v(-0), v(-1), v(-2), v(-3), v(-4)

[ 9:48 AM ] BOT mvbot : @quintopia | proposals Fri Mar 12 2021 04:18:13 GMT+0000 (Coordinated Universal Time) "accepted (3 likes)" - @nailuj

foo, bar, baz, quuz, quux are built-in alternate spellings of v(0), v(1), v(2), v(3), v(4)

[ 9:48 AM ] BOT mvbot : @quintopia | on-topic Fri Mar 12 2021 04:18:52 GMT+0000 (Coordinated Universal Time) "accidentally deleted, had 4 likes" - @nailuj

it was about every variable having every type and also being a collection, and you can use d(n) to get it as a number, s(n) to get it as a string, b(n) to get it as a boolean (or in all those cases, as lists as appropriate)

[ 9:53 AM ] BOT mvbot : @nailuj | proposals Fri Mar 12 2021 04:23:56 GMT+0000 (Coordinated Universal Time) "accepted (3 likes)" - @nailuj

Dynamic language

[ 9:54 AM ] BOT mvbot : @sinner | proposals Fri Mar 12 2021 04:24:46 GMT+0000 (Coordinated Universal Time) "accepted (3 likes)" - @nailuj

You can declare variables that have properties like this:

v(0) == -5 pls!
call (Prop)'v(0)'"new''2 pls!


And then get the properties:

v(0) pls!      Com@--> -5@moC
v(0).new pls! Com@--> 2@moC


To delete property, type:

call (Prop)'v(0)'"new''na pls! Com@na is a special variable that  is 0 bytes in size (N/A)@moC

[ 6:08 AM ] BOT mvbot : @quintopia | proposals Mon Mar 15 2021 00:38:55 GMT+0000 (Coordinated Universal Time) "accepted (4 likes)" - @nailuj

Every command/instruction can be optionally called by its number/opcode using syntax like DoMe<52>. Meanwhile DoMe<hot> can pop a value from hot stack and do it as an instruction (whether it is the opcode or a string representation thereof). The same works on the other stacks. Also, DoMe_til_i'm_done<hot> will continue executing instructions popped from the specified stack until the top of the stack does not contain a valid opcode/command keyword. Any time arguments are needed for a command executed from a stack, the top of the stack is popped and used in a command-specific way to specify them.

[ 6:09 AM ] BOT mvbot : @quintopia | proposals Mon Mar 15 2021 00:39:35 GMT+0000 (Coordinated Universal Time) "accepted (7 likes)" - @nailuj

function calls do not pass arguments. instead, functions are defined in such a way that they know which of the 7 variables to copy into their own scope. Instead of the 'arg0'arg1'arg2 etc., the definition header ends with a string of 7 | and _ characters. E.g. a function defined with ||_|___ would copy v(0) v(1) and v(3) from the  calling scope into the same variables in the function scope.

[ 6:09 AM ] BOT mvbot : @razetime | proposals Mon Mar 15 2021 00:39:59 GMT+0000 (Coordinated Universal Time) "accepted (6 likes)" - @nailuj

addition to ^:
If the angry command is used, the program will blue screen your PC, or kernel panic/other equivalent.

[ 6:10 AM ] BOT mvbot : @Anima Libera | proposals Mon Mar 15 2021 00:40:34 GMT+0000 (Coordinated Universal Time) "accepted (4 likes)" - @nailuj

every error produced by the interpreter/compiler is appended to the source code (in addition to being optionnaly printed)
by appended to the source code, i mean to the source file

[ 6:10 AM ] BOT mvbot : @Anima Libera | proposals Mon Mar 15 2021 00:40:52 GMT+0000 (Coordinated Universal Time) "accepted (4 likes)" - @nailuj

sus pops from the hot stack and the execution jumps to the position popped

[ 6:11 AM ] BOT mvbot : @Anima Libera | proposals Mon Mar 15 2021 00:41:13 GMT+0000 (Coordinated Universal Time) "accepted (5 likes)" - @nailuj

if the last 304 instructions executed doesn't contain at least one drink_WATEr instruction execution, then the execusion has a 3% chance of stopping due to the execution being thirsty

[ 6:11 AM ] BOT mvbot : @Anima Libera | proposals Mon Mar 15 2021 00:41:33 GMT+0000 (Coordinated Universal Time) "accepted (4 likes)" - @nailuj

www!42 pushes the next instruction's position to the cheesy stack and jumps to the line 42
42 may be replaced by any other line number

[ 6:12 AM ] BOT mvbot : @Anima Libera | proposals Mon Mar 15 2021 00:42:04 GMT+0000 (Coordinated Universal Time) "accepted (4 likes)" - @nailuj

debug=on turns off every debugging mode of the interpreter/compiler, no matter the flags and stuff

[ 6:13 AM ] BOT mvbot : @Camto | proposals Mon Mar 15 2021 00:43:17 GMT+0000 (Coordinated Universal Time) "accepted (4 likes)" - @nailuj

Names of function parameters must be ordered alphabetically. If they aren't, the compiler or interpreter prints nothing but the function name and segfaults or dereferences a null pointer.

[ 6:02 PM ] BOT mvbot : @quintopia | proposals Mon Mar 15 2021 12:32:29 GMT+0000 (Coordinated Universal Time) "Accepted (4 likes)" - @nailuj

variables in surrounding scopes can be accessed by appending an appropriate number of # to the variable. (e.g. foo## is the zeroth variable defined in the scope that contains the current scope's containing scope). the top-level (global) scope can be accessed by appending £ instead.

[ 6:02 PM ] BOT mvbot : @quintopia | proposals Mon Mar 15 2021 12:32:49 GMT+0000 (Coordinated Universal Time) "accepted (4 likes)" - @nailuj

contingent: variables in containing scopes are immutable. oof# is illegal for example.

[ 6:03 PM ] BOT mvbot : @quintopia | proposals Mon Mar 15 2021 12:33:18 GMT+0000 (Coordinated Universal Time) "accepted (5 likes)" - @nailuj

contingent: anywhere the code defining a scope ends, it may be followed by a Roman numeral in the range I to CXXVII. The bits of this number describe which of the seven variables to copy into the variables of the containing scope when the scope exits. LSB goes to v(0) etc.

[ 6:04 PM ] BOT mvbot : @quintopia | proposals Mon Mar 15 2021 12:34:02 GMT+0000 (Coordinated Universal Time) "accepted (4 likes)" - @nailuj

if a variable is not first initialized using v(<negative num>) it will contain the string "under-fined"

[ 6:04 PM ] BOT mvbot : @quintopia | proposals Mon Mar 15 2021 12:34:24 GMT+0000 (Coordinated Universal Time) "accepted (6 likes)" - @nailuj

+ is a unary operator. Interpreting its argument as an integer, it performs bitwise NOT. There is no addition (but - does do subtraction). There is no unary negation. (So -x would have to be written +x-+0.)

[ 6:05 PM ] BOT mvbot : @Anima Libera | proposals Mon Mar 15 2021 12:35:39 GMT+0000 (Coordinated Universal Time) "accepted (5 likes)" - @nailuj

if the source code doesn't contain the sad command, random ANSI escape codes are printed between prints, so that the printing location and styles are randomly changing (due to the execution being too happy) (a program is either sad or happy depending on whether the sad keyword is found in the source code or not (its position doesn't matter)) (see https://en.wikipedia.org/wiki/ANSI_escape_code)

[ 6:06 PM ] BOT mvbot : @sinner | proposals Mon Mar 15 2021 12:36:05 GMT+0000 (Coordinated Universal Time) "accepted (4 likes)" - @nailuj

waIT!<number> halts the program when it encounters line <number>, but only when number of letters in this line is even and divisible by 5

[ 6:06 PM ] BOT mvbot : @quintopia | proposals Mon Mar 15 2021 12:36:21 GMT+0000 (Coordinated Universal Time) "accepted (4 likes)" - @nailuj

Popping an empty stack yields the string "Nope!' (Pringles should not stop popping just because a stack yields "Nope!' -- it only stops if the stack is empty)

[ 6:33 AM ] BOT mvbot : @mvbot | rejected-proposals Fri Mar 19 2021 01:03:38 GMT+0000 (Coordinated Universal Time) "hehe" - @nailuj

@Anima Libera | 

proposals
Fri Mar 19 2021 01:00:00 GMT+0000 (Coordinated Universal Time)
"Up: 4 ;Down: 2" - @Itzz Me

>>> Reject this proposal

[ 7:49 PM ] BOT mvbot : @SoundOfSpouting | proposals Sat Mar 20 2021 14:19:24 GMT+0000 (Coordinated Universal Time) "Up: 5" - @Itzz Me

Language version numbering system: https://discord.com/channels/818539616318914609/818539616318914612/822543401089499166

[ 5:54 AM ] BOT mvbot : @quintopia | proposals Mon Mar 22 2021 00:24:21 GMT+0000 (Coordinated Universal Time) "Up: 5." - @Itzz Me

Strings are indexed like .idx:foo. Their corresponding lists are indexed like ;idx,foo

[ 5:56 AM ] BOT mvbot : @quintopia | proposals Mon Mar 22 2021 00:26:10 GMT+0000 (Coordinated Universal Time) "Up: 1." - @Itzz Me

All variables taken as strings have a property front_Door which contains the index of their first character. All variables taken as lists have a corresponding property portic0

[ 5:59 AM ] BOT mvbot : @Anima Libera | proposals Mon Mar 22 2021 00:29:30 GMT+0000 (Coordinated Universal Time) "Up: 3." - @Itzz Me

A line containing template <typename NAME> (with NAME being a string of some kind) makes the next 4 lines being skipped if NAME is not to be found in any of the variables or stacks of any scope

[ 6:14 AM ] BOT mvbot : @quintopia | proposals Mon Mar 22 2021 00:44:10 GMT+0000 (Coordinated Universal Time) "Up: 4, Down: 1. WE CLEARED PROPOSALS" - @Itzz Me

https://discord.com/channels/818539616318914609/818551263490474005/822275069132013589 my proposal

[ 9:11 PM ] BOT mvbot : @Itzz Me | proposals Mon Mar 22 2021 15:41:49 GMT+0000 (Coordinated Universal Time) "Up: 4" - @Itzz Me

e(text) returns True or False depending if there's "e" in the text

[ 2:15 AM ] BOT mvbot : @quintopia | proposals Mon Mar 22 2021 20:45:13 GMT+0000 (Coordinated Universal Time) "accepted (5 likes)" - @nailuj

you can open a file (or any kind of read-write IO stream) and attach it to a variable with shitposting(varnumber)=<filename>/*. Every read from v(varnumber) will read from the file (considered as a single string). Every write to it will write to the file. More accurately, these reads and writes happen to a buffered representation of the file. A matching */ will write the finalized buffer to the underlying file and close it, then undefine the variable. These "opened file" blocks can be nested. (<filename> can be <path/to/file> or <name of special IO object>. the latter can be defined in a library according to future proposals. yes the angle brackets are part of the syntax.) the name of this command can also be spelled crapposting by the especially prudish.

[ 2:15 AM ] BOT mvbot : @nailuj | proposals Mon Mar 22 2021 20:45:32 GMT+0000 (Coordinated Universal Time) "Accepted (5 likes)" - @nailuj

the above command can be spelled poopposting for children

[ 2:16 AM ] BOT mvbot : @quintopia | proposals Mon Mar 22 2021 20:46:01 GMT+0000 (Coordinated Universal Time) "accepted (6 likes)" - @nailuj

\\ is actually a command for "log the text between here and the next \\ to a specific pre-defined log file." it's for debugging. you can empty the log file with such a command if it includes the text cl anywhere in it. (be careful not to include this digraph in some text you want to log or you will silently lose all the logs that happened before.)

[ 3:57 AM ] BOT mvbot : @quintopia | proposals Mon Mar 22 2021 22:27:33 GMT+0000 (Coordinated Universal Time) "Up: 6. People like this" - @Itzz Me

the logfile is called log.champ :logchamp:

[ 3:58 AM ] BOT mvbot : @nailuj | proposals Mon Mar 22 2021 22:28:18 GMT+0000 (Coordinated Universal Time) "Up: 4, Down: 2. Controversial." - @Itzz Me

remove html from the langyages list, it is redundant with js

[ 2:23 AM ] BOT mvbot : @quintopia | proposals Fri Mar 26 2021 20:53:22 GMT+0000 (Coordinated Universal Time) "undefined" - @Itzz Me

no commands that install anything the program user might not want

[ 2:24 AM ] BOT mvbot : @aspwil | proposals Fri Mar 26 2021 20:54:39 GMT+0000 (Coordinated Universal Time) "undefined" - @Itzz Me

a command that play rick astly never gunna give you up audio, in the documents this command will be listed but never explained

[ 5:18 AM ] BOT mvbot : @quintopia | proposals Wed Mar 31 2021 23:48:40 GMT+0000 (Coordinated Universal Time) "Up: 6" - @Itzz Me

since we're using python, time to incorporate monty python refs. spam and eggs are alternative spellings of v(6) and v(7). maps and sgge are alternative spellings of v(-6) and v(-7).

[ 5:20 AM ] BOT mvbot : @SoundOfSpouting | proposals Wed Mar 31 2021 23:50:19 GMT+0000 (Coordinated Universal Time) "Up: 4, Down: 3. Controversial." - @Itzz Me

Fix typos in proposal https://discord.com/channels/818539616318914609/818542487278583838/824433080059953202 if it has passed, replacing CumFrumNum[num] with ComeFromNumber[number] and num with number.

[ 5:21 AM ] BOT mvbot : @quintopia | proposals Wed Mar 31 2021 23:51:04 GMT+0000 (Coordinated Universal Time) "Up: 4, Down: 1" - @Itzz Me

IF the top of the spicy stack is a number num AND the label CumFrumNum[num] occurs anywhere in the program, the IP is set to immediately after one such occurrence (chosen uniformly at random from all such occurrences)

[ 5:21 AM ] BOT mvbot : @quintopia | proposals Wed Mar 31 2021 23:51:39 GMT+0000 (Coordinated Universal Time) "Up: 5" - @Itzz Me

so-call-me-maybe <milliseconds,functionspec> sets a timed callback to the given function with the specified args copied from the scope where so-call-me-maybe was called.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment