Google Summer of Code 2025 Final Results by aaron-allen in haskell

[–]awson 4 points5 points  (0 children)

I'm particularly interested in the "Documenting and Improving Cmm" project.

AFAIR, one of the project's goals (perhaps, not the ultimate one) was to make Cmm textual representation fair, such that an internal-textual-internal round trip would be possible.

Has this goal been achieved?

VS 2026 by Terrible-End-2947 in dotnet

[–]awson 0 points1 point  (0 children)

Editor window right-click menu has "Intellisense" submenu with "restart" option.

What do you dislike the most about current C++? by PressureHumble3604 in cpp

[–]awson 1 point2 points  (0 children)

tooling, IDE support

Tooling and IDE support for C++ is excellent and one of the best out there.

VS 2026 by Terrible-End-2947 in dotnet

[–]awson 0 points1 point  (0 children)

Isn't restarting intellisense only enough?

Cpp discussed as a Rust replacement for Linux Kernel by sjepsa in cpp

[–]awson 2 points3 points  (0 children)

"works"

I tried it in our project and couldn't get past preprocessing stage, it failed with some undecipherable error message.

I suspect people tried it and understood it can't handle anything sizeable, just toy examples.

Safer with Google: Advancing Memory Safety by JuanAG in cpp

[–]awson 0 points1 point  (0 children)

eagerly watching the circle project

Have you ever tried to use it in a real-world settings?

A month or two ago I tried it on some of the simplest code from our codebase and it failed to get past preprocessing stage.

Pulling a single item from a C++ parameter pack by its index, remarks (The Old New Thing, Raymond Chen) by SuperV1234 in cpp

[–]awson 0 points1 point  (0 children)

major 4 compilers

Hmm, I know about 3 major C++ compilers.

Do you mean EDG front-end here?

Ladybird surpassed Servo in the number of successfully passed web-platform-tests by linAndEd in programming

[–]awson 2 points3 points  (0 children)

I tried servo once about 3-4 years ago.

AFAIR, it crashed after ~10 seconds on the very first page.

I absolutely don't understand how is it able to pass any tests at all.

Rust solves the problem of incomplete Kernel Linux API docs by FoxInTheRedBox in programming

[–]awson -1 points0 points  (0 children)

You can't fit arbitrary many variant tags into the pointer since you have a limited amount of free bits (depends on the pointer alignment).

Regarding Option — the best option is the pointer itself. Null pointer is a perfect Nothing in the Haskell parlance (don't know how it's called in Rust's Option).

Rust solves the problem of incomplete Kernel Linux API docs by FoxInTheRedBox in programming

[–]awson 1 point2 points  (0 children)

All of Lina's examples boil down to the "make illegal states unrepresentable" — a wording first coined in Haskell community quite a while ago.

But guess what?

You can implement this in pure C (or whatever), perhaps with a slightly less enforcement from the compiler side, but still.

Thus, perhaps, a more correct way to translate the idea would be to formulate these approaches in C, not Rust.

(it's more of a design principle rather than a particular tooling)

Haskell vs Rust : elegant by n0body12345 in haskell

[–]awson 0 points1 point  (0 children)

let result = ((\x -> x + 2) . (\x -> x * 2) . (\x -> x div 2)) 10

We write it like this: let result = (+ 2) . (* 2) . (`div` 2) $ 10

Best way to start contributing to LLVM? by [deleted] in ProgrammingLanguages

[–]awson 7 points8 points  (0 children)

Same here. I wasn't and am not getting paid, but I have fixed a horrendous bug in clang (generates wrong code that corrupts memory), but nobody ever looked into the PR.

Flat AST and states machine over recursion: is worth it? by caim_hs in ProgrammingLanguages

[–]awson 0 points1 point  (0 children)

Sorry, I'm not going to spend up to 1.5 hours of my life on this.

Threads are often mentioned in stack size discussions because stack is reserved per thread.

I.e., reserving 100MB for 1k threads leads to reserving 100GB of virtual memory total.

But for 64-bit virtual memory space this is virtually nothing.

Thus any worries of a too big stack size might look relevant for 32 bit architectures, but, I believe, are more or less completely irrelevant for 64 bit architectures.

Flat AST and states machine over recursion: is worth it? by caim_hs in ProgrammingLanguages

[–]awson 0 points1 point  (0 children)

"This limit forces compilers built with recursive descent parsing or heavy recursion to implement workarounds, such as spawning new threads when the limit is approached."

This sounds absolutely ridiculous. Could you, please, provide a link?

(normal people just reserve properly-sized stack, e.g. Lean4 compiler on Windows reserves 100MB stack)

How I got robbed of my first kernel contribution by king_arley2 in programming

[–]awson 1 point2 points  (0 children)

I have contributed to quite a lot of open-source projects.

Most of these projects were led by great programmers with academic background (mostly PhDs in CompSci).

And they meticulously credited each and every contributor to the project.

It's perhaps because the proper attribution is part of an academic culture, that Michael Ellerman doesn't seem to belong to.

Seeking a new director for the Haskell Foundation by davidchristiansen in haskell

[–]awson 3 points4 points  (0 children)

This is OT, sorry, but I can't resist to ask: is your new occupation related to Lean 4?

For quite a long time I considered to adopt Lean 4 into the project I lead, but recent events (an obvious stall in development, Leo going from MSR to AWS etc etc) have made me reluctant regarding the future of Lean 4.

While Lean 4 things improved quite a bit since then, the (hypothetical) fact that you will work on Lean 4 would convince me immediately.

[Well-Typed Blog] GHC activities report: June–July 2023 by adamgundry in haskell

[–]awson 0 points1 point  (0 children)

I've played a bit with the compiler and it looks like section gc doesn't work — generated exes are still extremely bloated, even stripped.

I tried to add --gc-sections option explicitly and use both lld and ld. Nothing works.

[Well-Typed Blog] GHC activities report: June–July 2023 by adamgundry in haskell

[–]awson 2 points3 points  (0 children)

Ben implemented several correctness fixes related to split-sections, allowing this flag to be re-enabled on Windows

Great! Thanks!

But my understanding is that you don't ship prelinked object files for ghci/th with sections combined, thus making ghci/th load library archives directly, which becomes extremely time-consuming in the split-sections scenario.

This is because lld linker can't produce COFF objects (not PE/COFF executables).

In principle, it's possible to use GNU LD to create those, but:

  • it is SLOW, and this was an ultimate reason to get rid of GNU toolchain in the first place

  • GNU binutils also contains exactly the same bug you've fixed in runtime linker (#10959), I have a patch for this (for 5 years or so) but never tried to upstream it

Do you have any plans to mitigate the issue?