GithubHelp home page GithubHelp logo

he-man's People

Contributors

cangiuli avatar msullivan avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

he-man's Issues

Front-end language improvements

  • Observable sharing to limit code duplication.
  • Add function calls for shared functionality.
  • Add more primitives to front-end language.
  • Add high-level support for common C operations (string manipulation, etc.).
  • Allow communication between threads. (Channel model? Shared buffers? Semantics?)

Improve runtime

  • Reduce memory footprint of struct thread_t.
  • Use slab allocator instead of malloc.
  • Multithreaded runtime?

More back-end optimizations

Block-local:

  • Constant propagation
  • RelnOp constant folding
  • Copy propagation (to reduce closure size)

Global:

  • Hoist blocks with unique jump targets
  • Hoist inconsequential (e.g., close and exit) blocks.
  • Hoist GotoWait blocks.

Benchmarking

More and better benchmarking. Use PlanetLab? Compare with:

  • Zdancewic, Peng code.
  • Apache.
  • nginx, lighttpd, or other native event-loop servers.
  • Handwritten code, or other code which we directly port to He-Man.

Tying an event's lifecycle to the thread that created it sucks

Currently, threads track the events that they created and when they exit, free the events and the associated file descriptors. Same with buffers. This is kind of lame, since it means that you can't hand events/buffers to newly created threads. On the other hand, it's a really easy way to automatically clean up the events/buffers/

Typed front-end language

Use phantom types, GADTs, etc. to allow type-checking the front-end language (by Haskell). Would be ideal if it was impossible to output C code which fails to compile.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.