Giter Club home page Giter Club logo

plan's People

Contributors

dpk avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

plan's Issues

prevent local bindings from causing macro-expansion and primitive compilation

right now if i bind locally a symbol like if, it is still treated like an if statement instead of the local binding of it. replacing primitives is inadvisable ofc but this also happens to macros, which is slightly worse. fix this by maintaining a list of local variables when compiling, based on function nesting

be smarter about compiling applications

Ideally, applications should have their arguments compiled, even if they will eventually be transformed by macros. Most applications are function calls anyway, so it can't do much harm.

remove alternate calls to plan->scheme and scheme->plan

We need to implement some functions, like append, to directly manipulate Plan's conses instead of converting them to Scheme conses and manipulating those before converting back.

append is one example; the arg-lists of primitive functions and special forms are another. (But in the latter case we might well need to modify some code to take that out.)

Once we do this, the internals of the language will not cons so much and will be a lot faster. (Or, a lot less needlessly slow.)

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.