Skip to content

Julia 1.9 RC1 segfaults with this code #49203

Closed
@prittjam

Description

@prittjam

Julia Version 1.9.0-rc1
Commit 3b2e0d8 (2023-03-07 07:51 UTC)
Platform Info:
OS: Linux (x86_64-linux-gnu)
CPU: 12 × Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-14.0.6 (ORCJIT, skylake)
Threads: 8 on 12 virtual cores
Environment:
LD_LIBRARY_PATH =
JULIA_NUM_THREADS = 8

using StaticArrays

abstract type VgtkNum end

struct VgtkInt{T <: Integer} <: VgtkNum
    int::T
end

VgtkInt(::Val{N}) where N <: Integer = VgtkInt(N)
VgtkInt(x::AbstractFloat) = VgtkInt(trunc(Int, x))

struct VgtkFloat{T <: AbstractFloat} <: VgtkNum
   float::T
end

VgtkFloat(x::Integer) = VgtkFloat(float(x))

value(x::VgtkInt) = x.int
value(x::VgtkFloat) = x.float 

Base.:(+)(a::VgtkInt, b::VgtkInt) = VgtkInt(a.int + b.int)
Base.:(+)(a::VgtkFloat, b::VgtkFloat) = VgtkFloat(a.float + b.float)
Base.:(+)(a::VgtkNum, b::VgtkNum) = VgtkFloat(value(a) + value(b))

neltype(x) = neltype(typeof(x))
neltype(::Type{T}) where T <: AbstractArray = neltype(eltype(T))
neltype(::Type{T}) where T = T


const PointRpN{N, T <: AbstractFloat} = SVector{value(VgtkInt(Val(N))+VgtkInt(1)), T} 
const PointRp2{T <: AbstractFloat} = PointRpN{2, T}
const LineRp2{T <:  AbstractFloat} = SVector{3, T}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions