zig
proposal-operator-overloading | zig | |
---|---|---|
9 | 818 | |
612 | 30,946 | |
0.7% | 3.7% | |
3.1 | 10.0 | |
5 months ago | about 24 hours ago | |
JavaScript | Zig | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
proposal-operator-overloading
-
I think Zig is hard but worth it
There's a not-very-active proposal to add operator overloading to JS which takes a similar scoped approach:
https://github.com/tc39/proposal-operator-overloading
-
Applying common operators (like +, *, -, /, etc.) to objects/arrays/lists?
There's a proposal to add operator overloading to the language, but AFAIK it never landed.
-
Immutability: what a monster...
An example of it would be the operator overloading proposal https://github.com/tc39/proposal-operator-overloading that would allow overriding === and it would also solve in one shot many other problems (like numeric types extension, pipeable operator, and all the ones listed in the proposal).
-
Is there a way to access native operations via class methods?
Kind of but not really. There is the concept of operator overloading that would let you specify how to handler uses of operators like - and + with your class instances, but this is not yet officially supported in JavaScript. There is an operator overloading proposal to maybe add it in the future (and if you're using QuickJS that has support built in), but right now there's not a whole lot you can do.
- Proposed Operator Overloading in JavaScript
-
Extending Built-ins with ES6 Classes
Though this is not possible now since operators always work on primitive values, there is a proposal for operator overloading that could potentially allow us to use operators on objects in the future. It's still very early, so its not something you can use today (or anytime soon, if ever at all). In the meantime, you'll need to use method calls to perform these kinds of operations.
-
[AskJS] Why does our community hate Operator Overloading?
I'm not sure who hates it, but I have seen it abused (which people don't like). But, quickjs has it now, and there's a proposal to have it added to the JS spec. The proposal is only stage 1, so who knows what will happen with it or when, but its not counted out.
-
ES2022 feature: class static initialization blocks
https://github.com/tc39/proposal-operator-overloading
There are still a couple issues that have to be solved. m2c: I hope that won't get to stage 3, though I like operator overloading in general, I think it's something that will complicate JS even more.
- TC39 proposal: operator overloading in JavaScript
zig
-
Show HN: I made a better Perplexity for developers
It's "Zig" not "Zag". https://ziglang.org/ Zig is under heavy development, but there's a single page https://ziglang.org/documentation/0.12.0/ that is a reasonably comprehensive source of truth about the current state of the language.
- The search for easier safe systems programming
-
Memory-mapped IO registers in Zig. (2021)
There is an issue proposing this approach: https://github.com/ziglang/zig/issues/4284
- Zig Programming Language
- Zig Language 0.12 Release
-
Zig 0.12.0 Release Notes
https://github.com/ziglang/zig/issues/224
e.g.:
> > When debugging/prototyping, it's useful to comment out a line without having to refactor, e.g.
-
How to Write a PHP Extension with Zig?
When writing code in a scripting language, sometimes you need that extra bit of performance (or maybe an async feature from Zig).
-
Bun - The One Tool for All Your JavaScript/Typescript Project's Needs?
NodeJS is by no means a slow runtime, it wouldn’t be so popular if it was. But compared to Bun, it’s slow. Bun was built from the ground up with speed in mind, using both JavascriptCore and Zig. The Bun team spent an enormous amount of time and energy trying to make Bun fast, including lots of profiling, benchmarking, and optimizations.
-
Bun 1.1
ntdll.dll!RtlUserThreadStart()
There are valid reasons to use APIs from NTDLL. Where I disagree with zig#1840 is the idea that it is always better to use NTDLL versions of API. Every other software ecosystem uses the standard Win32 APIs and diverging from that without a good reason seems like a good way to have unexpected behavior. One concrete example is most users and programmers expect Windows to redirect some file system paths when running on WOW64. But this is implemented in Kernel32, not ntdll.
https://github.com/ziglang/zig/issues/11894
- Zig, Rust, and Other Languages
What are some alternatives?
ohm - A library and language for building parsers, interpreters, compilers, etc.
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
match-iz - A tiny pattern-matching library in the style of the TC39 proposal.
Odin - Odin Programming Language
quickjs - Public repository of the QuickJS Javascript Engine.
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
proposal-pattern-matching - Pattern matching syntax for ECMAScript
rust - Empowering everyone to build reliable and efficient software.
proposal-deep-path-properties-for-re
go - The Go programming language
ssr-proxy-js - A Server-Side Rendering Proxy focused on customization and flexibility!
rust - Rust for the xtensa architecture. Built in targets for the ESP32 and ESP8266