-
I thought I had a piece of dust on my screen, but as I scrolled the dust scrolled: what do these 0xB7 characters do in the identifiers? Are they just "name mangling" to keep them from being exported or something?
https://github.com/ebitengine/purego/blob/v0.2.0-alpha/sys_d...
I noticed another 0xB7 character in a comment, and sure enough it seems to be part of the identifiers: https://github.com/ebitengine/purego/search?q=runtime%C2%B7c...
-
Stream
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
-
Very cool! I will definitely give this a try, I've been looking to build Go bindings to Mach[0] soon.
How does this work around the stack size problem? IIRC the reason CGO overhead exists is at least partly because goroutines only have an ~8k stack to start with, and the C code doesn't know how to expand it-so CGO calls "must" first have the goroutine switched to an OS thread which has an ~8MB stack.
One reason I think Go <-> Zig could be a fantastic pairing is that Zig plans to add a builtin which tells you the maximum stack size of a given function[1], so you could grow the goroutine stack to that size and then call Zig (or, since Zig an compile C code, you could also call C with a tiny shim to report the stack required?) and then eliminate the goroutine -> OS thread switching overhead.
[0] https://github.com/hexops/mach
[1] https://github.com/ziglang/zig/issues/157
-
Awesome!
This would be such a game-changer for server-side rendering Javascript in Go with V8.
I'd love to integrate this into Bud[1].
[1] https://github.com/livebud/bud
-
SWIG
SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.
How is this any different than a mature tool such as SWIG (https://www.swig.org/)?
I've used SWIG extensively with Python to call C code and import C headers for testing/tooling purposes.
-
Oh then sure, I don't see why you couldn't use it with something like https://github.com/mediremi/rust-plus-golang
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
Related posts
-
Show HN: Markdown Ninja: open-source alternative to Substack, Mailchimp, Netlify
-
Rust Dependencies Scare Me
-
Ikemen-GO: open-source reimplementation of MUGEN
-
Why I love Rust for tokenising and parsing
-
What would be the closest thing to Unity/Unreal C#/C++ for Go to create games/animations/visual work?