Skip to content

Regression in displaying of stacktraces with recursive functions. (on ARM?) #52334

@KristofferC

Description

@KristofferC

It seems a lot of the niceness that has been added for "stackoverflow type" of errors (or just generally when a function is called recursively) has been lost:

As an example:

julia> f(x) = g(x)
f (generic function with 1 method)

julia> g(x) = f(x)
g (generic function with 1 method)

1.7:

julia> f(10)
ERROR: StackOverflowError:
Stacktrace:
     [1] f(x::Int64)
       @ Main ./REPL[1]:1
     [2] g(x::Int64)
       @ Main ./REPL[2]:1
--- the last 2 lines are repeated 39990 more times ---
 [79983] f(x::Int64)
       @ Main ./REPL[1]:1

1.8+:

julia> f(10)
ERROR: StackOverflowError:
Stacktrace:
 [1] g(x::Int64)
   @ Main ./REPL[2]:1
 [2] f(x::Int64)
   @ Main ./REPL[1]:1

The

--- the last 2 lines are repeated 39990 more times ---
 [79983] f(x::Int64)

part is lost.


Another example:

julia> f(x) = f(x)
f (generic function with 1 method)

1.7:

julia> f(1)
ERROR: StackOverflowError:
Stacktrace:
 [1] f(x::Int64) (repeats 79984 times)
   @ Main ./REPL[1]:1

1.8:

julia> f(1)
ERROR: StackOverflowError:
Stacktrace:
 [1] f(x::Int64) (repeats 2 times)
   @ Main ./REPL[4]:1

1.8 says repeats 2 times which seems wrong..

Metadata

Metadata

Assignees

No one assigned

    Labels

    bisect wantederror messagesBetter, more actionable error messagesregressionRegression in behavior compared to a previous version

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions