Skip to content
Commits on May 19, 2012
  1. fix botched commit

    committed May 18, 2012
Commits on May 18, 2012
  1. branches can indicate that method shouldn't fail

    committed May 18, 2012
    * this is mainly helpful for expansion and pattern-converting, where
      previously I had to rescue the MethodFail and guess that the macro just
      didn't match
    * improves compile time since there's no longer a rescue around every expand
Commits on May 12, 2012
  1. use // to refer to toplevel, / for current module

    committed May 12, 2012
    * replaces _ Foo with //Foo (both meaning ::Foo in Ruby)
    * /foo() will always be a private send to Self
    * can be used in definitions via /foo() := ... and //foo() := ...
      * define on Self and Kernel respectively
    * pattern-matching semantics also implemented
Commits on May 7, 2012
Commits on May 2, 2012
  1. AST reorganization

    committed May 2, 2012
    * Binary -> Infix
      * lhs, rhs -> left, right
    * FormalArguments -> Block::Arguments
    * BlockBody -> Block::Body
    * Define -> DefineMethod
    * Function -> DefineFunction
    * String -> StringLiteral
    * Hash -> HashLiteral
    * File -> ActivePath
    * Load AST into the grammar so it doesn't have to specify 'Atomy::AST'.
Commits on Apr 22, 2012
  1. modular patterns

    committed Apr 22, 2012
    * keep Node#to_pattern primitive
    * define patterns via 'pattern(pat): body', where pat is a pattern
    matching a Node, and body returns a Pattern
    * Module#make_pattern(node) for node -> pattern conversion
    * similar semantics to macro expansion
Commits on Apr 20, 2012
  1. no more CodeLoader global state

    committed Apr 19, 2012
    * modules are passed around during compilation
      - Node#bytecode(g) -> Node#bytecode(g, mod)
      - foo.compile(g) -> mod.compile(g, foo)
      - Pattern#matches?, target, deconstruct, match, etc. take module param
    * Patterns are context-aware, like Nodes
      - this isn't fully fleshed-out yet; just needed for Pattern#=== and
      	Pattern#definition_target. Can come in useful later.
    * let-macro is much cleaner now
    * probably some thread-safety concerns that this removes
    * Add Module#eval
    * some minor spring-cleaning along the way
Commits on Apr 16, 2012
Commits on Apr 15, 2012
Commits on Feb 24, 2012
  1. remove defn/method visibility mechanisms

    committed Feb 23, 2012
    methods are public, functions are local/private
Commits on Jan 18, 2012
Commits on Jan 17, 2012
  1. introduce functions

    committed Jan 16, 2012
    * used for non-exported/helper methods; act as locals assigned to blocks
    * have the same pattern-matching and extension abilities as methods
    * inherit the `self' of the caller
    * methods defined in modules are exported; use functions otherwise
Commits on Jan 13, 2012
  1. cleanups

    committed Jan 13, 2012
Commits on Jan 8, 2012
  1. modularize infix information

    committed Jan 8, 2012
Commits on Jan 1, 2012
Commits on Dec 28, 2011
Commits on Dec 25, 2011
Commits on Dec 24, 2011
Commits on Dec 21, 2011
  1. fully inflexible identifiers

    committed Dec 21, 2011
    * refactor Define nodes
    * refactor macro definition; don't use #evaluate for it at runtime
    * switch over to foo(bar)? form
Commits on Dec 13, 2011
Commits on Dec 12, 2011
  1. initial modular macro system

    committed Dec 12, 2011
    * expression literals now retain their context for use in expansion
    * add a ton of #use calls (this is pending a cleanup)
    * remove MacroQuote node expansion, MacroQuotes are just macros
    * remove for-macro, replace with the rarely-useful #when-compiling
    * add kernel/core: defines basic syntax
    * add kernel/loop: labels/looping
    * add some initial specs for the macro system
    * Call now defines #bytecode
    * remove basic REPL from bin/atomy
Commits on Nov 22, 2011
  1. block_arguments, block_body -> arguments, body

    Alex Suraci committed Nov 21, 2011
Commits on Nov 6, 2011
  1. remove InlinedBody; #do and #match no longer shadow

    Alex Suraci committed Nov 6, 2011
Commits on Sep 6, 2011
  1. clean up massive evaluate-when repetition

    Alex Suraci committed Sep 5, 2011
Commits on Sep 5, 2011
Commits on Aug 28, 2011
  1. remove 'syntax'; only need 'macro', and re-implement optimizations fo…

    Alex Suraci committed Aug 28, 2011
    …r macro defining
  2. grammar and macro/syntax definition simplification

    Alex Suraci committed Aug 27, 2011
Commits on Aug 8, 2011
  1. big ol' hamster commit. tests pass, etc.

    Alex Suraci committed Aug 7, 2011
Commits on Jul 15, 2011
  1. generalize branch/pair lists across various macros, allowing '1 match…

    Alex Suraci committed Jul 15, 2011
    …: 2: #two; 1: #one' forms
Commits on Jul 14, 2011
  1. remove namespaces

    Alex Suraci committed Jul 14, 2011
Commits on Jun 1, 2011
  1. update patterns to prepare the nodes they contain, and update various…

    Alex Suraci committed Jun 1, 2011
    … nodes to pre-convert to patterns
  2. reimplement let-macro to just use evaluate-when, so it doesn't have t…

    Alex Suraci committed Jun 1, 2011
    …o redefine the macros on every compilation
Commits on May 31, 2011
  1. expand and resolve definition and macro bodies before inserting them …

    Alex Suraci committed May 30, 2011
    …in the class and before compilation
Commits on May 30, 2011
Something went wrong with that request. Please try again.