Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run main Ruby tests with MMTk enabled in CI #78

Closed
wants to merge 41 commits into from

Commits on Jul 18, 2024

  1. Enable CI for MMTk/Ruby

    This commit creates a github actions workflow that builds Ruby with the
    latest commit of the mmtk-ruby binding and runs `make test-all` with
    MMTk enabled.
    
    Several changes were necessary to make this CI pipeline pass:
    
    - C99 prohibits empty compile units, so some code had to be moved around
      in mmtk_support.c to introduce some superfluous #include directives.
      These should either be optimised out or remain unused so have little
      impact on the final binary.
    
    - Correct the dependancy lists in common.mk, by building with the
      appropiate flags defined in `tool/update-deps` and subsequently
      running `make update-deps`
    
    - Pre-fixing all externally visible MMTk related symbols and globals with `rb_`
    
    - Skipping tests related to GC compaction or other functionality
      specific to Ruby's GC.
    
    - Updating YJIT bindings
    eightbitraptor committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    aaa64d1 View commit details
    Browse the repository at this point in the history
  2. Update dependancies

    eightbitraptor committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    f1f5046 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0a82448 View commit details
    Browse the repository at this point in the history
  4. Run on Ubuntu 22.04

    eightbitraptor committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    a358315 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    633976c View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    4507574 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    e6c2909 View commit details
    Browse the repository at this point in the history
  8. whitespace

    eightbitraptor committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    b39b230 View commit details
    Browse the repository at this point in the history
  9. default env

    eightbitraptor committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    c9c7655 View commit details
    Browse the repository at this point in the history
  10. omit tracepoint tests

    eightbitraptor committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    faf842b View commit details
    Browse the repository at this point in the history
  11. wip - skip for now

    eightbitraptor committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    a5b04c9 View commit details
    Browse the repository at this point in the history
  12. Fixup some more tests

    eightbitraptor committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    5399882 View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2024

  1. Configuration menu
    Copy the full SHA
    e0b0964 View commit details
    Browse the repository at this point in the history
  2. Omit test_cursor_position

    The native extension is missing a symbol
    eightbitraptor committed Jul 19, 2024
    Configuration menu
    Copy the full SHA
    8f0b8df View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    14bcd7d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2aa6a87 View commit details
    Browse the repository at this point in the history
  5. bit twiddling fail

    eightbitraptor committed Jul 19, 2024
    Configuration menu
    Copy the full SHA
    a76bea9 View commit details
    Browse the repository at this point in the history
  6. don't override the name for the generic make job

    the result job depends on it
    eightbitraptor committed Jul 19, 2024
    Configuration menu
    Copy the full SHA
    5691191 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    e4dc631 View commit details
    Browse the repository at this point in the history
  8. fix builddir

    eightbitraptor committed Jul 19, 2024
    Configuration menu
    Copy the full SHA
    cd30650 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    c227ebb View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    cfd5a24 View commit details
    Browse the repository at this point in the history

Commits on Jul 22, 2024

  1. don't resize if str capacity is already big enough

    fixes segv in open_ssl/test_ssl.rb test related to ruby assertion that
    capacity was sized correctly.
    eileencodes committed Jul 22, 2024
    Configuration menu
    Copy the full SHA
    313e4b2 View commit details
    Browse the repository at this point in the history
  2. Use excludes-dir for which tests to skip

    If we use the `excludes-dir` functionality instead of making a method to
    skip tests we:
    
    1) get a smaller diff
    2) can just skip entire files without needing to include a module
    3) don't run into the missing symbol problem caused when checking enabled?
    in certain tests
    
    Locally tests can be run like this to skip the problematic tests/files:
    
    ```
    make -j12 test-all RUBY_TESTOPTS="--excludes-dir=test/.excludes-mmtk" RUN_OPTS="--mmtk --mmtk-plan=StickyImmix" TESTS=test/objspace/test_objspace.rb
    ```
    eileencodes committed Jul 22, 2024
    Configuration menu
    Copy the full SHA
    d33d28f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a278827 View commit details
    Browse the repository at this point in the history
  4. fix skip irb test

    these need to be in a directory
    eileencodes committed Jul 22, 2024
    Configuration menu
    Copy the full SHA
    93c8592 View commit details
    Browse the repository at this point in the history

Commits on Jul 23, 2024

  1. Fix cstr test skips

    * The filename was incorrect
    * We don't need to skip all of them, only 6 are segfaulting
    eileencodes committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    9c09477 View commit details
    Browse the repository at this point in the history
  2. Add max-heap size for nogc CI

    Without this, nogc won't run at all and is completely broken. It's
    required to set a max heap for NoGC.
    eileencodes committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    1b24fd4 View commit details
    Browse the repository at this point in the history
  3. Add StringCapacity test skip file

    These tests are testing an implementation detail of Ruby's GC.
    eileencodes committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    cc01d30 View commit details
    Browse the repository at this point in the history
  4. Ignore ruby options tests

    The crash reports don't include `+MMTK` in the version string. They
    don't for prism or yjit either, but instead of working around it and
    "fixing" it in the test, just skip them.
    eileencodes committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    c2aa89f View commit details
    Browse the repository at this point in the history
  5. Skip gc compaction tests in TestWeakKeyMap

    GC compaction isn't supported by mmtk
    eileencodes committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    7e30307 View commit details
    Browse the repository at this point in the history
  6. Skip bug reporter tests

    These are just testing the bug report matches the expected output, not
    really worth fixing for this
    eileencodes committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    bcbcf74 View commit details
    Browse the repository at this point in the history
  7. Skip StringMemory tests

    Object allocation tracing isn't supported in MMTk
    eileencodes committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    650b5d8 View commit details
    Browse the repository at this point in the history
  8. Skip WeakMap tests

    Auto compaction isn't implemented in mmtk, we can skip these
    eileencodes committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    c54bccd View commit details
    Browse the repository at this point in the history
  9. Skip objspace test in test_file_exhaustive

    ObjectSpace isn't implemented for mmtk
    eileencodes committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    4c3945e View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2024

  1. Configuration menu
    Copy the full SHA
    bd6bc5e View commit details
    Browse the repository at this point in the history
  2. Increase heap size for NoGC

    Otherwise we run out of space and it panics trying to do a GC.
    
    Note: I don't think mmtk should try to GC if we run out of space, it
    should panic and say ran out of space. It's confusing that it tries to
    GC at all.
    eileencodes committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    5b27245 View commit details
    Browse the repository at this point in the history
  3. Increase string size so it's embedded

    In MMTK the str_embed_capa is much larger (64) than CRuby (which is 16)
    so increase the string size to test mmtk
    eileencodes committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    06de000 View commit details
    Browse the repository at this point in the history
  4. Try to fix mmtk result build

    The other builds have a `working-directory` key, but this one did not.
    eileencodes committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    d72c0e8 View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2024

  1. Configuration menu
    Copy the full SHA
    89ee17a View commit details
    Browse the repository at this point in the history
  2. Clean up diffs

    * Remove diffs that change nothing
    * Fix skipped nogc test
    * We don't need --mmtk flag if we set the plan, mmtk is turned on
    automatically
    eileencodes committed Jul 29, 2024
    Configuration menu
    Copy the full SHA
    d833fa5 View commit details
    Browse the repository at this point in the history