1. 09 Jun, 2014 2 commits
  2. 08 Jun, 2014 1 commit
  3. 07 Jun, 2014 10 commits
    • Kevin Modzelewski's avatar
      Implement defaults, keywords, varargs and kwargs · 6acfb996
      Kevin Modzelewski authored
      Not all exposed to python code yet
      
      This commit is pretty large because it contains two separate but interrelated changes:
      - Rewrite the function argument handling code (callCompiledFunction and resolveCLFunc)
        into a single callFunc that does its own rewriting, and support the new features.
      -- this required a change of data representations, so instead of having each function
         consist of variants with unrelated signatures, we can only have a single signature,
         but multiple type specializations of that signature
      - To do that, had to rewrite all of the stdlib functions that used signature-variation
        (ex range1 + range2 + range3) to be a single function that took default arguments, and
        then took action appropriately.
      6acfb996
    • Kevin Modzelewski's avatar
      Some small independent changes · 31f7002a
      Kevin Modzelewski authored
      Can emit add/sub/etc instructions with 32-bit operands in addition to 8-bit now
      Can get the RSP and RBP in rewriter1, for accessing scratch space
      Change some debugging output
      
      Fix a gc bug: if an object gets new'd, and takes a parameter that gets new'd, the sequence is
      1) object space gets allocated
      2) parameter space gets allocated
      3) parameter gets constructed
      4) object gets constructed
      The bug is that the object construction is what initializes the GC header,
      so if step #3 causes a collection, it can see that the allocation from step #1
      has an invalid header.
      As a workaround, always zero out the header in allocation, and skip blocks with
      zeroed headers.
      The real solution is probably to have the GC manage the header itself rather than
      expecting the user to; this would mean that gc_alloc would take the allocation kind,
      put that into the header, and then return a pointer to the post-header data section
      of the allocation.
      31f7002a
    • Kevin Modzelewski's avatar
      Misc non-code changes · 138e4546
      Kevin Modzelewski authored
      Experimenting with vim+make integration
      Changed installation instructions slightly
      Added rlwrap support for repl
      138e4546
    • Kevin Modzelewski's avatar
    • Kevin Modzelewski's avatar
      Merge pull request #79 from undingen/fix_crash · 1a8566b3
      Kevin Modzelewski authored
      Fix crash: register string iterator class
      1a8566b3
    • Kevin Modzelewski's avatar
      I give up. move back to this revision until things work again. · 115c787c
      Kevin Modzelewski authored
      Tried up to 210379 with the same segfaults.
      115c787c
    • Kevin Modzelewski's avatar
      fixes · f72756b3
      Kevin Modzelewski authored
      f72756b3
    • Kevin Modzelewski's avatar
      Try this one · f6d0777d
      Kevin Modzelewski authored
      f6d0777d
    • Kevin Modzelewski's avatar
    • Marius Wachtler's avatar
      03053342
  4. 05 Jun, 2014 1 commit
    • Kevin Modzelewski's avatar
      Some initial refactoring work for arg passing · 9a33763c
      Kevin Modzelewski authored
      Replace a simple "num_args" argument with a packed struct that takes
      num_args and adds num_keywords, has_varargs, and has_kwargs.  Tried
      to add asserts in all the places that don't allow
      keywords/varargs/starargs
      
      Started refactoring things; got to the point of attempting
      argument->parameter shuffling, but it's tricky if we allow every
      compilation to have a different signature (used by builtins).
      Really they all have the same signatures but different
      specializations; to get to that point, need to add defaults.
      9a33763c
  5. 04 Jun, 2014 5 commits
  6. 03 Jun, 2014 19 commits
  7. 02 Jun, 2014 2 commits
    • Kevin Modzelewski's avatar
      Fix a list GC bug · fa787025
      Kevin Modzelewski authored
      The presence of an allocated "elts" pointer is determined by capacity>0,
      but the GC handler was incorrectly only choosing to visit it if size>0.
      Not all code paths free the elts array if size goes down to zero, so
      it could happen that capacity>0 and size=0, and then the elts array would
      not be tracked even though it was expected to be.
      
      Added a test that illustrates this.
      fa787025
    • Kevin Modzelewski's avatar
      Merge pull request #75 from undingen/strip · 4b882187
      Kevin Modzelewski authored
      Implement str.lstrip and str.rstrip
      4b882187