← Back to context

Comment by antibasilisk

2 years ago

Are you hiring?

Yes, starting next week or so! We'll be looking for engineers that have skills relevant to our projects, including compilers, low-level assembly optimization, functional programming, type theory, parallel computing, and so on. Right now, we're quite busy with incorporation and bureaucracy, but you should see job postings in our to-be-released landing page (higherorderco.com) soon. Meanwhile, I answer DMs on Twitter (@VictorTaelin) and Discord (VictorTaelin#2253).

  • What are your thoughts around WebAssembly, Typed Assembly [1] and will you be using BlueSpec [2] to implement these ideas in hardware?

    [1] https://www.semanticscholar.org/search?q=typed%20assembly%20...

    namely, Greg Morrisett and Neal Glew's work

    https://www.semanticscholar.org/author/J.-G.-Morrisett/14364...

    https://www.semanticscholar.org/author/MorrisettGreg/1643921... (semantic scholar incorrectly thinks there are two Greg Morrisetts)

    https://www.semanticscholar.org/author/Neal-Glew/1710858

    [2] https://github.com/B-Lang-org/bsc

    • I love WASM - who doesn't? Maintaining a WASM target was included on HOC's current fundraise, and is essential to our JIT plans. I don't know much about typed assembly, but I guess it would enable optimizations that aren't possible without types, as well as increased safety - although I wonder if that's relevant, if the source language is already typed?

      In general though, I think we should move away from procedural instructions towards "interactional" instructions. HVM's AST can be seen as an assembly language with high-level instructions like LAM-APP (lambda application) and FUN-CTR (pattern-matching), and that's possible precisely because beta reduction is O(1) on interaction nets. A hardware with HVM's interactional instructions could make let us break out of the Von Neumann bottleneck and make processors much faster. Here is a table of HVM's core instructions:

          .-----------------------------------------------------.
          | Opcode    | Effect                          | Cost  |
          |-----------|---------------------------------|-------|
          | APP-LAM   | applies a lambda                | 2     |
          | APP-SUP   | applies a superposition         | 4     |
          | OP2-NUM   | operates on a number            | 2     |
          | OP2-SUP   | operates on a superposition     | 4     |
          | FUN-CTR   | pattern-matches a constructor   | 2 + M |
          | FUN-SUP   | pattern-matches a superposition | 2 + A |
          | DUP-LAM   | clones a lambda                 | 4     |
          | DUP-NUM   | clones a number                 | 2     |
          | DUP-CTR   | clones a constructor            | 2 + A |
          | DUP-SUP-0 | clones a superposition          | 4     |
          | DUP-SUP-1 | undoes a superposition          | 2     |
          | DUP-ERA   | clones an erasure               | 2     |
          |-----------------------------------------------------|
      

      I think BlueSpec is impressive and a good direction in the (arguably messy) hardware language domain. It is likely that we'll consider using it in our research and projects.

      1 reply →

  • Will be there jobs for early-career engineers? I have skills in Rust and a lot of interest in working on this project, but I only have one year of experience