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
convertmethods. 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
GapObjconstructor by adding a return type annotation that ensures only values of typeGapObjare returned. If you relied on this also returningInt,BoolorFFE, please use theGAP.Objconstructor 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
GapInttype union - Patch the GAP package manager to perform downloads via Julia’s
Downloads.downloadto avoid certain failure scenarios - Add
@wrapmacro as an alternative to@gapwrapfor certain use cases. - Don’t show the GAP banner if Julia is started with the
--quietflag - 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_DownloadURLto 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.shanymore 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)