HNHacker News
TopNewBestAskShowJobs

generichuman

2,285 karma · joined January 30, 2017

Nope
submissionscomments
generichuman··on Multiplix, operating system kernel for RISC-V and AArch64 SBCs
Author's talk at dconf (from today, actually) may be of interest: https://www.youtube.com/live/wXTlafzlJVY?feature=shared&t=24...

(Timestamp is 6:45:08)

generichuman··on Microsoft is discontinuing Visual Studio for Mac after major overhaul
What sort of work are you doing that made you give up on C# on mac? Backend or games?

I haven't really tried to write serious C# code on macOS, but I did write some CLI tools, which was not bad. VSCode debugging works great too.

Obviously .NET is not supported as well as it should anywhere except Windows, but it seems to be getting better.

generichuman··on Apple to Limit iPhone 15 USB-C Cables to USB 2.0 Speeds: Report
TBH iPhones are pretty easily replaceable at this point (if you haven't bought into the whole Apple ecosystem). Folding Pixels look pretty good.

Apple Silicon Macs on the other hand... I'm still waiting for a Linux device with no fans & comparable battery life + performance.

generichuman··on macOS 13.5 no longer allows setting system wide ulimits
Saving people an internet search: MPS = Metal Performance Shaders

Apple docs for it: https://developer.apple.com/documentation/metalperformancesh...

PyTorch backend: https://pytorch.org/docs/stable/notes/mps.html

generichuman··on Source code for Quake 2 rerelease
They used to open source the code after 5 years, but I think they stopped open sourcing their games after Carmack left.

It could just be that they started using other proprietary components in their code though.

Would've loved to read the source code for Doom 2016!

generichuman··on Source code for Quake 2 rerelease
I wonder why they released the source code for this one. Is it purely because of the principles, or did they have a legal requirement since the old one is also GPL licensed?

I'm assuming they don't have legal requirements since they owned the old code anyway.

generichuman··on Universal Paperclips
If anybody needs links to Evolve & Kittens, here you go:

- Kittens: https://kittensgame.com/web/

- Evolve: https://pmotschmann.github.io/Evolve/

generichuman··on Zig: Upcoming release postponed two more weeks and lacks async functions
What do you mean by "enabled"? If you want to use Zig with Godot, you can! Just use GDExtension [0].

[0] https://docs.godotengine.org/en/stable/tutorials/scripting/g...

generichuman··on Show HN: CodePerfect, a fast, lightweight IDE for Go
The GUI looks like Dear Imgui. Probably easier for the developer to not use Mac only APIs. Hopefully they fix it later.
generichuman··on Show HN: Python can make 3M+ WebSocket keys per second
Widely used libraries for python such as SciPy, PyTorch, TensorFlow, Numpy all drop down to lower level languages (C/C++/Fortran).

I haven't seen many people doing ML in Python without one of these libraries, so I'd say it is mostly constructing instructions in Python and offloading the actual intensive work to these libraries (which may or may not run on GPU depending on your hardware).

generichuman··on Show HN: Python can make 3M+ WebSocket keys per second
It is unlikely people would use Python if it didn't rely on C code.

If your ML model takes hours when it can take minutes, or takes days when it can take hours, you will move away. You could move away to another language or a faster interpreter but that's a different discussion.

> more focus con optimizing the interpreter

This is good but there's an upper bound to performance of interpreted languages. Maybe the Python interpreter could be as fast as V8, but it is unlikely to be fast as JVM. People will need to drop down to C / Fortran for whatever compute intensive work they're doing.

generichuman··on 55 GiB/s FizzBuzz (2021)
> You could of course FFI into e.g. C for those parts, but that is usually harder to maintain than a few well optimized java classes.

Hopefully Foreign Function & Memory API [0] makes FFI so much easier that we get to drop down to C without much fuss.

[0] https://openjdk.org/jeps/442

generichuman··on Metaprogramming in Zig and parsing CSS
Is there one that doesn't depend on libc & the GC?
generichuman··on Arduino reads punched cards for cloud computing
Original youtube video from Ivanov: https://www.youtube.com/watch?v=Oke-7lsvFug
generichuman··on Zap – Fast backends in Zig
Wraps the C library https://facil.io/. I hope they port it & go pure Zig at some point.
generichuman··on Tomb Raider
Also don't forget that Venom went under surgery to look exactly like Big Boss.
generichuman··on Lower Your Guards: A Compositional Pattern-Match Coverage Checker [pdf]
Came across this through this tweet, impressive: https://twitter.com/innf107/status/1663922920370913283?s=52
generichuman··on Had a call with Reddit to discuss pricing
> For the average HN user? Lol, no it’s not.

Depends on who you think an average HN user is.

generichuman··on Zig Quirks
I don't see what's the problem here. That style has the advantage of being able to look at any identifier and understand whether it is an fn, a type or a variable.
generichuman··on Experimental Rust Feature: Safer Interoperable ABI
> It looks like this is still using C ABI as it's base, which increases the burden for other languages to implement it. What a let down...

How so? It seems to me that actually decreases the burden. For example C# people may not implement the Rust ABI if they don't want to, but since they (and basically every language) already support C ABI, I can implement a library over the existing C ABI so that I can access Rust types.

generichuman··on The Coming Game Engine Inflection Point
I want to use it for small projects but the lack of static typing is stopping me. Otherwise it was very nice when I played with it.
generichuman··on How to Use Exceptions Correctly
Crashes your program or gets ignored if you #define NDEBUG
generichuman··on A secret Apple Silicon extension to accommodate an Intel 8080 artifact
AVX instructions are not supported. See here: https://medium.com/macoclock/m1-rosetta-2-limitation-illegal...
generichuman··on Fake account and $8 blue checkmark wipe $20B off Eli Lilly's market cap
> It went up, but slower.

Prices went up. Inflation is the rate of increase in prices. So slower increase means lower inflation. No increase is 0% inflation, decrease is deflation / negative inflation.

generichuman··on Nvidia Security Team: “What if we just stopped using C?”
Since when is using SPARK an echo chamber?
generichuman··on The pool of talented C++ developers is running dry
Jane Street is doing it in Ocaml (which is pretty similar to Rust + GC) and they seem to be pretty serious.

Are you working at a more "serious" company where they only use languages with the safety level of Assembly?

generichuman··on Next C compiler is a D compiler: Introducing DMD's ImportC
Does ImportC support extensions like attribute cleanup yet? It is basically the same thing as D's scope(exit).

More broadly, are there plans to support C extensions that are available in GCC and clang?

generichuman··on Next C compiler is a D compiler: Introducing DMD's ImportC
Zig doesn't have a C compiler yet, it bundles clang. Someone in the community was working towards a C compiler in Zig though.

ImportC is basically a C frontend for the D compiler, semantics are close enough but there are some changes to be made still.

generichuman··on Zig 0.10.0 Release Notes
Well, Python, JS and Go all have different goals than Zig. You also can't write low-level stuff with them, mostly. Actually, you can (with TinyGo and MicroPython), but they're not what these languages are designed for so you'll most likely be on your own.

Rust is a whole another conversation. You can pretty much do whatever you can do in Zig with Rust, and Rust has the advantage of hardcore memory safety using the borrow checker. It is also a very nice language to use, but it is complicated.

You see, Zig is sort of the C to Rust's C++. I don't mean this in the sense that Zig can't replace C++ (it can) or Rust can't replace C (it can), but it is obvious that C is a simpler language to learn than C++.

So yeah, you kind of don't need Zig when you have Rust and willing to use it for everything, but if you don't want to deal with a complicated language and the borrow checker, Zig is the language for you. It is basically C with some footguns removed + some features added (tagged unions, proper error handling, etc).

Ah, and Rust has long compile times. It is being worked on since 2013 [0] or earlier. Zig is serious about their compile times as you can read about the self-hosted backends for debug compilation speed in the release notes.

I don't know if Rust has any production-ready alternative backends that are fast. People always say LLVM is the reason Rust is slow to compile and you can use cargo check to confirm that, but it is obvious that is more of a priority for Zig team when compared to Rust team.

I sort of don't care about compile times of Rust at this point since the guarentees Rust make is more important to me than the compile times, but that may not be the case for everyone. I'll also use Zig when it is stable enough for my taste for non-safety critical stuff.

[0] https://news.ycombinator.com/item?id=6537005

generichuman··on Why is D's garbage collection slower than Go's?
> which is not all that common/general.

Your objects in trees and arrays don't have the same lifecycle?

Quoting GP:

> ... reference counting (RC) have stampeding characteristics similar to GC pauses when releasing large hierarchies e.g. persistent data structures, or large trees of widgets: all the tree is freed synchronously and recursively, if it's large it can be very sensible.

This is mostly where RC & MMM fails. This is also where you are supposed to use arena allocators.

If you have a tree you're constantly adding to / deleting from, you can use a Pool backed by an Arena. At that point you don't use pointers, only indices into the pool. When you want to remove something from the tree, you mark the objects in the pool "deleted" until you want something added back again.

← PreviousPage 2 of 4Next →