Skip to content

Commit

Permalink
Introduce specification APPENDICES
Browse files Browse the repository at this point in the history
These are advisory tests implementations optionally may
choose to follow. Provides the space for tests that are more broad
than implementation-specific tests, yet might not be something
we mandate all implementations must follow (e.g. overflow tests)
  • Loading branch information
zoffixznet committed Jul 15, 2018
1 parent cc8db7c commit 8e3ab47
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
28 changes: 28 additions & 0 deletions APPENDICES/README.md
@@ -0,0 +1,28 @@
# Perl 6 Specification Appendices

The `APPENDICES` directory of the Perl 6 specification contains *advisory*
specifications. These tests describe behaviour some implementations chose
to follow and other implementations may follow the same behaviour, to offer
similar execution results from same Perl 6 programs.

However, it's possible some implementations or some environments may not
be able to adhere to these specifications. For example, an implementation
that can compute `2**-10000000000` sufficiently fast may choose to use
higher limits for powers before throwing overlow exceptions.

In summation, the APPENDICES contain tests that fall somewhere between
implementation-specific tests residing in test suites of particular
implementations and regular specification tests that all implementations
must adhere to.

An implementation may fail all of the tests in APPENDICES, yet still claim
the status of being a fully-compliant Perl 6 implementation.

## Available Appendices

### [`A01-limits`](A01-limits)

Contains tests of potentially-desirable behaviour that's dependent on the
limitations of typical environments. For example, raising a number to a
huge power effectively "hangs" the program, so the tests check such cases
throw an overflow error instead.
6 changes: 6 additions & 0 deletions README.md
Expand Up @@ -139,6 +139,12 @@ Depending on the location of your test file, the number inside `.parent(2)`
may need to be adjusted to go up the correct number of times from the test
files's location to the root of the repository.

## Appendices

The [`APPENDICES`](APPENDICES/) directory contains advisory tests implentations
may optionally choose to follow. See the [`README`](APPENDICES/README.md)
included in that directory for more information.

## Environmental Variables

- **ROAST_TIMING_SCALE**
Expand Down

0 comments on commit 8e3ab47

Please sign in to comment.