Releases: python-processing-unit/Prefix
0.12.0
Major-level changes
- Replace : with space in type annotations.
- Replace - with : in slice indexes.
- Replace * with # in slice indexes.
- Rename arithmetic operators.
Minor-level changes
- Add operator REFUTE.
- Add operator ISMAP.
- Add operator ISFUNC.
- Add operator ISTHR.
- Allow 1 at ident start.
- Update ident name rules.
- Document path stdlib module.
Patch-level changes
- Moved to Clang.
- Update README.md.
- Make TYPE-only assignment error on type conflict.
- Fix passing/restart-basic.pre.
0.11.1
Patch-level changes
Add a PowerShell-based automated test suite and run it in CI.
Fix IADD so coercing NaN and infinities to INT fails instead of succeeding.
Fix PAUSE and its tests.
Fix PARALLEL.
Fix serialization and deserialization.
Make MATCH reject non-INT flags and accept later keyword arguments even when earlier optional ones are absent.
Make WARN reject empty calls and arguments that cannot be converted with ~STR, and improve the empty-call error message.
Make PRINT reject empty calls and arguments that cannot be converted with ~STR.
Reject multiple statements on one logical line.
Make STRIP treat remove as a substring rather than a character list, and reject an empty remove value.
Make REPLACE reject an empty old value.
Make IN reject tensor operands that are not TNS values.
Make STR reject invalid operand types.
Make KEYIN reject invalid key types.
Make BNOT fail on non-binary INT values.
Make THROW concatenate its arguments.
Fix SLEN handling of multi-byte characters.
Fix SER handling of high Unicode values.
Make POW stop writing back through a pointer exponent.
Fix PARFOR pointer writeback.
Fix tensor operator handling of MAP and THR values.
Make MOD stop overwriting a pointer passed as its second operand.
Fix SELF.
Make IMPORT_PATH expose imported module-restricted extension operators through aliases.
Make EXTEND accept suffix-qualified specifiers and expose module-restricted operators through aliases.
Fix INV and make it write back through pointer operands.
Fix APPEND.
Fix FOR counter handling.
Fix KEYS handling of mixed key types.
Fix ILEN.
Fix FPROD.
Fix ROOT.
Fix LCM.
Fix CDIV.
Fix GCD.
Fix LEN.
Fix CONV.
Fix module aliasing.
Fix extension hook registration.
Fix SPLIT handling of an empty delimiter.
0.11.0
Major changes
Build Prefix as a shared runtime DLL with a matching import library, and link both the interpreter executable and compiled extensions against that shared runtime.
Refine extension namespace exposure so module-qualified operators require a dedicated module-restriction flag rather than relying on PREFIX_EXTENSION_ASMODULE alone.
Minor changes
Add the APPEND built-in for appending a single element to a one-dimensional tensor.
Allow unqualified resolution of module-restricted extension operators within modules that extended them, and preserve those extension namespaces when such modules are imported through an alias.
Patches
Update the bundled networking, win32, gui, and image extensions to use the new module-restriction semantics.
Update image helpers so SHOW loads its Windows dependency explicitly and INVERT preserves the alpha channel.
Fix floating-point rendering so infinities stringify correctly.
0.10.0
Major changes
Add the first-class BOOL type with the TRUE and FALSE literals, and change the language's Boolean model to use BOOL rather than integer sentinel values.
Change built-in and standard-library APIs that previously returned INT sentinel values to return BOOL instead, including logical, comparison, type-checking, import, filesystem, console, freeze, and deletion operators, along with helpers such as prime.IS_PRIME, prime.IS_MERSENNE_PRIME, and image.SHOW.
Minor changes
Bind SELF when calling FUNC values stored in MAP objects, preserving aliasing when the map is accessed through a pointer.
Update pointer semantics so transformed built-in results write back through pointer operands, and pointer arguments to user-defined functions bind as aliases.
Patches
Allow BOOL values in conversions, truthiness, tensor elements, serialization, deserialization, printing, and default FUNC returns.
Fix image save operators to report runtime failures correctly.
Refactor the documentation site to use shared CSS and Markdown rendering, and generate the specification table of contents automatically.
0.9.0
Major changes
Update search paths.
Replace .prex files with the EXTEND operator.
Minor changes
N/A
Patches
Serialize index assignment.
0.8.0
Major changes
N/A
Minor changes
Remove spaces between args in PRINT.
Patches
Fix CATCH specification in section 3.4 of the specification.
Update specification section 3.3 to specify that conditions accept all types.
Add horizontal rules to the specification section 9.
Complete GOTO implementation.
Ban implicit MAP returns from FUNC.
Ban non-ASCII chars from source code.
Ban SYMBOL pseudo-type from CATCH.
Ban newline between IF and ELSEIF|ELSE.
Ban newline between TRY and CATCH.
Correct argument parsing.
Do not run ASYNC in STOP or PAUSE.
Fix SHUSH specification.
Make FOR counter loop-local.
Ban RETURN from outside FUNC.
Fix specification 9.2.3.
Fix MAP's Boolean representation.
Ban invalid ^.
Ban incorrect bracket kinds.
Fix specification section 4.4.1.
Restrict GOTOPOINT to STR and positive INT.
Require parentheses for CONTINUE.
Remove spaces from WARN.
Fix specification 9.1.12.
Enforce STOP.
Fix READFILE and WRITEFILE.
Fix PARFOR loop control.
0.7.2
Major features
N/A
Minor features
N/A
Patches
Rewrite the documentation.
0.7.1
Backwards-incompatible features
N/A
Backwards-compatible features
N/A
Patches
Allow symbol creation via ASSIGN.
Allow DEL calls on MAP indexes.
Fix -source mode module name.
Fix TYPE documentation.
0.7.0
Backwards-incompatible features
N/A
Backwards-compatible features
Add coerced type arguments.
Add operator WARN.
Patches
N/A
0.6.0
Backwards-incompatible features
Convert INT and FLT from binary types to support multiple bases.
Backwards-compatible features
Add operator CONVERT.
Add operator BASE.
Patches
N/A