Whenever the binding structure of an operator does not match
the fixity in scope, the error displays what was the expected
syntax and what was given. Additionally, it provides code
samples of possible fixes for the current error, dynamically
generated from the information at the error's site.
* start implement drop spec
* [RefC] remove vars after prim function call
* [RefC] gc pointer processing changed
* [RefC] fix memory leak in stringIteratorToString
* [RefC] runtime.c refactoring
* Implement basic reuse analisis
* [RefC] do not delete reusable variables in value in let
* [RefC] Use names instead tags in reuse map
* [RefC] Don't set all fields to null in reuse constructor
* Use record syntax in RefC
* Add some utility functions to RefC
* Sort output in garbageCollect refc test
* Add memory leak test for RefC
* [RefC] Remove variable only from body in let
Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
* [RefC] Remove borrowed set from env
* [RefC] Use Ref variable for Enviroment instead of passing as an argument
* [RefC] Use locally function as combinator
* [RefC] removing unnecessary dup and remove during pattern matching
* Update refcTests and refcMemoryLeakTests
* Remove some test files
* move CHANGELOG entry to CHANGELOG_NEXT
* Move refc-memory tests
* Change calling convention test
* [RefC] [Test] Reuse test
---------
Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
Co-authored-by: Mathew Polzin <matt.polzin@gmail.com>
- align buildIdris function with direction of nixpkgs version.
- tangentially, update naming of local variables to follow nixpkgs.
- use pname/version instead of name for buildIdris derivations.
* Fix `buildIdris` on non-macos machines
We build the support library as its own derivation for Nix builds so we do not want to copy it as part of the `buildIdris` install phase and we certainly don't want to wrap it as if it were an executable.
* Update nix/buildIdris.nix
* Update INSTALL.md
* I did not need the additional DYLD_LIBRARY_PATH entry and I was not confident that there was no impact from the changes to the Chez Scheme build instructions so I am mostly reverting those changes
---------
Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
Co-authored-by: Mathew Polzin <matt.polzin@gmail.com>
The optimisation for non-recursive top-level constants introduced in
#2817 accidentally breaks incremental compilation when an optimised
top-level constant is referenced in another module (noticeable in
larger, non-trivial programs, e.g. when building Idris itself in
incremental mode).
Since incremental compilation currently has no way to know about
constants in other modules, this commit sets the list of constants to
`empty` (as is done in the `ChezSep` backend) which allows successful
compilation.
* - [RefC] delete unnecessary conversion to keep code simply.
- [RefC] rename some C functions to confliction safe.
* make the linter feels good.
* Get me a job as a linter slave.
* [RefC] Added hard fail for unsupported primitives.
* Fix typo.