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
Edit count of the user (user_editcount)
62
Name of the user account (user_name)
'BrainFuckGirl'
Age of the user account (user_age)
21861255
Page ID (page_id)
8305
Page namespace (page_namespace)
0
Page title (without namespace) (page_title)
'Beam'
Full page title (page_prefixedtitle)
'Beam'
Action (action)
'edit'
Edit summary/reason (summary)
'/* Example programs */ "Hello, world!" program'
Old content model (old_content_model)
'wikitext'
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
''''Beam''' is yet another two dimensional language thought of around mid-2010 by [[User:Feuermonster]] and implemented and published in 2012. * The start-up direction is right. * There is a beam which holds an 8bit unsigned value. * Also there is a store which can hold an arbitrary large positive value. If it drops below zero it's wrapped to 255. * Then there is an infinite amount of 8bit memory cells. * The implementation uses NUL (\0) if no character could be read from stdin. * Every character which is not an instruction is a NOP. == Instructions == <pre> > Set the direction to right < Set the direction to left ^ Set the direction to up v Set the direction to down + Increment the beam - Decrement the beam @ Output the beam as character : Output the beam as number / Redirect the control flow like this: | ----/ /--- | (90 degrees to the left) \ Redirect the control flow like this: | -----\ \---- | (90 degrees to the right) ! If the beam is not 0, reverse the control flow. (It bounces off the !) ? If the beam is 0, reverse the control flow. (It bounces off the ?) | Reverse the control flow if coming from a right/left-direction _ Reverse the control flow if coming from a up/down-direction H stop the program S store = beam L beam = store s memory[beam] = store g store = memory[beam] P memory[store] = beam p beam = memory[store] u If beam != store change direction to up n if beam != store change direction to down ` Decrement the store ' Increment the store ) If store != 0 change direction to left ( If store != 0 change direction to right r Read character from input </pre> It should be noted, that 'u' and 'n' perform 32bit comparison: if the store exceeds 255 the comparison beam != store is always true since beam can not exceed 255. Lines are not padded to equal length. A compliant interpreter is not allowed to do this! == Example programs == === Reverse stdin === <pre> <nowiki> '> rP n ^!p'<vn(`< ^ < >'p!`>`p@ v Hnp`< ^ < </nowiki> </pre> Painfully written by hand. A faster version (thanks to [[User:Fizzie]]): <pre> <nowiki> >'p!rP(`)n>'p!`v ^ < H(`p@p`)H H </nowiki> </pre> Fastest version in the west (also thanks to [[User:Fizzie]]): <pre> <nowiki> v (>``v ! H(p`@`p)H P H ' r ' P ! >^ </nowiki> </pre> === [[Truth-machine]] === <pre> rS>@) </pre> (Expects NUL or SOH from stdin.) Codegolfed; 5 bytes. === Hello === Prints <code>Hello!</code> <pre> '''''v >`++++++++++++++)++@v v++++++@-(++++++++++`<'''< >+@@+++@>-!'''>`++++++++++)v @+++< </pre> === Even / Odd === Reads from stdin and tests if the value (ascii value) is even or odd. If it is even, it prints a zero, else a one. <pre> rv`< :u'< >-- u: </pre> === Cat === <pre> >r@nH ^ < </pre> === Compare === Reads in two ascii characters and prints out the smaller one. <pre> rP'Pr'P'P```v < H @p'''u``p''< >p-P''p-P``pu'p@ </pre> == Turing completeness == Brainfuck programs can be translated to Beam programs. This mechanism works with the 'u' instruction and marking cells to restore the store. '''Brainfuck''' <pre> ,[>+>+<<-]++++++[>--------<-]>[>.<]>. </pre> '''Beam''' (translation with the bf2beam perl script) <pre> v > v > v > v >'''rP>`p+P'p(`)uv>'>'p?-P'''p+P''p+P````p-Pv>p++++++P>`p+P'p(`)uv>'>'p?-P'''p--------P``p-Pv>''>`p+P'p(`)uv>'>'p?-P'''p@``v>''p@H > '>'p?-P' ^ > '>'p?-P' ^ > '>'p?-P' ^ ^ < ^ < ^ < </pre> == Beam constants == Constants to set the beam to a specific value (requires store to be zero.). This list is not complete. Help me! {| class="wikitable" !Number !Code !Bytes !Cycles !Cycles / Bytes !Cycles / Number |- |24 |<code><nowiki>'''>`++++++++)</nowiki></code> |14 |34 |2.42 |1.42 |- |24 |<code><nowiki>'''''>`+++++)-</nowiki></code> |14 |42 |3 |1.75 |- |25 |<code><nowiki>'''''>`+++++)</nowiki></code> |13 |41 |3.15 |1.64 |- |25 |<code><nowiki>'''>`++++++++)+</nowiki></code> |15 |35 |2.33 |1.39 |- |26 |<code><nowiki>'''''>`+++++)+</nowiki></code> |14 |42 |3 |1.61 |- |26 |<code><nowiki>'''>`+++++++++)-</nowiki></code> |16 |38 |2.38 |1.46 |- |27 |<code><nowiki>'''>`+++++++++)</nowiki></code> |15 |37 |2.46 |1.37 |- |28 |<code><nowiki>'''''''>`++++)</nowiki></code> |14 |50 |3.57 |1.78 |- |28 |<code><nowiki>'''>`+++++++++)+</nowiki></code> |16 |38 |2.38 |1.36 |- |28 |<code><nowiki>'''''>`++++++)--</nowiki></code> |16 |48 |3 |1.71 |- |} == Implementation == * [http://mroman.ch/djang_media/public/eso/Beam.java Java interpreter] (DEADLINK) * [http://eso.mroman.ch/beam/ Javascript interpreter with 2D trace] (DEADLINK) * [http://codegolf.stackexchange.com/a/57190/42545 Online (HTML/Javascript) interpreter] == Work in progress == * Finding Beam constants. * Describing some techniques to program in Beam. * WeBeam (to program webpages). Help is always welcome. == External resources == * [http://p.zem.fi/bf2beam.pl Brainfuck to Beam translation script] [[Category:Languages]] [[Category:2012]] [[Category:Cell-based]] [[Category:Implemented]] [[Category:Turing complete]] [[Category:Two-dimensional languages]]'
New page wikitext, after the edit (new_wikitext)
''''Beam''' is yet another two dimensional language thought of around mid-2010 by [[User:Feuermonster]] and implemented and published in 2012. * The start-up direction is right. * There is a beam which holds an 8bit unsigned value. * Also there is a store which can hold an arbitrary large positive value. If it drops below zero it's wrapped to 255. * Then there is an infinite amount of 8bit memory cells. * The implementation uses NUL (\0) if no character could be read from stdin. * Every character which is not an instruction is a NOP. == Instructions == <pre> > Set the direction to right < Set the direction to left ^ Set the direction to up v Set the direction to down + Increment the beam - Decrement the beam @ Output the beam as character : Output the beam as number / Redirect the control flow like this: | ----/ /--- | (90 degrees to the left) \ Redirect the control flow like this: | -----\ \---- | (90 degrees to the right) ! If the beam is not 0, reverse the control flow. (It bounces off the !) ? If the beam is 0, reverse the control flow. (It bounces off the ?) | Reverse the control flow if coming from a right/left-direction _ Reverse the control flow if coming from a up/down-direction H stop the program S store = beam L beam = store s memory[beam] = store g store = memory[beam] P memory[store] = beam p beam = memory[store] u If beam != store change direction to up n if beam != store change direction to down ` Decrement the store ' Increment the store ) If store != 0 change direction to left ( If store != 0 change direction to right r Read character from input </pre> It should be noted, that 'u' and 'n' perform 32bit comparison: if the store exceeds 255 the comparison beam != store is always true since beam can not exceed 255. Lines are not padded to equal length. A compliant interpreter is not allowed to do this! == Example programs == === Reverse stdin === <pre> <nowiki> '> rP n ^!p'<vn(`< ^ < >'p!`>`p@ v Hnp`< ^ < </nowiki> </pre> Painfully written by hand. A faster version (thanks to [[User:Fizzie]]): <pre> <nowiki> >'p!rP(`)n>'p!`v ^ < H(`p@p`)H H </nowiki> </pre> Fastest version in the west (also thanks to [[User:Fizzie]]): <pre> <nowiki> v (>``v ! H(p`@`p)H P H ' r ' P ! >^ </nowiki> </pre> === [[Truth-machine]] === <pre> rS>@) </pre> (Expects NUL or SOH from stdin.) Codegolfed; 5 bytes. === Hello === Prints <code>Hello!</code> <pre> '''''v >`++++++++++++++)++@v v++++++@-(++++++++++`<'''< >+@@+++@>-!'''>`++++++++++)v @+++< </pre> === [[Hello, world!]] === Prints <code>Hello, world!</code> (by [[User:BrainFuckGirl|BrainFuckGirl]]) <pre> '''''>`++++++++++++++)++@'''-v v''@+++@@+++++++@(++++++++++`< >-!'>`++++++++++++++)++@-----v v------------(+++`<'S@-------< >@--------@+++@------@-------v H____@+++(++++++`<'''''!-<+@-< </pre> === Even / Odd === Reads from stdin and tests if the value (ascii value) is even or odd. If it is even, it prints a zero, else a one. <pre> rv`< :u'< >-- u: </pre> === Cat === <pre> >r@nH ^ < </pre> === Compare === Reads in two ascii characters and prints out the smaller one. <pre> rP'Pr'P'P```v < H @p'''u``p''< >p-P''p-P``pu'p@ </pre> == Turing completeness == Brainfuck programs can be translated to Beam programs. This mechanism works with the 'u' instruction and marking cells to restore the store. '''Brainfuck''' <pre> ,[>+>+<<-]++++++[>--------<-]>[>.<]>. </pre> '''Beam''' (translation with the bf2beam perl script) <pre> v > v > v > v >'''rP>`p+P'p(`)uv>'>'p?-P'''p+P''p+P````p-Pv>p++++++P>`p+P'p(`)uv>'>'p?-P'''p--------P``p-Pv>''>`p+P'p(`)uv>'>'p?-P'''p@``v>''p@H > '>'p?-P' ^ > '>'p?-P' ^ > '>'p?-P' ^ ^ < ^ < ^ < </pre> == Beam constants == Constants to set the beam to a specific value (requires store to be zero.). This list is not complete. Help me! {| class="wikitable" !Number !Code !Bytes !Cycles !Cycles / Bytes !Cycles / Number |- |24 |<code><nowiki>'''>`++++++++)</nowiki></code> |14 |34 |2.42 |1.42 |- |24 |<code><nowiki>'''''>`+++++)-</nowiki></code> |14 |42 |3 |1.75 |- |25 |<code><nowiki>'''''>`+++++)</nowiki></code> |13 |41 |3.15 |1.64 |- |25 |<code><nowiki>'''>`++++++++)+</nowiki></code> |15 |35 |2.33 |1.39 |- |26 |<code><nowiki>'''''>`+++++)+</nowiki></code> |14 |42 |3 |1.61 |- |26 |<code><nowiki>'''>`+++++++++)-</nowiki></code> |16 |38 |2.38 |1.46 |- |27 |<code><nowiki>'''>`+++++++++)</nowiki></code> |15 |37 |2.46 |1.37 |- |28 |<code><nowiki>'''''''>`++++)</nowiki></code> |14 |50 |3.57 |1.78 |- |28 |<code><nowiki>'''>`+++++++++)+</nowiki></code> |16 |38 |2.38 |1.36 |- |28 |<code><nowiki>'''''>`++++++)--</nowiki></code> |16 |48 |3 |1.71 |- |} == Implementation == * [http://mroman.ch/djang_media/public/eso/Beam.java Java interpreter] (DEADLINK) * [http://eso.mroman.ch/beam/ Javascript interpreter with 2D trace] (DEADLINK) * [http://codegolf.stackexchange.com/a/57190/42545 Online (HTML/Javascript) interpreter] == Work in progress == * Finding Beam constants. * Describing some techniques to program in Beam. * WeBeam (to program webpages). Help is always welcome. == External resources == * [http://p.zem.fi/bf2beam.pl Brainfuck to Beam translation script] [[Category:Languages]] [[Category:2012]] [[Category:Cell-based]] [[Category:Implemented]] [[Category:Turing complete]] [[Category:Two-dimensional languages]]'
Unified diff of changes made by edit (edit_diff)
'@@ -119,4 +119,16 @@ >+@@+++@>-!'''>`++++++++++)v @+++< +</pre> + +=== [[Hello, world!]] === +Prints <code>Hello, world!</code> (by [[User:BrainFuckGirl|BrainFuckGirl]]) + +<pre> +'''''>`++++++++++++++)++@'''-v +v''@+++@@+++++++@(++++++++++`< +>-!'>`++++++++++++++)++@-----v +v------------(+++`<'S@-------< +>@--------@+++@------@-------v +H____@+++(++++++`<'''''!-<+@-< </pre> '
New page size (new_size)
5813
Old page size (old_size)
5510
Lines added in edit (added_lines)
[ 0 => '</pre>', 1 => '', 2 => '=== [[Hello, world!]] ===', 3 => 'Prints <code>Hello, world!</code> (by [[User:BrainFuckGirl|BrainFuckGirl]])', 4 => '', 5 => '<pre>', 6 => ''''''>`++++++++++++++)++@'''-v', 7 => 'v''@+++@@+++++++@(++++++++++`<', 8 => '>-!'>`++++++++++++++)++@-----v', 9 => 'v------------(+++`<'S@-------<', 10 => '>@--------@+++@------@-------v', 11 => 'H____@+++(++++++`<'''''!-<+@-<' ]
Unix timestamp of change (timestamp)
'1754651394'