wraith1995 / syntax

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NOTE: This is a draft - I am just making it public to make it easier for me to use in certain perverse situtations.

syn

Release Build status codecov Commit activity License

Thing.... Description

Getting started with your project

First, create a repository on GitHub with the same name as this project, and then run the following commands:

git init -b main
git add .
git commit -m "init commit"
git remote add origin git@github.com:wraith1995/syn.git
git push -u origin main

Finally, install the environment and the pre-commit hooks with

make install

You are now ready to start development on your project! The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.

To finalize the set-up for publishing to PyPi or Artifactory, see here. For activating the automatic documentation with MkDocs, see here. To enable the code coverage reports, see here.

Releasing a new version

  • Create an API Token on Pypi.
  • Add the API Token to your projects secrets with the name PYPI_TOKEN by visiting this page.
  • Create a new release on Github.

TODO (in no particular order)

  1. Resolve serious disagreements on the nature of validation beyond types. The possibility of internal type conversion, types of types and their handling, shittyness of python typing module.
  2. Different types of iteration methods: depth vs. breadth, external or internal, dup vs no dup, dup notion, ocality, local ordering, Nones, Names, Flattening. General Collections.abc interfance questions (sets, functions, etc...)
  3. The problem of matching over an IR that does not yet exist.
  4. Extension of existing ADTs or merging of ADTS
  5. Basic documentation.
  6. Vistior patterns
  7. Custom show or at least better show.
  8. Python front end instead of text. See (2).
  9. Functorial IRs
  10. Logging intergration
  11. Github integrations
  12. Variations on the lambda calc implementation for examples. Add these to tests.
  13. Attrs vs. Dataclasses. Attrs might save some boiler plate, but it outside standard python.
  14. Greater variation on internal errors and consistenty with python.
  15. psf black
  16. Ref Mutability and selective mutalability/frozeness - ability to express cfg
  17. Integration with mypy/pyright/whwatever
  18. Function recursion helpers
  19. Folding/tree systems

Pretty printing: Expr, stmt, graph Create a new tag in the form *.*.*.

For more details, see here.


Repository initiated with fpgmaas/cookiecutter-poetry.

About

License:MIT License


Languages

Language:Python 97.4%Language:Makefile 1.8%Language:Dockerfile 0.8%