From d1e53156d6adea12328d09343ea104b9be1ade21 Mon Sep 17 00:00:00 2001 From: Wolfram Decker Date: Tue, 4 Jun 2024 16:42:58 +0200 Subject: [PATCH 1/8] Small change to docu (#3824) (cherry picked from commit b93f6b0e4ce62d4a9247558e741c71bf0edfc7e3) --- docs/src/CommutativeAlgebra/rings.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/docs/src/CommutativeAlgebra/rings.md b/docs/src/CommutativeAlgebra/rings.md index aa09ec1d811b..7b7aa814a30f 100644 --- a/docs/src/CommutativeAlgebra/rings.md +++ b/docs/src/CommutativeAlgebra/rings.md @@ -26,10 +26,12 @@ of the coefficient ring of the polynomial ring. The basic constructor below allows one to build multivariate polynomial rings: ```@julia -polynomial_ring(C::Ring, V::Vector{String}; cached::Bool = true) +polynomial_ring(C::Ring, xs::AbstractVector{<:VarName}; cached::Bool = true) ``` -Its return value is a tuple, say `R, vars`, consisting of a polynomial ring `R` with coefficient ring `C` and a vector `vars` of generators (variables) which print according to the strings in the vector `V` . +Given a ring `C` and a vector `xs` of Strings, Symbols, or Characters, return +a tuple `R, vars`, say, which consists of a polynomial ring `R` with coefficient ring `C` +and a vector `vars` of generators (variables) which print according to the entries of `xs`. !!! note Caching is used to ensure that a given ring constructed from given parameters is unique in the system. For example, there is only one ring of multivariate polynomials over $\mathbb{Z}$ with variables printing as x, y, z. @@ -54,6 +56,19 @@ julia> T, _ = polynomial_ring(ZZ, ["x", "y", "z"]) julia> R === S === T true + +``` + +```jldoctest +julia> R1, _ = polynomial_ring(ZZ, [:x, :y, :z]); + +julia> R2, _ = polynomial_ring(ZZ, ["x", "y", "z"]); + +julia> R3, _ = polynomial_ring(ZZ, ['x', 'y', 'z']); + +julia> R1 === R2 === R3 +true + ``` ```jldoctest From 839e7f043da8b9fd07d8117b62eac89293cab115 Mon Sep 17 00:00:00 2001 From: Johannes Schmitt Date: Tue, 4 Jun 2024 09:24:13 +0200 Subject: [PATCH 2/8] `PlaneCurves` is gone (cherry picked from commit e3dd808f3aa4224b89920b764b3b2caaee09dc18) --- docs/src/Experimental/intro.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/src/Experimental/intro.md b/docs/src/Experimental/intro.md index 54ab71dac7ef..f344445418cf 100644 --- a/docs/src/Experimental/intro.md +++ b/docs/src/Experimental/intro.md @@ -22,8 +22,8 @@ brought up to Oscar standard. ## Structure For an example of the structure for a new project in `experimental` have a look at project folders, i.e. `experimental/PACKAGE_NAME`, that have subfolders -`docs`, `src`, and `test` (The first two examples are -`experimental/{FTheoryTools, PlaneCurve}`). The general structure is +`docs`, `src`, and `test` (an example is +`experimental/FTheoryTools`). The general structure is ``` experimental/PACKAGE_NAME/ ├── README.md @@ -49,8 +49,8 @@ starting from scratch and don't have any documentation yet. !!! note There are still older projects in `experimental` from before the - introduction of this structure. Thus we mentioned `FTheoryTools` and - `PlaneCurve` as projects having adopted to the new standard. + introduction of this structure. Thus we mentioned `FTheoryTools` + as a project having adopted to the new standard. ### Useful functions for development Apart from the hints in the [Introduction for new developers](@ref), there are some more specialized functions for the structure of the `experimental` folder. From c129b225c0f93e5eb99fffd5569c9dd2b8035441 Mon Sep 17 00:00:00 2001 From: Johannes Schmitt Date: Tue, 4 Jun 2024 09:25:47 +0200 Subject: [PATCH 3/8] Don't call it package (cherry picked from commit fe0b05016bb83caca99b17b37acc6c50183c22e7) --- docs/src/Experimental/intro.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/src/Experimental/intro.md b/docs/src/Experimental/intro.md index f344445418cf..84db4e3fb2b9 100644 --- a/docs/src/Experimental/intro.md +++ b/docs/src/Experimental/intro.md @@ -14,29 +14,29 @@ brought up to Oscar standard. !!! danger "Dependencies" - Code from `src` must never use code from `experimental` - - Say there are two packages `A` and `B` in `experimental`, and `B` depends + - Say there are two projects `A` and `B` in `experimental`, and `B` depends on `A`. That means that `B` cannot be moved to `src` before `A`. Worse: If `A` gets abandoned, `B` might share that fate. So please consider carefully in such situations. ## Structure For an example of the structure for a new project in `experimental` have a look -at project folders, i.e. `experimental/PACKAGE_NAME`, that have subfolders +at project folders, i.e. `experimental/PROJECT_NAME`, that have subfolders `docs`, `src`, and `test` (an example is `experimental/FTheoryTools`). The general structure is ``` -experimental/PACKAGE_NAME/ +experimental/PROJECT_NAME/ ├── README.md ├── docs │   ├── doc.main │   └── src │   └── DOCUMENTATION.md ├── src -│   └── PACKAGE_NAME.jl +│   └── PROJECT_NAME.jl └── test └── *.jl ``` -The file `src/PACKAGE_NAME.jl` and at least one `.jl` file in the `test/` +The file `src/PROJECT_NAME.jl` and at least one `.jl` file in the `test/` directory are mandatory and are used by Oscar.jl to find your code and tests. If there is a `test/runtests.jl` then only this file is executed during testing, otherwise all `.jl` files will be run automatically (in a random From 9bdaa8e1cc501de34b5427cd114ca85eae1407d0 Mon Sep 17 00:00:00 2001 From: Wolfram Decker Date: Thu, 6 Jun 2024 00:23:02 +0200 Subject: [PATCH 4/8] Another small change to docu (#3829) (cherry picked from commit a4ff1c4d9209b80fabb1f40ce8e6d873a7e53e3a) --- docs/src/NoncommutativeAlgebra/intro.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/NoncommutativeAlgebra/intro.md b/docs/src/NoncommutativeAlgebra/intro.md index 440b885e48a6..dbdb624bf890 100644 --- a/docs/src/NoncommutativeAlgebra/intro.md +++ b/docs/src/NoncommutativeAlgebra/intro.md @@ -6,8 +6,8 @@ CurrentModule = Oscar Working over a field $K$, our focus in this chapter is on noncommutative Gröbner bases and their application to the computational study of finitely presented associative $K$-algebras. At present state, OSCAR offers -- a comprehensive toolkit for dealing with PBW-algebras and their quotients modulo two-sided ideals, -- functionality for computing and applying (partial) two-sided Gröbner bases in free associative algebras on finitely many letters. +- an evolving toolkit for dealing with PBW-algebras and their quotients modulo two-sided ideals, +- some functionality for computing and applying (partial) two-sided Gröbner bases in free associative algebras on finitely many letters. !!! note In contrast to the general case of finitely presented associative algebras, (left, right, two-sided) ideals in PBW-algebras From b871ed141a09bec20c063d09fd04a42d0ab74340 Mon Sep 17 00:00:00 2001 From: Simon Brandhorst Date: Wed, 12 Jun 2024 14:45:51 +0200 Subject: [PATCH 5/8] fix (#3847) (cherry picked from commit 7e5d14dbf81bb9711c0df4dc988f9aee13f56126) --- src/AlgebraicGeometry/Surfaces/K3Auto.jl | 3 ++- test/AlgebraicGeometry/Surfaces/K3Auto.jl | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/AlgebraicGeometry/Surfaces/K3Auto.jl b/src/AlgebraicGeometry/Surfaces/K3Auto.jl index 1a74305a5de6..81888c7021f1 100644 --- a/src/AlgebraicGeometry/Surfaces/K3Auto.jl +++ b/src/AlgebraicGeometry/Surfaces/K3Auto.jl @@ -2031,7 +2031,8 @@ function find_section(L::ZZLat, f::QQMatrix) k = nrows(K) Kl = integer_lattice(gram=K*transpose(K)) # project ss to K - sK = solve(change_base_ring(QQ,K*transpose(K)),change_base_ring(QQ,K*transpose(ss))) + sK = solve(change_base_ring(QQ,K*transpose(K)),change_base_ring(QQ,K*transpose(ss)); side=:right + ) a = QQ(1) cv = [] while true diff --git a/test/AlgebraicGeometry/Surfaces/K3Auto.jl b/test/AlgebraicGeometry/Surfaces/K3Auto.jl index 05f1ebc395a3..58987208f7a5 100644 --- a/test/AlgebraicGeometry/Surfaces/K3Auto.jl +++ b/test/AlgebraicGeometry/Surfaces/K3Auto.jl @@ -154,3 +154,11 @@ end =# end +@testset "find_section" begin + L = integer_lattice(gram=ZZ[0 2 3; 2 -2 1; 3 1 -2]) + f = QQ[1 0 0;] + s = Oscar.find_section(L,f) + V = ambient_space(L) + @test inner_product(V,f,s)==1 + @test inner_product(V,s,s)==-2 +end From 1a997b56a769eebcc4a4db74be544e2c06948d34 Mon Sep 17 00:00:00 2001 From: Benjamin Lorenz Date: Thu, 13 Jun 2024 10:20:52 +0200 Subject: [PATCH 6/8] booktests: remove duplicate include, add env var to suppress spammy plots output (#3851) * booktests: remove duplicate include, add env var to suppress spammy plots output * booktest: remove one more warning (cherry picked from commit 9e261ce92e394de18a79187a94658897cdba64b9) --- .../holt-ren-tropical-geometry/auxiliary_code/main.jl | 1 - test/book/test.jl | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/test/book/specialized/holt-ren-tropical-geometry/auxiliary_code/main.jl b/test/book/specialized/holt-ren-tropical-geometry/auxiliary_code/main.jl index fedc45d6f5c4..05e84859115e 100644 --- a/test/book/specialized/holt-ren-tropical-geometry/auxiliary_code/main.jl +++ b/test/book/specialized/holt-ren-tropical-geometry/auxiliary_code/main.jl @@ -4,4 +4,3 @@ Pkg.add(name="MixedSubdivisions", version=v"1.1"; io=devnull) import LibGit2 repo = LibGit2.clone("https://github.com/isaacholt100/generic_root_count", "generic_root_count"); LibGit2.checkout!(repo, "ac17f42d0897d72e378310826b1c47db4d65df36"); -include(joinpath(@__DIR__,"generic_root_count","src","main.jl")); diff --git a/test/book/test.jl b/test/book/test.jl index 26b9ab891411..f32de64d25d4 100644 --- a/test/book/test.jl +++ b/test/book/test.jl @@ -202,7 +202,7 @@ isdefined(Main, :FakeTerminals) || include(joinpath(pkgdir(REPL),"test","FakeTer if length(chapter) > 0 ordered_examples = Dict("$chapter" => ordered_examples[chapter]) end - withenv("LINES" => dispsize[1], "COLUMNS" => dispsize[2], "DISPLAY" => "") do + withenv("LINES" => dispsize[1], "COLUMNS" => dispsize[2], "DISPLAY" => "", "GKSwstype" => "nul") do for (chapter, example_list) in ordered_examples cd(curdir) @testset "$chapter" verbose=true begin @@ -238,7 +238,7 @@ isdefined(Main, :FakeTerminals) || include(joinpath(pkgdir(REPL),"test","FakeTer content = read(joinpath(Oscar.oscardir, "test/book", full_file), String) if filetype == :jlcon && !occursin("julia> ", content) filetype = :jl - @warn "possibly wrong file type: $full_file" + @debug "possibly wrong file type: $full_file" end if full_file in skipped @test run_repl_string(mockrepl, content) isa AbstractString skip=true From 9b075805903a4c040c9d72361e1334ed791bd36f Mon Sep 17 00:00:00 2001 From: Aaruni Kaushik Date: Wed, 22 May 2024 22:55:32 +0200 Subject: [PATCH 7/8] Fix Oscar.build() (#3728) (cherry picked from commit 5e39d992cb8aa6e67db68dcde64642e13c2573ec) --- system/Build.jl | 5 +++-- system/precompile.jl | 5 ++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/system/Build.jl b/system/Build.jl index 8c8b81336e35..14b36016ab03 100644 --- a/system/Build.jl +++ b/system/Build.jl @@ -27,11 +27,12 @@ Oscar.system("precompile.jl") sysimage=joinpath(tmp, "Oscar.$(Libdl.dlext)") if !("JULIA_CPU_TARGET" in keys(ENV)) || (ENV["JULIA_CPU_TARGET"] == "") - PackageCompiler.create_sysimage([:Oscar], sysimage_path=sysimage, precompile_execution_file=CO) + println("Building system image for generic target. Use JULIA_CPU_TARGET to change.") + target = PackageCompiler.default_app_cpu_target() else target = ENV["JULIA_CPU_TARGET"] - PackageCompiler.create_sysimage([:Oscar], sysimage_path=sysimage, precompile_execution_file=CO; cpu_target=target) end +PackageCompiler.create_sysimage([:Oscar], sysimage_path=sysimage, precompile_execution_file=CO; cpu_target=target) println("(re)start julia as") println("\tjulia -J $(sysimage)") diff --git a/system/precompile.jl b/system/precompile.jl index f0630ea0ad9a..957072614e73 100644 --- a/system/precompile.jl +++ b/system/precompile.jl @@ -1,9 +1,8 @@ import Pkg Pkg.add("Documenter") Pkg.add("PrettyTables") -Pkg.add("Aqua") - +Pkg.add("JSONSchema") Pkg.precompile() - +ENV["OSCAR_TEST_SUBSET"] = "short" include(joinpath(pkgdir(Oscar), "test", "runtests.jl")) Hecke.system("precompile.jl") From 00eecc4d07f6f53d2f9c6ae1b60f57af2f90e15d Mon Sep 17 00:00:00 2001 From: Benjamin Lorenz Date: Mon, 17 Jun 2024 09:07:37 +0200 Subject: [PATCH 8/8] Version 1.0.4 --- Project.toml | 2 +- README.md | 6 +++--- gap/OscarInterface/PackageInfo.g | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Project.toml b/Project.toml index bc07d580e072..ceadbed36268 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "Oscar" uuid = "f1435218-dba5-11e9-1e4d-f1a5fab5fc13" authors = ["The OSCAR Team "] -version = "1.0.3" +version = "1.0.4" [deps] AbstractAlgebra = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" diff --git a/README.md b/README.md index 230b75e393ca..13b6b1ceddfb 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ julia> using Oscar / _ \ / ___| / ___| / \ | _ \ | Combining ANTIC, GAP, Polymake, Singular | | | |\___ \| | / _ \ | |_) | | Type "?Oscar" for more information | |_| | ___) | |___ / ___ \| _ < | Manual: https://docs.oscar-system.org - \___/ |____/ \____/_/ \_\_| \_\ | Version 1.0.3 + \___/ |____/ \____/_/ \_\_| \_\ | Version 1.0.4 julia> k, a = quadratic_field(-5) (Imaginary quadratic field defined by x^2 + 5, sqrt(-5)) @@ -120,7 +120,7 @@ pm::Array > If you have used OSCAR in the preparation of a paper please cite it as described below: [OSCAR] - OSCAR -- Open Source Computer Algebra Research system, Version 1.0.3, + OSCAR -- Open Source Computer Algebra Research system, Version 1.0.4, The OSCAR Team, 2024. (https://www.oscar-system.org) [OSCAR-book] Wolfram Decker, Christian Eder, Claus Fieker, Max Horn, Michael Joswig, eds. @@ -133,7 +133,7 @@ If you are using BibTeX, you can use the following BibTeX entries: key = {OSCAR}, organization = {The OSCAR Team}, title = {OSCAR -- Open Source Computer Algebra Research system, - Version 1.0.3}, + Version 1.0.4}, year = {2024}, url = {https://www.oscar-system.org}, } diff --git a/gap/OscarInterface/PackageInfo.g b/gap/OscarInterface/PackageInfo.g index 623880c9bcf1..cf928f269119 100644 --- a/gap/OscarInterface/PackageInfo.g +++ b/gap/OscarInterface/PackageInfo.g @@ -10,8 +10,8 @@ SetPackageInfo( rec( PackageName := "OscarInterface", Subtitle := "GAP interface to OSCAR", -Version := "1.0.3", -Date := "31/05/2024", # dd/mm/yyyy format +Version := "1.0.4", +Date := "17/06/2024", # dd/mm/yyyy format License := "GPL-2.0-or-later", Persons := [