u/csb06
csb06
csb06
Ada/SPARK is used for some safety-critical systems (e.g. avionics and railway control software) Recently I think Nvidia used it to develop some of their firmware.
These docs have more information.
csb06
Didn't realize Bill Maher became a Linux contributor. Glad to see him branching out into new material!
csb06
Eventually we can train AI models to read the ads for us and buy products/services based on taste profiles also generated by AI.
csb06
So does this mean Graydon Hoare is the demiurge? The entity that created the imperfect material universe that we all suffer in?
csb06
Few gaming PCs have ARM processors so there is not much of a business reason to port video games to them. Some consoles (such as the Switch and Switch 2) do have ARM processors so software for those platforms has to be developed for ARM. Other consoles such as Xbox/the last few generations of Playstation consoles use x86 family processors.
Most widely used C and C++ compilers support both ARM and x86 family platforms, but games often make use of architecture-specific code and features to get the best performance and this is often nontrivial to port between processor architectures.
csb06
I was talking about Gideon, who did not commit serial rape. Also, why are you replying to a year old comment?
csb06
I was able to get name resolution for some simple cases working for my Ada 83 compiler. It is able to resolve function calls to the appropriate overload for cases where no default/named parameters are used, and if can't resolve an ambiguity it prints an error with the locations of the ambiguous definitions.
This requires a two-pass algorithm: the first pass is bottom-up over an expression tree and attaches a set (represented as a bitset) to each ambiguous function call expression consisting of all visible overloads that match the call's name and signature. The second pass is top-down and attempts to pare the set of overloads for each node down to a single definition using context. (e.g. inferring the required return type based on the containing expression)
I still need to expand the algorithm to support array accesses (which have the same syntax as function calls) and default/named parameters, but it is a start.
csb06
Unfortunately the Rust compiler team has made it illegal to make horny magic numbers.
csb06
io is handled by libraries
Yes, and if you want asynchronous I/O you end up splitting your code into a bunch of callbacks which is always a mess. With coroutines you can write code that looks almost exactly like a blocking I/O implementation would but with co_await at each call site where you do an I/O operation. The code is significantly more readable; see ASIO's examples with and without C++20 coroutines.
csb06
Our boy weighed in elsewhere in the thread.
"Polyglot dev here" flair please?
csb06
These days, Java is mostly used in greenfield software that has to be very reliable, very performant, and last for many years.
Personally, when I start new projects I want them to be unreliable, poorly performing, and to stop working immediately. When I want to do otherwise I will keep Java in mind.
csb06
"Haskell" and "elegant"
csb06
No, it is free and open source. AdaCore sells a commercial version but it is based on open-source software. Since SPARK is a subset of Ada you can use the free GNAT Ada compiler (part of GCC) to build SPARK programs. GNATprove (also free) is used to prove things. See https://docs.adacore.com/spark2014-docs/html/ug/index.html
csb06
One language that has seen significant industrial use is SPARK, which is a subset of the Ada language. Like Dafny, it is based on Hoare-style logic (i.e. pre and post-conditions) and translates them into proof obligations for an SMT solver to discharge. I believe there is also a way to plug in Coq/Rocq to prove tougher formulas if the SMT solvers are not sufficient. Multiple SMT solvers can be used as backends in case one works better for a problem.
SPARK is most often used for safety-critical embedded applications such as military and aerospace software. Writing software in SPARK and proving everything correct can be very time-consuming, though, since a lot of proof obligations need to get proven and it is not always obvious why an SMT solver failed to prove something. You don't have to verify everything though - it can be mixed with normal Ada, C, and/or C++, and there are different levels of verification that are not as arduous (e.g. proving absence of runtime errors, i.e. no null dereferences/integer overflow/exceptions thrown, rather than full functional correctness). I think it is common to only use SPARK for the most safety critical parts of the system and use other languages (usually Ada) for the rest.
csb06
They said it is too early to be sharing your project on Reddit/promoting it publicly, not anything about version control. Maybe you should fully read your comments before lashing out in a reply?
csb06
I don't even use rust at my workplace.
How do you live with yourself? Do you even have a conscience?
csb06
WalterBright: Speaking of "D", did you know -
csb06
I made some progress this month on my Ada 83 compiler. I have most types of statements, expressions, and declarations represented in the AST, so next I am planning to make another attempt at implementing name resolution, which is quite complex due to syntactic ambiguities between function calls/array accesses as well as Ada's support for overloading functions not only by their parameter types but also their return types. Once I get that completed I should have a fully resolved AST covering most of the subset of the language I want to support and can start implementing the rest of the semantic analysis stage.
csb06
Finally, a programming language that's a little bit sick and twisted. A language not afraid to dance with the devil. A language for antiheroes...or maybe villains...
csb06
As a compromise I propose we find a way to make edible GPUs. They make them out of chips already so can't be too hard.
csb06
"Fear not everyone, the awesome C declaration syntax you all know and love has been preserved in C3. Also there is an arbitrary new restriction on how you can name your types, so you now get the same shitty syntax AND a new limitation. Progress. I could have changed the syntax but it would have violated the attachment I have to C's shitty syntax so instead I wrote a lengthy FAQ."
csb06
That's part of the flow state. The tide flowed out, you just need to wait for it to flow back towards you in a few hours with the assistance of the moon.
csb06
csb06
/uj The Twitter post that is linked in that comment is genuinely insane. Like an actual cult centered around Rust. Wtf.
/rj Agreed. I propose a minimum of one year in prison for anyone caught starting a new project in any language lacking memory safety, fearless concurrency, and blazing fast speed.
Maybe tell your agent to read the sidebar before posting this? You will be much more fulfilled creating something yourself rather than using AI.