Welcome to the first official devlog for the Crane programming language!
Last week I wrote a short post on my personal website for the first week of Crane development. This week I wanted to continue chronicling Crane's development, and what better place to do it than on the Crane website?
I don't know how often I'll write these, but for now once a week seems like a reasonable cadence.
What is Crane?
In case you're new around here—or maybe have just forgotten, that's fine too—Crane is a programming language for creating robust and elegant software.
That may sound a bit vague and hand-wavy, but that partly reflects what Crane is at the moment. I have lots of ideas for what I want the language to be, but most of them have yet to be realized.
In slightly more concrete terms, Crane is statically typed, compiles down to native machine code, and will someday have a garbage collector. It draws inspiration from languages like Rust and the ML family of languages (Standard ML, OCaml, F#).
I'll be refining this definition as time goes on.
One thing to keep in mind is that Crane is still very much in its infancy, with the first commit being just two weeks ago.
New language features
Here are some of the highlights from my work on the compiler this week:
- Function calls can now be used in
let
initializers - Files can now contain inline modules
- Functions can be passed to other functions, in a step towards making functions fully first-class
Website
This week saw the creation of the crane-lang.org
website (the one you're reading this devlog on right now).
The site itself is a statically-generated site built with Zola. Styling is handled by Tachyons with a bit of custom CSS.
Hosting is powered by Cloudflare Pages.
The code for crane-lang.org
is available on GitHub.
Visual Studio Code extension
This week I also published the first version of the Visual Studio Code extension for Crane.
Currently it just contains a very barebones grammar to facilitate things like syntax highlighting and delimiter matching (e.g., parens, braces, quotes) in the editor.
You can find it on the Visual Studio Marketplace.
The code for the VS Code extension is on GitHub.
Stats
Here are some assorted stats about the compiler codebase for this past week:
Start | End | Delta | |
---|---|---|---|
Commit |
bd40534
|
c6096df
| diff |
LOC (Rust) | 2,356 | 3,670 | +1,314 |
That's all for this devlog. Until next time!