Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: cee507ced1d0
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 94d74e34d77d
Choose a head ref
  • 3 commits
  • 81 files changed
  • 1 contributor

Commits on Jan 29, 2018

  1. Copy the full SHA
    308d4a2 View commit details
  2. Was I high? Mangled backtraces which broke our insanely slow and fragile

    require_relative implementation.
    enebo committed Jan 29, 2018
    Copy the full SHA
    e3478c8 View commit details

Commits on Feb 6, 2018

  1. Way too far down the hole but not back to fully green. Need to get th…

    …is saved
    
    somewhere!
    
    As systemic insulating design choice all identifiers are forced to construct
    an eager RubySymbol as constructor argument to the AST (note: parsing and IR
    APIs definitely are not backwards compat with 9.1).  This should future-
    proof things.  By forcing the AST to use symbols it means we cannot make idents
    which are not eager in making a symbol table entry.  This in turn means later
    on when we work with the raw string equivalent of these idents....we know there
    will be a symbol table entry.  As an aside MRI is eager on all idents/symbols
    so we are being a little more like them (which is not semantically important
    but who knows?).
    
    Constants, ivars, gvar, cvars all made to use raw strings.  This still has some
    fallout to deal with. For example const_get? will use the string and assume it
    can charAt but it cannot since it is now a raw string.  In cases like this
    we need to ask for properly encoded bytelist and perform same logic but in a
    mbc friendly way. This will likely be the next commit(s).
    
    Tons of error reporting corrections (with tons more needed).  Now that all
    identifiers are raw strings they look weird when they contain mbcs.  So I added
    a buildString which makes a RubyString which will do proper m17n stuff to make
    a byte coherent string.  I did many of these when I see them fail in the test
    suite but the pure lack of coverage in this regard is staggering.  My hope to
    limit an endless stream of reports is to lean on all errors which refer to
    idents using the same helper method as a visual cue that it will be properly
    handled.  Both this and the symbols in AST constructors are meant to help us
    at a glance not make an error or know why we have an error at a glance.
    
    All-in-all this last dump has had me work through many issues and I am still
    pretty happy.  Making older extensions continue to work has added a tough
    dimension but so far so good :)
    enebo committed Feb 6, 2018
    Copy the full SHA
    94d74e3 View commit details
Loading