Skip to content

Interpret testing #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
20 of 25 tasks
dcecile opened this issue Mar 5, 2019 · 1 comment
Open
20 of 25 tasks

Interpret testing #4

dcecile opened this issue Mar 5, 2019 · 1 comment
Labels

Comments

@dcecile
Copy link
Member

dcecile commented Mar 5, 2019

The final goal of the interpreter will to build up tests written in Pentagram. Then once those tests are passing and the compiler is self-compiling, the interpreter can be retired.

This could be a special mode written using watchdog. Pure custom, for better latency and to start experimenting with output format. (And to more easily gradually move the test framework into Pentagram code.)

Tasks

  • Make asciinema of gen 2 JVM REPL
  • Make asciinema of Outerline tests
  • Update testing ideas
  • Switch to pip-tools with hashes
  • Set up internal-use CLI
    • Precommit
    • Freeze
    • Check
      • Style, lint, etc.
      • Frozen deps
  • Set up Github Actions
  • Convert typing usages to use PEP 585 and PEP 604
  • Rename all "Tacit" references
  • Automatically convert Python method names and parameters
  • Update syntax and data structures to current thinking
    • Switch TBit to TInteger
    • Switch blob to arr
    • Switch /= to >>
    • Prevent arbitrary block starts
    • Use one shared expression stack
  • Collect and run tests
  • Trigger a crash on assertion failure
  • Watch for changes
  • Display advanced live test results
  • Allow basic test execution/introspection control
@dcecile
Copy link
Member Author

dcecile commented Mar 5, 2019

Dynamic PyTest example:

def test_a():
    print('test_a' in globals())
    assert False

def define():
    for n in 'bcdef':
        def x():
            assert 1 == 0
        x.__name__ = f'test_{n}'
        globals()[x.__name__] = x

define()

(Results probably not that much more readable than using parametrize with a path argument.)

@dcecile dcecile transferred this issue from pentagram-lang/pentagram-gen3-python Mar 14, 2022
@dcecile dcecile changed the title Interpret testing in Tacit Interpret testing Mar 19, 2022
dcecile added a commit that referenced this issue Mar 25, 2022
dcecile added a commit that referenced this issue Mar 25, 2022
dcecile added a commit that referenced this issue Mar 25, 2022
dcecile added a commit that referenced this issue Mar 25, 2022
dcecile added a commit that referenced this issue Mar 31, 2022
@pentagram-lang pentagram-lang deleted a comment Apr 8, 2022
@dcecile dcecile mentioned this issue Mar 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant