[Question]
  [
A lot of PPCG users helped with the creation of this challenge, both in chat and the Sandbox, specifically [Martin Ender](https://chat.stackexchange.com/transcript/240?m=43488434#43488434), [AdmBorkBork](https://chat.stackexchange.com/transcript/240?m=43717719#43717719), [Emigna](https://chat.stackexchange.com/transcript/message/43814604#43814604) and [user202729](https://chat.stackexchange.com/transcript/240?m=43915697#43915697)
Our community has found it necessary to create a set of languages designed specifically for golfing, "golfing languages" as we call them. Such languages have evolved from the once brilliant, now clunky [GolfScript](http://www.golfscript.com/golfscript/) to the sleek concise languages such as [Jelly](https://github.com/DennisMitchell/jelly) and [Husk](https://github.com/barbuz/Husk). As we can see, these languages are continually getting shorter and shorter for a set of tasks. So, as the obvious experts around here regarding golfing languages, we should design a language together to beat every other language that dares to compete. Introducing Bugle!
> 
> Bugle: From the acronym BuGoL: *Bu*ilt *Go*lfing *L*anguage.
> 
> 
> 
## How this challenge will work
In case you didn't get what I'm alluding to in the introduction, this challenge is an [answer-chaining](/questions/tagged/answer-chaining "show questions tagged 'answer-chaining'") challenge where we each contribute something to the interpreter of a new golfing language, improving its ability to compete on PPCG with each answer.
I will post the first answer consisting of the basis of the language spec/interpreter, and all other answers will continue from that. New submissions will provide the following things:
* A change to the language's spec
* An up-to-date interpreter, meeting *exactly* what is laid out in the changes
* The language's updated score (more details in a bit)
You may change the spec in one of three ways:
* You may add a single command
* You may add two new commands
* You may edit the behaviour of one existing command
Regarding the new interpreter, you *must* use the latest version, written in Python. It does not have to be golfed. Every previously added command must be testable with the latest interpreter, as well as the newest command(s) (the one you add). You must also not use offensive language at any point when updating the interpreter, such as in comments or string literals etc.
**The added command(s) may do anything you wish**. The only requirements are:
* It doesn't produce offensive output
* It isn't the same as another command
* It doesn't prevent one of the sample challenges from being completed
Aside from these, it can be as specific or as general as you want. It can also be any *character* you want. If you aren't sure if your addition constitutes a 'new command', feel free to ask in the comments.
## The language's score
You may have noticed that you have to include the language's score in all new submissions. Its score is what prevents this challenge going forever, and is defined as follows:
> 
> The current score is the sum of the byte counts it takes for the language to complete the below 20 tasks
> 
> 
> 
For each of the tasks, [Standard I/O rules apply](https://codegolf.meta.stackexchange.com/questions/2447/default-for-code-golf-input-output-methods), as do the [standard loopholes](https://codegolf.meta.stackexchange.com/questions/1061/loopholes-that-are-forbidden-by-default).
### The 20 tasks:
1. ["Hello, World!"](https://codegolf.stackexchange.com/questions/55422/hello-world) – Output the string `Hello, World!`
2. [1, 2, Fizz, 4, Buzz](https://codegolf.stackexchange.com/questions/58615/1-2-fizz-4-buzz) – Output each integer from 1 to 100 (inclusive) on a separate line, with multiples of 3 being replaced by `Fizz`, multiples of 5 being replaced by `Buzz` and multiples of both by `FizzBuzz`
3. [Produce the number 2014 without any numbers in your source code](https://codegolf.stackexchange.com/questions/17005/produce-the-number-2014-without-any-numbers-in-your-source-code) – Output the number **2014** without using any of the characters `0123456789` in the source code, without accessing external variables or random seeds
4. [Obfuscated Hello World](https://codegolf.stackexchange.com/questions/307/obfuscated-hello-world) – Output the string `Hello, World!`, without using any of characters in at least two of the following sets: `hlwd`, `eor01` and `27` (case-insensitive)
5. [Sing Happy Birthday to your favourite programming language](https://codegolf.stackexchange.com/questions/39752/sing-happy-birthday-to-your-favourite-programming-language) – In a language of your choice, output the following:
```
Happy Birthday to You
Happy Birthday to You
Happy Birthday Dear [the name of your favourite programming language]
Happy Birthday to You
```
6. [We're no strangers to code golf, you know the rules, and so do I](https://codegolf.stackexchange.com/questions/6043/were-no-strangers-to-code-golf-you-know-the-rules-and-so-do-i) – Output the full [lyrics of "Never Gonna Give You Up"](https://pastebin.com/wwvdjvEj)
7. [Output the sign](https://codegolf.stackexchange.com/questions/103822/output-the-sign) – Given a number, print **-1** if it is negative, **0** if it is **0** or **1** if it is positive
8. [Collatz Conjecture (OEIS A006577)](https://codegolf.stackexchange.com/questions/12177/collatz-conjecture-oeis-a006577) – Starting from an integer, divide it by 2 if it's even, or multiply it by 3 and add 1 if it's odd, and repeat the process until you reach 1. The output should be the number of iterations it takes you to reach 1.
9. [An Array of Challenges #1: Alternating Arrays](https://codegolf.stackexchange.com/questions/103571/an-array-of-challenges-1-alternating-arrays) – Given an array of integers, check whether all even-indexed items are equal, and all odd-indexed items are equal, and output a truthy or falsy value accordingly
10. [Am I an insignificant array?](https://codegolf.stackexchange.com/questions/143278/am-i-an-insignificant-array) – Given an array of integers, check whether the absolute differences between consecutive elements are all smaller than or equal to 1, and output a truthy or falsy value accordingly
11. [Is this number a prime?](https://codegolf.stackexchange.com/questions/57617/is-this-number-a-prime) – Given a positive integer, write a full program to check whether it is prime, and output a truthy or falsy value accordingly
12. [I'm a palindrome. Are you?](https://codegolf.stackexchange.com/questions/110582/im-a-palindrome-are-you) – Given a string, check whether it is palindrome, while your program / function is palindrome too, and output two distinct and consistent values accordingly
13. [Sum the numbers on standard in](https://codegolf.stackexchange.com/questions/113674/sum-the-numbers-on-standard-in) - Take a series of numbers in from STDIN and output their sum.
14. [Find the Factorial](https://codegolf.stackexchange.com/questions/607/find-the-factorial) - Given an integer `n`, output the product of all integers between `1` and `n` inclusive.
15. [Shortest code to produce infinite output](https://codegolf.stackexchange.com/q/13152/66833) - Without any input, produce infinite output, that will, theoretically, never stop outputting.
16. [Bake a slice of Pi](https://codegolf.stackexchange.com/questions/93615/bake-a-slice-of-pi) - Output this exact text:
```
()()()()()()
|\3.1415926|
|:\53589793|
\::\2384626|
 \::\433832|
  \::\79502|
   \::\8841|
    \::\971|
     \::\69|
      \::\3|
       \__\|
```
17. [Find the smallest number that doesn't divide N](https://codegolf.stackexchange.com/questions/105412/find-the-smallest-number-that-doesnt-divide-n) - Given a positive integer N, output the smallest positive integer that does not divide N.
18. [Is this even or odd?](https://codegolf.stackexchange.com/questions/113448/is-this-even-or-odd) - Given an integer N, output its parity as truthy/falsy values.
19. [Output with the same length as the code](https://codegolf.stackexchange.com/questions/121056/output-with-the-same-length-as-the-code) - Write the shortest code whose output has the same length as the code, where the output is not the same as the code.
20. [Golf you a quine for great good!](https://codegolf.stackexchange.com/questions/69/golf-you-a-quine-for-great-good) - Write the shortest [quine](https://en.wikipedia.org/wiki/Quine_(computing)) in your language.
In order to be valid, a new submission must have golfed submissions for at least **2** of the problems, by at least **1 byte** for each. You may increase the lengths of other submissions, but the total score must decrease by **at least 2** per answer. Also, please consider including a link to the updated programs. The updated solutions *must not work* when run with a previous version of the interpreter.
## How to get cookies
I have a list of 5 challenges, which aren't compulsory to attempt, and have no bearing on your score, but are simply additional challenges to test if Bugle is capable enough. Feel free to include a solution to any number of these in your answer:
1. [Create a Self interpreter](https://codegolf.stackexchange.com/q/585/66833)
2. [Create a payload capable quine](https://codegolf.meta.stackexchange.com/a/4924/66833)
3. [Covfefify a string](https://codegolf.stackexchange.com/questions/123685/covfefify-a-string)
4. [Hyperprogramming: N+N, N×N, N^N all in one](https://codegolf.stackexchange.com/questions/92944/hyperprogramming-nn-n%C3%97n-nn-all-in-one)
5. ["KNOT" or "NOT"?](https://codegolf.stackexchange.com/questions/30292/knot-or-not)
Descriptions not included as they aren't required for everyone to be able to compete in the challenge.
## How to win
Once the minimum score ([we believe](https://chat.stackexchange.com/transcript/message/43717558#43717558) to be 16, although any attempts to golf that down are much welcomed) has been reached, obviously the chain has ended as solutions cannot get a better score. Once 16 has been reached, the challenge stays alive for **1 month** afterwards, to give anyone a chance to golf the solutions any more. After this month has passed, the challenge is over.
Once the challenge is over, I will be migrating the interpreter onto a GitHub repository, and going through the usual machinations of releasing a stable language. You may also begin to post solutions to challenges on PPCG at this time, using the said language, but please try not to flood the front page with answers. Instead, spread them out over a period of time.
## Formatting
In order to make information easier to find in your answer, please format it as follows:
```
# [N]. [Score]
[New command + description]
[Interpreter/link to interpreter]
[Link to programs]
```
Where `[N]` is your answer number (1 for the first, 2 for the second etc.)
## Rules
* You must wait 3 hours between posting answers
* You may not post twice in a row, unless no answer has been posted for 10 days (exactly 240 hours)
* You may not remove previous commands.
* Your interpreter doesn't have to be golfed, and its byte count is completely irrelevant here.
* If someone suggests a golf to the programs while your answer is the latest, you *must* edit in the golfs, and update your score.
	+ You may also do this when your answer is in the middle of the chain, so long as your score doesn't become lower than any later answers.
* Please refrain from answering any existing PPCG challenges using this language, at least until the challenge is over
* The interpreter is written in Python 3, and should continue that way throughout the entire chain. Changing the language is forbidden.
* Again, in order to be valid, a new submission must have golfed submissions for at least **2** of the problems, by at least **1** byte for each.
Let's get started!
  
[Answer]
# 2. Score: ~~2938~~ 2583
The modified interpreter is [here on TIO](https://tio.run/##7Txpc9tGlh@3ir8CuRakTTFSjtlZJsocuTa7k3jWTvYYhcOBSEhCTAIcELTFeL0l0hd95LLj@Ep8JD4Sx3Fsx4ckH6kSSCXOBwj6CcQfyb6@gMZFgfaktmprVWWT6O539HuvX7/X/cBa05jR1Kd/Vqo1TTcESZ@uSXpdTtHnklapyCVD0dQ6a9Jqsi4Zmu4@uz31pvu1oSolrSyXJUNKpR4TxsfHhRcBhyGpRh0/PZZKKeqUMC5MVTTJSIvwIGZSqqR6TfAATSmEp1iTpmUBukRRNOfMltk2d5q7zR3mru5cd@fbxttqd3f3gLmn@775odkx95r7zP3dg91Puse7R80D5nvm@@YH3Yvdy92F7l1AweFcj3EKjzz62ONP/L2Yzqxbnx3JPTk69tTTzzz7q3/49T/mn3t@/IXf/PZ3v3/xpZdfefWfXvvnf/nD629s@OO/btz05lv/9u//8Z9/mni78OfiX6TJUlmemp5R3tlcqapa7a963Whs2TrbfHfbf23/76WbUUR7rd6O3h7zo94@86B5yPzY/KR30DxsHu0d6H3cO9o73jvdO9s7bx4zj5snzE97l3sXe9fNz3o3e/O9hd7d3m3ztHnG/Nw8a543vzDPdVvdXd093ffMC90PzCvml@ZX5kXz6@6h7pHuie4x85L5jXnZ/Lb7dffb7mL3Xq/d29nrmFd7@81r5nfmdfNm75A533vPvNE73Dtmnuqd6J3pnetdMBfMRfO2eaf3be/r3g3zbu@W@X1vsXevd8c5si9qUtZH1m7roHXI@tg6bHWsT6wj1l7rqHXM2mcdt05Yn1qfWSetU9YB67R1xvrCOmuds963zlsXrC@tr6wP/g6hDOO8al2yrlnfWdetG9Y31k3rlnXZmrcWrG@tD61F67Z1x7pr3bO@XzmwMreyY6W9snNl18p71pWV3St7Vjore1fej@L0h@v9@Sv9@Xv9hY/7i@0fbvTnr/bnv@8vHO4v7ujPt/vzJ7un@/Of9xfmfrzcX/ikv3C6v3Cxv7ivPw/dp7pn@vNf9BdaP37bXzjSXzjTX/i6v7h/6UK33T3ZvdR7v3epe727o3uq@03vg9433RtLF5cWnbkFZ24xipfl1vKe5X3LHy0fWj7qXL28/Nny2eVLy9d@PHv/0HLn/pHlg/dP3z@/fOz@1fvXls/9dPr@nZ/ay9/8tP/Hc0tfLV3uXv3xVhRSe6@9zz5sn7Y/t4/YX9hH7ZP2KftL@0P7jP2xfdY@ZJ@zO/Zx@4R9wd5v77I/sM/bB@2P7M/sT@22/cnqsdXj9o3VudW2fWt1hz1v37O/X@3YV1Zb9vXVnfZ3q7tWj9qL9u3VPasnVg@vnlrdbV@zr9p37TurB@2b5knzXhRPztxpp9N2OrudvR1nL3w/7nQ6Tmev0zngdPY7na@czsWlS07ngtP50tl3eOms0767dG7pi6XPnfYlp/2VM3dl6fulM05rj9PqOHN3nNZeZ@6uM3/UmTu/dMWZ@9yZ@8yZ@9SZO@nMHXPmjjp7zy59vXRr6baz91z/@h6nc3LpvHnEaV1ZWli6tvSd07rutG44rZtO65bTmndaC05r0WnddlqA@a7TumfectpzTrvltNtOe4fT3um0dznt3U57j9PuOO29Tnuf097vtA847fecNrYz6u5el6ua3hSqIICK6/JKFaleF15HbfmUAH/gNASlXjSkmpyuy5WpDGlGf7psNHQVehXsN0tkQFZ4E8aCW@Sgobu0OSn4JjTYDz@tK@Wk4K/CWD@0Lk8rdUPWk2LYSMf7sZTlvzYSi@AlNJiDLzV0XVaN4hapEoFEUuqy8IZmvFatVeQqjJPLL@s6bGAufFXaLBdVpSKVKQGMKBkOolIs1TRWbMbTbLGoqIpRLFKs6zDaOocXteew@mBvq4BY0nSIO8LFVWvUZ2LxTGk64VlQVPKl7nX6CeWkWk1Wy4QQJ8OaVqPoFbUszwI/I2McBUNv@jFS3XCIEQYM63Evz5bkmhEJOMqRluXND0d7gsA9IVRkNe01ZwpDcjLYkDiqaK6ZIQyIACEVBuW@VVcMGZawrqjTPHA9EpqpPsXZmC7XdGpjYW5FYpnbtmfEHFhJFQIrTj48GmAhFgv0xYEB9/FwCvMLEYDTsgHdVXd1ENOJFjen5IKP5ygcMdLncYCF4THeMiPLGPnWtVZxXXlXBngIWLOgPKkG39/UI8iRYejD30Fh0Ie/A20C0DExWvC3szUx6jYrU4SLRzAbESvdQyWsIyysaS8Ip8d3BGJmUFhGEwJsuEIhI/odFfZFiipVUKhOBoo@J6Vg5SAvJauNKkokyDLDHGf8BLdgNMj04FvG1wXMKohJTz5@UI8PFHZsE4X1GNt6Qdwu@gbC3iwPAAWgVDROQUyFG3l5UHHhzjWX2ZrChwGua4sQFfaSMuxNIE8keqKebduJlsSYCaKILNw1pJYSaGsYrQ2lvcFaXFObA7Ua0COTLnOiGGYiPzJWCM81gYWxxTQR1FB4uKurCT9zD6KoNZSUVEGJlROvmIFKiVUIkwX@zKFNE7ZhRLuw9sJLuFEZXnj925qODjuMphcfyJXKoLAAAU940isEt3kXPmaPCsK7@9RQ4QK2DG4n9NsHGZ7llBwwlK0zSkWmkdgL40G/4zHKIsnRTPQGNBE3h6q2RS7qyvSMEZQlt9@B9sei/eMj0f7R3VzDBsehfWLcwzRg0REZcHBhQURTCQjGP@eKPDVoyiMPPGVBUss8pueF0YFS4IQgjHBEiTAAs6oZQ2InKdJraADJjGK9YljabCprMY@FC7kgrMn0aFYYzQye44ME9miFDhvXc2ubRfcknETJ8lrh5CyYFQsnm9z3WS62hJ4BkSbFgD78HRRdM9TBcM@Gg1BGqBnumg0HogQkph0dK6AgNBDO1jRFRa6YuCZXS9QO8GRizL0Z18ecXhF5Ol1Sp@U0GhsTqbjMsXVKwmREOZNg604EHmnjvyD/SRgPUBgbHU4@Y6MJsk4usAx5MmKnAzxZM26APwzCIRP8e1sVnP2X8b9C8qg@NuitKCreKd3p59cMFiHyQLEUgswIb8cGoPgvBwKrSCU5LWbFLPAwBMDEsAAFCgCBERHUgAxgAs2CRLNjKJwNRFPxzjqhthD6tIiUJIIRwdJPu/soEjKyXWh/5slnM5jfSF7/z2onXjPuFIaQ3f@vguHlvPYKCMUvQ2X2kq5LTXa4W5Vq6YpUnSxLgpT3mgAwK0iZTNaTesZz6FVptqhrWyF4VKeNGUAFDQSTrGYJ/kwm4hjGSwIA2p8CEKCoiBfZFwzPQBDmpxsR8Glb2QYhjor@DQgT8OJ/GJryMVeTyu5E@MmAHSO@JcQuYRKUMZYaYLtoOJ0fBsiHcmSZHNjjjU/bmo/IUUn/OPuW099pgGaAx0z84qRjY06HeHvjzQWZ1vMvoIMZ/L//SHaWqosLqoY9acUJ8VRFMgzeT2RQqPzAOS32NBxPhQmO26Ez3MHYfvF8d3aYhDfEK8t@Qx2DUuHwjAfPlcbHkXliMHaOSlkGJ9ezA7Lr2AAt8aTjo4XZAZn5rD81x4lMwsR5dkDmzE3Hy2BnY3LMmCnGJptxGdEACbiUOW7WlgonFEjVpck67ywy4cw9ipabzQ9JD/levyLK2lY1UhHNAXbVXCvwnx2UGMWkIy7gg@ZsSay2OUBeTb/VNsNW26gNEtXIGqLyrKSZzGZnE9lscxibbUbYbAKZcCLhbbY50GabMTY7JD2fzf7vHPuwCgdy9INuJY348x/myt/Q1BAF1hfYJ9a68nXph259g5fPCW99g2CJxRo8@E0k18CsiUxxyQcTKFeVmMOFIz7xxgkHHWvVGxD8pDM5d1Rm4tl8ISRBTA2lBTAq5SvDWENiYfS/QikFEQG6wQceQtxTp5RQvgOrIUhdgr/ogTuUXav@IZmCYipIkoZqaxeq@AolcIFQGcShGM00zw9ln5oJGgZOV69oiHl0118sVVGWwWCzAjo@DjUi/xlsTAXu6shyCoFi5YVapUqFtnFL2it1UlWwkCp3Jkz9LQNT6tj1IdhIbdFxFEU471OmSM1Zzi0My0SbCxNRIky4QC0aEZNqIjy41CwaD1NEIjxu0Vk0Ll5lsfjoWFeLbCBvXFhdrKTvlYZKli0r50MKnYS8Tm8WWVU0Mb2soNUoZ7Q2Clk0qrByK6VQtu89oPQMiJA6MuFFrVqFPRDoMCpSmRo1xRpLlTznYDxdOvXGpKFLJWMocACi4NVGxVBqleZQ4ABEwcvKFlgZQwEbekMGMEZfKzcq2nDUNXfuW6Wa77CDnEuMPFXIsq9jKA9zv2e9EQSDLoNLqfsnAHY4I9Uhx9aZOlH9GuhTZDm6yHtMT/@cvifyXumAP/wig1hNIPdEQAhbkMSXG6BTfm6GZuDDERJUBk4@AmcjZOw6/zEGW8@oj5BhJwk8GdTm3eqALIxmjZ0oocgVnWoFUnNDrsadzyBk68ddQmholFBQP9t2CCmeY9RLFY4PQPAIcPe6UmVM04MjyrVvFwqwBTMiXZCPIAwCjMXgEVUZUTshO/CjBSJYZwEWfnEe@CMn3mx0UK3hN2bJNTIvdJiMaCtFtHGmLUFQlhUmqRdDlV/Ck/j6M8KXKWpJx1ZHYme8f@BjKmrH7JkPsL1G9IiCfOZg5IdGNuIim5aN0ozkbiogRjTrZh0WYFlRc7oMocVYhhk@dIcCQPjgNVCa0XEVAEWuqLWGwbD74jjcY8g4kiCDUlFVqyw@Fb2gwoeG9stgDGmGciAmNohtcRuoE/Vtcfh8rFjRQPGonp8LtkkPF9NkhUZdLnPuj5ytkX3bH9YGdm48BE8fXGgN2MO0sgKPNhU6j6fT4PigNjaFgh8DW0aQaegbxHG9VlFAJDrwosqzRhGnmJQZyKnF7dxZN6DCAX1ZnsgzuIIvr3b7WTeXbbgBzZCCAaoxcgln8mFozFVCuTJRee9w4cUsgC1sbtRcI6midx0UGa3xbcQDiY@JeQEdQeC3FUhALT5O28grCLTxVdqIXyygbS/RNlLnTxs3ocYx7v2BLCVlzqGep/y0zBYdTu9bUKlLntT3oq/@0l0XqJ0M6BUJZJhxGfjhOgJ7xp1DansqNeXFiq5M1sMwN0XxZz1cvgKhmz8B4dOMUCef0/j8qn8Yn@XEDHOnM5KITRZXxvMaPYJj2O@7YxmOG@Yy/EQihkkkGc9usN9Fn0@EnpkMaspHRH04RszEk6fwuCkv8OcCafyAwtNMBHfPJeJuE9u64xnAiy08hNMXZRG15PH//KY6molVIIXDt8lCcDMejZrU87GT4thB6zLnXg/EUkeLMmqYS2z8b6JfFBXh2lkuqUvAEzpQj@DpheEEgO97ElALjHPJ/ebhROCFNg9m4LHwSY1P0zESErxlHtASY5G4YvrDw4kJXyx6Cd0DCgthIYeeUSxuiGXRO5eiyHEEkIdcEhWWAGZaGR4ZkkTS2phIHDSFjoD/099u4b0gRPqRP8dSiFwejVoEjpkEEsUyjIDVHkobKHtIrg09mTZwCjic4dG0scw2iHQk/XqysGGrNGAP8ve6qJ258w9nKuuivbIXQh5JFkLQw7AH8y/42XeDH8nKrUSskIO1wS7fV0/gJwURqualem6EOgG0vWyPRsXboJHPpwg4Tb7BPNOTTUMmx/5uloV//MGr1ClpKnh4UDMaygJoL4flCjjwAF/9Rgg7TZ18OP1JTzy54IjIU2YCNS6Mzk5NDUaMsgffANy@flzwmKavpq4XcGHZWCr@HodJbT3JGPFr8xMI0RpvseLC@7fID268hHHgu560@Ja6WYXwgjCFDS7PFx2hZlo5lvKdh2M2iIa5DJhMB59a60ZWQNskVQj6AY2N9PBwRhbqVXBuMHt6hqVNCfS1YMgISjMwRDLo8RGWD8aXpzUxSl2YlCroVe8yvgVO80IsIKVgusQyUbki3lKxceBLa0SAUStrcl0VDRAa5Is5QWQ1ye6dMSJM7bWGK@tGOb6KyPOGTZWvFXreRx6zSzABYzwS95FN45FxXnzswj04U/FRMXA35mMMX5B7Lb5660Bf@HLfRwuWm@sMcpvlZj0dURlOZuar74h83y1yJgUxDiGuguCOwUJFJKEjCTSEnoKjX6rhT3cMbbOMM252Ou0rdShpVVro5@k0Ttek3cMUo3uONqYASmXnPXx5HPNYuHtoxQakO1C3nhRYuEjNM1w/wc0w5a/GiENOOhhi10fl6AkZsuhMABdqzCl18CkKeAUI1GAtuGIoBsSAGRfI2vDKeIuojHckUGAaYyhramiApiJehkSiDs4guh46oqTHty3osrQ5WlHY3QONVDTK0BT92sVPEXebrvDXXtzklDt01OluW1m0fDMDeHDRTyCChbQnVAQu5BGFQiZKf@PueXn04aWfDjawVKTjCcjqMRpGE/iM/3YLNbGLiMBRM/nJFnJxT45G/bf4rn/hPA/ZiZAIJiu@kAAUgDHAlua/zKd4vRs0Sjc00OXHLejhCro4kv7wBqFnIiMYMv5Iy9iMvCidTN7voWDnRkjTMCZgJtBC0bFDY7@xcT/SAkOz@B4weJKNwXO@OhFEKICJ8icO/uUdMcQeOeVOcz89lsNBpFLCVDIRvAAImssEgiY/HoKnVkjFvLhIuAs6NIQeFSUipkdEHAiglrF8AY1UphV0sBEpCq7eBt/ZhPmMFA07b49cz5KOy1BgTBFdzaK0hQ5H04yZmk8kDDS9boLyGcg/g6@SYZKZwEtoUXYYtZcxQw47VrpQsIbG8mEPHbXqBsrNPZSngsOqiqbvDsVCC08g7KzclIJ3NwSOuBt5Vi41DOQ2wO@oBi5JNwBkus4XCeFySNKco6bMBRgUFGdWuXcgs0tjp4sVwtw9G5Sj6ZnYMKZGfi1mBG5LcDfvyBoEjgzFwVo4V8J7z3AnN4vgCyTEN5PNmQJmhSkF65Fetso6@nkoBZXbqVJVLhZJvFCsSopaRGEDvWonP1ao4xIO8j33O326gcK8P@Ie9iM96JpbrMMmJRdRfQl3f4pO/Ejc5aJD1TPFasNogDdsFiHnqjTqyhZ0Zaw12N03BcNDJUoyLY5M4WBlBM0Gvs3IFXRdJG6qgbuYQhdkKPnBwhcmZQHdJwtTulYF9iiEhI0OMTOQTImQgVzf/YJevxqGJMrUSuw6j8DyxP0CDtJvELLUPjmyb0Eqis0NEnjoQhHmFC5egIQwYnqxBCqEADEdDv@GhlFrGJh5@j4UpJfoCduPoQmb3nzp5Y0bh5lMTdemdakqDuYIvm0BrCp84tW3TqRomZn7DAh/IOg6M0B@QSBeuRtyBc2ihl86oQMoS@SSFlHTJ2H5SnXBDxlYqqiT1ChQmrS2miIFG4lc4fioIoI2cxupCAdBX/bf4B40YDcM4p@CSIw6OtyEzYOhiPd/qZ/hb6Tx80jl55HSz4@PTYytH6vnn64/sW37o@@@q7zyqAZ/9edG64X8s7Sx8Xuvsb4tv2F7YWxUy4@Njo4U/gc "Python 3 – Try It Online").
String literal is the most obvious addition to the language, mainly to combat [kolmogorov-complexity](/questions/tagged/kolmogorov-complexity "show questions tagged 'kolmogorov-complexity'") challenges.
## Solutions
### 1. ["Hello, World!"](https://codegolf.stackexchange.com/questions/55422/hello-world) - 20 bytes (-28)
```
#"Hello, World!"[o>]
```
Any [kolmogorov-complexity](/questions/tagged/kolmogorov-complexity "show questions tagged 'kolmogorov-complexity'") challenge can be completed using the structure `#"<string>"[o>]` which outputs the given string until the 0 after the string is reached.
### 2. [1, 2, Fizz, 4, Buzz](https://codegolf.stackexchange.com/questions/58615/1-2-fizz-4-buzz) - ~~419~~ 64 bytes (-1332)
```
$1[1+1s:3s%{}"zziF"oooos;0s]:5s%{}"zzuB"oooos;0s]s{:O}]10o:100-]
```
Thanks to @user202729 for awesome golfing on this.
### 3. [Produce the number 2014 without any numbers in your source code](https://codegolf.stackexchange.com/questions/17005/produce-the-number-2014-without-any-numbers-in-your-source-code) - 9 bytes (-4)
```
#"ĒĎ"[O>]
```
Uses the two chars 20 and 14 in Bugle codepoints.
### 4. [Obfuscated Hello World](https://codegolf.stackexchange.com/questions/307/obfuscated-hello-world) - 19 bytes (-153)
```
#"Ifmmp!Xpsme"[-o>]
```
Meets rules #1 (no `HLWDhlwd`) and #3 (no `27`).
### 5. [Sing Happy Birthday to your favourite programming language](https://codegolf.stackexchange.com/questions/39752/sing-happy-birthday-to-your-favourite-programming-language) - 98 bytes (-230)
```
#"Happy Birthday to You
Happy Birthday to You
Happy Birthday Dear Bugle
Happy Birthday to You"[o>]
```
### 6. [We're no strangers to code golf, you know the rules, and so do I](https://codegolf.stackexchange.com/questions/6043/were-no-strangers-to-code-golf-you-know-the-rules-and-so-do-i) - 1887 bytes (-5006)
```
#"We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy
I just wanna tell you how I'm feeling
Gotta make you understand
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
We've known each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it
And if you ask me how I'm feeling
Don't tell me you're too blind to see
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
(Ooh, give you up)
(Ooh, give you up)
(Ooh)
Never gonna give, never gonna give
(Give you up)
(Ooh)
Never gonna give, never gonna give
(Give you up)
We've know each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it
I just wanna tell you how I'm feeling
Gotta make you understand
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you"[o>]
```
### 16. [Bake a slice of Pi](https://codegolf.stackexchange.com/questions/93615/bake-a-slice-of-pi) - 149 bytes (-290)
```
#"()()()()()()
|\3.1415926|
|:\53589793|
\::\2384626|
 \::\433832|
  \::\79502|
   \::\8841|
    \::\971|
     \::\69|
      \::\3|
       \__\|"[o>]
```
### 20. [Golf you a quine for great good!](https://codegolf.stackexchange.com/questions/69/golf-you-a-quine-for-great-good) - 62 bytes (-12)
```
#"[>]<o-o+[<]>[o>]<-o;<[<]>[o>]#"[>]<o-o+[<]>[o>]<-o;<[<]>[o>]
```
---
## Added Language Feature
* `"..."`: String literal.
	+ Stack / Deque: Push the Bugle codepoints of each char to the top / front of the stack / deque.
	+ Tape / Grid: Write the Bugle codepoints of each char onto the tape / grid to the right, starting from the current cell. Does not move the cursor.
	+ `\n` is handled just like other chars.
	+ There is no escaped character for now, so you can't write `"` (34) to the memory using this command. It's not too big of a problem, at least for now, since all of the [kolmogorov-complexity](/questions/tagged/kolmogorov-complexity "show questions tagged 'kolmogorov-complexity'") challenges listed here don't have `"` in the output.
---
Any further golfing is always welcome, especially for "Never gonna give you up" and the quine. Specifically, the above quine is very first nontrivial quine I ever made, so I strongly believe someone can come up with a shorter one.
[Answer]
# 3. Score: ~~2938~~ ~~2583~~ 2532 (-51)
The new interpreter is [here](https://tio.run/##7Txpc9tGlh@3ir8CuRakTTFSrp3lRJmZzbXZnSSzdrLHKBouRIISYhLkgKBNjtdbIn1RtnPZcXwlPhIfieM4tuNDko9UEaQS5wME/QTij2RfX0DjokB7Ulu1taqyCXb3O/q916/f635gtanPVdSnf1bK1YqmC5I2W5W0mpyg3/OVUknO60pFrbGmSlXWJL2iOd@dnlrTeayrSr5SkAuSLiUSjwmTk5PCi4BDl1S9hr89lkgoalGYFIqliqQnRfgiphKqpLpN8AWaEghPrirNygJ0iaJozBsto23sMvYYO43dvfnernf0d9Tent4BY2/vfeNDo2MsGPuM/b2DvU96x3tHjQPGe8b7xge9i73LvaXeXUDB4dyIcQqPPPrY40/8rZhMbdiYHss8OT7x1NPPPPvc3/3q77O/fn7yhd/89nf/8OJLL7/y6j@@9k///PvX33jzD/@yafNbb//rv/37f/xx6p3pP@X@U5rJF@Ti7Jzy7pZSWa1U/6zV9PrWbY3mX7b/147/7t4MI9pv9Xf29xof9fcZB41DxsfGJ/2DxmHjaP9A/@P@0f7x/un@2f5545hx3DhhfNq/3L/Yv2581r/ZX@wv9e/2bxunjTPG58ZZ47zxhXGu1@rt7u3tvWdc6H1gXDG@NL4yLhpf9w71jvRO9I4Zl4xvjMvGt72ve9/2lnv3@u3@rn7HuNrfb1wzvjOuGzf7h4zF/nvGjf7h/jHjVP9E/0z/XP@CsWQsG7eNO/1v@1/3bxh3@7eM7/vL/Xv9O/aRfWGTMj8y95gHzUPmx@Zhs2N@Yh4xF8yj5jFzn3ncPGF@an5mnjRPmQfM0@YZ8wvzrHnOfN88b14wvzS/Mj/4G4QyiPOqecm8Zn5nXjdvmN@YN81b5mVz0VwyvzU/NJfN2@Yd8655z/x@9cDq/OrO1fbqrtXdq@@ZV1b3rO5d7awurL4fxukP1weLVwaL9wZLHw@W2z/cGCxeHSx@P1g6PFjeOVhsDxZP9k4PFj8fLM3/eHmw9Mlg6fRg6eJged9gEbpP9c4MFr8YLLV@/HawdGSwdGaw9PVgeX/3Qq/dO9m71H@/f6l3vbezd6r3Tf@D/je9G92L3WV7fsmeXw7jZaW1sndl38pHK4dWjtpXL698tnJ25dLKtR/P3j@00rl/ZOXg/dP3z68cu3/1/rWVcz@dvn/np/bKNz/t//Fc96vu5d7VH2@FIbUWrH3WYeu09bl1xPrCOmqdtE5ZX1ofWmesj62z1iHrnNWxjlsnrAvWfmu39YF13jpofWR9Zn1qta1P1o6tHbdurM2vta1bazutReue9f1ax7qy1rKur@2yvlvbvXbUWrZur@1dO7F2eO3U2h7rmnXVumvdWTto3TROGvfCeLLnT9udtt3ZYy907AV4Pm53OnZnwe4csDv77c5Xdudi95LduWB3vrT3He6etdt3u@e6X3Q/t9uX7PZX9vyV7vfdM3Zrr93q2PN37NaCPX/XXjxqz5/vXrHnP7fnP7PnP7XnT9rzx@z5o/bC2e7X3Vvd2/bCucH1vXbnZPe8ccRuXekuda91v7Nb1@3WDbt1027dsluLdmvJbi3brdt2CzDftVv3jFt2e95ut@x2227vtNu77PZuu73Hbu@12x27vWC399nt/Xb7gN1@z25jO6Pu7nW5XNGaQhkEUHJcXr4k1WrC66gtmxDgD5yGoNRyulSVkzW5VEyRZvSnyXpdU6FXwX4zTwakhbdgLLhFDhq681vigm9Gg73ws5pSiAv@Koz1QmvyrFLTZS0uhk10vBdLQf5zPbYIXkKDOfh8XdNkVc9tlUohSCSlJgtvVPTXytWSXIZxcuFlTYMNzIEvS1vknKqUpAIlgBHFw0FUiqWaxIpNuZrN5RRV0XM5inUDRlvj8KL2DFYf7G0lEEuSDnFGOLiq9dpcJJ5iRSM8C4pKHmpup5dQRqpWZbVACHEyrFaqFL2iFuQG8DM2wVHQtaYXI9UNhxhhwLAu93IjL1f1UMBxjrQsb3k42lME7gmhJKtJtzk1PSInww2Jo4rmmhrBgAgQUqFf7ts0RZdhCWuKOssD10KhmeoTnI1pclWjNhbkViSWuX1HSsyAlZQhsOLkw6MBFiKxQF8UGHAfDacwvxACOCvr0F12VgcxnXBxc0qe9vAchiNC@jwOsDA8xl1mZBkj37reKq4pf5EBHgLWNChPqsLzW1oIOTIMfXg7KAz68HagTQA6psanve1sTYw7zUqRcPEIZiNkpbuohA2EhXXtBeF0@Q5BzAwKy2hKgA1XmE6JXkeFfZGiSiUUqpOBosdJKVg5yEvJar2MEgmyzDDHKS/BrRgNMj14Snm6gFkFMenKxwvq8oHCju2isBFj2yiIO0TPQNib5SGgAJQIxymIiWAjLw8qLty57jJbV/gwwHFtIaLCXlKGvQnkiURP1LN9B9GSGDFBFJEFu0bUUgxtjaK1kbQ3XIvranOoVn16ZNJlThTDTGXHJqaDc41hYWwxTfk1FBzu6GrKy9yDKGodJcVVUGzlRCtmqFIiFcJkgT8zaNOEbRjRnl5/4cXcqHQ3vP5tVUOHHXrTjQ/kUmlYWICAp1zpTfu3eQc@Yo/ywzv71EjhArYMbif02gcZnuaU7DOUbXNKSaaR2AuTfr/jMsoiyfFU@AY0FTWHcmWrnNOU2TndL0tuvwPtT4T7x0fC/aOzuQYNjkP7xKSLaciiIzLg4IKCCKfiE4x3ziW5OGzKYw88ZUFSCzym54XxoVLghCCMcUSJMACzWtFHxE5SpNfQAJIZRXrFoLTZVNZjHgsXckFYk8nxtDCeGj7HBwns0QodNa7n1jaL7kk4iZLl9cLJBpgVCyeb3HODiy2hZ0ikSTGgD28HRdcMdDDcjWAQygg1g12NYCBKQCLa0bECCkJ94Wy1oqjIFRPX5GiJ2gGeTIS5N6P6mNPLIU@nSeqsnERjIyIVhzm2TkmYjCinYmzdscBDbfwX5D8O4z4KE@OjyWdiPEbWyQWWAU9G7HSIJ2tGDfCGQThkgn/vqIK9/zL@Nx0/qo8MekuKindKZ/rZdYNFiDxQLIUgU8I7kQEo/suAwEpSXk6KaTENPIwAMDUqwDQFgMCICGpIBjCFZkGi2QkUzvqiqWhnHVNbCH1SREoSwYhg6SedfRQJGdkutD/z5LMpzG8or/9ntROtGWcKI8ju/1fB6HJefwUE4peRMntJ06QmO9wtS9VkSSrPFCRByrpNAJgWpFQq7Uo95Tr0stTIaZVtEDyqs/ocoIIGgklW0wR/KhVyDOMmAQDtTQEIUFjEi@wLhqcgCPPSDQn4KtvYBiGOi94NCBNw438YmvAwV5UKzkT4yYAdI74lxC5hEpQxkRhiu2g4nR8GyAZyZJkc2OONr7ItG5Kjkv5J9pTR3q2DZoDHVPTipGMjTod4e@PNBZnW8y@ggxn8v/dItkHVxQVVo5604oS4WJJ0nfcTKRQqP3BOiz0Nx9P0FMftyBnucGy/eL7bGCXhDfDKst9Ax7BUODjj4XOl8XFonuiPncNSluHJdWNIdh0ZoMWedHS00BiSmTe8qTlOZGImzo0hmTM3HTeDbUTkmBFTjEw2ozKiIRJwKHPcrC8VTiiQqkszNd5ZpIKZexgtJ5sfkR7yvV5FFCrb1FBFNIfYVXO9wL8xLDGKSEccwAfN2eJYbXOIvJpeq20GrbZeHSaqsXVE5VpJM57NNmLZbHMUm22G2GwMmXAi4W22OdRmmxE2OyI9j83@7xz7sAoHcvSDbiX16PMf5srfqKgBCqzPt0@sd@Xr0A/c@vovn2Pe@vrBYovVf/AbS66@WROZ4pIPJlCuKjGDC0c84o0SDjrWqtUh@EmmMs6o1NSz2emABDE1lBbAqISnDGMdiQXRP4dSCiICdIMPPAS4p04ppnyHVkOQugRv0QN3KLte/UM8BUVUkMQN1dYvVPEUSuACoQKIQ9GbSZ4fyj41EzQMnK5WqiDm0V1/Ll9GWQaDTQvo@DjQiPynvzHhu6sjyykAipUXaJVKJdrGLWm31ElVwULK3Jkw9bcMTKlh14dgQ7VFx1EUwbxPKZKas4xTGJYKNxcmoliYcIFaOCIm1Vh4cKlZOB6miFh4nKKzcFy8yiLx0bGOFtlA3riwulhJ3yt1lSxbVs6HFDoDeZ3WzLGqaGJ6aaFSpZzR2ihk0ajCyqmUQtm@@wWlZ0CE1JEJL1bKZdgDgQ6jIhWoUVOskVTJ9wyMp0unVp/RNSmvjwQOQBS8XC/pSrXUHAkcgCh4QdkKK2MkYF2rywDG6FcK9VJlNOoVZ@7bpKrnsIOcS4w9NZ1mjxMoD3Oe0@4IgkGTwaXUvBMAO5yTapBja0ydqH4N9CmyHF3kPaarf07fU1m3dMAbfpFBrCaQ@0ZACFuQxBfqoFN@bnpFx4cjJKj0nXz4zkbI2A3eYwy2nlEfIcNOEngyqM291QFZ6M0qO1FCkSs61fKl5rpcjjqfQcg2TjqE0NAwoaB@tu0QUjzHqJcqHB@A4BHg7jWlzJimB0eUa88u5GMLZkS6IB9BGAQYi8FDqjLCdkJ24EcLRLDOfCz84jzwR0682WigWt1rzJJjZG7oMBPSlg9p40xbgqAsLTCnUahXS0reT4ruOJVq02/YrlaYrbhjQ1cSsRPsMVGVmfAkvmoN8ZuKmtewhZM4He9V@EiMrhn2nQ/m3Ub0FSUUbFryQyMbc5DNynp@TnI2MFAZkkqzBjIpKGpGkyGMmUixRQbdgWATPnht5@c0XHFAkStqta4z7J6YEffoMo5ayKBEWIUsi4VFN4DxoKH9MhhekqEciokNYtvpm9Rhe7ZTfBaXK1XAyNC7A1xgT3q4@Ckt1GtygXO15ByPxAjeENoXJeAhePrgrqvAHqaVFni0icDZP50Gxwe1sSIKtHRsGX6moW8YxzVYJyASDXhR5Yaew@ksZQbyd3EHd64OqHDyUJCnsgxu2pPDO/2sm8tsnOBpRMEA1Qi5BE8NgtCYq5hyZaJy3xfDi1kAW9hSrzpGUkbvVSgyWuPbibcTHxOzAjruwG9GkOBdfJy2kdcdaOOrtBG/xEDbXqJt5J0C2rgZNU5w7yqkKSljHvU85aVltOhwereDymqypJYYPXrLhB2gdjygVySQYcph4IfrCOwZZw6JHYlE0Y1LHZlshGFOOuTNsLjcCMJEb7LDpzSBTj5/8vhV7zA@o4oY5kxnLBabLIaN5jV8BMew13dHMhw1zGH4iVgMk6g1ml1/v4M@Gws9MxnUlA2JMHE8moomT@FxU1bgzyCS@AsKhVMh3P06FnebWZgQzQBebMEhnL4oi6gli//nN9XxVKQCKRy@uRb8m/F42KSej5wUxw5alxnnKiKSOlqUYcMcYpN/Ff2iCAzX6XIJZAye0OF9CE8vjCYAfLcUg5pvnEPuNw8nAje0eTADj4SPa3wVDSMhwVvqAS0xEokjpt8/nJjwJaYbYz@gsBAWcsAaxuKbkSy6Z2AUOY4AspC3oiIWwEyr0ENDklBam2KJg6brIfB//OstvBeEUD/yp0gKocujXg3BMRdDoliGIbCVh9IGyh7ia0OLpw2cbo5meDRFLbANIhlKvxYvbNgmDdmDvL0Oanv@/MOZyoZwr@yGkEfihRD04O3B/Av@7qkWCGXlVixWyCHecJfvqV3wkMKUCjGM0zk1CEBLD2Xajz6aeRf4Sk4hG2@QCqMGOmTAY6e54qkUiqYrblrqRNNTwICbmVKutkMjn/uRYJweFADq5ExTl8l1iJMR4h/FcCuY8hUVdiMwSTSUBftuvs0VtuABnrqWAHaa5nlwehO0aHL@EaGn7wRqUhhvFIvDEaNMxzMAt2@cFFym6Su7GwVccDeRiL7fYlLbSLJb/HMCUwjROm/34hcS3iY/RPISxoHvwJLi2@oWFUIhwhReHFm@GAs1U6NIeO4JMBtEw1y2TqaDT/M1PS2gLZ0qBP2wyCZ6qDonC7UyWCvMnp7tVYoCfV0aspf8HAyRdHpOhuWD8WVprZBSE2akEnoFvoBvx5O8EKeRUjBdYpmojBNv/9g48GU@IsCoFSpyTRV1EBrkthlBZLXazl06IkzttYorDsc5vnJo1QRNla@het5DHrNLMAFjPBLnK5vGI5O8@Fghgn@m4qOi787QwxguHHBbPHXovr5g0YOHFiw3xxlktsjNWjKkYp7MzFP3EvoeYOhMpsUohLg6hDuyCxTXBI5P0BB6O4B@wYc/idIrW2R8OsBO7T0lIPlKmRZAujqN0jVpdzFF6J6jjSmAUtnZFF82yDwW7h5ZsT7pDtWtKwUW2lLzDNaVcDNMeKtUopCTDobY8VEZepqHLDrlw4UaM0oNfIoCXgGCSlgLjhhyPjFgxgWyNtzy5hwqbx7zFd5GGMq6GhqiqZCXRJGo/TMIrxMPKXXybAuaLG0JVxR290AjEY4yMEWvdvG3kDtfR/jrL25yIh84lnW2rTRavqkhPDjopxDB6aQrVAQuZBEFPvrgVyY72w8/aPXSwQaWCHU8Plk9RuMiAp/y3vqhJnZp4jsWJz9lQwoayDGut7rB8S@c5yE7ERLBTMkTEoACMAbY0rxFDhSve7NI6QYGOvw4hU5coRtH0hveIPRMZARDyhtp6VuQF6WTyXo9FOzcCGkSxvjMBFooOnbA7TU27sdrYGga34/6T90xeMZTP4MI@TBR/sThv0gkBtgjJ/JJ7ifZMjiIVPKYSiqEFwBBc5lC0ORHVfDUphMRL3QS7vwODaFHxZqI6TERBwKoZSI7jUYqswo6hAkVBVeHhO@XgnyGiobdDYSuZ0nD5TkwJoeurFGKRYejaUZMzSMSBprcMEX59OXK/lfsMMmU7@W8MDsM28uYIQcdK10oWEMT2aCHDlt1Q@XmXCBQwWFVhdN3hmKhBScQdFZOSsG7GwJH3I3ckPN1HbkN8Duqjkv1dQCZrfHFU7hMlDRnqClzAQYFxZmVk@2Bly@yfRVmyQZlaHom1vXi2K/ElMBtCc7mHVqbwZGhOFgL50p47xns5Gbhf7GG@GayOVPAtFBUsB7pxbCsoZ/NUlAZoiqV5VyOxAu5sqSoORQ20BIE8iOOGi5tIc@Z32mzdRTm/QH3sB8vQtf/Yg02KTmH6m64u150OkniLgcdqirKlet6HbxhMwc5V6leU7ai6@1KndUEUDA8VKIkk@JYEQcrY2g28DQnl9DVlri5Cu6iiC7zUPKDhS/MyAK6@xaKWqUM7FEICRsdYmYomTwhky8XnAf0WtooJFGmlmdXjwSWJ@4VsJ9@nZCl9smRfRtSUWxukMBDF4owi7ioAxLCkOlFEigRAsR0OPxv1vVqXcfM0/fEIL1E37D96BVh81svvbxp0yiTqWqVWU0qi8M5gqetgFWFT7z6NogULTNzjwHhDwRdYwbILwjEK3ebr6BZVPHLOHQAZYlcKCNq2gwsX6kmeCF9SxV1knoKSpPWnFOkYCOhKxwfVYTQZm4jEeIg6I8gvOkcNGA3DOIvQiRGHR1uwubBUET7v8TP8DdW/3ms9PNY/ufHH9309DObCpuefm6TxD3@Dw "Python 3 – Try It Online").
Mainly for the purposes of golfing the quine and making output easier, I've added the ability to duplicate the stack/deque and also to output the entire model in rendered text form instead of as integers.
## Solutions
### 1. ["Hello, World!"](https://codegolf.stackexchange.com/questions/55422/hello-world) - 17 bytes (-3)
```
#"Hello, World!"a
```
### 5. [Sing Happy Birthday to your favourite programming language](https://codegolf.stackexchange.com/questions/39752/sing-happy-birthday-to-your-favourite-programming-language) - 95 bytes (-3)
```
#"Happy Birthday to You
Happy Birthday to You
Happy Birthday Dear Bugle
Happy Birthday to You"a
```
### 6. [We're no strangers to code golf, you know the rules, and so do I](https://codegolf.stackexchange.com/questions/6043/were-no-strangers-to-code-golf-you-know-the-rules-and-so-do-i) - 1884 bytes (-3)
```
#"We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy
I just wanna tell you how I'm feeling
Gotta make you understand
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
We've known each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it
And if you ask me how I'm feeling
Don't tell me you're too blind to see
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
(Ooh, give you up)
(Ooh, give you up)
(Ooh)
Never gonna give, never gonna give
(Give you up)
(Ooh)
Never gonna give, never gonna give
(Give you up)
We've know each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it
I just wanna tell you how I'm feeling
Gotta make you understand
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you"a
```
### 16. [Bake a slice of Pi](https://codegolf.stackexchange.com/questions/93615/bake-a-slice-of-pi) - 149 bytes (-3)
```
#"()()()()()()
|\3.1415926|
|:\53589793|
\::\2384626|
 \::\433832|
  \::\79502|
   \::\8841|
    \::\971|
     \::\69|
      \::\3|
       \__\|"a
```
### 20. [Golf you a quine for great good!](https://codegolf.stackexchange.com/questions/69/golf-you-a-quine-for-great-good) - 23 bytes (-39)
```
$"R34RdR36Ra"R34RdR36Ra
```
---
## Added Language Features
* `a`
	+ All: Print the entire model as text, e.g. `#"Hello, World!"a` prints `Hello, World!`
* `d`
	+ Stack/Deque: Push the stack on top of itself.
[Answer]
# 1. Score: 9638
The base interpreter can be found [here](https://github.com/cairdcoinheringaahing/bugle/blob/master/bugle.py), and the submissions [here](https://github.com/cairdcoinheringaahing/bugle/tree/master/submissions). It's rather long, so I've included it on GitHub, rather than take up most of the post.
## Solutions
All of these solutions are the Unicode programs, run with the `-u` command line flag, but the scores are counted as though encoded with Bugle's code page.
### 1. ["Hello, World!"](https://codegolf.stackexchange.com/questions/55422/hello-world) - 48 bytes
```
$72o101o108o108o111o44o32o87o111o114o108o100o33o
```
Simply push then output the character code of each character in the string.
### 2. [1, 2, Fizz, 4, Buzz](https://codegolf.stackexchange.com/questions/58615/1-2-fizz-4-buzz) - 1396 bytes
```
$49o10o50o10o70o105o122o122o10o52o10o66o117o122o122o10o70o105o122o122o10o55o10o56o10o70o105o122o122o10o66o117o122o122o10o49o49o10o70o105o122o122o10o49o51o10o49o52o10o70o105o122o122o66o117o122o122o10o49o54o10o49o55o10o70o105o122o122o10o49o57o10o66o117o122o122o10o70o105o122o122o10o50o50o10o50o51o10o70o105o122o122o10o66o117o122o122o10o50o54o10o70o105o122o122o10o50o56o10o50o57o10o70o105o122o122o66o117o122o122o10o51o49o10o51o50o10o70o105o122o122o10o51o52o10o66o117o122o122o10o70o105o122o122o10o51o55o10o51o56o10o70o105o122o122o10o66o117o122o122o10o52o49o10o70o105o122o122o10o52o51o10o52o52o10o70o105o122o122o66o117o122o122o10o52o54o10o52o55o10o70o105o122o122o10o52o57o10o66o117o122o122o10o70o105o122o122o10o53o50o10o53o51o10o70o105o122o122o10o66o117o122o122o10o53o54o10o70o105o122o122o10o53o56o10o53o57o10o70o105o122o122o66o117o122o122o10o54o49o10o54o50o10o70o105o122o122o10o54o52o10o66o117o122o122o10o70o105o122o122o10o54o55o10o54o56o10o70o105o122o122o10o66o117o122o122o10o55o49o10o70o105o122o122o10o55o51o10o55o52o10o70o105o122o122o66o117o122o122o10o55o54o10o55o55o10o70o105o122o122o10o55o57o10o66o117o122o122o10o70o105o122o122o10o56o50o10o56o51o10o70o105o122o122o10o66o117o122o122o10o56o54o10o70o105o122o122o10o56o56o10o56o57o10o70o105o122o122o66o117o122o122o10o57o49o10o57o50o10o70o105o122o122o10o57o52o10o66o117o122o122o10o70o105o122o122o10o57o55o10o57o56o10o70o105o122o122o10o66o117o122o122o
```
Same technique as the Hello, World! example
### 3. [Produce the number 2014 without any numbers in your source code](https://codegolf.stackexchange.com/questions/17005/produce-the-number-2014-without-any-numbers-in-your-source-code) - 13 bytes
```
#++O--O+O+++O
```
`#` uses the tape, `+` increments the cell, `O` outputs as an integer and `-` decrements
### 4. [Obfuscated Hello World](https://codegolf.stackexchange.com/questions/307/obfuscated-hello-world) - 172 bytes
```
#+++++++++[>++++++++<-]>o<++++[>+++++++<-]>+o+++++++oo+++o>++++[>+++++++++++<-]>o------------o[-]++++++++[>+++++++++++<-]>-o<<<o+++o------o--------o[-]+++[>+++++++++++<-]>o
```
Uses its inherent similarity to brainfuck. Meets rules #1 and #3
### 5. [Sing Happy Birthday to your favourite programming language](https://codegolf.stackexchange.com/questions/39752/sing-happy-birthday-to-your-favourite-programming-language) - 328 bytes
```
$72o97o112o112o121o32o66o105o114o116o104o100o97o121o32o116o111o32o89o111o117o10o72o97o112o112o121o32o66o105o114o116o104o100o97o121o32o116o111o32o89o111o117o10o72o97o112o112o121o32o66o105o114o116o104o100o97o121o32o68o101o97o114o32o66o117o103o108o101o10o72o97o112o112o121o32o66o105o114o116o104o100o97o121o32o116o111o32o89o111o117o
```
All the [kolmogorov-complexity](/questions/tagged/kolmogorov-complexity "show questions tagged 'kolmogorov-complexity'") challenges have this kind of structure, at the moment.
### 6. [We're no strangers to code golf, you know the rules, and so do I](https://codegolf.stackexchange.com/questions/6043/were-no-strangers-to-code-golf-you-know-the-rules-and-so-do-i) - 6893 bytes
```
$87o101o39o114o101o32o110o111o32o115o116o114o97o110o103o101o114o115o32o116o111o32o108o111o118o101o10o89o111o117o32o107o110o111o119o32o116o104o101o32o114o117o108o101o115o32o97o110o100o32o115o111o32o100o111o32o73o10o65o32o102o117o108o108o32o99o111o109o109o105o116o109o101o110o116o39o115o32o119o104o97o116o32o73o39o109o32o116o104o105o110o107o105o110o103o32o111o102o10o89o111o117o32o119o111o117o108o100o110o39o116o32o103o101o116o32o116o104o105o115o32o102o114o111o109o32o97o110o121o32o111o116o104o101o114o32o103o117o121o10o73o32o106o117o115o116o32o119o97o110o110o97o32o116o101o108o108o32o121o111o117o32o104o111o119o32o73o39o109o32o102o101o101o108o105o110o103o10o71o111o116o116o97o32o109o97o107o101o32o121o111o117o32o117o110o100o101o114o115o116o97o110o100o10o32o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o32o121o111o117o32o117o112o10o78o101o118o101o114o32o103o111o110o110o97o32o108o101o116o32o121o111o117o32o100o111o119o110o10o78o101o118o101o114o32o103o111o110o110o97o32o114o117o110o32o97o114o111o117o110o100o32o97o110o100o32o100o101o115o101o114o116o32o121o111o117o10o78o101o118o101o114o32o103o111o110o110o97o32o109o97o107o101o32o121o111o117o32o99o114o121o10o78o101o118o101o114o32o103o111o110o110o97o32o115o97o121o32o103o111o111o100o98o121o101o10o78o101o118o101o114o32o103o111o110o110o97o32o116o101o108o108o32o97o32o108o105o101o32o97o110o100o32o104o117o114o116o32o121o111o117o10o32o10o87o101o39o118o101o32o107o110o111o119o110o32o101o97o99o104o32o111o116o104o101o114o32o102o111o114o32o115o111o32o108o111o110o103o10o89o111o117o114o32o104o101o97o114o116o39o115o32o98o101o101o110o32o97o99o104o105o110o103o32o98o117o116o10o89o111o117o39o114o101o32o116o111o111o32o115o104o121o32o116o111o32o115o97o121o32o105o116o10o73o110o115o105o100o101o32o119o101o32o98o111o116o104o32o107o110o111o119o32o119o104o97o116o39o115o32o98o101o101o110o32o103o111o105o110o103o32o111o110o10o87o101o32o107o110o111o119o32o116o104o101o32o103o97o109o101o32o97o110o100o32o119o101o39o114o101o32o103o111o110o110o97o32o112o108o97o121o32o105o116o10o65o110o100o32o105o102o32o121o111o117o32o97o115o107o32o109o101o32o104o111o119o32o73o39o109o32o102o101o101o108o105o110o103o10o68o111o110o39o116o32o116o101o108o108o32o109o101o32o121o111o117o39o114o101o32o116o111o111o32o98o108o105o110o100o32o116o111o32o115o101o101o10o32o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o32o121o111o117o32o117o112o10o78o101o118o101o114o32o103o111o110o110o97o32o108o101o116o32o121o111o117o32o100o111o119o110o10o78o101o118o101o114o32o103o111o110o110o97o32o114o117o110o32o97o114o111o117o110o100o32o97o110o100o32o100o101o115o101o114o116o32o121o111o117o10o78o101o118o101o114o32o103o111o110o110o97o32o109o97o107o101o32o121o111o117o32o99o114o121o10o78o101o118o101o114o32o103o111o110o110o97o32o115o97o121o32o103o111o111o100o98o121o101o10o78o101o118o101o114o32o103o111o110o110o97o32o116o101o108o108o32o97o32o108o105o101o32o97o110o100o32o104o117o114o116o32o121o111o117o10o32o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o32o121o111o117o32o117o112o10o78o101o118o101o114o32o103o111o110o110o97o32o108o101o116o32o121o111o117o32o100o111o119o110o10o78o101o118o101o114o32o103o111o110o110o97o32o114o117o110o32o97o114o111o117o110o100o32o97o110o100o32o100o101o115o101o114o116o32o121o111o117o10o78o101o118o101o114o32o103o111o110o110o97o32o109o97o107o101o32o121o111o117o32o99o114o121o10o78o101o118o101o114o32o103o111o110o110o97o32o115o97o121o32o103o111o111o100o98o121o101o10o78o101o118o101o114o32o103o111o110o110o97o32o116o101o108o108o32o97o32o108o105o101o32o97o110o100o32o104o117o114o116o32o121o111o117o10o32o10o40o79o111o104o44o32o103o105o118o101o32o121o111o117o32o117o112o41o10o40o79o111o104o44o32o103o105o118o101o32o121o111o117o32o117o112o41o10o40o79o111o104o41o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o44o32o110o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o10o40o71o105o118o101o32o121o111o117o32o117o112o41o10o40o79o111o104o41o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o44o32o110o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o10o40o71o105o118o101o32o121o111o117o32o117o112o41o10o32o10o87o101o39o118o101o32o107o110o111o119o32o101o97o99o104o32o111o116o104o101o114o32o102o111o114o32o115o111o32o108o111o110o103o10o89o111o117o114o32o104o101o97o114o116o39o115o32o98o101o101o110o32o97o99o104o105o110o103o32o98o117o116o10o89o111o117o39o114o101o32o116o111o111o32o115o104o121o32o116o111o32o115o97o121o32o105o116o10o73o110o115o105o100o101o32o119o101o32o98o111o116o104o32o107o110o111o119o32o119o104o97o116o39o115o32o98o101o101o110o32o103o111o105o110o103o32o111o110o10o87o101o32o107o110o111o119o32o116o104o101o32o103o97o109o101o32o97o110o100o32o119o101o39o114o101o32o103o111o110o110o97o32o112o108o97o121o32o105o116o10o32o10o73o32o106o117o115o116o32o119o97o110o110o97o32o116o101o108o108o32o121o111o117o32o104o111o119o32o73o39o109o32o102o101o101o108o105o110o103o10o71o111o116o116o97o32o109o97o107o101o32o121o111o117o32o117o110o100o101o114o115o116o97o110o100o10o32o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o32o121o111o117o32o117o112o10o78o101o118o101o114o32o103o111o110o110o97o32o108o101o116o32o121o111o117o32o100o111o119o110o10o78o101o118o101o114o32o103o111o110o110o97o32o114o117o110o32o97o114o111o117o110o100o32o97o110o100o32o100o101o115o101o114o116o32o121o111o117o10o78o101o118o101o114o32o103o111o110o110o97o32o109o97o107o101o32o121o111o117o32o99o114o121o10o78o101o118o101o114o32o103o111o110o110o97o32o115o97o121o32o103o111o111o100o98o121o101o10o78o101o118o101o114o32o103o111o110o110o97o32o116o101o108o108o32o97o32o108o105o101o32o97o110o100o32o104o117o114o116o32o121o111o117o10o32o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o32o121o111o117o32o117o112o10o78o101o118o101o114o32o103o111o110o110o97o32o108o101o116o32o121o111o117o32o100o111o119o110o10o78o101o118o101o114o32o103o111o110o110o97o32o114o117o110o32o97o114o111o117o110o100o32o97o110o100o32o100o101o115o101o114o116o32o121o111o117o10o78o101o118o101o114o32o103o111o110o110o97o32o109o97o107o101o32o121o111o117o32o99o114o121o10o78o101o118o101o114o32o103o111o110o110o97o32o115o97o121o32o103o111o111o100o98o121o101o10o78o101o118o101o114o32o103o111o110o110o97o32o116o101o108o108o32o97o32o108o105o101o32o97o110o100o32o104o117o114o116o32o121o111o117o10o32o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o32o121o111o117o32o117o112o10o78o101o118o101o114o32o103o111o110o110o97o32o108o101o116o32o121o111o117o32o100o111o119o110o10o78o101o118o101o114o32o103o111o110o110o97o32o114o117o110o32o97o114o111o117o110o100o32o97o110o100o32o100o101o115o101o114o116o32o121o111o117o10o78o101o118o101o114o32o103o111o110o110o97o32o109o97o107o101o32o121o111o117o32o99o114o121o10o78o101o118o101o114o32o103o111o110o110o97o32o115o97o121o32o103o111o111o100o98o121o101o10o78o101o118o101o114o32o103o111o110o110o97o32o116o101o108o108o32o97o32o108o105o101o32o97o110o100o32o104o117o114o116o32o121o111o117o
```
### 7. [Output the sign](https://codegolf.stackexchange.com/questions/103822/output-the-sign) - 18 bytes
```
$?:Zs0=0s-s:1s-++O
```
Checks if the input is greater than zero, less than zero (changed to yield `-1` instead of `1`) and equal to zero, before taking their sum.
### 8. [Collatz Conjecture (OEIS A006577)](https://codegolf.stackexchange.com/questions/12177/collatz-conjecture-oeis-a006577) - 36 bytes
```
#$?:1-[:2s%{3×1+}2s÷]:1s-₀+₁]₀O
```
This performs the looping on the stack, but switches over to the tape to increment the count each iteration.
### 9. [An Array of Challenges #1: Alternating Arrays](https://codegolf.stackexchange.com/questions/103571/an-array-of-challenges-1-alternating-arrays) - 35 bytes
```
#?>?>+>?[[<+<<->>>-]+<[-<<]>[>]?]<O
```
This is a slight modification of [Mitch Schwartz](https://codegolf.stackexchange.com/a/103582/66833)'s answer to the existing challenge, go upvote that!
### 10. [Am I an insignificant array?](https://codegolf.stackexchange.com/questions/143278/am-i-an-insignificant-array) - 46 bytes
```
$1 0-?…1[s:sr-:Z1s-2×1+×1s-Z1-L2s-×]1+Z1-O
```
All credit goes to [Emigna](https://codegolf.stackexchange.com/users/47066/emigna) for [making](https://chat.stackexchange.com/transcript/message/43814604#43814604) this
### 11. [Is this number a prime?](https://codegolf.stackexchange.com/questions/57617/is-this-number-a-prime) - 31 bytes
```
$?:1s-:[:1s-:];L1s[×L2s-]:×%O
```
Uses Wilson's Theorem and calculates `(n-1)!² % n`
### 12. [I'm a palindrome. Are you?](https://codegolf.stackexchange.com/questions/110582/im-a-palindrome-are-you) - 13 bytes
```
$?:R=:O:=R:?$
```
The first half of the program, up to `O`, sets the stack up as `[x, x]` where `x` is either `True` or `False`. `O` pops the top value and outputs it. The rest of the program just makes sure that no errors are produced. Luckily, when `?` encounters the end of the file, it just pushes `''` (the empty string).
### 13. [Sum the numbers on standard in](https://codegolf.stackexchange.com/questions/113674/sum-the-numbers-on-standard-in) - 19 bytes
```
$?:[?:];L0s[+L1s-]O
```
This can be split into two parts: `?:[?:];` and `L0s[+L1s-]`. The first part collects all input to the stack. The second part pushes the sum of the top two elements, while the length is greater than 1.
### 14. [Find the Factorial](https://codegolf.stackexchange.com/questions/607/find-the-factorial) - 25 bytes
```
$?:[:1s-:];L1s-Z[×L1s-]O
```
This has a similar structure to the sum program, but instead of pushing ltiple inputs, the `[:1s-:];` pushes the range from `1 .. n` to the stack, and `[×L1s-]` takes the product.
### 15. [Shortest code to produce infinite output](https://codegolf.stackexchange.com/questions/13152/shortest-code-to-produce-infinite-output) - 5 bytes
```
#+[O]
```
Use a while loop, with the `1` continually under the pointer. Outputs `1` forever.
### 16. [Bake a slice of Pi](https://codegolf.stackexchange.com/questions/93615/bake-a-slice-of-pi) - 439 bytes
```
$40o41o40o41o40o41o40o41o40o41o40o41o10o124o92o51o46o49o52o49o53o57o50o54o124o10o124o58o92o53o51o53o56o57o55o57o51o124o10o92o58o58o92o50o51o56o52o54o50o54o124o10o32o92o58o58o92o52o51o51o56o51o50o124o10o32o32o92o58o58o92o55o57o53o48o50o124o10o32o32o32o92o58o58o92o56o56o52o49o124o10o32o32o32o32o92o58o58o92o57o55o49o124o10o32o32o32o32o32o92o58o58o92o54o57o124o10o32o32o32o32o32o32o92o58o58o92o51o124o10o32o32o32o32o32o32o32o92o95o95o92o124o
```
### 17. [Find the smallest number that doesn't divide N](https://codegolf.stackexchange.com/questions/105412/find-the-smallest-number-that-doesnt-divide-n)
```
$?:1:[:rs%0=s1+srr:Rs]1s-O
```
This uses trial division, terminating when the result of the modulo does not equal `0`.
### 18. [Is this even or odd?](https://codegolf.stackexchange.com/questions/113448/is-this-even-or-odd) - 5 bytes
```
$2?%O
```
Simple modulo by 2
### 19. [Output with the same length as the code](https://codegolf.stackexchange.com/questions/121056/output-with-the-same-length-as-the-code) - 16 bytes
```
$16:[32+:o33s-:]
```
Outputs the first 16 printable ASCII characters in reverse: `0/.-,+*)('&%$#"!`
### 20. [Golf you a quine for great good!](https://codegolf.stackexchange.com/questions/69/golf-you-a-quine-for-great-good)
```
$1[93, 76, 111, 91, 49, 59, 104, 48, 79, 49, 111, 54, 51, 0]
36o1O0h;1[oL]
```
Credit goes to [user202729](https://codegolf.stackexchange.com/users/69850/user202729) for [making this](https://chat.stackexchange.com/transcript/240?m=43915697#43915697)
---
## Language specification
### Calling
`bugle.py` currently takes a series of flags, then the file name / code to be executed. As of yet, it has 4 command line flags:
* `-f`/`--file` specifies that code is to be read from a file
* `-c`/`--cmd`/`--cmdline` specifies that code is supplied via the command line.
`-c` and `-f` cannot be used in the same call
* `-u`/`--unicode` tells the interpreter to read the code with the Unicode encoding. The default is to use Bugle's encoding below
* `-l`/`--length` outputs the length of the file, in bytes, to STDERR after execution
The following call was used to test the above submissions
```
$ python bugle.py -f -u [file]
```
### Code page
Bugle uses 512 characters in its code page. **The `0xFF` character is not to be used for a command**, as its used to indicate that the next hex value in to index into the second half of the code page. The characters used are:
```
ÀÁÂÄÆÃÅĀĄ\t\nĆČÇĎÐ
ÈÉÊËĒĖĚĘÌÍÎÏĪĮĹĽ
 !"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~¶
ŁŃŇÑŊÒÓÔÖŒÕØŌŔŘŚ
ŠŤŦÙÚÛÜŮŪŴÝŶŸŹŽŻ
àáâäæãåāąćčçďðèé
êëēėěęìíîïīįĺľłń
ňñŋòóôöœøōõŕřßśš
ťŧùúûüůūŵýŷÿźžż◊
ΑΆΒΓΔΕΈΖΗΉΘΙΊΚΛΜ
ΝΞΟΌΠΡΣΤΥΎΦΧΨΩΏ
αάβγδεέζηήθιίΐκλ
μνξοόπσςτυύΰφχψω
ώǴḰḾṔẂǵḱḿṕẃḂḞĠḢṀ
ȮṖṠṪẊḃḟġḣṁȯṗṡṫẋ§
ĂĞĬŎŬĴăğĭŏŭĵªº‹›
ƁƇƊƑƓƘⱮƝƤƬƲȤɓƈɗƒ
ɠɦƙɱɲƥʠɼʂƭʋȥ©®ıȷ
ЉЊЕРТЗУИОПШАСДФГ
ХЈКЛЧЋЅЏЦВБНМЂЖљ
њертзуиопшасдфгх
јклчћѕџцвбнмђжÞþ
†∂∆≈≠√∈∉∌∋∩∪¬∧∨⊕
¤₽¥£¢€₩‰¿¡⁇⁈‼⁉‽⸘
…°•”“„’‘≤«·»≥ᴇ∞¦
×⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾
÷₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
```
Or see it in [table format](https://github.com/cairdcoinheringaahing/bugle/wiki/Code-Page). Note that `\t` and `\n` represent tab and newline respectively. Also take note that the 16th line ends with an unprintable character: ``, and may not be displayed on all browsers.
### Memory
The interpreter currently has 5 memory models built in to it. Each memory model requires a character to tell the interpreter to begin using that model:
* Stack (`$`): a standard stack, which supports values being pushed, popped etc.
* Infinite tape (`#`): A tape, à la brainfuck, which initially is only `0`s.
* Infinite grid (`G`): A 2d grid, infinite in both directions, containing only `0`s
* Deque (`D`): A [deque](https://en.wikipedia.org/wiki/Double-ended_queue), as implemented by the [`collections`](https://docs.python.org/3.5/library/collections.html#collections.deque) module.
* Register (`S`): A single value, which can be used to store *one* value.
The grid also has a single value saved in its pointer that can be written to, or write to cells.
In addition, tape and grid sizes and wrapping behaviour can be modified, by using a different invoke command. These different commands take a given number of values from the current memory model as customisation parameters:
* Tape (`À`): Takes two values - size (`int`) and wrapping (`bool`)
* Tape (`Á`): Takes one value - size (`int`). Wraps at end of the tape
* Tape (`Â`): Takes one value - size (`int`). Doesn't wrap at the end
* Grid (`Ǵ`): Takes 4 values - x size (`int`), y size (`int`), x wrap (`bool`) and y wrap (`bool`)
The memory type being used can change during a program by the use of `₀₁₂₃₄₅₆₇₈₉`, which access the 0-indexed `n`th used memory type (`₀` is the first, `₁` is the second etc.), but, currently, values cannot be swapped between different memory types.
### Branching
So far Bugle has two branching commands, both terminated with a `]` character:
* While (`[`): brainfuck-style while loops. These pop a value from the stack/deque if being used, or access the cell under the pointer in tape/grid.
Example: `#?[-O]` counts from the input down to `0`
* If/else (`{` and `}`). Single execution while loops. If the value popped is false, then the if clause is skipped, going to the else clause, separated by `}`. They behave the same way as while loops regarding memory access.
Example: `{0}1]` is a logical NOT gate
### Builtin functions
Runs of digits are interpreted as integers, and are just pushed/written to the current memory model as is.
Obviously, I've equipped Bugle with some basic builtin functions, as few as I could, to allow others to add more as the chain progresses. The base commands are as follows:
* `+`
	+ Stack/Deque: Add the top two values
	+ Tape/Grid: Increment the current cell
* `-`
	+ Stack/Deque: Subtract the top two values
	+ Tape/Grid: Decrement the current cell
* `%`
	+ Stack/Deque: Modulo the top two values
* `:`
	+ Stack/Deque: Duplicate the top value
* `;`
	+ Stack/Deque: Pop the top value
	+ Tape/Grid: Zero the current cell
* `<`
	+ Tape/Grid: Move left one cell
* `=`
	+ Stack: Are the top two values equal?
	+ Grid: Move down one cell
* `>`
	+ Tape/Grid: Move right one cell
* `?`
	+ Stack/Deque: Evaluate a line of input
	+ Tape/Grid: Take a character of input
* `L`
	+ Stack/Deque: Push the length of the stack/deque
* `O`
	+ All: Output the current value
* `R`
	+ Stack: Reverse the top element if possible, else reverse the stack
* `Z`
	+ Stack: Top element is positive?
* `^`
	+ Grid: Move up one cell
* `h`
	+ All: Print the full memory model
* `o`
	+ All: Print the current value as a character
* `r`
	+ Stack: Rotate the top 3 values
	+ Deque: Rotate the deque `n` times, where `n` is the top value
* `s`
	+ Stack/Deque: Swap the top two values
* `…`
	+ Stack: Splat the top value
* `×`
	+ Stack: Multiply the top two values
	+ Grid: Write the pointer value to the current cell
* `÷`
	+ Stack: Divide the top two values
	+ Grid: Write the current cell to the pointer value
]