Skip to content

uutils AWK progress report #16

@Alonely0

Description

@Alonely0

I will be updating this issue as we make progress. Please feel free to take down good first issues here and in the issue tracker.

Interpreter Tasklist

This is mostly a replica of the tasklist in Discord. We are looking forward to building a basic bytecode interpreter to get integration testing going, whose IR is isomorphic to Cranelift IR for easy JITting. The design sketch is for it to be a cooperative I/O machine, probably built with smol; if we want to better support AWK's long-forgotten number-crunching intent, we could easily extend this to parallel computations.

  • Array lookup lowering, for-each loops, etc.
  • Arrays and deletes.
  • Internal/built-in variables in symbol table, maybe ft. lexer & parser for missing ones.
  • Record splitting ($expr expressions).
  • general I/O w/ async (smol runtime).
  • Stitching together whole-source lowering.
  • Function lowering.
  • Function execution and returning.
  • Library loading (via libloading) and C function calls.
  • Switch/case lowering.
  • Short-circuiting &&/||.
  • Regex matching with automaton memoization.
  • Etc.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions