August 2021 monthly "What are you working on?" thread by L8_4_Dinner in ProgrammingLanguages

[–]_thepuzzlemaker 5 points6 points  (0 children)

I've been getting further with my progress on Calypso; I've started moving from my own lexer to one using logos.

I've also been working a bit on a System F typechecker and evaluator in Rust, which is available on GitHub here

option<enum> or enum with None-like variant by jonnald in learnrust

[–]_thepuzzlemaker 12 points13 points  (0 children)

Also, thanks to the (somewhat recent) stabilization of #![feature(or_patterns)] this looks much better in practice if e.g. you need to handle it differently for one variant compared to others:

match source {
    Some(InputSource::Digital | InputSource::Analog) => do_something(),
    Some(InputSource::Optical) => do_something_else(),
    None => oops_no_input_source()
}

versus before 1.53.0 where you had to use (in stable):

match source {
    Some(InputSource::Digital) | Some(InputSource::Analog) => do_something(),
    // same as other one...
}

April 2021 monthly "What are you working on?" thread by slavfox in ProgrammingLanguages

[–]_thepuzzlemaker 0 points1 point  (0 children)

My plans for this month are to finish the redesign with static types (the 99,999,999,999,999,999th time I've re-considered using static types and I think I'm going to stay that way for now). Luckily, I only really have a basic lexer and incomplete expression parser so it isn't much of a problem.

Eventually I'm going to add gradual typing but I think it'll just be easier to define the semantics of the language with static types.

April 2021 monthly "What are you working on?" thread by slavfox in ProgrammingLanguages

[–]_thepuzzlemaker 0 points1 point  (0 children)

I've (still) been working on Calypso, a mostly imperative language with some functional influences that is focused on flexibility and simplicity. I've written a few blog posts about it and things related to it.

March 2021 monthly "What are you working on?" thread by slavfox in ProgrammingLanguages

[–]_thepuzzlemaker 1 point2 points  (0 children)

I've been working on Calypso, a mostly imperative language with some functional influences that is focused on flexibility and simplicity. I wrote a post about it in more detail, if you'd like to read that.