C# question that doesn't seem particularly cursed, for once:
In MSBuild (a .csproj) I can tell a target to run at a certain time using BeforeTargets= and AfterTargets=. I know that there are certain built-in targets; one, the C# compilation step, is CoreCompile. I know this works, but I found out about it by rumor.
Where can I find documented, or how can I get msbuild/dotnet to tell me, the full list of "built-in" targets? I am esp interested in what target/step CopyToOutputDirectory occurs on
Another thing I noticed in the SDL 3 preview (which was apparently already added in vestigial form later in SDL 2) is that they have support now for a callback-based life cycle so you can integrate properly with platforms which expect that without having to resort to inversion-of-control hacks like fibers for interop. While I always liked the "app controls the main loop" aspect of the classic SDL event pumping model, that ship has sailed if you care about cross-platform support.
@pervognsen it's actually interesting how easy it was to integrate a basic "render during resize" in Windows in sokol_app.h without affecting user code (because sokol_app.h also has a frame callback model).
It's not perfect because rendering inside resizing throttled via WM_TIMER interacts badly with DXGIs vsync, e.g. you'll have to do this, otherwise the whole window system "stutters":
@raph@pervognsen ...for reference I'm using D3D11 with a DXGI_SWAP_EFFECT_FLIP_DISCARD swapchain, not sure how that differs from the "DX12 style flip model".
@pervognsen this is exactly one of the current downsides in sokol_app.h, there's a 1:1 relationship between the 'frame callback' and present. Currently this means that one cannot easily pause/freeze/skip rendering. It's somewhere fairly down the todo list :D
@raph@pervognsen I seem to remember that I also got a deprecation warning when using a BLIT swapchain... that's why I switched to FLIP_DISCARD in the first place, even if that meant more work (e.g. doing my own MSAA resolve)
Sooo how do we protect the web from AI-enshittification? A new search engine? Perhaps powered by human curation? Easier self-publishing via better social media? Something else?
@sinbad@jonikorpi TBH I don't think the current form of social media will survive for long, since it will be bots entertaining other bots. For the rest of the web: either confrontation or evasion (where confrontation means much more advanced and aggressive content blocking and evasion means building alternative niches until they become popular and 'gentrified' and the cycle begins anew).
@sinbad@jonikorpi ...also I keep thinking that Goebbels would be all over social media if he lived today. Back in the 30s the Nazis only had radio and were experimenting with television, but with social media you can deliver personalized propaganda, it's a direct wire into every user's brain and you even get direct feedback how responsive the user is and tweak the propaganda messages for maximum effect.
@sinbad@jonikorpi ...funny thought, but I think the Amish had those problems figured out a long time before anybody else and developed a working strategy against those modern "brain eating propaganda viruses" ;)
@whitequark I don't care much about WASM in the kernel, but an integrated WASI runner in the major operating systems would be great (e.g. run WASI programs like regular executables).
I think part of it is the circumstances that would compel users to construct such a list. Until that thread, it hadn't even occurred to me that someone would present a case against the existence of negative literals that required a rebuttal.
@zeux@NohatCoder@soulthreads@danluu@pervognsen an important difference between TS and Zig const is that in TS a const just prevents re-assigning (e.g. the 'interior' is mutable), while Zig disallows modifiying a const item alltogether (same as C basically).
@zeux@NohatCoder@soulthreads@danluu@pervognsen ...I'm strictly in the "almost always const" camp though, especially in languages with "proper" compile time consts. I want the compiler to yell at me if I accidentially modify a const object (that's also why I dislike TS/JS's "mutable const").
@soulthreads@zeux@NohatCoder@danluu@pervognsen TBF at work we use linter rules for TS which essentially do the same thing as Zig (unused variables are errors, and 'prefer-const' as error), and these are part of the quite popular airbnb-base eslint ruleset (if I'm not mistaken). It's not as bad in practice as it sounds at first. Initially it's annoying for sure, but I don't notice a productivity hit compared to my C coding.
"The algorithm uses exactly the same terminology and is presented in bottom-up form. (If you prefer top-down design, please read the rest of this section backwards.)"
@lritter@TomF@pervognsen WASM also only has structured control flow, but to my surprise my hilarious CPU emulator switch-case-goto contraption performs quite well in WASM compared to native (trigger warning for "goto considered harmful" believers):
Minor sokol-gfx update which adds the missing EAC R11 compressed pixel formats, and fixes the name of the EAC RG11 formats (so technically it's a breaking update, but quite unlikely):
@floooh In all your wasm experimenting have you found it easier to load native DLLs for things like graphics (like Sokol) or is it better to compile to wasm modules directly?
@kkukshtel The Emscripten linker knows how to create the additional .html and .js files, and especially the .js file is important because it contains the web API shims, and the Javascript snippets that were embedded in the C sources via EM_JS. Don't know if or how these things are handles in the .NET ecosystem though.
@kkukshtel hmm, no IIRC I haven't tried bringing C++ code into Zig projects yet, no matter if native or WASM. Maybe the C++ code doesn't make use of stdlib classes which are implemented in libcpp?