An error occurred fetching the project authors.
  1. 15 Aug, 2014 1 commit
    • Kevin Modzelewski's avatar
      Some work on the Grand CAPI Unification · 1d396ecd
      Kevin Modzelewski authored
      ie trying to start running real C modules.  The goal has always been to
      run them without modification and without a proxy layer, and this is the first step.
      
      The first issue is conversion between PyObject and our internal representation,
      "Box" (needs to be renamed).  Once they have the same layout, some hacks were
      needed to make them seem like the same thing, even though we can attach C++
      methods on the Box side, but use PyObject in C code.
      
      The next major issue was PyTypeObject, since the structure is directly exposed to
      extensions.  I just added the similar fields to BoxedClass, so they can be
      used interchangeably; the "real" ones are the BoxedClass ones, but we'll migrate
      them incrementally.
      
      There's also the issue that PyTypeObject's are typically created statically,
      so I added registerStaticRootMemory to the GC interface.
      
      Also add in a smattering of other API functions, and the _sha module works
      (who cares if it's normally disabled).
      
      The C API is quite constraining about choices of data structure implementation; it's
      in direct conflict with the std::string API, for example.  For now, close our eyes
      and let the C API modify the internal bytes of std::string.
      1d396ecd
  2. 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
  3. 23 Jul, 2014 1 commit
  4. 07 Jun, 2014 1 commit
    • 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
  5. 20 May, 2014 1 commit
  6. 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
  7. 28 Apr, 2014 1 commit
  8. 26 Apr, 2014 2 commits
  9. 23 Apr, 2014 1 commit
  10. 22 Apr, 2014 1 commit
  11. 21 Apr, 2014 1 commit
  12. 03 Apr, 2014 1 commit