techhub.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A hub primarily for passionate technologists, but everyone is welcome

Administered by:

Server stats:

4.6K
active users

#libc

1 post1 participant0 posts today

folks who do smart things with multiprocessing models like Go and Chromium usually don't want C libraries potentially stepping on their toes. Oh gosh threads. The day I figure out how to do those, will be day the whole world will want to use this thing. But I want people who use Cosmopolitan #Libc to know what value it's providing them. I think the best way to do that is by raising awareness of the systems engineering fundamentals like this. Because that's something you're right to point out that the #Linux community leadership has room for improvement on.
news.ycombinator.com/item?id=2

news.ycombinator.comWe're pretty much on the same page. I'm not sure if I share your enthusiasm for ... | Hacker News
Replied in thread

@MichaelRoss something I have been trying to look for is a #Linux #ls that isn't depending on #glibc or another #libc implementation, the reason is there was some malware that attached itself to glibc and prevented you to see the directories and files it used and also the process directory in /proc
Had you a ls that wasn't built with glibc, then all the files and directories would be listed.

把 libc 移植到 GPU 上跑

在「Using Libc for GPUs (llvm.org)」這邊看到的,本來在想是個路人的噱頭 project,但仔細看才發現是 LLVM libc 官方的文件:「Using libc for GPUs」。

不是所有的 libc 函數都被 porting 上去,但從列出來的支援清單可以看到主要就是計算類會用到的,但還是有包括一些 I/O (stdio.h) 與時間 (time.h) 相關的函數:

Once you have finished building the GPU C library it can be used to ru

blog.gslin.org/archives/2024/1

Gea-Suan Lin's BLOG · 把 libc 移植到 GPU 上跑在「Using Libc for GPUs (llvm.org)」這邊看到的,本來在想是個路人的噱頭 project,但仔細看才發現是 LLVM libc 官方的文件:「Using libc for GPUs」。 不是所有的 libc 函數都被 porting 上去,但從列出來的支援清單可以看到主要就是計算類會...

Something I would like to make in #rust is a #libc wrapper that uses type-level contracts and optional (maybe debug-by-default) runtime checks. I like Rustix, but I'd like to make something that you can use with magnitudes less footguns.

If you know of a company/team that would be willing to fund such work, I'd be eager to get connected!

#FediHire #contracting
(Please reply with suggested hashtags, I'm not the greatest at these xD)

To enable fast system calls in dynamically linked binaries, we load at runtime a C library that is "unikernel-aware" and employs function calls into the kernel for system calls invocations. This C library is a special version of Musl #libc that can be created fully automatically from vanilla Musl. This is done with the Coccinelle code transformation tool. To build it and test it out, use the following steps.
github.com/ssrg-vt/hermitux/wi

A binary-compatible unikernel. Contribute to ssrg-vt/hermitux development by creating an account on GitHub.
GitHubFast system calls in dynamically linked programsA binary-compatible unikernel. Contribute to ssrg-vt/hermitux development by creating an account on GitHub.

system call interface is designed to be compatible with the C calling convention, which is also the most common calling convention used globally. By adhering to the C calling convention, developers can not only perform system calls in different programming languages, they can also call procedures written in another language, because most languages use C calling convention for their FFI feature. The latter case is even more common, as most languages won’t interact with the system call interface directly in binary level, but by calling a C-based system call wrapper defined in the #libc
this ABI is painfully difficult to disentangle from the programming language C. In order to make a C call, you don’t just need to know what registers to pass arguments in and what size an int is, you need to know things like struct layout and what it means to spill a struct onto the stack. You also need some way to take the interface specifications provided by operating systems and turn them into a format your compiler can work with, and wouldn’t you know it, those interface specifications are provided in the form of… C header files.
langdev.stackexchange.com/ques

Programming Language Design and Implementation Stack ExchangeWhy do common Rust packages depend on C code?Chapter 1 of "The Rust Programming Language" (Klabnik and Nichols) says: [S]ome common Rust packages depend on C code and will need a C compiler. Why do Rust packages have any dependenc...

#TIL J'ai découvert justine.lol/cosmopolitan/index

Un outil pour compiler du #C vers un format capable de s'exécuter partout : Linux, Windows, Mac, FreeBSD... ARM64 et x86_64, sans reposer sur une plateforme (comme la #JVM) ni sur un interpréteur (comme #Python)

Il y a un article qui détail comment ça fonctionne (je n'ai que lu la moitié parce que je ne comprennais pas, c'est trop bas niveau) justine.lol/ape.html

justine.lolCosmopolitan Libc: build-anywhere run-anywhere C library

Exciting easy win I'd been meaning to do for a long time for broadening the scope of libc-test: 45 LoC (including include directives) to dive into a user+mount+net namespace where resolv.conf points to localhost and you have your own localhost you can bind to port 53 on (so resolver can be tested or even fuzzed). Non #musl specific; like all of libc-test, should work for any #libc.