sumiya11 / Groebner.jl

Groebner bases in (almost) pure Julia
https://sumiya11.github.io/Groebner.jl/
GNU General Public License v2.0
58 stars 13 forks source link

llvmcall deprecation warnings #139

Open nsajko opened 1 month ago

nsajko commented 1 month ago
  1 dependency had output during precompilation:
┌ Groebner
│  WARNING: llvmcall with integer pointers is deprecated.
│  Use actual pointers instead, replacing i32 or i64 with i8* or ptr
│  in _sort!(AbstractArray{T, 1} where T, Base.Sort.StableCheckSorted{T} where T<:Base.Sort.Algorithm, Base.Order.Ordering, Any) at sort.jl
│  WARNING: llvmcall with integer pointers is deprecated.
│  Use actual pointers instead, replacing i32 or i64 with i8* or ptr
│  in _sort!(AbstractArray{T, 1} where T, Base.Sort.InsertionSortAlg, Base.Order.Ordering, Any) at sort.jl
│  WARNING: llvmcall with integer pointers is deprecated.
│  Use actual pointers instead, replacing i32 or i64 with i8* or ptr
│  in partition!(AbstractArray{T, 1} where T, Integer, Integer, Integer, Base.Order.Ordering, AbstractArray{T, 1} where T, Bool, AbstractArray{T, 1} where T, Integer) at sort.jl
│  WARNING: llvmcall with integer pointers is deprecated.
│  Use actual pointers instead, replacing i32 or i64 with i8* or ptr
│  in var"#f4_find_multiplied_reducer!#565"(Bool, typeof(Groebner.f4_find_multiplied_reducer!), Groebner.Basis{C} where C<:Union{Base.Rational{Base.GMP.BigInt}, Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N}, Groebner.MacaulayMatrix{T} where T<:Union{Base.Rational{Base.GMP.BigInt}, Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N}, Groebner.MonomialHashtable{M, Ord} where Ord<:Groebner.AbstractInternalOrdering where M<:Union{Array{T, 1} where T, Groebner.AbstractPackedTuple{T, B} where B<:Unsigned where T<:Unsigned, Groebner.SparseExponentVector{T, I, N} where N where I where T}, Groebner.MonomialHashtable{M, Ord} where Ord<:Groebner.AbstractInternalOrdering where M<:Union{Array{T, 1} where T, Groebner.AbstractPackedTuple{T, B} where B<:Unsigned where T<:Unsigned, Groebner.SparseExponentVector{T, I, N} where N where I where T}, Int32) at /home/nsajko/.julia/packages/Groebner/IF5vZ/src/f4/f4.jl
│  WARNING: llvmcall with integer pointers is deprecated.
│  Use actual pointers instead, replacing i32 or i64 with i8* or ptr
│  in pairset_update!(Groebner.Pairset{Degree} where Degree, Groebner.Basis{C}, Groebner.MonomialHashtable{M, Ord} where Ord<:Groebner.AbstractInternalOrdering, Groebner.MonomialHashtable{M, Ord} where Ord<:Groebner.AbstractInternalOrdering, Int64) where {C<:Union{Base.Rational{Base.GMP.BigInt}, Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N}, M<:Union{Array{T, 1} where T, Groebner.AbstractPackedTuple{T, B} where B<:Unsigned where T<:Unsigned, Groebner.SparseExponentVector{T, I, N} where N where I where T}} at /home/nsajko/.julia/packages/Groebner/IF5vZ/src/utils/timeit.jl
│  WARNING: llvmcall with integer pointers is deprecated.
│  Use actual pointers instead, replacing i32 or i64 with i8* or ptr
│  in insert_lcms_in_basis_hashtable!(Groebner.Pairset{Degree} where Degree, Int64, Groebner.MonomialHashtable{M, Ord} where Ord<:Groebner.AbstractInternalOrdering, Groebner.MonomialHashtable{M, Ord} where Ord<:Groebner.AbstractInternalOrdering, Groebner.Basis{C} where C<:Union{Base.Rational{Base.GMP.BigInt}, Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N}, Array{Int32, 1}, Int64, Int64) where {M} at /home/nsajko/.julia/packages/Groebner/IF5vZ/src/f4/basis.jl
│  WARNING: llvmcall with integer pointers is deprecated.
│  Use actual pointers instead, replacing i32 or i64 with i8* or ptr
│  in basis_is_new_polynomial_redundant!(Groebner.Pairset{Degree} where Degree, Groebner.Basis{C} where C<:Union{Base.Rational{Base.GMP.BigInt}, Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N}, Groebner.MonomialHashtable{M, Ord} where Ord<:Groebner.AbstractInternalOrdering, Groebner.MonomialHashtable{M, Ord} where Ord<:Groebner.AbstractInternalOrdering, Int64) where {M} at /home/nsajko/.julia/packages/Groebner/IF5vZ/src/f4/basis.jl
│  WARNING: llvmcall with integer pointers is deprecated.
│  Use actual pointers instead, replacing i32 or i64 with i8* or ptr
│  in basis_sweep_redundant!(Groebner.Basis{C} where C<:Union{Base.Rational{Base.GMP.BigInt}, Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N}, Any) at /home/nsajko/.julia/packages/Groebner/IF5vZ/src/f4/basis.jl
│  WARNING: llvmcall with integer pointers is deprecated.
│  Use actual pointers instead, replacing i32 or i64 with i8* or ptr
│  in f4_reducegb_learn!(Groebner.TraceF4{C1, C2, M, Ord1, Ord2} where Ord2 where Ord1 where M<:Union{Array{T, 1} where T, Groebner.AbstractPackedTuple{T, B} where B<:Unsigned where T<:Unsigned, Groebner.SparseExponentVector{T, I, N} where N where I where T} where C2<:Union{Base.Rational{Base.GMP.BigInt}, Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N} where C1<:Union{Base.Rational{Base.GMP.BigInt}, Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N}, Groebner.PolyRing{Ord, C} where C<:Union{Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N} where Ord<:Union{Groebner.AbstractInternalOrdering, Groebner.AbstractMonomialOrdering}, Groebner.Basis{C} where C<:Union{Base.Rational{Base.GMP.BigInt}, Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N}, Groebner.MacaulayMatrix{T} where T<:Union{Base.Rational{Base.GMP.BigInt}, Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N}, Groebner.MonomialHashtable{M, Ord} where Ord<:Groebner.AbstractInternalOrdering, Groebner.MonomialHashtable{M, Ord} where Ord<:Groebner.AbstractInternalOrdering, Groebner.AlgorithmParameters{MonomOrd1, MonomOrd2, MonomOrd3, Arithmetic} where Arithmetic<:(Groebner.AbstractArithmetic{AccumType, CoeffType} where CoeffType where AccumType) where MonomOrd3 where MonomOrd2 where MonomOrd1) where {M<:Union{Array{T, 1} where T, Groebner.AbstractPackedTuple{T, B} where B<:Unsigned where T<:Unsigned, Groebner.SparseExponentVector{T, I, N} where N where I where T}} at /home/nsajko/.julia/packages/Groebner/IF5vZ/src/f4/learn-apply.jl
│  WARNING: llvmcall with integer pointers is deprecated.
│  Use actual pointers instead, replacing i32 or i64 with i8* or ptr
│  in f4_autoreduce!(Groebner.PolyRing{Ord, C} where C<:Union{Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N} where Ord<:Union{Groebner.AbstractInternalOrdering, Groebner.AbstractMonomialOrdering}, Groebner.Basis{C} where C<:Union{Base.Rational{Base.GMP.BigInt}, Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N}, Groebner.MacaulayMatrix{T} where T<:Union{Base.Rational{Base.GMP.BigInt}, Signed, Unsigned, Groebner.CompositeInt{N, T} where T<:Union{Signed, Unsigned} where N}, Groebner.MonomialHashtable{M, Ord} where Ord<:Groebner.AbstractInternalOrdering, Groebner.MonomialHashtable{M, Ord} where Ord<:Groebner.AbstractInternalOrdering, Any) where {M} at /home/nsajko/.julia/packages/Groebner/IF5vZ/src/f4/f4.jl
└

Also, IMO, using assembly at all, let alone so much of it, is a red flag/strong code smell for such a high-level package.

sumiya11 commented 1 month ago

Thanks for reporting that. I'll switch to pointers.

Also, IMO, using assembly at all, let alone so much of it, is a red flag/strong code smell for such a high-level package.

I'm not excited about this as well. ATM I just try to keep llvmcalls in a single file, and maybe I ought to rethink their usefulness later.