277 karma · joined February 22, 2015
I recall hearing it had been implemented a while back, seems like it's true!
[1]: https://doc.rust-lang.org/reference/procedural-macros.html
Location: Huntsville, AL, USA
Remote: Yes
Willing to relocate: No
Technologies: Rust, C, C++, python, Xen, KVM, hypervisor development, Linux kernel development, IDA Pro
Résumé/CV: https://alschwalm.com/resume/resume.pdf
Email: adamschwalm@gmail.com
I am currently a technical lead for a hypervisor product. My career has primarily been focused on low-level security and performance for quasi-embedded systems, but I also have experience with reverse engineering and machine learning applications. I am passionate about using modern technologies like rust to improve the security posture of products and would like to continue to work in that area.In general, we wanted to be able to spin up our test VMs under docker containers to eliminate issues with differences between our CI shell-runners. Using libvirt based tooling makes that pretty hard. Calling to qemu directly, on the other hand, makes this easy.
There are some other benefits as well such as having direct console access which is not provided by vagrant, but can be very useful for kernel tests.
[1]: The idea was originally inspired by Last Week Tonight, I just automatically generate them.
Canvas: Hardware accelerated
CheckerImaging: Disabled
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Rasterization: Software only. Hardware acceleration disabled
Video Decode: Software only, hardware acceleration unavailable
Video Encode: Software only, hardware acceleration unavailable
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
But this is with an integrated GPU, so maybe things are different for discrete cards.I think it really comes down to python having limited scoping capabilities (I think you can only really make new scopes with function declarations), this can maybe be hacked around, but at too high a performance cost to be usable.
Though the graphic, like this post, doesn't talk much about elf segments.
If the type has a move constructor that is noexcept, then each element can be move-constructed without fear of an exception occurring. For many types, this is vastly more efficient.
I've actually considered looking more at the LLVM dwarf writing components. Do you have any experience with that?