[#103135] [Ruby master Feature#17768] Proposal: Downward assignments — mame@...

Issue #17768 has been reported by mame (Yusuke Endoh).

10 messages 2021/04/01

[#103162] [Ruby master Feature#17773] Alias `Numeric#zero?` and `Float#zero?` as `Numeric#empty?` and `Float#empty?` — sawadatsuyoshi@...

Issue #17773 has been reported by sawa (Tsuyoshi Sawada).

9 messages 2021/04/02

[#103241] [Ruby master Bug#17777] 2.6.7 fails to build on macOS: implicit declaration of function 'rb_native_mutex_destroy' is invalid in C99 — eregontp@...

Issue #17777 has been reported by Eregon (Benoit Daloze).

17 messages 2021/04/05

[#103280] [Ruby master Bug#17781] Resolv::DNS RequestID table allocations are never freed, causing DNS lookups to eventually hang — supermathie@...

Issue #17781 has been reported by supermathie (Michael Brown).

9 messages 2021/04/07

[#103305] [Ruby master Feature#17785] Allow named parameters to be keywords — marcandre-ruby-core@...

Issue #17785 has been reported by marcandre (Marc-Andre Lafortune).

21 messages 2021/04/08

[#103310] [Ruby master Feature#17786] Proposal: new "ends" keyword — jzakiya@...

Issue #17786 has been reported by jzakiya (Jabari Zakiya).

13 messages 2021/04/08

[#103317] [Ruby master Bug#17787] Four AIX build issues with xlc compiler and ruby-3.0.1 — lamont@...

Issue #17787 has been reported by lamont (Lamont Granquist).

9 messages 2021/04/08

[#103342] [Ruby master Feature#17790] Have a way to clear a String without resetting its capacity — jean.boussier@...

Issue #17790 has been reported by byroot (Jean Boussier).

14 messages 2021/04/09

[#103386] [Ruby master Bug#17793] `shorten-64-to-32` error for 32-bit Android due to `struct stat` definition — xtkoba+ruby@...

Issue #17793 has been reported by xtkoba (Tee KOBAYASHI).

8 messages 2021/04/11

[#103400] [Ruby master Feature#17795] `before_fork` and `after_fork` callback API — jean.boussier@...

Issue #17795 has been reported by byroot (Jean Boussier).

42 messages 2021/04/12

[#103434] [Ruby master Bug#17799] Seg fault in rb_class_clear_method_cache — stanhu@...

Issue #17799 has been reported by stanhu (Stan Hu).

14 messages 2021/04/13

[#103481] [Ruby master Feature#17808] Feature Request: JS like splat of Object properties as named method parameters — brad.krane@...

Issue #17808 has been reported by Lithium (Brad Krane).

8 messages 2021/04/16

[#103556] [Ruby master Bug#17820] `Errno::EINVAL` from `Process.kill` with available signal on Windows — alex.wayfer@...

Issue #17820 has been reported by AlexWayfer (Alexander Popov).

9 messages 2021/04/22

[#103591] [Ruby master Bug#17827] Monitor is not fiber safe — samuel@...

Issue #17827 has been reported by ioquatix (Samuel Williams).

11 messages 2021/04/25

[#103593] [Ruby master Misc#17828] Deprecate use of master and slave — yyoshida.at.work@...

Issue #17828 has been reported by yyoshida.at.work@gmail.com (Yasuhiro Yoshida).

10 messages 2021/04/26

[#103596] [Ruby master Feature#17830] Add Integer#previous and Integer#prev — rafasoaresms@...

Issue #17830 has been reported by rafasoares (Rafael Soares).

9 messages 2021/04/26

[#103631] [Ruby master Feature#17837] Add support for Regexp timeouts — sam.saffron@...

Issue #17837 has been reported by sam.saffron (Sam Saffron).

45 messages 2021/04/27

[ruby-core:103506] [Ruby master Feature#16945] Enable TCO by use of special form

From: Ruby-Lang@...
Date: 2021-04-18 14:41:56 UTC
List: ruby-core #103506
Issue #16945 has been updated by jwmittag (Jg W Mittag).


x3qt (Yury Polyakov) wrote in #note-6:
> shyouhei (Shyouhei Urabe) wrote in #note-4:
> > Tell us how is it better than #12543, which is receiving negative feedbacks?
> 
> ``` ruby
> foo() then return
> ```
> 
> Syntax proposed in #12543 does not look good to me, specifically because it is not a single word and using already existing constructions, so can be confusing because it is a special meaning.

Adding a new reserved word is *extremely expensive* in the sense that it *massively* breaks backwards-compatibility. Every single piece of code everywhere in the world that every programmer has ever written that uses the identifier `recur` will be potentially broken by this change.

The code you proposed is perfectly legal today, which means that introducing your proposed change will *change the meaning of existing code*.

If you want to introduce a feature for adding new return semantics to methods you have to do it in a way which 

* does not introduce a new keyword or reserved word
* does not change the meaning of existing code
* ideally is currently not valid Ruby code

```ruby
foo() then return
```

has the advantage that it only uses already existing reserved words and keywords and is currently illegal, so there *cannot possibly be* any existing code that gets broken.

----------------------------------------
Feature #16945: Enable TCO by use of special form
https://bugs.ruby-lang.org/issues/16945#change-91604

* Author: x3qt (Yury Polyakov)
* Status: Open
* Priority: Normal
----------------------------------------
I would like to propose to create some way to enable TCO in ruby by use of special form, like (recur)[https://clojure.org/reference/special_forms#recur].

AFAIK TCO is not enabled by default because it messes with stack traces, so by implementing some special form we will avoid changing default behavior and provide opportunity to use it at the same time.

Example:

``` ruby
def fact(n, acc = 1)
  return acc if n <= 1
  recur(n - 1, n * acc) # recursive call with TCO enabled
end
```




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

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread