Shouting into the Void (TM)
| Pronouns | He?/Him? |
| https://twitter.com/AvimanyuRoy3 | |
| Pixelfed | https://pixelfed.social/avimanyuroy3 |
| Pronouns | He?/Him? |
| https://twitter.com/AvimanyuRoy3 | |
| Pixelfed | https://pixelfed.social/avimanyuroy3 |
Swift Bundler can now automatically locate compatible Swift Android SDK + Swift toolchain pairs on the user's behalf. It also supports automatically installing and launching apps on Android devices and emulators. This is all in the as-of-yet unmerged Android support PR: https://github.com/moreSwift/swift-bundler/pull/136
If you'd like to try it out, follow the swift.org Swift Android getting started guide, then use the command in the screenshot to build SwiftCrossUI's CounterExample (on the android_support branch).
"HTML parsers in Portland": https://felix.dognebula.com/art/html-parsers-in-portland.html
Is a fascinating and kind of surreal story and shows why validating anythings LLMs do is going to be very hard if what you are trying to do is well represented in the training set.
Running iOS 6 on iPad 1 is possible now!
SundanceInH2A rev4 brings iPad1,1 iOS 6.1.3 support
Make sure you read the README before using this tool
THIS IS POTENTIALLY DANGEROUS, IF THE WORLD CEASES TO EXIST AFTER RUNNING THIS - IT'S ALL YOUR FAULT
This demo of ElementaryUI from the pre-fosdem #swift meetup was very impressive. Looking forward to seeing where it can go.

Black-box (hardware ops) inverse CRC32C for Intel and NEON.
https://gcc.godbolt.org/z/jK8djfxhE
Prompted by a Pete Cawley post (1) and some recent comments on a 32-bit CRC base hash structure I tossed out a few years back (2)
1) https://www.corsix.org/content/my-favourite-small-hash-table
2) https://github.com/skeeto/hash-prospector/issues/19#issuecomment-3747708182

// CRC32C hardware inverse #if defined(__ARM_ARCH) #if defined(__ARM_FEATURE_CRC32) && defined(__ARM_FEATURE_CRYPTO) static inline uint32_t crc32c(uint32_t x, uint32_t k) { return __crc32cw(x,k); } static inline uint64_t crc32c_64(uint64_t x, uint32_t k) { return __crc32cd(k,x); } // carryless product: 32x32 -> 64 static inline uint64_t cl_mul_32x(uint32_t a, uint32_t b) { poly64_t x = (poly64_t)a; poly64_t y = (poly64_t)b; poly128_t r = vmull_p64(x,y); return vgetq_lane_u64(vreinterpretq_u64_p128(r),0); } #else #warning "needs both hardware CRC32C and carryless product support" #endif #elif defined(__x86_64__) static inline uint32_t crc32c(uint32_t x, uint32_t k) { return _mm_crc32_u32(x,k); } static inline uint64_t crc32c_64(uint64_t x, uint32_t k) { return _mm_crc32_u64(k,x); } // carryless product: 32x32 -> 64 static inline uint64_t cl_mul_32x(uint32_t a, uint32_t b) { __m128i x = _mm_cvtsi32_si128((int32_t)a); __m128i y = _mm_cvtsi32_si128((int32_t)b); __m128i r = _mm_clmulepi64_si128(x,y, 0); return (uint64_t)_mm_cvtsi128_si64(r); } #else #warning "fill in the blanks" #endif // the actual inverse uint32_t crc32c_inverse(uint32_t x) { return (uint32_t)crc32c_64(cl_mul_32x(x,0xc915ea3b),0); } int main(void) { // single example to not burn a bunch of godbolt CPU time uint32_t x = 0xdeadbeef; uint32_t c = crc32c(x,0); printf("%08x %08x : %08x\n",x,crc32c_inverse(c), c); return 0; }