* Adding initial implementation of atomicModifyIORef in Data.IORef.
* Updating chez003 test (IORefs) to add atomicModifyIORef.
* Updating CHANGELOG_NEXT.md.
* Fixing linting in libs/base/Data/IORef.idr.
* Fixing expected and tests/chez/chez003/IORef.idr to more appropriately test atomicModifyIORef functionality.
* Add documentation for libs/base/Data/IORef.idr.
* Clean up atomicModifyIORef in libs/base/Data/IORef.idr.
* Updating atomicModifyIORef implementation to drop codegen check, let client decide this. Also update test to ensure enough contention to test for true atomicity (thanks to @stefan-hoeck for help with both of these).
* Remove documentation regarding backends other than chez.
* Update libs/base/Data/IORef.idr
Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
* Updating CHANGELOG_NEXT.md with new function name, atomically, and updating tests/chez/chez003/IORef.idr to reflect new function.
* Fix linting for libs/base/Data/IORef.idr.
* Update documentation for modifyIORef in libs/base/Data/IORef.idr.
---------
Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
* [ 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
* [ 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.
* so much experimentation
* tests that show preliminary evidence the new stuff is working.
* small amount of cleanup
* more cleanup of various troubleshooting code.
* new test case added.
* only log unreachable indices if there are any.
* when traversing deeper simply skip over defaults since they have already been reviewed.
* Remove fallback clause that the changes in this PR correctly identified as unreachable.
* tidying up more.
* move some common functions to a new Core.Case.Util module.
* refer to case builder and case tree under new parent module.
* update imports to look for CaseTree in new submodule.
* update api ipkg
* remove unneeded application operators.
* remove or comment out unreachable default clauses caught by the changes in this PR.
* a bit of code documentation and renaming for clarity.
* bump previous version in CI.
* fix API usage of Util module.
* Add issue 1079 test cases.
* forgot to add new test cases file.
* remove commented-out lines by request of RefC author.
* Use a SortedSet instead of nubbing a list.
* update new case tree import.
* Update src/Core/Case/Util.idr
Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
* remove function with nothing to offer above and beyond a differently named copy of the same code.
* replace a large tuple with a record; discover not all of the tuple's fields were needed.
* fix shadowing warning.
Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
While the discussion about how to refactor test framework is not
finished (#1654), make this change: move `rm -rf build` in the
beginning of the test. For these reasons:
* it is useful to inspect the contents of the `build` directory
especially after the test failure
* if build crashes mid-test (e.g. process killed), next run should
not be affected by the `build` directory from the previous run
Ideally we'd have a complete incremental build in CI, but that could be
a bit fiddly to set up at the moment (updating bootstrap code might make
it easier). This tests that the basic facilities work, though - there's
a lot can go wrong even in a small test like this, trust me, I have made
those mistakes :).