InsanityBit's Avatar

InsanityBit

@insanitybit.bsky.social

16 Followers  |  11 Following  |  39 Posts  |  Joined: 30.05.2025  |  2.0448

Latest posts by insanitybit.bsky.social on Bluesky

Claude is far too nice and not nearly as skeptical as I want it to be. I suppose second guessing and checking assumptions is very expensive but it's frustrating, and I've found that I need to have a second model in a sort of "skeptical mode" to compensate.

03.08.2025 14:27 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

did the same thing for a toy language recently - I had a few restrictions on returning borrows and storing them, but otherwise it was no-gc safety with no borrow checker.

I'll look forward to what you come up with.

03.08.2025 03:04 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Extremely common tactic in pseudo science and misinfo. It's even common in really fringey nutty stuff like flat earth arguments.

02.08.2025 03:12 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Safer Drivers, Stronger Devices | Microsoft Community Hub Surface is advancing Windows driver development by adopting Rust, a memory-safe programming language, to improve device security and reliability. Through...

Safer drivers, stronger devices (with #rustlang)

techcommunity.microsoft.com/blog/surface...

24.07.2025 21:32 β€” πŸ‘ 45    πŸ” 7    πŸ’¬ 4    πŸ“Œ 2

OpenAI's Codex needs a lot more work.

20.07.2025 02:34 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Very glad that "function coloring is good" has stopped being such a hot take.

13.07.2025 18:28 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I wonder how much ChatGPT usage spikes on Prime Day

11.07.2025 11:50 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Oh, in the case before X and Y are individual types, Point is its own type. So the generated code is just moving the struct fields of X an Y into Point.

No implicit nullability.

25.06.2025 21:06 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Hm, not sure what you mean then. I do have struct fields, not just methods, or I'm misunderstanding.

25.06.2025 18:11 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Support for atoms is now implemented.

24.06.2025 23:29 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Might do generics later but for now I'm hoping to avoid it and I think with overloading, variadic tuples, inference tricks, comptime, etc, I can get something good without it.

24.06.2025 23:20 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Also, I'm hoping to avoid generics using features like this + others.

Like, you want a thing with fields x and y? Take a `Point`, and if someone wants to pass in `MyPoint` they can do `{..my_point}` and it'll work fine (and be 0 copy if `my_point` is not used again)

24.06.2025 23:19 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

My hope is that the capability system gives enough opportunity to open up novel optimizations + ability to 0-cost trivially inline Rust will cover the rest.

24.06.2025 23:15 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

This is a GC'd language, so no direct access to pointers (but you can write rust inline if you want that). There's mutability semantics but ultimately it leans hard on CFG-analysis to optimize as much as possible + gives rust as escape hatch.

24.06.2025 23:14 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

I may end up allowing for some sort of scoped anonymous structs that can't be passed to functions but could be used to elide the X and Y here, and eliding Point would be done via inference whenever Point gets passed into a fn. So some combo of inference and restrictions may end up being right UX.

24.06.2025 14:53 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image Post image

rust code doesn't compile, afaik it can't

my lang compiles tho

24.06.2025 14:52 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

I hadn't! I thought there was a lang proposal for something like this but didn't know there was a crate. Interestingggggg.

This + another idea I had may be what I need, although for now I went with a superpowered spread operator.

24.06.2025 14:49 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Running into a particularly challenging issue. I want anonymous structs in my language. Doing this in a way that's zero cost + compiling to Rust is *hard*. In particular, the first pass I have is to gen `HasX` traits for each prop, but then rust borrows the entire `self`, making moves impossible.

24.06.2025 10:22 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I can know that functions are pure, when they allocate, etc. I can track aliasing, 'last use', etc. It's valid for my language to consider allocations side-effect free, which I don't think is the case in Rust/ LLVM IR.

I also track integer value min/max via a CFG and prellocate based on them.

23.06.2025 17:54 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

My language is now faster than rust... sometimes.

Faster default hasher + the effects system opens up novel optimization opportunities.

23.06.2025 17:52 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

got capabilities done

22.06.2025 00:40 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Also, the language supports writing inline rust so if you really want that full rust perf you have it available to you at any time.

20.06.2025 22:11 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Integer operations are basically as fast as Rust in the common cases so that's nice, it's objects, especially deeply nested objects, where I need to rely on optimization passes.

Thankfully my language has pretty rich types.

20.06.2025 22:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Spent time writing some basic optimizations for codegen. I've doubled the performance of some operations. Still much slower than Rust, but I'm about to write a CFG to do a lot more optimization. And there's still low hanging fruit.

20.06.2025 22:04 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

My language now supports inference of union types in a way that's really neat and compiles to a rust enum under the hood. Full Hindley-Milner with unification, lots of type tracking info that I may use later like *where* a type comes from (for flow typing and refining later!).

19.06.2025 20:56 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Anyone aware of good type system stuff for GC'd languages that track mutable vs immutable references? Seems like you basically end up with regular reference types + specially marked "unique" types where unique types have tracked references.

19.06.2025 18:44 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Writing this programming language and documenting it all as I go. Then I give cursor a prompt to try learning the language from docs and generate test projects as it goes, validating every bit of documentation.

Either it finds bugs in the docs or bugs in the compiler, extremely helpful.

15.06.2025 20:41 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Time to try to give my programming language reference types.

14.06.2025 11:48 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

I've always used it, literally since like... middle school papers. I can find so many old blog posts from 2012 that are absolutely full of them. web.archive.org/web/20150205...

Just a random wayback and there are 4 right there.

14.06.2025 03:12 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Some neat things that make it a happier dev UX than Rust.
1. List and map comprehensions.
`let numbers = [1, 2, 3, 4, 5];`

2. Inferred union types.
`let mixed: List<string, bool> = ["test", true];`

3. Limited borrow check (can't return refs but no lifetimes to manage):
`fn takes(foo: &string)`

11.06.2025 16:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@insanitybit is following 11 prominent accounts