diff --git a/CHANGES.md b/CHANGES.md index a73553377..589120aa4 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,15 @@ # Changes in GAP.jl +## Version 0.11.1-DEV (released YYYY-MM-DD) + +- Optimize conversion from `UInt` to `GapObj` +- Allow `GapInt(x)` as shorthand for producing a GAP integer +- Show an error when trying to load GAP.jl while multithreaded GC is enabled +- Support `gap_to_julia(::AbstractVector)` +- Enhance `@wrap` so that it can produce wrapper functions which coerce + arguments to GAP objects (see its docstring for details and examples) +- Various janitorial changes + ## Version 0.11.0 (released 2024-04-05) - Update to GAP 4.13.0 diff --git a/Project.toml b/Project.toml index 5ceaae64a..b55144e10 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "GAP" uuid = "c863536a-3901-11e9-33e7-d5cd0df7b904" authors = ["Thomas Breuer ", "Sebastian Gutsche ", "Max Horn "] -version = "0.11.0" +version = "0.11.1-DEV" [deps] Artifacts = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" diff --git a/src/macros.jl b/src/macros.jl index 79d2c9833..02a2ad305 100644 --- a/src/macros.jl +++ b/src/macros.jl @@ -328,8 +328,9 @@ However, the generated function actually caches the GAP object `GAP.Globals.NAME This minimizes the call overhead. So @wrap typically is used to provide an optimized way to call certain GAP functions. -If an argument is annotated as `::GapObj`, the resulting function accepts arguments -of any type and wraps them in `GapObj(...)` before passing them to the GAP function. +If an argument is annotated as `::GapObj` (respectively `::GAP.Obj` or `::GapInt`), +the resulting function accepts arguments of any type and attempts to convert them +to `GapObj` (respectively `GAP.Obj` or `GapInt`) before passing them to the GAP function. Another use case for this macro is to improve type stability of code calling into GAP, via the type annotations for the arguments and return value contained in the