Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

backports for 1.0.4 #3863

Merged
merged 8 commits into from
Jun 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "Oscar"
uuid = "f1435218-dba5-11e9-1e4d-f1a5fab5fc13"
authors = ["The OSCAR Team <oscar@oscar-system.org>"]
version = "1.0.3"
version = "1.0.4"

[deps]
AbstractAlgebra = "c3fe647b-3220-5bb0-a1ea-a7954cac585d"
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -120,7 +120,7 @@ pm::Array<topaz::HomologyGroup<pm::Integer> >
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.
Expand All @@ -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},
}
Expand Down
19 changes: 17 additions & 2 deletions docs/src/CommutativeAlgebra/rings.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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
Expand Down
18 changes: 9 additions & 9 deletions docs/src/Experimental/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
`docs`, `src`, and `test` (The first two examples are
`experimental/{FTheoryTools, PlaneCurve}`). The general structure is
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
Expand All @@ -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.
Expand Down
4 changes: 2 additions & 2 deletions docs/src/NoncommutativeAlgebra/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions gap/OscarInterface/PackageInfo.g
Original file line number Diff line number Diff line change
Expand Up @@ -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 := [
Expand Down
3 changes: 2 additions & 1 deletion src/AlgebraicGeometry/Surfaces/K3Auto.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 3 additions & 2 deletions system/Build.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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)")
5 changes: 2 additions & 3 deletions system/precompile.jl
Original file line number Diff line number Diff line change
@@ -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")
8 changes: 8 additions & 0 deletions test/AlgebraicGeometry/Surfaces/K3Auto.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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"));
4 changes: 2 additions & 2 deletions test/book/test.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
Loading