Releases: oscar-system/GAP.jl
Releases · oscar-system/GAP.jl
v0.5.0
GAP v0.5.0
Summary of changes
From the user's viewpoint, this release mainly provides better support for Julia's constructors (compared to the function gap_to_julia
),
and iteration for GP lists.
From a technical viewpoint, the most important changes are that now GAP_jll
is used, and that GitHub Actions are used instead of Travis.
Closed issues:
- Naming conventions: JuliaGetGlobalVariable vs. JuliaFunction (#175)
- Add support for converting Julia Byte Array Literals / Base.CodeUnits to/from GAP strings (#177)
- Add possibility to add custom GAP packages (#246)
- GAP crash when loading
JuliaInterface
in a Jupyter notebook with GAP 4 kernel (#282) - GAP's
-r
option and Julia's.julia/config/startup.jl
(#284) - Feature request: Use BinaryBuilder for GAP.jl (#285)
- Iteration protocol for GAP lists? (#345)
- problem with JuliaBindCFunction in JuliaInterface (#349)
- Optimization: reimplement C function
call_gap_func
in pure Julia (#360) - Idea: better handling of compiled packages (#407)
- GAP.Packages.install now broken because of different build directory (#408)
- problem with
import
statements in files loaded viaJuliaIncludeFile
(#419) - detect whether JuliaInterface (and GAP.jl) fit to a running GAP (#433)
- installation problem for version 0.3.5 (#447)
- a change due to
GAP.prompt()
(#461) - GAP.prompt() broken in ubuntu docker container (#465)
- Better EvalString error (#474)
- macros: bug or feature? (#517)
- ordering of initialization steps (#518)
- Error thrown by GAP: Error, DivideError: integer division error (#519)
- Fix convert(GapObj, big(2)^100) (#531)
- during build: LoadError: could not load library "libjulia" (#533)
- Regression through commit
fix conversion of strings containing null characters
(#545) - Migrate from Travis to GitHub Actions (#552)
- Assertion on upcoming 1.6 when running tests (#560)
- Restore coverage reporting for GAP code (#571)
Merged pull requests:
- two-step help request via a menu (#510) (@ThomasBreuer)
- show GAP traceback on errors thrown by GAP (#520) (@ThomasBreuer)
- changed JuliaIncludeFile (#522) (@ThomasBreuer)
- removed the loewy files from JuliaExperimental (#524) (@ThomasBreuer)
- fixed the @g_str macro (#525) (@ThomasBreuer)
- moved two comment lines (#526) (@ThomasBreuer)
- added a missing
julia_to_gap
method (#532) (@ThomasBreuer) - make calling GapObj function objects faster when no keyword arguments are involved (#534) (@rfourquet)
- allow seeding GAP's global RNG (#535) (@rfourquet)
- added
hash
methods forGapObj
andFFE
(#536) (@ThomasBreuer) - added
Set
forGapObj
(#537) (@ThomasBreuer) - add iteration for GAP objects (#538) (@rfourquet)
- optimize Vector{T} constructor for isbitstype (#539) (@rfourquet)
- optimize Vector{T} constuctor by avoiding elmlist variable (#540) (@rfourquet)
- added
literal_pow
method for inverting (#541) (@ThomasBreuer) - removed the GAP variable JuliaKnownFiles (#542) (@ThomasBreuer)
- fix conversion of strings containing null characters (#543) (@ThomasBreuer)
- set GAP's AlwaysPrintTracebackOnError in tests (#546) (@ThomasBreuer)
- fix string conversion (#547) (@ThomasBreuer)
- Move some code from GAP.jl to separate files (#549) (@fingolfin)
- Switch to using GAP_jll (#550) (@fingolfin)
- update TagBot.yml (#551) (@rfourquet)
- Migrate CI from Travis to GitHub Actions (#554) (@fingolfin)
- fix
GAP.Packages.load
(#555) (@ThomasBreuer) - JuliaInterface: remove include(Base.find_package("GAP")) (#557) (@fingolfin)
- Remove JuliaBindCFunction (#562) (@fingolfin)
- Remove JuliaGetGlobalVariable (#563) (@fingolfin)
- Provide Oscar CI workflows for GitHub actions. (#565) (@rbehrends)
- CI: fix continue-on-error (#568) (@fingolfin)
- README.md: clarify that GAP.jl is low-level (#569) (@fingolfin)
- Tweak README.md (#570) (@fingolfin)
- do not read startup.jl twice (#572) (@ThomasBreuer)
- Add back code coverage for GAP files (#573) (@fingolfin)
- test/runtests.jl: include adapter.jl (#575) (@fingolfin)
- CI: add Coveralls integration (#576) (@fingolfin)
- Prefer constructors over gap_to_julia (#577) (@fingolfin)
v0.4.4
GAP v0.4.4
Closed issues:
- problem to load GAP.jl 0.4.3 in Julia 1.3.1 (#509)
- InitError: ccall: could not find function GAP_EvalString (#511)
Merged pull requests:
- changed the
show
method for GAP objects ... (#508) (@ThomasBreuer) - SetPrintFormattingStatus( ..., false ) (#513) (@mohamed-barakat)
- Fix using GAP.jl from Oscar.jl in Julia 1.3 (#514) (@fingolfin)
- Adjust JuliaExperimental tests for latest Nemo & Singular (#515) (@fingolfin)
v0.4.3
GAP v0.4.3
Summary of changes
The main achievements of this release are performance improvements.
Closed issues:
- Rename EvalString to something more Julia like (#473)
- Allow
julia_to_gap(x; recursive=true)
(#475) - provide
convert
methods for GAP to Julia conversion, parallel to constructor methods (#482) - doctest fail with Julia 1.6? (#484)
- Reduce the overhead for GAP symbol lookup via
GAP.Globals.NAME
(#485) - Reduce overhead for calls from Julia to GAP (#486)
- Tab completion on GAP.Globals.FOOBAR could be faster (#489)
- Error thrown by GAP: Error, PackageManager: InstallPackage: must be a string (#499)
Merged pull requests:
- Run JuliaFormatter.format on some of our Julia code (#466) (@fingolfin)
- extend the documentation of GAP.jl (#472) (@ThomasBreuer)
- Rename artifact gap-4-11-0 to gap (#477) (@fingolfin)
evalstr
returnsnothing
if GAP returns no result (#478) (@ThomasBreuer)- julia_to_gap: handle recursion via keyword argument (#479) (@ThomasBreuer)
- admit installing a package in
Packages.load
(#480) (@ThomasBreuer) - added documentation and doctests for constructors ... (#481) (@ThomasBreuer)
- Make calls from Julia to GAP faster (#487) (@fingolfin)
- make GAP.Globals. complete faster (#490) (@rfourquet)
- define some doctestfilters (#491) (@ThomasBreuer)
- more conversion variants and documentation (#492) (@ThomasBreuer)
- fix
julia_to_gap
conversion of strings (#493) (@ThomasBreuer) - support computed external references (#494) (@ThomasBreuer)
- Avoid function call overhead when CxxWrap.jl is loaded (#495) (@fingolfin)
- Refactor code for accessing global GAP variables (#496) (@fingolfin)
- Optimize access to GAP records (#497) (@fingolfin)
- Fix some Traceur.jl warnings (#498) (@fingolfin)
- Remove use of @pure again (#500) (@fingolfin)
- Expose the handle returned by dlopen("libgap") (#501) (@fingolfin)
- Various tweaks (#502) (@fingolfin)
- Use optimized call_gap_func in more situations (#503) (@fingolfin)
- Refactor gap_to_julia for Matrix{T} (#504) (@fingolfin)
- Streamline some ccalls.jl code (#506) (@fingolfin)
- ccall GAP_register_GapObj only when really necessary (#507) (@fingolfin)
v0.4.1
GAP v0.4.1
Closed issues:
- REPL editing broken in $(julia -e 'import GAP; print(GAP.gap_exe())') (#415)
- Release without LinearAlgebra dependency (#432)
- Travis: compiling
profiling
package fails due to missing autoconf (#452) - GAP.Globals.Display vs GAP.Display (#457)
- GAP.prompt() changes the behavior of julia even after quitting (#458)
- building GAP.jl fails in a docker container running ubuntu:latest (#462)
- GAP.Packages.install( "ferret" ) on GAP.jl#master displays an error message but succeeds to compile (#470)
Merged pull requests:
- Fix GAP.Packages.install with a HACK (#413) (@fingolfin)
- Really restore state after GAP.prompt() exits (#459) (@fingolfin)
- omit a superfluous newline in GAP.Display (#464) (@ThomasBreuer)
- Update JuliaInterface buildsystem to latest Makefile.gappkg (#469) (@fingolfin)
v0.4.0
GAP v0.4.0
The following changes are in GAP 0.4.0:
- Add GAP.prompt() function which gives a GAP prompt inside Julia
- Add support for Julia keyword arguments on the GAP side
- Overload the Julia 'in' operator for GAP objects
- Add conversion constructors for various Julia types, to allow for more
idiomatic Julia code accessing GAP objects - Improve GAP <-> Julia conversion
- Show the GAP banner again by default, unless we are being loaded from Oscar.jl
- Switch to Julia "artifact" system for downloading the GAP sources,
which can save time and disk space when rebuilding or reinstalling GAP.jl - Complete overhaul of the build process for GAP, making it more robust
- Ensure that we link against the same GMP and readline as other components of
OSCAR do - Remove the implicit dependency on LinearAlgebra.jl
- Fix a bunch of minor bugs
- Various janitorial changes
Closed issues:
- What are the rules for conversion when calling from GAP to Julia, and vice versa? And why are they this way? (#28)
- Strings which are not stringreps are not handled by
show
method and probably others (#176) - Get GAP to use the same GMP as Julia, Nemo, ... (#254)
- Add ~/.julia/gap.sh back or revise OSCAR install instructions (#335)
- Installing GAP.jl simultaneously within multiple Julia versions may crash (#377)
- Implement support for passing keyword arguments to Julia from the GAP side (#381)
- JuliaExperimental depends (via zlattice.jl) on LinearAlgebra (#389)
- access to Julia variables from GAP (#390)
- Loading GAP.jl then Singular.jl causes ERROR: InitError: too many gmp (#392)
- Move GAP compilation to a separate GAPBuilder.jl, even if it compiles from source (#394)
- Update build.jl to guard for exceptions (#395)
- Track hash of GAP tarball, avoid extra downloads (#396)
- Acknowledge DFG funding in the package README & manual (#405)
- autom4te: cannot open configure: Permission denied (#406)
- Add constructors for conversion from GAP to Julia (#428)
- Don't call Pkg.build("GAP") (#435)
- Travis: figure out if caching Julia artifacts makes sense (i.e. provides a speedup), and how to do it safely (#437)
- How to get sublists of a GAP list? (#438)
- JuliaToGAP cannot convert Julia ranges to GAP lists (#439)
Merged pull requests:
- Make GAP.jl threadsafe. (#302) (@rbehrends)
- on the GAP side, support Julia's keyword arguments (#391) (@ThomasBreuer)
- improved JuliaInterface documentation (#393) (@ThomasBreuer)
- ?GAP (#397) (@fieker)
- Use artifacts system to manage GAP download; make things Julia version dependent; more (#400) (@fingolfin)
- Remove special support for using a self-compiled GAP (#402) (@fingolfin)
- JI: use RequireStringRep, some renaming (#403) (@fingolfin)
- Remove unused stuff (#404) (@fingolfin)
- keyword arguments: something that had been missing (#409) (@ThomasBreuer)
- removed the dependency on LinearAlgebra's
diag
(#411) (@ThomasBreuer) - Switch to GAP 4.11.0 tarball with maintainer mode (#412) (@fingolfin)
- Minor code refactoring (#414) (@fingolfin)
- Travis: run test on macOS, too (#417) (@fingolfin)
- Travis: import Julia packages in install step (#418) (@fingolfin)
- Only compile GAP once for each Julia major.minor pair (#422) (@fingolfin)
- access to Julia variables from GAP (#423) (@ThomasBreuer)
- Overload 'in' for convenience (#424) (@fingolfin)
- Fix tests with Julia nightly (#425) (@fingolfin)
- Remove JuliaSymbolsInModule (#426) (@fingolfin)
- Start GAP via Julia (#427) (@fingolfin)
- Show banner again by default (#429) (@fingolfin)
- constructors for conversion to Julia, bugfixes (#430) (@ThomasBreuer)
- Some minor cleanup (#431) (@fingolfin)
- JuliaInterface: avoid low-level GAP kernel calls (#436) (@fingolfin)
- Use GAP.Packages.load more (#440) (@fingolfin)
- Work related to BuildPackage.sh (#441) (@fingolfin)
- Instead of running
Pkg.build("GAP")
tell the user to do so (#442) (@fingolfin) - two list issues brought up by Mohamed (#444) (@ThomasBreuer)
- updated .gitignore (#445) (@mohamed-barakat)
- Ensure GNU readline resp. ncurses finds terminfo (#448) (@fingolfin)
- Use get! for IdDict (available since Julia 1.1) (#449) (@fingolfin)
- Simplify error setup in initialize() (#451) (@fingolfin)
- Add GAP.prompt() method (#453) (@fingolfin)
v0.3.5
GAP v0.3.5
Closed issues:
- Converting list to tuple with gap_to_julia may not preserve length (#278)
- printing of self-referring list crashes (#324)
- Bug in integer promotion/conversion/multiplication (#332)
- Turn off GAP loading banner by default (#334)
- Add "nice" wrappers for GAP "PackageManager" (#367)
- Documenter.jl refuses to display julia_to_gap, gap_to_julia (#370)
- Remove "horrible hack" in GAP.jl/src/utils.jl analogously to PR #369 (#380)
- WARNING: could not import Base.hasproperty into GAP (#382)
Merged pull requests:
- Require Julia >= 1.3 and drop some hacks (#309) (@fingolfin)
- Improve printing of GAP objects, fix it for recursive lists (#369) (@fingolfin)
- Simplify GAP.jl initialization further (#371) (@fingolfin)
- let
Documenter.jl
find non-exported variables (#372) (@ThomasBreuer) - Setup ctags, add global Makefile (#373) (@fingolfin)
- Travis: install Singular before Nemo (#374) (@fingolfin)
- fixed conversion GAP list -> Julia tuple (#375) (@ThomasBreuer)
- Add basic wrappers for GAP PackageManager (#376) (@fingolfin)
- Add hasproperty and setproperty methods for GlobalsType (#378) (@fingolfin)
- remove the horrible hack for Display (#383) (@ThomasBreuer)
- Remove JuliaExperimental's kernel extension (#384) (@fingolfin)
- Use Nemo.tr instead of LinearAlgebra.tr (#385) (@fingolfin)
- Move pkg/GAPJulia/ content into pkg/ (#386) (@fingolfin)
- JuliaInterface: use CONST_CSTR_STRING where possible (#387) (@fingolfin)
- Merge STREAM_DISPLAYOBJ, STREAM_VIEWOBJ (#388) (@fingolfin)
v0.3.4
GAP v0.3.4
Closed issues:
- Sometimes GAP is started multiple times from Julia (#333)
- Document the release process of this package (#352)
Merged pull requests:
- suppress the GAP banner when importing GAP.jl (#342) (@ThomasBreuer)
- Get rid of __GAPINTERNAL_LOADED_FROM_GAP (#368) (@fingolfin)
v0.3.3
GAP v0.3.3
Closed issues:
- Make "official" API (#86)
- GAP Error shows up in Julia tests, but does not lead to failure (happens on Travis) (#235)
- GAP not starting when installed via GAP.jl (#277)
- Improve Travis tests on gap-system/gap to actually test GAP.jl (#292)
- use shallow clone and
get(ENV, "GAP_INSTALL_PACKAGES", "no")
(#306) - Some GAP docstrings are missing? (#316)
- problem with Documenter in packages depending on GAP.jl (#337)
- using GAP does not see packages in ~/.gap/pkg (#340)
- JuliaExperimental fails on oscar-ci (#350)
- Switch to using GAP 4.11.0 (#351)
Merged pull requests:
- Travis: add Julia 1.4 to test matrix (#331) (@fingolfin)
- Set up Documenter.jl (#338) (@fingolfin)
- Install TagBot as a GitHub Action (#339) (@JuliaTagBot)
- let Julia start GAP without -r option (#341) (@ThomasBreuer)
- libjulia ignores .julia/config/startup.jl ... (#343) (@ThomasBreuer)
- Improve InstallMethod calls (#346) (@ThomasBreuer)
- fixed and extended GAP <-> Julia conversions (#347) (@ThomasBreuer)
- extended the documentation for macros (#348) (@ThomasBreuer)
- improved the manual of the GAP package JuliaInterface (#353) (@ThomasBreuer)
- Up to now, GAP (running in a Julia session) printed its error messages (#355) (@ThomasBreuer)
- Change the way we do Int64 conversion to/from GAP (#357) (@fingolfin)
- let Documenter.jl test Julia examples (#358) (@ThomasBreuer)
- catch GAP errors also in Julia 1.1 (#359) (@ThomasBreuer)
- Simplify package initialization (#362) (@fingolfin)
- Use CONST_ADDR_OBJ in GET_JULIA_OBJ (#363) (@fingolfin)
- Switch to GAP 4.11.0 point release (#364) (@fingolfin)
v0.2.6
v0.2.6 (2020-02-04)
Merged pull requests: