Comments (13)
Cthulhu. Basically, 1.7 broke Cthulhu. It works on 1.6.
from cthulhu.jl.
That would be great, but I'm sure we can figure it out. I am swamped by yet new SnoopCompile-related analyses (really excited about a new idea I want to try...) and the fact that I can continue to work on 1.6 is a disincentive for me to fix this...
from cthulhu.jl.
As for the documentation, I filed JuliaLang/julia#39239
from cthulhu.jl.
The Vararg change on 1.7 hasn't propagated to many packages that reach into Julia's internals. A PR would be great, but if you're not up for that you can either twiddle your thumbs until someone fixes it or use release-1.6
in the meantime.
from cthulhu.jl.
I am not sure I understand: where does this need to be fixed? In Cthulhu or in CxxWrap?
from cthulhu.jl.
For future reference, this is about the effects of JuliaLang/julia#38136
I'd like to help, and am now looking at the code, but it's (for me) not exactly self-explaining; in particular, the intent of various functions is unclear, making it hard to guess what the right way to adjust things is.
So for the immediate error here, stripType
presumably needs to be adjusted, as the error occurs in there -- or the mistake is that stripType
is called in the first place.
If stripType
needs to be adjusted... then I am still not sure how so, as I don't know what the intent of stripType
is?
Beyond that, it baffles me is Vararg{Pair{String, String}} <: Type
now produces an error -- seemingly indicating that the VarArg isn't a type anymore?
So perhaps the deeper problem then is that Vararg
apparently is not a type anymore? Comparing https://docs.julialang.org/en/v1/base/base/#Core.Vararg and https://docs.julialang.org/en/v1.7-dev/base/base/#Core.Vararg I notice in the top line that Core.Vararg
changed from "type" to "constant"; but the text still says "The type Vararg{T,N} ". So it seems to me that at least one of the following holds:
- there is a bug and
Vararg{Pair{String, String}}
should be a type after all - the above documentation needs to be fixed for 1.7
- I am misunderstanding something (quite likely :-) ).
from cthulhu.jl.
I hope it is not inappropriate for me to tag @Keno here, but since he made those Vararg changes to Julia, he might be in the best position to answer the above?
from cthulhu.jl.
Beyond that, it baffles me is Vararg{Pair{String, String}} <: Type now produces an error -- seemingly indicating that the VarArg isn't a type anymore?
Isn't that almost precisely the title of JuliaLang/julia#38136?
from cthulhu.jl.
If that's what it says, great; I must admit that the role of DataType
still is a bit fuzzy to me because of what its docstring says; I used to think it was the "type of types", but the "DataType represents explicitly declared types that have names, explicitly declared supertypes, and, optionally, parameters." which to me reads as if "but" follows, something like "... but there are other types". If that's wrong and my initial simpler assumption is true after all, I am glad to hear that!
But then I still think the manual is wrong for stating "The type Vararg{T,N} ..." ?
from cthulhu.jl.
If it says that in the 1.7 manual, yes, that should perhaps be changed. I don't know which spot you're referring to so I can't easily check.
from cthulhu.jl.
but there are other types
On 1.6 (I don't have 1.7 locally):
julia> subtypes(Type)
4-element Vector{Any}:
Core.TypeofBottom
DataType
Union
UnionAll
and then there's the confusing fact that Type{T}
is a DataType
.
from cthulhu.jl.
Indeed that's confusing:
julia> Type{Type} isa DataType
true # as you wrote....
julia> supertypes(DataType)
(DataType, Type{T}, Any) # whaaaat?!
Thanks for teaching me about subtypes
;-) I immediately learned that Any
is a subtype of itself (which ... kinda makes some sense, perhaps, I guess.... my head hurts... but I guess that's what I get for getting involved with Cthulhu... ;-)
from cthulhu.jl.
I immediately learned that Any is a subtype of itself (which ... kinda makes some sense, perhaps, I guess.... my head hurts.
😄. Everything gets easier when you start thinking of types in terms of sets. Int
is a set with one object in it, Integer
is a set with several (and expandable to more). Despite the notation, :<
is equivalent to the set-theoretic ⊆ rather than strict ⊂. typeintersect
is just set-intersection.
from cthulhu.jl.
Related Issues (20)
- `ERROR: MethodError: no method matching display(::Dict{String, Vector{TypedSyntax.InlayHint}})` and `julia.usePlotPane` HOT 1
- Incorrectly positioned type assertion
- Internal `AssertionError: label > 0` when descending a method call HOT 14
- Precompilation fails on 32-bit Julia 1.9
- `UndefVarError: T not defined` when using `@descend` HOT 2
- Different type annotations when function is defined once on Julia nightly HOT 2
- Inlay hint display for juxtaposition and infix operators HOT 4
- Display certain unions with `Base.warn_color()` to match `code_warntype` HOT 1
- Allow user to overload printing behavior HOT 2
- Show Inlay Hints in VSCode for all open files
- Add CI for Arm Macs
- Precompilation error on julia master due to `IOError: stream is closed` HOT 4
- Duplicate Inlay Hints when Language server is providing type hints HOT 2
- expected Core.Compiler.InferenceState, got a value of type Nothing HOT 2
- Program Slice View
- `type CodeInfo has no field rettype` on Julia's master branch HOT 1
- Imperfect type inference on Julia nightly that doesn't agree with `@code_warntype` HOT 1
- Inlay hints placed in wrong locations HOT 2
- AssertionError from Core.Compiler HOT 2
- Keyword `interactive` kw does not exist in `code_warntype`, as suggested
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cthulhu.jl.