Our great sponsors
-
v
Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
vos
Vinix is an effort to write a modern, fast, and useful operating system in the V programming language
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
> Mostly all this post has is some type checker bugs that have already been fixed (of course the article will never be updated now that they're fixed)
Alex, all of these are still open right not and are not fixed:
- "No mut m := x mutability check" https://github.com/vlang/v/issues/14803
- "closure capture names are not checked for uniqueness with the closure parameter names" https://github.com/vlang/v/issues/14787
- "segfault in auto string method generated for []&int{len:1} (does not check for 0 pointers)" https://github.com/vlang/v/issues/14786
> using -prod for measuring compiler speed
My article does not do that. I included all the steps used and the 1,000,000 line tests use tcc and not -prod.
> And nonsense like setting array length on creation is a terrible idea. Go with its `make([]int, 5)` must be a terrible scam language as well.
V allows the user to override length field which is used in bounds-checking with no validation. That's the problem.
Please stop lying and just be honest about the state of V.
Given the behavior of you, Tozen and ylluminate on this thread, I have zero interest in interacting with the V "community" again.
My solutions are not very good and also not documented, I'm just a simple developer and always approach aoc mostly without any research just for fun. Also V got changed a lot since the last 2 years so I'm curious to try it again and see how it evolved, maybe 2022. Last year I did go, I think if you like go then you will also have fun with vlang. I really like the syntax of vlang it was a lot of fun. In discord we also had some discussions where they tried to keep up with the performance of go/rust solutions. I remember that you can set some flags to improve array performance etc. But this is not part of my repository.
https://github.com/rolfschmidt/advent-of-code-2020
I started here: https://github.com/svanderbleek/x-language-review/blob/main/...
What do you mean IM channels?
Your demo includes code that uses manual memory management because of autofree bugs.
https://github.com/vlang/ved/blob/9b85e6291c9fe9135db1e300de...
And that's why vinix [1] is full of manual free call? That tells how good autofree is, isn't it? Can you compile v compiler with autofree? Last time I checked, you can't.
[1] https://github.com/vlang/vinix/search?q=free&type=code
git clone --depth 1 --quiet --single-branch https://github.com/vlang/vc ./vc
git clone --depth 1 --quiet --single-branch --branch thirdparty-linux-amd64 https://github.com/vlang/tccbin ./thirdparty/tcc
No, I really wouldn't, and don't. This is the kind of thing that reads to me as honest for a new in-development language: https://github.com/cruxlang/crux#status
Features are explicitly listed as working, partially done, and not yet implemented. You're really truly allowed to say "This doesn't work yet, but we're working on...", and it is legitimate to criticize people for choosing to lie instead.
> ...from the point of definition to the end of the scope..
Not sure what you mean. Is it about the fact that all variables are declared in the header of the procedure, i.e. not somewhere in the body as e.g. in C# or Java? This is actually the same with Active Oberon and Modula-3 (though the latter can have nested blocks like Ada). In case you mean that the order of declarations is relevant, Oberon+ assumes at least a two phase parser by design; a declaration sequence can contain more than one CONST, TYPE and VAR section in arbitrary order, interleaved with procedures, and the order of declaration is not relevant; see e.g. https://github.com/oberon-lang/specification/blob/master/The...