Zeta

Results 44 comments of Zeta

For reference here's an implementation I made a while back, which takes the approach with `@:meta`. Ie `@:meta(SomeAnnotation(value = @:meta SomeAnnotation(value = ...))`

That `cas_loop` stuff is an attempt at reproducing what Clang/GCC generate for their atomic intrinsics ```asm mov eax, dword ptr [rdi] .LBB3_1: # =>This Inner Loop Header: Depth=1 mov ecx,...

Alright, the loop has been changed to a `do .. while` loop. I also changed the Java `compareExchange` implementation to also use a CAS loop, otherwise the original value can't...

Good point about library calls on MSVC, I should replace those with the intrinsics. But for GCC/Clang it already uses instrinsics, which do not call library functions: [Godbolt](https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1AB9U8lJL6yAngGVG6AMKpaAVxYMQAdlIOAMngMmABy7gBGmMQSPgAOqAqEtgzObh7epHEJNgIBQaEsEVFcPpaY1klCBEzEBCnuniWYVtkMldUEuSHhkdEWVTV1aSX9HYFdBT3FAJQWqK7EyOwcAKQATADMgchuWADUy%2BuOCgToYaguAHQIB9jLGgCCd48beFS7WDRB6BCmAOLBckcpim%2By8jmWYPemE%2BmG%2BZgMRmBTzW6w%2BY12AAk/MZfo4gfcACoAeQAsgBJRxCZEbJqvKEwuEkoRAgBq2AASlNqajoeiscYWXjjITSRSqQ8UU0lLsAPQy3bBTDVWgAT12mAAbpEVQJMLtXEoFLtcY5SLtHAjgLsSLsmYKzcQ8MAEAQDgAxbmRYg23a%2Bv3%2BgOBoPBkOhsOB5YAVnBD39a1WisICEixrxZu2hitNrtjl2eCNEUCVoNsIuu2U9CY0rQgkdYVcBD1BGTu2ITU1hgIuyYRBYeGQeYYx0dQ/7Rv4xF2OvmuzQLBidEiF3jnoY%2BCoyNjgS7CFoxh7qD7yH36G%2BGpcPcXg67AComGbt7swiCIQAhbl0tFfCD8k3C4nkpSXKxq2mAEPMDC7KYB5HsYVBgcgCAnt895PmapgioBxhCNgACKxiUgSXLrO%2BEo0rQn68t%2B/KCviAFisB9y%2Bm24HEJBxhkoIkS0KgyAANawtgqiIZmmD3KeUCPueBg2PQN5TKhz4HKRzzrA4rzIl4AAim5MY%2Bu77r2/bGAorhhBA0mXvQ167HeD6CE%2BL5eCpKKUQyP7Yn%2BmEMU8zFgRBUGGYexnwQQiEmWZECKeh/6ikCOH4YRxEueRbljN8NFCt5QG%2BaBrHsZxjbEDx/GCcJCCieJ3wQFJF6yZg8moQAtEpJGruumk6RKW4OQZMHGYYZ51Vej52TZz6gilmxvF%2BsIeTiWX0TlIEsQF0FGceoXhYNUVmmEMXZdheEEUIRHKZ6FEzVRc2ZXRcVCIxfn5VBhXcbxAnoPca6SQ5ln1Y1e3Je1GkStpuk2X1G3GCQFnDdZo2oY%2BE1vh%2BV3ub%2Bi33Y9eVrUFsFbUhMPRYFh0JSdZ1tWRamXfS6XzbRsWAQ9uWrWxL1ccV72wkSxA/V2f2LgDjnnVT6kbqDXWPD1O57v1x6qDDAvww5Y1I05U1pdRnmY0z2Os%2BxeMhQhSEK7zxMYUtR2JadQOizTs0ZdiDPZczK3%2BWzHEcyVH0ABowzVv1ww1CmAyLqli514P6bLUNzjE1SYMYmDlaJsMySNKuIw5ycxGUjboKQuXhsX4aPm2MQGIsbCCOrqO01rC13bruWPknqi59YsL7OsWnqu3eewmHvrrcFx5xwnbciUYmC7fsqwAGxtx3%2Bdmms8/l5XmDVwQZpUGISiFyBJfhhbcVW%2BTB2W2TSVDzjHs5wP6Bh5K9vXY7Ao6z5bvPZ7RXe7Czh5wJyElPYAM8A78yDkLDeTAq6MB3n3ZesJbbhzXCDR4YNup6V6jHUek8KrTzTlZPUCN7JdhgXAmuk064O3ml5JarsmI2RYt3XuGhb4j1gsnUBM9UJrwoVveBq8F4sUvmfa%2BNtb76zys/VKaM6a3UZl/Jh0jf5vVKugEBBCwF812ErYOqEBHbxQZKNB4sMGS18tHQ2x4eJMCGunZWt4mC1ypprG62sm7KN9GXMCrDdjsMpkwzhxk7EoWEevMCYisISIpipJ6AUWKyOpu49%2BzsGF63dgVL2XN0B%2B15hAvRUCQ4BJMTSMxkcsEQ1wbBY4JAZ76JsqrX6YhXCYFcapVJdDP7LWCTYkyRA2yzzXhqVpmBokUnPjfIJCS2ajLcJgZJtJ5EN3SVjXKajOYaK0anQp%2BihbzLaSg2ZkFDmLKCaYjqEsOAzFoJwSMvBPAcC0KQVAnBcwKDmAsPUKIeCkAIJoG5Mw%2BIgHWOsC4YLIVQuhfPfQnBJCPMBa8zgvAFAgA0P8wFMw4CwCQHHRcZAKAQHxfQKIyAMxGC4OsDQXA%2BB0CKmiiAYQkVhECNUFUnA/lzm3kSBgqokVYBYJmcQzzeD4DbOULUaLRW%2BFUGUBsSw/nbiaEiiiYRiDsucFgJFBBHQsE5TcvgBhgAKBZHgTAAB3Ikucnl/P4IIEQYh2BSBkIIRQKh1Ayt0LSy0IBTDGHMGqtFkAZioBiC0aVTUiTrFRe2codgIAOEGJ4Wl/gxj5EKHoTIiQBDJqzfEHNDBOgZsmBYONLQ2gDBcPUPQpR42tBGMW7oRQ%2BjtDzbS447Qm0TCKDMT58xFh6F1ZgRVhq7kcAeaQJ5Ly3kcFUAADnnk1eekhdjAHJbsLgXALirF2BAU0uxcCEBtL8s0gCFykrnusLgUxeAAtFVMYFoLwXQtfZC2F46EVTqRbO1F6LMUPtIDixAIA5gEBiA2cglASWlthMelt9rhCiHEC6xD7q1A6rbKO0gFqNUxANbc%2B5iKZWzqJA2CDXZUBvAXUulds5LSbvBRoC4XA93noJVem9d6sVPrBRCt9r64UcC/dO3gv6LD/vvVoR9QnVjEZnSigD0mZhamIAkOwkggA%3D)

> That's a lot of code. I'm curious what's the rationale for supporting all 8/16/32/64 bits int values ? I think 32 + ptr only would be good enough. Hashlink...

I've removed the 8/16/64 bit atomics, and switched everything to primitives. I have kept the pointer atomics, it'd be a shame if AtomicObject were only implemented for Java.

Oh right, forgot those were a thing. Let's see, there's more operations, and these only uses intrinsics (those macOS OSAtomic* functions are deprecated). If you prefer I can merge the...

~~I'm not sure why the CI hung, that test works fine on my machine....~~ CI works fine now.

Since lime only does jpeg decoding, the best replacement would be libjpeg-turbo. MozJPEG is a fork of libjpeg-turbo with improvements for compression and encoding, so it wouldn't provide any advantages...

Looking at the hlopt.txt, it seems to be another case of the hlopt mechanism getting confused. (Similar to #10353) It correctly optimizes out the move into a temp register, but...