* [ fix ] Fix issue with eager evaluation of crashing functions
* Mark functions that call unsafe builtins as non-constant
* Better detection of crash primop when deciding if functions can be constant
* Change the printing of namespaced operator to show
parenthesis around operators
* Update warning when conflicting fixities are found
* Do not warn about redundant but compatible fixities
When we encounter a delayed (explicit) function type during elaboration
of a LHS, we strip off the delay modality, continue elaboration and return a delayed version of the resulting type.
Note: defining delayed function via pattern matching is not currently
supported. Doing so will require adding a delay marker to LHSs/contexts
familiar from modal type theories. Implicit function are also currently
not supported.
* [ fix ] Programmer-provided terms should be alwaysReduce
This ports Edwin's commit that fixes the original issue back to Idris
Co-authored-by: Edwin Brady <ecb10@st-andrews.ac.uk>
* [ tests ] Added regression test for #1878
* Updated CHANGELOG.md and CONTRIBUTORS
---------
Co-authored-by: Edwin Brady <ecb10@st-andrews.ac.uk>
This reverts part of commit 4febd31c67.
Moved to PR #2992, as this reverted change is separate from adding
`:doc` support for these. There is potentially more discussion to be had
in the new PR.
* [ fix ] collect constructors on LHS of cases alts
* [ tests ] Updated expected
These functions do refer to these constructors at runtime, so this is the correct output
* Update CHANGELOG.md
* [test] update test output again
When the linearity is called on an application in erasure mode, the
function type containing the relevant quantity may already be erased. In
that case, we return the original term and an empty usage.
Returning an empty usage is potentially incorrect but no linearity is
done in erasure mode, making his safe.
- call sequences in termination errors now carry location information
- new error message (`BadPath`) for late-starting loops
- [ fix ] transitive closure of size-change graphs no longer ignores function arguments
- update existing tests accordingly
* make color output toggling simpler and also more robust
* don't unintentionally assert that tests are run in an environment where colors are turned on.
* Update src/Idris/Env.idr
The inner case can now have a default alternative.
This means `Prelude.Types.prim__integerToNat` is better optimised
before
```js
/* Prelude.Types.prim__integerToNat : Integer -> Nat */
function Prelude_Types_prim__integerToNat($0) {
let $1;
switch(((0n<=$0)?1:0)) {
case 0: {
$1 = 0;
break;
}
default: $1 = 1;
}
switch($1) {
case 1: return $0;
case 0: return 0n;
}
}
```
after
```js
/* Prelude.Types.prim__integerToNat : Integer -> Nat */
function Prelude_Types_prim__integerToNat($0) {
switch(((0n<=$0)?1:0)) {
case 0: return 0n;
default: return $0;
}
}
```
* [ performance ] String builder on all scheme backends
this makes it about 50x faster at printing scheme code
* [ lint ]
* Add new module
* [ fix ] miscompilation on racket
* add shebang to outputted node file
after `chmod`ing the file, it can be run directly
ie `./build/exec/test` rather than `node ./build/exec/test``
* update CHANGELOG.md
* [ linter ]
* [ linter ] again...
display result message.
Why:
Makes the error message being displayed twice in Emacs.
This change aligns IDEMode/REPL.idr with Idris/REPL.idr which
works as expected.
Relates to:
https://github.com/idris-hackers/idris-mode/pull/563
except now packageDirs keeps getting added to. So rather than just
saving and replacing extraDirs, I'm replacing the whole dirs directory
within defs.options
* [ base ] Deprecate setByte in favour of setBits8
Deprecate getByte; fix Core.Binary.Prims
Along with `setByte`, the `getByte` function should similarly be
deprecated since it also assumes the value will have the given size,
rather than guaranteeing it in the type.
CI highlighted some required changes in `Core.Binary.Prims` thanks to
`-Werror`. The fix was to add some `cast` calls where the old `getByte`
and `setByte` used to be.
The RefC buffer test will need updating once we remove the functions
completely. Added a note for future peeps.
* [ fix ] .ipkg install dir
* [ test ] .ipkg install dir
* [ doc ] update CHECKLIST
* [ doc ] add explanation to pkg016 test
* [ cleanup ] no need to clutter CHECKLIST