of course the toml crate has serde on it
pants dug itself into a bit of a corner. in fact it's about to lose one of the most powerful aspects of the rule graph because scanning for internal (recursive) calls poses a performance problem, so the recursive calls need to perform the type-based resolution by hand https://github.com/pantsbuild/pants/issues/19730
i had proposed defining rules in webassembly or even jvm bytecode before, because one of the biggest points of feedback from twitter engineers was "we don't understand this complex python system, we write scala code". this was one of the most reasonable and honest bits of feedback i've ever received
how do you architect a system that crosses ecosystems?
build tools have largely converged upon process executions as the shared unit of work and the filesystem as IPC. this is the most successful and portable FFI i am aware of
process executions are also memory-safe by default, from the OS's segmentation. there are portable synchronization tools for the filesystem alone, and higher-performance ones depending upon the platform. there's a standard resource discovery mechanism, and a standard name assignment mechanism
there are some very small downsides:
(a) the filesystem is a hardware resource, and therefore has some inherent limits
(b) the OS does its own bookkeeping at the vfs layer
(c) process execution alone imposes a mild overhead
so we have a very very general high-level database in the filesystem, and a very very general FFI mechanism in process execution. and these can be used to communicate between tools that don't otherwise have a shared protocol--like cargo and spack, or cargo and pip, or cargo and literally anything
we can also add network requests to the above, and we'll have outlined a system that can bootstrap curl
what if we could define tasks that could be fulfilled by a python function, a jvm function, or a process execution? what then?
another of the many projects i've probably spent at least a month of 8 hour days on https://github.com/cosmicexplorer/upc this one tried to virtualize i/o
i think i had it inside out https://github.com/cosmicexplorer/upc/blob/master/local/virtual-cli/client/VFS.scala instead of making everything conform to the process/filesystem interface, make process/filesystem conform to the everything interface
this was the fun part of this project https://github.com/cosmicexplorer/upc/blob/master/local/memory/MemoryMapping.scala an API for writing to regions of shared memory. this would be used to share objects across languages without serialization. a cool idea
for phase 1 of my dastardly scheme, we will limit ourselves to process-based tasks, and we will bootstrap from (c compiler) => (zstd)
it is. so incredibly fucked up. to see. a mirror of every gnu repository needed to bootstrap a build environment. on github. when the gnu site is down. because of ddosing. from microsoft. i am upset.
if anyone knows a mirror for the gmplib git repo that's not github please link
steve klabnik jumpscare https://stackoverflow.com/a/31778003 yeah i'm sure the one guy whose entire job is making snide remarks about copyleft on podcasts is the authority on what glibc is or isn't gonna do