An error occurred fetching the project authors.
  1. 21 Aug, 2014 1 commit
  2. 15 Aug, 2014 1 commit
  3. 06 Aug, 2014 1 commit
    • Kevin Modzelewski's avatar
      Make the GC-header managed by the GC · cd11e1d5
      Kevin Modzelewski authored
      Previously the gc header had to be set and managed by the user of the GC,
      which didn't make much sense.
      
      Also took this opportunity to clean up a bunch of old cruft.
      
      Also got rid of ObjectFlavors and AllocationKinds, in preference for
      a GCKind which I think makes more sense.  Right now there are only three
      different GCKinds, but I'm not sure if the previous AllocationKinds
      should each get their own GCKind.
      cd11e1d5
  4. 30 Jul, 2014 1 commit
  5. 29 Jul, 2014 1 commit
    • Kevin Modzelewski's avatar
      Add int->long promotion on overflow · 2d55194c
      Kevin Modzelewski authored
      This commit is a straightforward implementation that doesn't include
      any speculation-like optimizations.  For operations that can overflow,
      just relax the type-return-specification to UNKNOWN, and do the overflow
      checks in the runtime.  This means that we no longer emit fast native
      integer instructions even if we know operands are ints.
      
      Will have to add optimizations:
      - range analysis so that we can know there won't be overflow
      - deopt-on-overflow so that we can work with unboxed ints even if there's potential overflow
      2d55194c
  6. 26 Jul, 2014 1 commit
  7. 24 Jul, 2014 3 commits
  8. 23 Jul, 2014 4 commits
  9. 22 Jul, 2014 1 commit
    • Kevin Modzelewski's avatar
      'raise Exception' behaves the same as 'raise Exception()' · 14b247f7
      Kevin Modzelewski authored
      The python stdlib apparently uses a bunch of old-style ways
      of doing things.
      
      Instead of doing the throwing directly in the generated IR, call
      a runtime function raise1 which will take care of the semantics
      of checking the type of the raised object, etc.
      14b247f7
  10. 21 Jul, 2014 1 commit
  11. 20 Jul, 2014 1 commit
  12. 19 Jul, 2014 1 commit
    • Marius Wachtler's avatar
      Basic support for Generators · ecfd7589
      Marius Wachtler authored
      Currently does not support arguments and only a single generator at a time is allowed
      
      In addition added 'StopIteration' iteration support
      ecfd7589
  13. 24 Jun, 2014 1 commit
  14. 19 Jun, 2014 1 commit
    • Kevin Modzelewski's avatar
      Implement closures · ddabda9a
      Kevin Modzelewski authored
      Implementation is pretty straightforward for now:
      - find all names that get accessed from a nested function
      - if any, create a closure object at function entry
      - any time we set a name accessed from a nested function,
        update its value in the closure
      - when evaluating a functiondef that needs a closure, attach
        the created closure to the created function object.
      
      Closures are currently passed as an extra argument before any
      python-level args, which I'm not convinced is the right strategy.
      It's works out fine but it feels messy to say that functions
      can have different C-level calling conventions.
      It felt worse to include the closure as part of the python-level arg
      passing.
      Maybe it should be passed after all the other arguments?
      
      Closures are currently just simple objects, on which we set and get
      Python-level attributes.  The performance (which I haven't tested)
      relies on attribute access being made fast through the hidden-class
      inline caches.
      
      There are a number of ways that this could be improved:
      - be smarter about when we create the closure object, or when we
        update it.
      - not create empty pass-through closures
      - give the closures a pre-defined shape, since we know at irgen-time
        what names can get set.  could probably avoid the inline cache
        machinery and also have better code.
      ddabda9a
  15. 11 Jun, 2014 1 commit
  16. 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
  17. 30 May, 2014 2 commits
  18. 20 May, 2014 2 commits
  19. 17 May, 2014 1 commit
  20. 13 May, 2014 1 commit
    • Kevin Modzelewski's avatar
      Run clang-format ("make format") on the codebase · daefbbb6
      Kevin Modzelewski authored
      Changed the indentation of pretty much the entire codebase.
      
      It did some things that I don't like that seem not configurable,
      but overall it seems like an improvement, and nice to have a
      canonical format going forward.
      daefbbb6
  21. 05 May, 2014 1 commit
  22. 29 Apr, 2014 1 commit
  23. 24 Apr, 2014 1 commit
    • Kevin Modzelewski's avatar
      Rudimentary importing support · 4b90a4a3
      Kevin Modzelewski authored
      Doesn't handle packages or anything other than importing a .py file
      (ex zip import, .so, .pyc), but has some basic support for
      sys.path and sys.modules.
      4b90a4a3
  24. 21 Apr, 2014 1 commit
  25. 18 Apr, 2014 1 commit
  26. 03 Apr, 2014 2 commits