Skip to content

Deprecate and isolate all Options that are no longer used#6315

Merged
headius merged 3 commits intojruby:masterfrom
headius:cleanup_properties
Sep 21, 2020
Merged

Deprecate and isolate all Options that are no longer used#6315
headius merged 3 commits intojruby:masterfrom
headius:cleanup_properties

Conversation

@headius
Copy link
Member

@headius headius commented Jul 10, 2020

Most of these were completely unused. A few were still used but
the features they referred to did not work anymore, or were
otherwise nonnfunctional in some way.

There's some related cleanup of RubyInstanceConfig here but I have
not done a full audit of unused fields and methods there.

At least a few of these may have meaning in the future, if the
functionality they used to refer to is restored:

  • REFLECTED_HANDLES: we may want to add back reflected
    DynamicMethod handles to core class methods to support platforms
    that do not allow bytecode generation (e.g. GraalVM AOT).
  • FIBER_COROUTINES: The Loom project is moving fast and we will
    definitely take advantage of it. We will probably want a more
    Loom-specific property name at that time, though.
  • FFI_COMPILE_INVOKEDYNAMIC: We are not currently binding Ruby to
    FFI calls as directly as we could, and we should probably
    restore this functionality at some point.
  • THREAD_DUMP_SIGNAL: We used to register a trap for dumping all
    Ruby stack traces. We may want to restore this functionality.
  • ENUMERATOR_LIGHTWEIGHT: We may want to make it possible to turn
    off lightweight enumerators, of which we currently have none?
    Seems unlikely.
  • INVOKEDYNAMIC*: most of the capabilities of invokedynamic have
    been always-on (in indy mode) since they stabilized in Java 8,
    but being able to configure them at a finer grain may be useful
    in the future.
  • COMPILE*: as with INVOKEDYNAMIC*, most optimizations are always-
    on, and we may want to restore the ability to turn them off.

This cleanup was inspired by #1585.

Most of these were completely unused. A few were still used but
the features they referred to did not work anymore, or were
otherwise nonnfunctional in some way.

There's some related cleanup of RubyInstanceConfig here but I have
not done a full audit of unused fields and methods there.

At least a few of these may have meaning in the future, if the
functionality they used to refer to is restored:

* REFLECTED_HANDLES: we may want to add back reflected
  DynamicMethod handles to core class methods to support platforms
  that do not allow bytecode generation (e.g. GraalVM AOT).
* FIBER_COROUTINES: The Loom project is moving fast and we will
  definitely take advantage of it. We will probably want a more
  Loom-specific property name at that time, though.
* FFI_COMPILE_INVOKEDYNAMIC: We are not currently binding Ruby to
  FFI calls as directly as we could, and we should probably
  restore this functionality at some point.
* THREAD_DUMP_SIGNAL: We used to register a trap for dumping all
  Ruby stack traces. We may want to restore this functionality.
* ENUMERATOR_LIGHTWEIGHT: We may want to make it possible to turn
  off lightweight enumerators, of which we currently have none?
  Seems unlikely.
* INVOKEDYNAMIC*: most of the capabilities of invokedynamic have
  been always-on (in indy mode) since they stabilized in Java 8,
  but being able to configure them at a finer grain may be useful
  in the future.
* COMPILE*: as with INVOKEDYNAMIC*, most optimizations are always-
  on, and we may want to restore the ability to turn them off.

This cleanup was inspired by jruby#1585.
@headius headius added this to the JRuby 9.3.0.0 milestone Jul 10, 2020
I think this got removed when the reflected handle option got
deprecated. Generated invokers do not have c_call/c_return trace
events, so the fulltrace option check is still needed here.
@headius
Copy link
Member Author

headius commented Sep 21, 2020

The sole failure in the last build was a regression on master.

@headius headius merged commit 9072ec5 into jruby:master Sep 21, 2020
@headius headius deleted the cleanup_properties branch September 21, 2020 01:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant