Releases: oscar-system/GAP.jl
v0.6.1
GAP v0.6.1
Closed issues:
- julia_to_gap handles vectors of Ints differently (#315)
- refactor gap_to_julia (#319)
- problem to load GAP's Browse package (#456)
- Suppress output of
GAP.Packages.install
if package is already installed? (#476) - Investigate failure to install (?)
Pkg
with Julia nightly in CI (#655) - Add tests for
@gapattribute
(#679)
Merged pull requests:
- do not show messages in
Packages.load
... (#676) (@ThomasBreuer) - regenerate_gaproot: remove Pkg.resolve (#677) (@benlorenz)
- Move code generating gap.sh into its own function (#678) (@fingolfin)
- Ensure @gapwrap / @gapattribute preserve line numbers, and some refactoring (#682) (@fingolfin)
- Fix ImportJuliaModuleIntoGAP if there is no global GAP (#684) (@fingolfin)
v0.6.0
GAP v0.6.0
Highlights:
- Update from GAP 4.11.0 to a prerelease of 4.12, which brings many improvements
- Add support for macOS on Apple M1
- Add support for Julia 1.7
- Add macros @gapattribute and @gapwrap
- Revise handling of GAP errors, fixing many bugs related to that
- Add support for using Julia's random sources in GAP, and vice versa
Closed issues:
- Rename Julia function
NewJuliaFunc
(#330) - GAP.Globals.Display once a GAP error has occured (#516)
- Automatically convert Julia strings into GAP strings (#523)
- side-effect of error traceback (#528)
- Idea: use Clang_jll to build GAP packages (#558)
- Refactor GAP kernel initialization (#591)
- Document how to override GAP_jll, provide a script (#592)
- More GAP error handling issues (#597)
- Document how to update GAP_jll etc. (#618)
- How to get on the Julia side a GAP object wrapping a Julia function? (#629)
- ConfluentMonoidPresentationForGroup (#639)
- problem with error handling (and related current test failures with Julia nightly) (#641)
- Broken on recent master (#646)
- Find a way so that Julia prints
GapObj
asGAP.GapObj
not asGAP_jll.MPtr
(#660) - Error in 0.6.0-DEV when used with Oscar (#662)
- Crash doing
GAP.Globals.Display( GAP.evalstr( "10^150" ) )
(#663) - Crash when loading GAP_jll with Julia debug versions (#664)
- Crash when running the test suite twice (#666)
- Compile fail in Julia 1.7.0-beta3 Apple M1 (#673)
Merged pull requests:
- wrap GAP's IsMersenneTwister RNG (#544) (@rfourquet)
- README.md: add contact section (#628) (@fingolfin)
- Don't unwrap IS_JULIA_FUNC objects automatically (#630) (@fingolfin)
- Rename NewJuliaFunc -> WrapJuliaFunc, add UnwrapJuliaFunc (#631) (@fingolfin)
- Adjust tests for latest Singular.jl (#633) (@fingolfin)
- added
deepcopy
andcopy
forGapObj
(#634) (@ThomasBreuer) - new macro
@gapwrap
(#636) (@ThomasBreuer) - CI: test with Julia 1.6 (#637) (@fingolfin)
- CompatHelper: add new compat entry for "MacroTools" at version "0.5" (#638) (@github-actions[bot])
- Align banner printing code to other Oscar packages (#640) (@fingolfin)
- support using Julia's random sources in GAP (#642) (@ThomasBreuer)
- Fix handling of Julia error messages containing % (#643) (@fingolfin)
- extend the "doctestfilters" of JuliaInterface (#644) (@ThomasBreuer)
- new macro @gapattribute (#647) (@ThomasBreuer)
- Fix gmp include & library paths in Julia >= 1.6 (#648) (@fingolfin)
- Update to GAP 4.11.1 packages (#649) (@fingolfin)
- added
quiet
option toPackages
functions (#651) (@ThomasBreuer) - Switch to GAP 4.12dev (#652) (@fingolfin)
- ccall: explicitly state the source of each symbol we call (#653) (@fingolfin)
- regenerate_gaproot: use nicer regex (#654) (@fingolfin)
- Run CI tests against Julia 1.7.x (#656) (@fingolfin)
- Fix regneration of missing primary GAPROOT (#657) (@fingolfin)
- changed the definition of
UnwrapJuliaFunc
(#658) (@ThomasBreuer) - Add UnwrapJuliaFunc to JuliaInterface (#659) (@fingolfin)
GapObj
now prints itself asGapObj
(#665) (@ThomasBreuer)- Some helper scripts for setting up JLL overrides (#667) (@fingolfin)
- Add InverseOp method for IsJuliaObject (#668) (@fingolfin)
- Simplify call_gap_func (#669) (@fingolfin)
- Resolve a TODO by removing some obsolete code (#670) (@fingolfin)
- Revise how we handle GAP errors. (#671) (@fingolfin)
- Replace Array by Vector or Matrix where appropriate (#672) (@fingolfin)
- Fix
GAP.prompt()
(#674) (@fingolfin) - JuliaInterface: fix compilation with Julia >= 1.7 (#675) (@fingolfin)
v0.5.2
GAP v0.5.2
Summary of changes
From the user's point of view, the main changes in this release are better documentation and better error handling.
Closed issues:
- Document ForeignGAP.MPtr (#471)
- Find a way to merge GapObj / MPtr after all, or at least mitigate the performance penalty introduced by their split (#488)
- Feature request: add more Julia conversion constructors, e.g. for
Set
(#529) - problem with handling of GAP errors (#580)
- Avoid .tar.bz2 artifact (#589)
- Add error message for Windows users (#612)
- Make things work if
julia-config.jl
is missing (#623)
Merged pull requests:
- try to make the Julia help available in a GAP session (#566) (@ThomasBreuer)
- CI: remove version restriction for AbstractAlgebra (#594) (@fingolfin)
- catch GAP errors in
GAP.evalstr
(#605) (@ThomasBreuer) - Fix potential crashes in ccall (#606) (@fingolfin)
- added a description how doctestfilters work (#607) (@ThomasBreuer)
- get rid of a RadioMenu warning (#608) (@ThomasBreuer)
- Switch to new GAP_jll and GAP_lib_jll (#610) (@fingolfin)
- Add error message for Windows users (#613) (@ThomasBreuer)
- document the Julia help access from GAP (#615) (@ThomasBreuer)
- fix some tests (#616) (@ThomasBreuer)
- improvements to the JuliaInterface manual (#617) (@ThomasBreuer)
- Remove references to ForeignGAP (#620) (@fingolfin)
- mention that GapObj is printed as GAP_jll.MPtr (#622) (@ThomasBreuer)
- Ship our own copy of julia-config.jl (#625) (@fingolfin)
- Replace .tar.bz2 by .tar.gz archive (#626) (@fingolfin)
archive-tag
Create dummy 'archive' branch
v0.5.1
GAP v0.5.1
Summary of changes
This release mainly improved the CI (doctests, code coverage).
Closed issues:
- inconsistent handling of null characters in strings in GAP and Julia (#527)
- Add
force=true
option toGAP.Packages.install
andGAP.Packages.remove
? (#567) - Release GAP.jl 0.5.0 (#578)
- Fix Coveralls reporting (#581)
- Compilation errors with JuliaInterface (#585)
- Can't install io package (#587)
- Calling GapObj on Tuples yields Arrays (#596)
- Downloading gap artifact generates 404 (#598)
- Fix doctests failures due to whitespace changes in Julia nightly (#601)
Merged pull requests:
- Re-enable doctests in CI (#556) (@fingolfin)
- Don't output coverage data for ../../../.julia (#583) (@fingolfin)
- Two fixes for setup.jl (#593) (@fingolfin)
- Cleanup for JuliaInterface kernel extension (#595) (@fingolfin)
- Simplify abspath + joinpath (#599) (@fingolfin)
- Fix Codecov coverage tracking for outside PRs (#603) (@fingolfin)
- extended doctestfilters (#604) (@ThomasBreuer)
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)