Skip to content

uutils AWK progress report #16

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 (ideally a small async runtime that can do io_uring for files).
  • Function lowering.
  • Function execution and returning.
  • Library loading (via libloading) and C function calls.
  • Regex matching with automaton memoization.
  • Debugger.
  • Etc.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions