shakedown.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A community for live music fans with roots in the jam scene. Shakedown Social is run by a team of volunteers (led by @clifff and @sethadam1) and funded by donations.

Administered by:

Server stats:

251
active users

#else

0 posts0 participants0 posts today
Cleveland Browns<p>Browns TE room: Salary cap hits in 2025 – Similar to WR, it’s Njoku…and then everyone else</p><p>Next up on our Cleveland Browns salary cap round-up for 2025 is the wide receiver position. You can…<br><a href="https://channels.im/tags/NFL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>NFL</span></a> <a href="https://channels.im/tags/ClevelandBrowns" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ClevelandBrowns</span></a> <a href="https://channels.im/tags/Cleveland" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Cleveland</span></a> <a href="https://channels.im/tags/Browns" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Browns</span></a> <a href="https://channels.im/tags/and" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>and</span></a> <a href="https://channels.im/tags/browns" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>browns</span></a> <a href="https://channels.im/tags/by" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>by</span></a> <a href="https://channels.im/tags/cap" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cap</span></a> <a href="https://channels.im/tags/cleveland" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cleveland</span></a> <a href="https://channels.im/tags/cleveland" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cleveland</span></a>-browns-news <a href="https://channels.im/tags/cleveland" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cleveland</span></a>-browns-roster-players <a href="https://channels.im/tags/dawgs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>dawgs</span></a> <a href="https://channels.im/tags/else" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>else</span></a> <a href="https://channels.im/tags/everyone" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>everyone</span></a> <a href="https://channels.im/tags/Football" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Football</span></a> <a href="https://channels.im/tags/front" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>front</span></a>-page <a href="https://channels.im/tags/hits" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>hits</span></a> <a href="https://channels.im/tags/in" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>in</span></a> <a href="https://channels.im/tags/it" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>it</span></a> <a href="https://channels.im/tags/nature" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>nature</span></a> <a href="https://channels.im/tags/njoku" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>njoku</span></a> <a href="https://channels.im/tags/room" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>room</span></a> <a href="https://channels.im/tags/s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>s</span></a> <a href="https://channels.im/tags/salary" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>salary</span></a> <a href="https://channels.im/tags/similar" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>similar</span></a> <a href="https://channels.im/tags/te" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>te</span></a> <a href="https://channels.im/tags/then" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>then</span></a> <a href="https://channels.im/tags/To" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>To</span></a> <a href="https://channels.im/tags/wr" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>wr</span></a><br><a href="https://www.rawchili.com/nfl/218157/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="">rawchili.com/nfl/218157/</span><span class="invisible"></span></a></p>
NFL News<p>Browns TE room: Salary cap hits in 2025 – Similar to WR, it’s Njoku…and then everyone else <a href="https://www.rawchili.com/nfl/218157/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="">rawchili.com/nfl/218157/</span><span class="invisible"></span></a> <a href="https://channels.im/tags/and" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>and</span></a> <a href="https://channels.im/tags/browns" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>browns</span></a> <a href="https://channels.im/tags/by" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>by</span></a> <a href="https://channels.im/tags/cap" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cap</span></a> <a href="https://channels.im/tags/cleveland" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cleveland</span></a> <a href="https://channels.im/tags/ClevelandBrowns" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ClevelandBrowns</span></a> <a href="https://channels.im/tags/ClevelandBrownsNews" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ClevelandBrownsNews</span></a> <a href="https://channels.im/tags/ClevelandBrownsRosterPlayers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ClevelandBrownsRosterPlayers</span></a> <a href="https://channels.im/tags/ClevelandBrowns" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ClevelandBrowns</span></a> <a href="https://channels.im/tags/dawgs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>dawgs</span></a> <a href="https://channels.im/tags/else" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>else</span></a> <a href="https://channels.im/tags/everyone" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>everyone</span></a> <a href="https://channels.im/tags/Football" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Football</span></a> <a href="https://channels.im/tags/FrontPage" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FrontPage</span></a> <a href="https://channels.im/tags/hits" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>hits</span></a> <a href="https://channels.im/tags/in" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>in</span></a> <a href="https://channels.im/tags/it" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>it</span></a> <a href="https://channels.im/tags/nature" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>nature</span></a> <a href="https://channels.im/tags/NFL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>NFL</span></a> <a href="https://channels.im/tags/njoku" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>njoku</span></a> <a href="https://channels.im/tags/room" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>room</span></a> <a href="https://channels.im/tags/s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>s</span></a> <a href="https://channels.im/tags/salary" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>salary</span></a> <a href="https://channels.im/tags/similar" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>similar</span></a> <a href="https://channels.im/tags/te" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>te</span></a> <a href="https://channels.im/tags/then" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>then</span></a> <a href="https://channels.im/tags/To" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>To</span></a> <a href="https://channels.im/tags/wr" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>wr</span></a></p>
Thierry Laurion<p><span class="h-card" translate="no"><a href="https://mas.to/@libreleah" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>libreleah</span></a></span> <span class="h-card" translate="no"><a href="https://mas.to/@mkukri" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>mkukri</span></a></span> </p><p>Both Heads and lbmk permit to apply patches on top of a coreboot fork. </p><p>The difference between the two here is that lbmk builds the tree, clean, for each boards, where Heads applies the patches to a fork once, and each board reuses fork build artifacts;, building board specifics in a board specific artifact directory. That permits crossgcc, being the buildstack of each coreboot fork version to be built once, and also repro build issues upstream, economizing both disk space, cpu resource for user and CI.</p><p>In Heads goal of building fully functional roms, CI can build and stitch reproducible roms for each commit for end users to download directly from CI, for each commit, and see if a comit broke a built, for each commit. CI cache is reused, so that we don't waste CI resources either.</p><p>In the case of t480, the patch was made with lbmk in mind, not coreboot nor Heads, and breaks other thinkpads in coreboot upstream, trying to not only build for t480 but make sure t480 patchset doesn't break other boards. In this case, it breaks all other thinkpads, so prevent Heads from merging the PR. What you propose here is for libreboot and Heads to maintain a patchset not merged upstream; it might suit libreboot mindset, being more bleeding edge, and minifree, selling the t480, but not Heads. Heads tries to stay as close as possible to upstream forks, and pushes upstream projects to merge patches. Its long, not easy, but the right thing to do. The patches stays in a patch dir for everyone to see, per software version. In this case, patches/coreboot-24.12/*</p><p>I tried to apply the following patch without success instead of commenting thermal.asl</p><p>+diff --git a/src/ec/lenovo/h8/acpi/ec.asl b/src/ec/lenovo/h8/acpi/ec.asl<br>+index bc54d3b..a0408c8 100644<br>+--- a/src/ec/lenovo/h8/acpi/ec.asl<br>++++ b/src/ec/lenovo/h8/acpi/ec.asl<br>+@@ -331,7 +331,13 @@ Device(EC)<br>+ <a href="https://infosec.exchange/tags/include" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>include</span></a> "sleepbutton.asl"<br>+ <a href="https://infosec.exchange/tags/include" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>include</span></a> "lid.asl"<br>+ <a href="https://infosec.exchange/tags/include" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>include</span></a> "beep.asl"<br>++<br>++<a href="https://infosec.exchange/tags/ifndef" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ifndef</span></a> CONFIG_BOARD_LENOVO_T480<br>+ <a href="https://infosec.exchange/tags/include" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>include</span></a> "thermal.asl"<br>++<a href="https://infosec.exchange/tags/else" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>else</span></a><br>++//#include "thermal.asl"<br>++<a href="https://infosec.exchange/tags/endif" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>endif</span></a><br>++<br>+ <a href="https://infosec.exchange/tags/include" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>include</span></a> "systemstatus.asl"<br>+ <a href="https://infosec.exchange/tags/include" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>include</span></a> "thinkpad.asl"<br>+ }</p><p>Other non t480 fail to build, and I have no more time to spend on this. The community is interested, tried to reach libreboot and were seen as spammers.</p><p>Please fix your patchset upstream. People saw the t480 being "supported by coreboot" in a talk. People didn't understand it was a WiP patchset under coreboot. And here we are. 24.12 was december 2024 "release", there will be another one in 25.03... I do not have time to maintain patches on top of patches, Leah. My focus is not to be a coreboot distribution. My focus is to deliver reproducible roms to users needing accessible security, and improve that UX. There is no grub/seabios under Heads, my focus is to make upstream do the right thing and participate upstream, and make contributors participate upstream. Here, you stated loud and clear tha libreboot comes first before coreboot, I respect that. But the t480 patchset is the one too from upstream. That upstream patch needs to build, and then will be merged and then you won't have to maintain it either. And others will fix audio issues, nvidia etc. Otherwise its silo work, and i'm not interested in that anymore</p><p>---</p><p>Yes, there is different coreboot forks specified in a central place: modules/coreboot. </p><p>And there, the buildsystem says if it can reuse crossgcc of another fork to fasten builds for each commit. The idea here is that the user building one board, or multiple boards will get the same result, but CI building multiple boards based on the same fork will speed up builds massively.</p><p>d16 will move to fam15h fork from other community effort. I mentor now, I don't try to do everything myself. Just as here, trying tto collaborate with you so you fix what was brought up upstream. But up to now, you are upstream for t480.</p><p>The goal here was not to compare our buildsystems, simply stating that the patchset upstream will never be merged if it causes regressions building other boards. Libreboot can do what it wants, but needs to respect how coreboot works. Their CI does the same, and make sure that building a commit for a board won't break others. In current case, it breaks others and needs to be updated.</p><p>This needs to be fixed upstream at <a href="https://review.coreboot.org/c/coreboot/+/83274" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">review.coreboot.org/c/coreboot</span><span class="invisible">/+/83274</span></a></p>
Christian Beer<p>If you ask me, we all should not use ! like this:</p><p><a href="https://mastodon.social/tags/if" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>if</span></a> !os(macOS<br> ... <br><a href="https://mastodon.social/tags/else" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>else</span></a><br> ... do macOS things<br><a href="https://mastodon.social/tags/endif" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>endif</span></a></p><p>The ! can be overlooked easily as it's only very thin... also why not just turn it around:</p><p><a href="https://mastodon.social/tags/if" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>if</span></a> os(macOS)<br> ... do macOS things<br><a href="https://mastodon.social/tags/else" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>else</span></a><br> …<br><a href="https://mastodon.social/tags/endif" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>endif</span></a></p>
Variety<p>‘Else’ Review: A Pandemic Romance Morphs Into Bleak Body Horror in Bonkers French Flick<br><a href="https://mastodon.social/tags/Variety" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Variety</span></a> <a href="https://mastodon.social/tags/Reviews" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Reviews</span></a> <a href="https://mastodon.social/tags/Else" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Else</span></a> <a href="https://mastodon.social/tags/ThibaultEmin" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThibaultEmin</span></a> <a href="https://mastodon.social/tags/TorontoFilmFestival" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TorontoFilmFestival</span></a></p><p><a href="https://variety.com/2024/film/reviews/else-review-thibault-emin-tiff-1236165952/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">variety.com/2024/film/reviews/</span><span class="invisible">else-review-thibault-emin-tiff-1236165952/</span></a></p>
Daniel Gibson<p><span class="h-card" translate="no"><a href="https://peoplemaking.games/@sol_hsa" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>sol_hsa</span></a></span> <br>probably better:<br><a href="https://mastodon.gamedev.place/tags/ifdef" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ifdef</span></a> _MSC_VER<br><a href="https://mastodon.gamedev.place/tags/define" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>define</span></a> STFU(X) __pragma(warning(disable: X ))<br><a href="https://mastodon.gamedev.place/tags/else" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>else</span></a><br><a href="https://mastodon.gamedev.place/tags/define" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>define</span></a> STFU(X)<br><a href="https://mastodon.gamedev.place/tags/endif" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>endif</span></a></p>
aproitz<p><span class="h-card" translate="no"><a href="https://agora.echelon.pl/users/kravietz" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>kravietz</span></a></span> </p><p>A <a href="https://mastodon.social/tags/Question" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Question</span></a>: How did you <a href="https://mastodon.social/tags/circumvent" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>circumvent</span></a> the 500 <a href="https://mastodon.social/tags/Characters" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Characters</span></a> <a href="https://mastodon.social/tags/Specification" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Specification</span></a> for <a href="https://mastodon.social/tags/Mastodon" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Mastodon</span></a> ? It's often <a href="https://mastodon.social/tags/nagging" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>nagging</span></a>, if you want to write a longer <a href="https://mastodon.social/tags/Text" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Text</span></a>. Does <a href="https://mastodon.social/tags/anyone" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>anyone</span></a> <a href="https://mastodon.social/tags/else" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>else</span></a> knows this too ? <a href="https://mastodon.social/tags/Thanks" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Thanks</span></a> in <a href="https://mastodon.social/tags/Advance" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Advance</span></a> for an <a href="https://mastodon.social/tags/Answer" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Answer</span></a>. Have a nice <a href="https://mastodon.social/tags/Day" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Day</span></a>. <a href="https://mastodon.social/tags/Greez" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Greez</span></a> from <a href="https://mastodon.social/tags/Germany" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Germany</span></a>.</p><p>:gnomeHey:</p>
Rob Napier<p>Currently I'm doing this, and it's the best I've found that doesn't generate warnings, but I don't like it:</p><p>func testError() async throws {<br> <a href="https://mastodon.social/tags/if" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>if</span></a> os(watchOS)<br> throw XCTSkip("no watchOS")<br> <a href="https://mastodon.social/tags/else" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>else</span></a><br> ... rest of test ...<br> <a href="https://mastodon.social/tags/endif" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>endif</span></a><br>}</p>
Björkus "No time_t to Die" Dorkus<p>The new C2y/C3a is gonna be crazy good when I get around to finishing a lot of the things I want to do, including making it so you can use VLAs in a portable, safe fashion. Gist for those that don't wanna read inline: <a href="https://gist.github.com/ThePhD/d59c383aa7ac350ba1efef9326ca4b39" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">gist.github.com/ThePhD/d59c383</span><span class="invisible">aa7ac350ba1efef9326ca4b39</span></a></p><pre><code>///////////////////////<br>// platform boilerplate<br>///////////////////////<br><br>#define _GNU_SOURCE<br>#define WIN32_LEAN_AND_MEAN<br><br>#if defined(_MSC_VER)<br>#define MY_FLATTEN __forceinline<br>#define MY_OUTLINE __declspec(noinline)<br>#include &lt;malloc.h&gt;<br>#include &lt;windows.h&gt;<br>#elif defined(__clang__) || defined(__GNUC__)<br>#define MY_FLATTEN [[gnu::flatten]]<br>#define MY_OUTLINE [[gnu::noinline]]<br>#else<br>#define MY_FLATTEN<br>#define MY_OUTLINE<br>#error "unsupported platform: do not how to inline function call into parent function call on this vendor"<br>#endif<br><br>#if defined(_REENTRANT) &amp;&amp; (_REENTRANT == 1) &amp;&amp; \<br> __has_include(&lt;pthread.h&gt;)<br>#define MY_PTHREAD_H 1<br>#include &lt;pthread.h&gt;<br>#else<br>#define MY_PTHREAD_H 0<br>#endif<br><br>#include &lt;stddef.h&gt;<br>#include &lt;stdint.h&gt;<br><br>MY_OUTLINE<br>bool my_is_stack_available(size_t amount, size_t alignment)<br>{<br> // TODO: support alignment<br>#if defined(_MSVC_VER)<br> // https://devblogs.microsoft.com/oldnewthing/20200610-00/?p=103855<br> ULONG_PTR low = 0, high = 0;<br> GetCurrentThreadStackLimits(&amp;low, &amp;high);<br> ptrdiff_t remaining = reinterpret_cast&lt;ULONG_PTR&gt;(&amp;low) - low;<br> ptrdiff_t available = high - low;<br> if (remaining &gt; available) {<br> // Ssssshhhooould not be possible?!<br> // Something is horrifically wrong here...!<br> __fastfail(FAST_FAIL_INCORRECT_STACK);<br> }<br> return remaining &gt;= amount;<br>#elif MY_PTHREAD_H<br> char* low_stack_addr;<br> size_t stack_size;<br> pthread_attr_t attr;<br><br> int getattr_res = pthread_getattr_np(pthread_self(), &amp;attr);<br> if (getattr_res != 0) {<br> return false;<br> }<br> int getstack_res = pthread_attr_getstack(&amp;attr,<br> (void**)&amp;low_stack_addr,<br> &amp;stack_size);<br> if (getstack_res != 0 {<br> return false;<br> }<br> // some nerd will scream about provenance or whatever, I'm sure<br> char* local_address_guess = ((char*)(void*)&amp;low_stack_addr);<br> ptrdiff_t remaining = local_address_guess - low_stack_addr;<br> if (remaining &gt; stack_size) {<br> // Absolutely should NOT be possible?!<br> abort();<br> }<br> return remaining &gt;= amount;<br>#else<br>#error "cannot determine current stack size: insufficient hacks"<br>#endif<br>}<br><br>///////////////////////////<br>// User-Defined VLA Control<br>///////////////////////////<br>#include &lt;stddef.h&gt;<br>#include &lt;stdlib.h&gt;<br><br>MY_FLATTEN inline void* my_vla_alloc(size_t size,<br> size_t alignment,<br> size_t* actual_size)<br>{<br> if (!my_is_stack_available(size, alignment)) {<br> abort();<br> return nullptr;<br> }<br> *actual_size = size;<br>#ifdef _MSC_VER<br> return __alloca(size);<br>#else<br> return __builtin_alloca_with_align(size, alignment);<br>#endif<br>}<br><br>MY_FLATTEN inline void my_vla_free(void* ptr,<br> size_t size,<br> size_t alignment)<br>{<br> // nothing, it's alloca<br>}<br><br>///////////////<br>// main program<br>///////////////<br>extern int n;<br><br>int main () {<br> // we are in compiler that doesn't support VLAs (e.g., MSVC)<br> static_assert(__STDC_NO_VLA__ != 0,<br> "this will work even if VLAs are not present");<br><br> // error: VLA not supported<br> int will_error[n];<br><br><br> // new scope<br> {<br> // Aliases: artisanal, handmade, scope-based name feature<br> // Aliases: https://thephd.dev/_vendor/future_cxx/papers/C%20-%20Transparent%20Aliases.html<br> _Alias stdc_vla_alloc = my_vla_alloc;<br> _Alias stdc_vla_free = my_vla_free;<br><br> // because both stdc_vla_alloc and stdc_vla_free are available,<br> // VLA will use that to retrieve memory<br> // and ignore whatever implementation does<br> int vla[n] = {};<br><br> // use as normal...<br> / … /<br> }<br><br> // error: VLA not supported again,<br> // and stdc_vla_* functions are no longer in scope<br> int will_error_again[n];<br><br> return 0;<br>}<br></code></pre>
גִּזְבָּר 𑀆𑀚𑀻𑀯 گیسپر<p><a href="https://universeodon.com/tags/Bahamut" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Bahamut</span></a> ate <a href="https://universeodon.com/tags/TIME" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TIME</span></a>, so<br><a href="https://universeodon.com/tags/Tiamat" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Tiamat</span></a> birthed <a href="https://universeodon.com/tags/Else" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Else</span></a>; and<br>I couldn't be BOTHERED<br>to have Married them First.<br><a href="https://universeodon.com/tags/Palestine" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Palestine</span></a> <br><a href="https://universeodon.com/tags/ByzantineMass" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ByzantineMass</span></a></p>
Helge Heß<p>I'd like to do a <a href="https://mastodon.social/tags/SwiftLang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SwiftLang</span></a> library that uses `Observable` when available, but fallback to `ObservableObject` when not. Like this:<br>```<br><a href="https://mastodon.social/tags/if" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>if</span></a> canImport(Observation)<br> class ViewController: Combine.Observable { }<br><a href="https://mastodon.social/tags/else" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>else</span></a><br> class ViewController: Combine.ObservableObject { }<br><a href="https://mastodon.social/tags/endif" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>endif</span></a><br>```<br>This doesn't actually work of course because Observation can still be imported when you are building for an iOS 16 target.</p><p>Is there a way to accomplish that? 🤔 (w/o having to resort to clone the package repo)</p>
Craig Hockenberry<p>And when you see broken stuff in Xcode 14, I hope it's nothing to do with protocols. The only solution I've found for a change is this:</p><p><a href="https://mastodon.social/tags/if" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>if</span></a> OLD_PROTOCOLS<br>extension MyThing: OldProtocol {<br>}<br><a href="https://mastodon.social/tags/else" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>else</span></a><br>extension MyThing: NewProtocol {<br>}<br><a href="https://mastodon.social/tags/endif" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>endif</span></a></p><p>Ewww…</p><p>(<a href="https://mastodon.social/tags/available" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>available</span></a> doesn't work at top-level, @available needs symbol.)</p><p><a href="https://mastodon.social/@chockenberry/110890515845065228" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.social/@chockenberry/</span><span class="invisible">110890515845065228</span></a></p>