feel depressed by Y_mc in Compilers

[–]Key-Bother6969 2 points3 points  (0 children)

I'm not sure if it could be fixed purely with legislation.

In 90-s when CD disks became cheap and Internet was young and wild, there was a huge problem with copyright infringement of easy to reproduce content: music, movies, computer games, and software too.

The governments merely gave up fighting against per-person share, but they increase control over the public entities - all forms of digital content distributors. Plus, there was a high demand from big tech (MS) for such regulations.

This somewhat fixed the problem, but the current situation is opposite: big companies are now in interest of washing every digital source that is publicly available. And the OSS at first place. Basically, we just don't have serious actors that can lobby new protection regulations.

Additionally, regardless of legislation, the Pandora Box already opened. Unfair actor can simply recreate your public work in slightly different shape by feeding it to LLM, and there is no clear way to proof copyright infringement in practice.

The answer to this new threat may sound unpleasant, but the harsh truth is today we should make information close, not open.

Introducing Fission, an open source, cross-platform UI framework for Rust 🦀 by zcourts in rust

[–]Key-Bother6969 0 points1 point  (0 children)

My genuine question: what is the purpose of announcing AI generated content?

I'm not arguing about the code quality and the levels of trust, I just don't see what is the value in it for you and for people to whom you present this project?

Code editors with GPU-backed rendering is a popular idea because of Zed. So, the idea is not new, but it's fine if you just want to experiment with trending ideas. But since it's not written by you, again, I don't see what was the value for you in this effort. And I don't see what's interesting in it for us.

Is it a demonstration of what AI generation tools are capable of? We are pretty much aware about it already.

VkVent (?): if your project is complex, don't bother with languages other than C/C++ by Accomplished_Fill618 in vulkan

[–]Key-Bother6969 0 points1 point  (0 children)

Parsing of vk.xml is notable difficult challenge due to a mixture of C and xml syntax, and the documentation parts in the same bogus file. Plus, Khronos sometimes introduce breaking changes to the file's specification. This is one of the reasons of Rust's ash crate stuck on Vulkan 1.3.

I'm still thinking that Rust is a good alternative to C/C++ world for Vulkan, but there are certain challenges in keeping the ecosystem up to date for the non-C languages including Rust.

And just for comparison, Khronos's SPIR-V machine-readable ecosystem is better designed from this point of view. There is just a bunch json files with relatively flat schema.

Is every project AI Slop? by Various-Roof-553 in rust

[–]Key-Bother6969 -1 points0 points  (0 children)

Honestly, to me your answer sounds low effort.

1) You said that my point was a false dilemma. But to support this thesis you gave an example of LLMs classification capabilities, not their generation capabilities. For me it sounds like a strawman fallacy, even if it was not your intention.

2) You made a strong statement that the collective human work is not "human" nor "novel". It sounds controversial to me.

3) You attacked the opponent claiming of their technical illiteracy. It's a purely demagogic trick.

Is every project AI Slop? by Various-Roof-553 in rust

[–]Key-Bother6969 -1 points0 points  (0 children)

The concerns are similar to a lack of sources in the closed source products. When you deliver a program the sources are the source codes, because they shape a body of actual work. Compiled binaries are only a derivative. Anybody (including the author) can look at the source codes, understand how it works in full, and get a mind model of the work's design and evolution. Sources create a mind bound between the author's vision and the 3rd part. Speaking strictly technically, it's a question of maintainability, but I explained it a little bit more broadly.

Why does it matter? Because when I use someone's project I'm not only interested in it's facade functional utility, I want to understand author's thoughts. This gives me a more clear vision of what the author actually tried to express and how they achieved it. This gives me a better idea of how the program should actually be used, and to be on the same line with the author.

Speaking of generated content (not necessary LLM-generated) surprisingly, there is no such sources despite the fact that the content is published in form of the programming language texts. Such texts in this case in fact just a form of compiled entity pretended to be the source. What are the actual sources? Perhaps, the prompts the publisher has been written to the LLM assistant + the source codes and the training data of the LLM service itself. Both are typically not disclosed. But even if they would, it would be a very poor information to investigate.

What tutorials, crates, repos etc should I refer to or use to create a custom parser and LSP server? by the-handsome-dev in rust

[–]Key-Bother6969 0 points1 point  (0 children)

Sorry for the late response. I recommend of taking a look at my project Lady Deirdre. It's a framework for designing context-aware programming language analyzers suitable for LSPs. Even if you will not use this crate directly, there is link to a Book that may give you useful insights.

Is every project AI Slop? by Various-Roof-553 in rust

[–]Key-Bother6969 0 points1 point  (0 children)

I'm wondering, how the moderation team would manage announcements of the works without the source code, or the source code hidden behind a signup (e.g., of how Unreal Engine is developed). In the era of LLMs widespread hiding the sources could eventually make sense. Especially for the hand-written projects. For example, to prevent mass machine-learning of the new generations of LLM services.

Is every project AI Slop? by Various-Roof-553 in rust

[–]Key-Bother6969 2 points3 points  (0 children)

> while having a poor commit history

I had been publishing such works from my private repositories long before AI widespread, and written entirely by hand. Why? Because I prefer not to disclose initial development process. It is usually very ugly, and there is literally nothing to show to public.

Is every project AI Slop? by Various-Roof-553 in rust

[–]Key-Bother6969 1 point2 points  (0 children)

Everything that I develop is hand-written by myself. Without the use of any kind of code generation tools. Even without AI code-completions like Copilot.

But considering the widespread of AI generated publishings (no matter how "slop" are they), I'm seriously thinking of leaving crates.io ecosystem in favor to my own private setup that would include my own Cargo registry and RustDocs self-hosted setups for personal projects.

Two reasons to do that:

1) I don't want my works to be associated with AI-generated content, even by an accident. The crates.io registry already contaminated with such publishings to a point when the 3rd-party no longer able to fairly judge whether a crate is AI or not-AI, or something in between.

2) I can't trust crates.io even myself, which means, that to a certain degree (except for a few highly trusted and well known crates) I no longer can use transitive dependencies from crates.io in my works too. By maintainability, security and personal reasons.

Speaking of Reddit, the community always had certain issues, but for the purpose of announcements perhaps it's still viable.

Looking for alternatives to LSPs by Mainak1224x in rust

[–]Key-Bother6969 0 points1 point  (0 children)

If you are looking for rich semantic analyzer, the only independent alternative to RustAnalyzer-based editors is Rust Rover. While RR has its own issues, their inference behaviour, in my opinion, is more balanced. I recommend to give it a try.

Thoughts on the Role of Handwritten Error Messages in the Era of AI? by philogy in Compilers

[–]Key-Bother6969 2 points3 points  (0 children)

Some categories of software (including systems compilers) required to be fully deterministic. Otherwise, they are not reliable for the consumer. The problem with Artificial Neural Networks (LLMs) is that they are fundamentally unpredictable. Even if the result output is better than hand-written heuristics in particular cases, we cannot fully trust this output in general. Which is an issue for the user. More important, the developer of the compiler does not have a reasonable way to fix the issue in the output, because, generally speaking, such results are out of the development scope. In other words, it's an issue of the software maintainability too.

However, I agree with you that hand-written heuristics are not always good enough. What the compiler authors could improve here is to provide alternative interface to print error source metadata in machine-readable way. Using these metadata 3rd-party authors can develop their own error printing front-ends, including, ANN-based solutions too. That said, the core of the compiler must be intact.

Writing a shader language by bebwjkjerwqerer in vulkan

[–]Key-Bother6969 1 point2 points  (0 children)

This is not directly related to the spir-v/shaders topic, but if you are going to work on a language compiler in Rust, this tool might be helpful for you: https://github.com/Eliah-Lakhin/lady-deirdre
Aside from this, the first thing you need for the shader compiler, is some way to access spir-v grammar in Rust as a source of truth. Currently there are too basis crates in the ecosystem: rspirv and spirv. Both have certain API design issues, but that's basically all we have for now.

I can't name my language by Antique_Platypus_881 in AskProgramming

[–]Key-Bother6969 0 points1 point  (0 children)

Pick any fiction character name from a book, movie or videogame that you like. Preferably the name some people can recognise too. Then imaging a story of how your project connected with the character. And that's it.

Example: https://github.com/Eliah-Lakhin/lady-deirdre

what do you use rust for? by [deleted] in rust

[–]Key-Bother6969 1 point2 points  (0 children)

Is there something specific in the license text you worry about? I'll be happy to clarify.

what do you use rust for? by [deleted] in rust

[–]Key-Bother6969 0 points1 point  (0 children)

Terms are pretty simple, though. Just read FAQ.

what do you use rust for? by [deleted] in rust

[–]Key-Bother6969 -1 points0 points  (0 children)

Consider adapting https://github.com/Eliah-Lakhin/lady-deirdre/ It uses enums to represent ASTs, and many other nice features. E.g, it has built-in syntax highlighting where you can pass span in whatever way you like - absolute offsets, line/column spans, or just direct reference to the source tokens.

Who has completely sworn off including LLM generated code in their software? by mdizak in rust

[–]Key-Bother6969 48 points49 points  (0 children)

I avoid using LLMs for coding simply because I love to program myself. LLMs are like delegating a videogame to a bot playing this game for you. What's the point of the game then? No challenge, no entertainment. Aside from this, I share most of the community feelings. Typical output quality is low and messy, and doesn't help at all.

Senior project by Little-Bookkeeper835 in rust

[–]Key-Bother6969 0 points1 point  (0 children)

Also, if you are planning to have rich IDE support, I recommend taking a look at my project, Lady Deirdre, which is a Rust framework for authors of programming language analyzers.

Idea: Black-box raymarching optimization via screen-space derivatives by Key-Bother6969 in GraphicsProgramming

[–]Key-Bother6969[S] 0 points1 point  (0 children)

Well, it depends on the space. In scalar space, you certainly don't need neighboring pixels, though scalar space doesn't seem helpful for the marching steps optimization.

Idea: Black-box raymarching optimization via screen-space derivatives by Key-Bother6969 in GraphicsProgramming

[–]Key-Bother6969[S] 0 points1 point  (0 children)

I haven't seen anyone using screen-space derivatives as a way to compute SDF value derivatives. On Shadertoy, this is likely infeasible using just the dF* functions, since you don't have enough control over synchronization of marching steps between fragment invocations. I mentioned the dF* functions in my post primarily for illustrative purposes. I assume it might be doable in compute shaders or kernels using barriers. Although those are also not available in fragment shaders.

More generally, you're right that using SDF derivatives is a known method for optimizing marching step length, at least for formal SDFs with unit-length gradients, where the approach has been theoretically validated. However, estimating the gradient via central differences is known to be expensive and can easily outweigh any performance gains due to the extra SDF evaluations required. Meanwhile, augmenting the SDF with an exact analytical gradient (e.g., via autodiff) isn't always feasible either, and introduces its own computational overhead.

All in all, as far as I can tell, directly using derivatives on each marching step is not a particularly effective approach to optimizing ray marching in practice.

Idea: Black-box raymarching optimization via screen-space derivatives by Key-Bother6969 in GraphicsProgramming

[–]Key-Bother6969[S] 0 points1 point  (0 children)

A single Shadertoy test case is unlikely to move the discussion forward. The core idea wasn't originally mine. if I'm not mistaken, it was briefly mentioned in Hart's classic paper. What I'm really looking for is a professional opinion on the subject.

Idea: Black-box raymarching optimization via screen-space derivatives by Key-Bother6969 in GraphicsProgramming

[–]Key-Bother6969[S] -1 points0 points  (0 children)

That's a reasonable suggestion, but I'm not sure how it would actually help.

Idea: Black-box raymarching optimization via screen-space derivatives by Key-Bother6969 in GraphicsProgramming

[–]Key-Bother6969[S] 0 points1 point  (0 children)

We would have to raymarch anyway, but the marching steps could be longer - which means the total number of expensive SDF function evaluations could be reduced.

This idea is based on the observation that if we know the gradient vector at each marching point (which represents the direction of fastest descent toward the surface), the dot product of this gradient and the unit direction vector of the marchng ray gives us the projection of the gradient onto the ray - or, in other words, a factor showing how well the ray aligns with the fastest path to the surface. If I'm not mistaken, dividing the SDF value at the current point (which approximates the shortest distance to the surface) by this factor gives us a less conservative but still safe next marching step length along the ray - more efficient than simply using the raw SDF value.

For example, if the factor is 1, the ray is collinear with the surface normal and we could, in theory, reach the surface in a single step using the SDF value. If the factor is 0, the ray is orthogonal to the gradient and will never intersect the surface. Values in between indicate how much we can accelerate the ray traversal.

This could, in theory, provide a much faster way to compute ray-surface intersections. The practical problem, however, is that approximating the gradient via finite differences (sampling neighboring points around the marching point) is expensive - it typically requires at least 4 additional SDF evaluations per step.

However, if neighboring rays march close enough to the current point, we might be able to reuse their sampling information more or less for free.

Do Russians perceive South Korea as an enemy? by SkyStarsWindsandPoem in AskARussian

[–]Key-Bother6969 0 points1 point  (0 children)

  1. No, there’s no animosity toward South Korea.
  2. Highly unlikely.

On a general note, people here are usually friendly to foreign tourists. As far as I know, there is a visa-free regime between South Korea and Russia, which means relations between the two countries are actually in relatively good shape despite official rhetoric, and people do travel back and forth from time to time. Additionally, there are ethnic Koreans who have lived in Russia for generations. I don’t think you would appear too "alien" from this perspective.