avo
zig
Our great sponsors
- InfluxDB - Collect and Analyze Billions of Data Points in Real Time
- Onboard AI - Learn any GitHub repo in 59 seconds
- SaaSHub - Software Alternatives and Reviews
avo | zig | |
---|---|---|
8 | 783 | |
2,463 | 27,151 | |
- | 2.0% | |
0.0 | 10.0 | |
3 days ago | 6 days ago | |
Go | Zig | |
BSD 3-clause "New" or "Revised" 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.
avo
-
How to Use AVX512 in Golang
I thought the /r/golang comments on this post were pretty useful[1]. They also introduced me to avo[2], a tool for generating x86 assembly from go that I hadn't seen before. There are some examples listed on the avo github page for generating AVX512 instructions with avo.
1 = https://www.reddit.com/r/golang/comments/10hmh07/how_to_use_...
For writing AVX512 from scratch avo is a much better alternative.
-
SIMD Accelerated vector math
Avo is a library that simplifies writing complex go assembly, I found it very useful to figure out how instructions map onto Go's asm syntax. But you could definitely do the translation directly, it's what c2goasm did (couldn't get it to work reliably unfortunately).
-
HaxMap v0.2.0 released, huge performance improvements and added support for 32-bit systems
Curious if you're looking at using avo to write the assembly
-
HaxMap, a concurrent hashmap faster and more memory-efficient than golang's sync.Map
You can use github.com/mmcloughlin/avo for generating the assembly use Go.
-
S2: Fully Snappy compatible compression, faster and better
For normal and "better" mode I am using avo to generate different encoders for different input sizes, with and without Snappy compatibility. That currently outputs about 17k lines of assembly.
-
Branchless Coding in Go (Golang)
You could perhaps just have the Go compiler generate the assembler for your code:
go tool compile -S file.go > file_amd64.s
Then you could verify it doesn't change over time, and choose to begin maintaining by hand if it makes sense.
If you do want to go the route of rolling it yourself, I'd suggest looking into something like Avo: https://github.com/mmcloughlin/avo
-
High precision timer loop.
If you have to go with Assembly, try Avo https://github.com/mmcloughlin/avo
zig
-
Show HN: Error return traces for Go, inspired by Zig
https://github.com/ziglang/zig/issues/7295
Or is it that the three years it’s been around indicate it will never progress?
-
Factor is faster than Zig
Actually it seems according to the issue that TigerBeetle (one of the bigger zig projects out there) noticed this issue [1]. It's also on their issue tracker [2].
Zig’s issue tracker list them [0].
[0]: https://github.com/ziglang/zig/issues?q=is%3Aopen+is%3Aissue...
- BunJS : La star montante du monde JavaScript
-
Mojo is now available on Mac
Chapel has at least several full-time developers at Cray/HPE and (I think) the US national labs, and has had some for almost two decades. That's much more than $100k.
Chapel is also just one of many other projects broadly interested in developing new programming languages for "high performance" programming. Out of that large field, Chapel is not especially related to the specific ideas or design goals of Mojo. Much more related are things like Codon (https://exaloop.io), and the metaprogramming models in Terra (https://terralang.org), Nim (https://nim-lang.org), and Zig (https://ziglang.org).
But Chapel is great! It has a lot of good ideas, especially for distributed-memory programming, which is its historical focus. It is more related to Legion (https://legion.stanford.edu, https://regent-lang.org), parallel & distributed Fortran, ZPL, etc.
-
Building Apps with Tauri and Elixir
The answer was given by the Elixir community with burrito which enables users to pack up everything an Elixir application needs within a binary namely Zig Archiver to package the binary and Zig Wrapper that wraps the Erlang Virtual Machine to be used in multiple platforms (Zig + Rust in the same project 🤯).
-
Roadmap to master zig
Do not try implementing something by yourself, especially if you are like me ( loosing motivation instantly if something goes wrong ). So what to do ? Go to std , just try copying implementations from there. This leads to solid understanding how to write right code. If you don't understand something you can always go to documentation ( 2 ) and look there or into std itself and just discover tests that are written for specific structs, they really help a lot.
-
Ziggy Pydust: a toolkit for building native Python extensions in Zig
If you're not familiar, Zig is a low-level general purpose programming language that provides improved safety over C/C++ and powerful compile-time meta-programming called "comptime".
-
Arena Allocator Tips and Tricks
There's support for this type of OOM testing in Zig's std.testing:
- https://github.com/ziglang/zig/blob/1606717b5fed83ee64ba1a91...
- https://www.ryanliptak.com/blog/zig-intro-to-check-all-alloc...
What are some alternatives?
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).
Odin - Odin Programming Language
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
rust - Empowering everyone to build reliable and efficient software.
go - The Go programming language
rust - Rust for the xtensa architecture. Built in targets for the ESP32 and ESP8266
ssr-proxy-js - A Server-Side Rendering Proxy focused on customization and flexibility!
TinyGo - Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
crystal - The Crystal Programming Language
regex - An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
aws-lambda-rust-runtime - A Rust runtime for AWS Lambda