Building my custom DSL and BLAS Kernel DevBlog V0.3

Hello everyone

I’m continuing my dev blog
Over the past two days, I’ve been able to add some features from Rust to the language
Here’s a list of what’s been added

  • own x = Foo{1} | Unique ownership
  • ref r = x | Immutable borrow
  • mut ref m = x | Mutable borrow
  • let y = move x | Transfer ownership
  • box Foo{…} | Heap allocation
  • rc Foo{…} | Reference counting
  • arc Foo{…} | Thread-safe shared
  • guard ptr | Assert non-null
  • guard x >= 0 and x < len | Bounds check
  • scope name { … } | Arena-scoped block
  • unsafe { … } | Disable checks
  • return ok(value) / return err(“msg”) | Ok/Err
  • let x = try divide(10, 2) | Auto-propagate errors (like ? in Rust)
  • match x { case some(v) { } case none { } } | Pattern matching

I also created a small profiler website for my BLAS kernel.
Right now this profiler on MVP stage but works
How it works? When you run a test, all resource usage data is exported to JSON, which can then be uploaded to the profiler for full resource utilization analysis, you can also try changing the values, and the profiler will show what would happen if the settings were different

(This is one of the 6 tables)
If you’re interested in learning more about the language and so on, you can check out my first post
If you read the post and paid attention, thank you very much!
P.S. The language isn’t open source, and neither are all my developments. This is simply a demonstration of what I’m doing, nothing more