GAP.jl 0.7.0 released
08 Oct 2021Today GAP.jl 0.7.0 has been released.
This is the first release of the 0.7.x series. It contains the following breaking changes compared to the 0.6.x release:
- Require Julia 1.6 or later.
- Remove
LoadPackageAndExposeGlobals
. If you are using this, see https://github.com/oscar-system/GAP.jl/pull/696 for alternatives. - Remove all
convert
methods. If you were usingconvert(GapObj, val)
, you can useGapObj(val)
orjulia_to_gap(val)
instead. If you were usingconvert(T,gapobj)
, useT(gapobj)
orjulia_to_gap(gapobj)
instead. - Remove
GAP.gap_exe()
. Instead please useGAP.create_gap_sh(path)
. - Remove GAP function
IsArgumentForJuliaFunction
. No replacement should be necessary. - Remove GAP function
ImportJuliaModuleIntoGAP
. As a replacement, useJuliaEvalString("import MODULENAME")
. - Restrict
GapObj
constructor by adding a return type annotation that ensures only values of typeGapObj
are returned. If you relied on this also returningInt
,Bool
orFFE
, please use theGAP.Obj
constructor instead. If you relied on also Julia objects being returned, you should probably revise your code; but if you determine that you still really really have to do this, you can by usingjulia_to_gap
.
Other changes:
- Add
GapInt
type union - Patch the GAP package manager to perform downloads via Julia’s
Downloads.download
to avoid certain failure scenarios - Add
@wrap
macro as an alternative to@gapwrap
for certain use cases. - Don’t show the GAP banner if Julia is started with the
--quiet
flag - Call the GAP AtExit handler when exiting Julia, so that e.g. the command line history is saved (if the user enabled this in their preferences) or temporary directories are removed.
- Many internal changes and refactoring
Closed issues:
- Override GAP function
PKGMAN_DownloadURL
to use Julia for downloading? (#692) - When leaving GAP prompt mode, save the history (if the user requested it) (#719)
Merged pull requests:
- Insert code between GAP kernel init and init.g; use this to get rid of
__JULIAGAPMODULE
(#590) (@fingolfin) - Don’t create
gap.sh
anymore and removeGAP.gap_exe();
instead users can callGAP.create_gap_sh(path)
(#683) (@fingolfin) - Add DirectoriesPackageProgramsOverrides (#690) (@fingolfin)
- Specify that ‘recursive’ is a Bool (#693) (@fingolfin)
- Turn some implicit testsets into actual testsets (#694) (@fingolfin)
- Override PKGMAN_DownloadURL using Downloads.download (#695) (@lgoe-ac)
- Remove LoadPackageAndExposeGlobals (#696) (@fingolfin)
- JuliaInterface: remove some macros (#697) (@fingolfin)
- Refactor initialization of GAP error handling (#698) (@fingolfin)
- Refactor some code in JuliaInterface (#699) (@fingolfin)
- Align show_banner computation with our other packages (#701) (@fingolfin)
- Refactor ERROR_OUTPUT handling again (#703) (@fingolfin)
- Remove convert methods (#704) (@fingolfin)
- Replace some calls to GAP func by native Julia code (#705) (@fingolfin)
- Avoid Base.MainInclude.eval (#706) (@fingolfin)
- Make use of @gapwrap (#707) (@fingolfin)
- Remove GAP kernel function
JuliaGetFieldOfObject
(#708) (@fingolfin) - Publish JuliaInterface manual on website, too (#709) (@fingolfin)
- Drop Coveralls integration (it performs poorly) (#710) (@fingolfin)
- Add GAP.Obj conversion constructor, overhaul GapObj constructor (#711) (@fingolfin)
- Get rid of __JULIAINTERNAL_LOADED_FROM_JULIA (#712) (@fingolfin)
- Remove IsArgumentForJuliaFunction (#713) (@fingolfin)
- Rewrite @gapattribute macro to allow for docstrings (#714) (@fingolfin)
- Cleanup docs/make.jl (#715) (@fingolfin)
- Remove more obsolete stuff (#716) (@fingolfin)
- Update CHANGES.md (#717) (@fingolfin)
- Remove GAP function
ImportJuliaModuleIntoGAP
, prepare for better tab completion of Julia modules on the GAP side (#720) (@fingolfin) - Call GAP’s PROGRAM_CLEAN_UP via a Julia atexit handler (#721) (@fingolfin)
- Better tab completion in GAP for members of Julia “record” (#722) (@fingolfin)
- Require Julia 1.6 or later (#723) (@fingolfin)
- Rename lib/ -> gap/ (#725) (@fingolfin)
- mh/docs (#727) (@fingolfin)