Crosscut

Daily Thought - 2024-07-04

Hey, I'm Hanno! These are my daily thoughts on Crosscut, the programming language I'm creating. If you have any questions, comments, or feedback, please get in touch!

This thought was published before Crosscut was called Crosscut! If it refers to "Caterpillar", that is the old name, just so you know.

< back to list

A lot of the concept of a "host" in Caterpillar is inspired by Roc. Roc calls it "platform", but there are other differences too. I don't think Roc has the same focus on effects that can be tracked, for example.

Another difference (as far as I know) is, that as far as Caterpillar is concerned, access to heap memory is I/O. This has some advantages. Dynamic memory allocation is not desirable in every situation (think microcontrollers, for example). Not treating access to the heap as the default case, will help make Caterpillar code more portable.

It's also likely to be more flexible. Some platforms have multiple different kinds of memory. Again, microcontrollers come to mind; but WebAssembly also has something like this in the pipeline, as far as I know. Not building too many assumptions into the language, about how memory works, is likely to make it more flexible in handling non-standard cases.

<< previous thoughtnext thought >>

Hey, you! Want to subscribe to my daily thoughts? Just let me know (maybe include a nice message, if you're up for it), and I'll send you an email whenever I post a new one.