home.social

#verdigrislang — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #verdigrislang, aggregated by home.social.

fetched live
  1. now there's only one big thing left for the typechecker, which is to resolve traits that must be defined for a given type. I'm going to put that on the backburner for now while moving to the next step of the compiler, though.

    #Verdigris #VerdigrisLang #PLDev

  2. been tearing my hair out trying to figure out why some expressions were left untyped in my compiler - turns out, I had written a very nice function to make sure that each type is replaced; and then completely forgot to use it!

    #Verdigris #VerdigrisLang #PLDev

  3. I might actually take a brief break to update the repo, provide resources for people to try out what's written so far, and whatnot before proceeding to new stuff.

    #verdigris #verdigrislang

  4. next up will be conversion to a control flow graph, in order to determine lifetimes for variables, and check for correctness in borrows. After that, I think it'll finally be time to think about code generation!

    #verdigris #verdigrislang

  5. exciting #verdigris #verdigrislang update!

    I think I've finally reached feature completeness for my typechecker! I can generate typings for some simple test programs, and so I can move forward to the next steps of program analysis!

  6. found a pretty big issue in the typechecker for #verdigris #verdigrislang

    at the moment, when checking a variable's definition to find type information, there's no connection added between the declaration and the usage, meaning that subsequent uses of a variable do nothing for providing type info

    which is... very bad! but it's good that I caught it now, so I can find a solution.

  7. all in all, some very exciting progress, courtesy of my latest sleep aid.

    #verdigris #verdigrislang

  8. I've also finally moved past the stumbling block that has been causing many of my current problems, which is that I was ignoring handling polymorphic types as something that could actually be the correct type, so long as it is inside a polymorphic function. Now, the typechecker correctly applies these types, and has a new "unknown" concrete type to represent as-of-yet unknown types for expressions and declarations.

    #verdigris #verdigrislang

  9. the biggest bit of progress so far has been solving namespace resolution, which allows you to write code like the following now:

    module Test {
    fn test(x): 'a -> 'a { x }
    }
    Test::test("Hello!");

    #verdigris #verdigrislang

  10. some exciting #verdigris #verdigrislang updates!

    over the past two weeks, I've refactored the project's file structure to better organize each stage of the compiler, and have made some good progress on type checking!