{"action":"created","issue":{"url":"https://api.github.com/repos/isaacg1/pyth/issues/111","labels_url":"https://api.github.com/repos/isaacg1/pyth/issues/111/labels{/name}","comments_url":"https://api.github.com/repos/isaacg1/pyth/issues/111/comments","events_url":"https://api.github.com/repos/isaacg1/pyth/issues/111/events","html_url":"https://github.com/isaacg1/pyth/issues/111","id":76865250,"number":111,"title":"Pyth 5","user":{"login":"orlp","id":202547,"avatar_url":"https://avatars.githubusercontent.com/u/202547?v=3","gravatar_id":"","url":"https://api.github.com/users/orlp","html_url":"https://github.com/orlp","followers_url":"https://api.github.com/users/orlp/followers","following_url":"https://api.github.com/users/orlp/following{/other_user}","gists_url":"https://api.github.com/users/orlp/gists{/gist_id}","starred_url":"https://api.github.com/users/orlp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/orlp/subscriptions","organizations_url":"https://api.github.com/users/orlp/orgs","repos_url":"https://api.github.com/users/orlp/repos","events_url":"https://api.github.com/users/orlp/events{/privacy}","received_events_url":"https://api.github.com/users/orlp/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-05-15T21:34:57Z","updated_at":"2015-05-16T00:18:28Z","closed_at":null,"body":"I'm working on [a clean-sheet rewrite of Pyth](https://github.com/orlp/pyth5) (calling it Pyth 5 for now). Things I'm working on are:\r\n\r\n - A totally rewritten interpreter that uses a cleaner lexer/parser/codegen seperation. This should make maintaining easier.\r\n - Proper binary and UTF-8 source support - regular strings are UTF-8, binary strings like `.\"az\"` get turned into arrays of bytes: `[97, 122]`. \r\n - The above should also make testing a lot cleaner, and open up the way for a more secure web interpreter, and a Pyth eval function within Pyth.\r\n - A proper integrated comment and indenting system that requires no command line flag. I already have this working and it's unambiguous, and never hurts real code (comments start with whitespace followed by `;`, indent is an even amount of spaces at the start of a line).\r\n - Reworking all the functions from the ground up with a solid new type system. No more tuples, and also adding rationals. Sets will only be internal and convert to sorted lists whenever printed/indexed.\r\n - The type system will be more strict and Pyth-controlled. I'm really looking to move away from a Python dictated type system, and work towards a better type system for golfing. Rationals will play a big role in this.\r\n - Adding optional [`gmpy2`](https://gmpy2.readthedocs.org/en/latest/index.html) support to make math a lot faster simply by installing it.\r\n\r\n### If there are any features you think that are questionable about Pyth, speak now. If you have any ideas for radical new ideas/paradigms that would change the language, now's the time! These are the times for radical changes.\r\n\r\nMy personal candidates that require a good hard look to see if we really want to keep them, or maybe swap less favourable with more favourable names:\r\n\r\n - `$` is almost never used, and whenever you reach for it it really indicates something else is missing from Pyth. It is also unsafe for the web.\r\n - `'` is almost never used, should probably moved to a two-character constant in favor of something else.\r\n - `(`, tuples will be removed, allowing this to be  used for something else.\r\n - `/`, IMO this shouldn't be flooring division. This should be real division, with something else being flooring division. This is especially obvious once you introduce rationals and reals.\r\n - `A`, can't recall ever using it, and can probably be replaced by something more general.\r\n - `D`, this needs some work, right now it's so bad that you're forced to rewrite an otherwise better imperative solution into something functional just so you can use lambdas.\r\n\r\nIdeally we'd hold some sort of voting system where we reassign better mnenomics and revalue all functions. Some of the new `.` functions have shown to be incredibly useful, and some of the single-character functionality proves almost entirely useless.\r\n\r\nOther ideas/problems to consider:\r\n\r\n- In general imperative seems to be a second class citizen compared to functional for golfs. Can we improve on this?\r\n- Seeing the great work on `_F` for folding, we can look to do similar things with other block-level characters.\r\n- We need to improve our dictionary support, right now we only have `H` pretty much.\r\n- As a follow up with the dictionary support, 2D challenges always seem to be a pain with Pyth, perhaps we can better tune our dictionary support for multidimensionality."},"comment":{"url":"https://api.github.com/repos/isaacg1/pyth/issues/comments/102552783","html_url":"https://github.com/isaacg1/pyth/issues/111#issuecomment-102552783","issue_url":"https://api.github.com/repos/isaacg1/pyth/issues/111","id":102552783,"user":{"login":"kirbyfan64","id":1690697,"avatar_url":"https://avatars.githubusercontent.com/u/1690697?v=3","gravatar_id":"","url":"https://api.github.com/users/kirbyfan64","html_url":"https://github.com/kirbyfan64","followers_url":"https://api.github.com/users/kirbyfan64/followers","following_url":"https://api.github.com/users/kirbyfan64/following{/other_user}","gists_url":"https://api.github.com/users/kirbyfan64/gists{/gist_id}","starred_url":"https://api.github.com/users/kirbyfan64/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kirbyfan64/subscriptions","organizations_url":"https://api.github.com/users/kirbyfan64/orgs","repos_url":"https://api.github.com/users/kirbyfan64/repos","events_url":"https://api.github.com/users/kirbyfan64/events{/privacy}","received_events_url":"https://api.github.com/users/kirbyfan64/received_events","type":"User","site_admin":false},"created_at":"2015-05-16T00:18:28Z","updated_at":"2015-05-16T00:18:28Z","body":"Can't `,` still be used be used for tuples? I just used it recently to save 2 chars."}}