Examine individual changes

Abuse Filter navigation (Home | Recent filter changes | Examine past edits | Abuse log)
Jump to navigation Jump to search

This page allows you to examine the variables generated by the Abuse Filter for an individual change.

Variables generated for this change

VariableValue
Whether or not the edit is marked as minor (no longer in use) (minor_edit)
false
Edit count of the user (user_editcount)
0
Name of the user account (user_name)
'TheLastBanana'
Age of the user account (user_age)
293
Page ID (page_id)
9696
Page namespace (page_namespace)
0
Page title (without namespace) (page_title)
'Churro'
Full page title (page_prefixedtitle)
'Churro'
Action (action)
'edit'
Edit summary/reason (summary)
'Homepage no longer exists, so I've removed it. All of its contents can be found on GitHub anyway.'
Old content model (old_content_model)
'wikitext'
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
''''Churro''' is a stack-based interpreted programming language in which the code is entirely made up of churros. It was designed by Elliot Colp in 2014, who also wrote its interpreter. A compiler, Chlang, was written by Caian Benedicto in the same year. ==Design principles== * Churros are magical and should therefore be the only syntax element. * The language must include mutable state in order to irk Calvin Beck. ==Language concepts== Churro operates on two structures: a stack and an array. Operations can only be directly performed on data in the stack. The array is used to store data which may need to be recalled later. The array is zero-indexed and all elements should be initialized to zero, though its exact size is implementation-defined. ==Syntax== The only syntax elements are churros. A churro might look like this: <code>{o}=====}</code> There are three important components to a churro: # Its orientation -- either left or right # Its filling -- either <code>o</code> (unfilled) or <code>*</code> (filled) # Its tail length A <code>{</code> always indicates the beginning of a churro. Any other characters between churros are ignored. ===Literals=== Left-facing churros, also known as "literal churros," represent data. When a literal churro is encountered, its value is pushed to the top of the stack. The tail length of the churro -- that is, the number of <code>=</code> symbols -- is its numerical value. Sign is indicated by a churro's filling, with unfilled churros (<code>o</code>) being positive and filled churros (<code>*</code>) being negative. All data is stored as integers. For example, this churro stands for 3: <code>{o}===}</code> this churro stands for -9: <code>{*}=========}</code> and this tiny one stands for 0: <code>{o}}</code> ===Operators=== Right-facing churros, also known as "operator churros," are used to manipulate data. They operate on values in the stack. The functions are: {| class="wikitable" !Churro !Operation |- | style="text-align:center" | <code>{{o}</code> | pop A; discard A |- | style="text-align:center" | <code>{={o}</code> | pop A, B; push (B + A) |- | style="text-align:center" | <code>{=={o}</code> | pop A, B; push (B - A) |- | style="text-align:center" | <code>{==={o}</code> | pop A; if A = 0, jump to churro after matching occurence of {===={o} |- | style="text-align:center" | <code>{===={o}</code> | pop A; if A != 0, jump to churro after matching occurence of {==={o} |- | style="text-align:center" | <code>{====={o}</code> | pop A, B; store B in memory location A |- | style="text-align:center" | <code>{======{o}</code> | pop A; push the value in memory location A to stack |- | style="text-align:center" | <code>{======={o}</code> | pop A; print A as an integer |- | style="text-align:center" | <code>{========{o}</code> | pop A; print A as an ASCII character |- | style="text-align:center" | <code>{========={o}</code> | read a single character from stdin and push it to the stack |- | style="text-align:center" | <code>{=========={o}</code> | exit the program |} The <code>{==={o}</code> and <code>{===={o}</code> operators are matched much like brackets in other programming languages, so they can be nested. Filled operator churros have the same behaviour as unfilled churros, but instead of popping values on the stack, they peek them. ==Style== Churros longer than a length of 10 have very little structural integrity, and so for the sake of realism, they should be avoided. Adding two smaller churros together is an acceptable solution. Churros are also generally not stacked directly end-to-end, so leave a single space between each churro. To avoid churros being cut in half (the horror!) by console displays, keep lines below 80 characters in length. In order to maintain the purity of the program's churro makeup, minimal (or no) comments are recommended. Of course, this may make code more difficult to read, so it is acceptable to distribute a "dirty" version of the code with comments and extra whitespace so long as a "pure" version with minimal whitespace is also included. ==External resources== * [https://webdocs.cs.ualberta.ca/~colp/churro/ Churro homepage] * [https://github.com/TheLastBanana/Churro/ Haskell interpreter] (official implementation) * [https://github.com/Caian/Chlang/ Chlang], a Churro frontend for LLVM [[Category:Languages]] [[Category:Thematic]] [[Category:Stack-based]] [[Category:2014]]'
New page wikitext, after the edit (new_wikitext)
''''Churro''' is a stack-based interpreted programming language in which the code is entirely made up of churros. It was designed by Elliot Colp in 2014, who also wrote its interpreter. A compiler, Chlang, was written by Caian Benedicto in the same year. ==Design principles== * Churros are magical and should therefore be the only syntax element. * The language must include mutable state in order to irk Calvin Beck. ==Language concepts== Churro operates on two structures: a stack and an array. Operations can only be directly performed on data in the stack. The array is used to store data which may need to be recalled later. The array is zero-indexed and all elements should be initialized to zero, though its exact size is implementation-defined. ==Syntax== The only syntax elements are churros. A churro might look like this: <code>{o}=====}</code> There are three important components to a churro: # Its orientation -- either left or right # Its filling -- either <code>o</code> (unfilled) or <code>*</code> (filled) # Its tail length A <code>{</code> always indicates the beginning of a churro. Any other characters between churros are ignored. ===Literals=== Left-facing churros, also known as "literal churros," represent data. When a literal churro is encountered, its value is pushed to the top of the stack. The tail length of the churro -- that is, the number of <code>=</code> symbols -- is its numerical value. Sign is indicated by a churro's filling, with unfilled churros (<code>o</code>) being positive and filled churros (<code>*</code>) being negative. All data is stored as integers. For example, this churro stands for 3: <code>{o}===}</code> this churro stands for -9: <code>{*}=========}</code> and this tiny one stands for 0: <code>{o}}</code> ===Operators=== Right-facing churros, also known as "operator churros," are used to manipulate data. They operate on values in the stack. The functions are: {| class="wikitable" !Churro !Operation |- | style="text-align:center" | <code>{{o}</code> | pop A; discard A |- | style="text-align:center" | <code>{={o}</code> | pop A, B; push (B + A) |- | style="text-align:center" | <code>{=={o}</code> | pop A, B; push (B - A) |- | style="text-align:center" | <code>{==={o}</code> | pop A; if A = 0, jump to churro after matching occurence of {===={o} |- | style="text-align:center" | <code>{===={o}</code> | pop A; if A != 0, jump to churro after matching occurence of {==={o} |- | style="text-align:center" | <code>{====={o}</code> | pop A, B; store B in memory location A |- | style="text-align:center" | <code>{======{o}</code> | pop A; push the value in memory location A to stack |- | style="text-align:center" | <code>{======={o}</code> | pop A; print A as an integer |- | style="text-align:center" | <code>{========{o}</code> | pop A; print A as an ASCII character |- | style="text-align:center" | <code>{========={o}</code> | read a single character from stdin and push it to the stack |- | style="text-align:center" | <code>{=========={o}</code> | exit the program |} The <code>{==={o}</code> and <code>{===={o}</code> operators are matched much like brackets in other programming languages, so they can be nested. Filled operator churros have the same behaviour as unfilled churros, but instead of popping values on the stack, they peek them. ==Style== Churros longer than a length of 10 have very little structural integrity, and so for the sake of realism, they should be avoided. Adding two smaller churros together is an acceptable solution. Churros are also generally not stacked directly end-to-end, so leave a single space between each churro. To avoid churros being cut in half (the horror!) by console displays, keep lines below 80 characters in length. In order to maintain the purity of the program's churro makeup, minimal (or no) comments are recommended. Of course, this may make code more difficult to read, so it is acceptable to distribute a "dirty" version of the code with comments and extra whitespace so long as a "pure" version with minimal whitespace is also included. ==External resources== * [https://github.com/TheLastBanana/Churro/ Haskell interpreter] (official implementation) * [https://github.com/Caian/Chlang/ Chlang], a Churro frontend for LLVM [[Category:Languages]] [[Category:Thematic]] [[Category:Stack-based]] [[Category:2014]]'
Unified diff of changes made by edit (edit_diff)
'@@ -96,5 +96,4 @@ ==External resources== -* [https://webdocs.cs.ualberta.ca/~colp/churro/ Churro homepage] * [https://github.com/TheLastBanana/Churro/ Haskell interpreter] (official implementation) * [https://github.com/Caian/Chlang/ Chlang], a Churro frontend for LLVM '
New page size (new_size)
4370
Old page size (old_size)
4435
Lines added in edit (added_lines)
[]
Unix timestamp of change (timestamp)
1537381813