[#51213] [ruby-trunk - Bug #7645][Open] BigDecimal#== slow when compared to true/false — "mathie (Graeme Mathieson)" <mathie@...>

11 messages 2013/01/01

[#51328] [ruby-trunk - Bug #7676][Open] Comparison of Float::NAN in array behaves unexpectedly — "simonrussell (Simon Russell)" <spam+ruby@...>

11 messages 2013/01/09

[#51347] [ruby-trunk - Bug #7679][Open] IRB history is broken — "zzak (Zachary Scott)" <zachary@...>

15 messages 2013/01/10

[#51389] [ruby-trunk - Bug #7688][Open] Error hiding with rb_rescue() on Comparable#==, #coerce and others — "Eregon (Benoit Daloze)" <redmine@...>

34 messages 2013/01/11

[#51430] [ruby-trunk - Bug #7696][Open] Lazy enumerators with state can't be rewound — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>

15 messages 2013/01/14

[#51437] [ruby-trunk - Bug #7698][Open] RubyGems 2.0 has an incompatibility about installation of extension libraries — "mrkn (Kenta Murata)" <muraken@...>

21 messages 2013/01/15

[#51454] [CommonRuby - Feature #7701][Open] Non-optional (required) keyword args — "headius (Charles Nutter)" <headius@...>

31 messages 2013/01/15

[#51499] [ruby-trunk - Feature #7712][Open] Add .txt extensions to all plain-text documentation files for Windows users — "postmodern (Hal Brodigan)" <postmodern.mod3@...>

9 messages 2013/01/18

[#51619] [ruby-trunk - Feature #7738][Open] Deprecate Set#+ as an alias of Set#|, use it for symmetric difference. Introduce Hash#| for Hash#reverse_merge in Rails. — "alexeymuranov (Alexey Muranov)" <redmine@...>

11 messages 2013/01/24

[#51623] [ruby-trunk - Feature #7739][Open] Define Hash#| as Hash#reverse_merge in Rails — "alexeymuranov (Alexey Muranov)" <redmine@...>

24 messages 2013/01/24

[#51714] [CommonRuby - Feature #7747][Open] Expanded API for Binding semantics — "jballanc (Joshua Ballanco)" <jballanc@...>

19 messages 2013/01/27

[#51742] [ruby-trunk - Bug #7756][Open] clang 3.2 sees through UNINITIALIZED_VAR macro, gives warning — "drbrain (Eric Hodel)" <drbrain@...7.net>

10 messages 2013/01/29

[#51763] [ruby-trunk - Bug #7758][Open] Ruby on Windows crashes when active codepage is codepage 65001 and outputting unicode character — "joshc (Josh C)" <josh.nw@...>

16 messages 2013/01/30

[ruby-core:51465] [ruby-trunk - Feature #7704] Add a list of enabled (experimental) language features.

From: "phluid61 (Matthew Kerwin)" <matthew@...>
Date: 2013-01-16 04:25:17 UTC
List: ruby-core #51465
Issue #7704 has been updated by phluid61 (Matthew Kerwin).


naruse (Yui NARUSE) wrote:
> mpapis (Michal Papis) wrote:
> > With multiple Ruby implementations and "experimental" features like "refinements" it would be nice to have an array or hash including list of enabled language features so developers could check it instead of auto-discovering code with some hacks.
> 
> Such feature list system is used on many languages/platforms like W3C DOM.
> As far as my understand such experiment are failed because such feature list is too rough to use.
> Features are not all or nothing in real world, and they often have bugs.
> So auto discovery won't work.

Not offering an opinion as such, just adding to the discussion.

I have in mind a related system: the OpenGL Extension Library.  The registry of official language extensions is managed by an Architecture Review Board, and any OpenGL program can query the framework to detect the presence of an extension.

If Ruby were to support a similar system someone would be responsible for maintaining a registry of language features, including an explicit spec describing each feature (to which an implementation must fully adhere if it says it supports it).  For example, the current "refinements" feature could be bundled under the name :REFINEMENTS_2_0 and match the current spec exactly; where a future version (e.g. :REFINEMENTS_2_1) would have a different spec.

That way a particular implementation may choose to implement some 2.0 features (e.g. kwargs) without others (e.g. refinements).

However, I imagine this would quickly become an unwieldy list, as per the OpenGL Extensions.
----------------------------------------
Feature #7704: Add a list of enabled (experimental) language features.
https://bugs.ruby-lang.org/issues/7704#change-35443

Author: mpapis (Michal Papis)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 


With multiple Ruby implementations and "experimental" features like "refinements" it would be nice to have an array or hash including list of enabled language features so developers could check it instead of auto-discovering code with some hacks.

Additionally a new keyword like `require_features :refinements, ...` could be introduced to allow easy validation via either exception or return status.


-- 
http://bugs.ruby-lang.org/

In This Thread