Skip to content

Conversation

@al-cheb
Copy link
Contributor

@al-cheb al-cheb commented Apr 15, 2020

Description

We would like to implement installation retries for choco when installing packages to reduce the number of transient errors. At the time of writing choco doesn't have logic to support wait/retry attempts - chocolatey/choco#385

Changes:

  • Update Install-Choco function set by default 5 retries with 30 sec timeout between attempts
  • All choco occurences have been replaced with Install-Choco function
  • Files have been changed:
  1. images/win/Windows2016-Azure.json
  2. images/win/scripts/ImageHelpers/ChocoHelpers.ps1
  3. images/win/scripts/Installers/Install-7zip.ps1
  4. images/win/scripts/Installers/Install-AWS.ps1
  5. images/win/scripts/Installers/Install-AliyunCli.ps1
  6. images/win/scripts/Installers/Install-AzureCli.ps1
  7. images/win/scripts/Installers/Install-Bazel.ps1
  8. images/win/scripts/Installers/Install-Cmake.ps1
  9. images/win/scripts/Installers/Install-Docker.ps1
  10. images/win/scripts/Installers/Install-Edge.ps1
  11. images/win/scripts/Installers/Install-Git.ps1
  12. images/win/scripts/Installers/Install-GitVersion.ps1
  13. images/win/scripts/Installers/Install-InnoSetup.ps1
  14. images/win/scripts/Installers/Install-JavaTools.ps1
  15. images/win/scripts/Installers/Install-Jq.ps1
  16. images/win/scripts/Installers/Install-Julia.ps1
  17. images/win/scripts/Installers/Install-KubernetesCli.ps1
  18. images/win/scripts/Installers/Install-Mercurial.ps1
  19. images/win/scripts/Installers/Install-MinGW.ps1
  20. images/win/scripts/Installers/Install-NSIS.ps1
  21. images/win/scripts/Installers/Install-NodeLts.ps1
  22. images/win/scripts/Installers/Install-OpenSSL.ps1
  23. images/win/scripts/Installers/Install-PHP.ps1
  24. images/win/scripts/Installers/Install-Packer.ps1
  25. images/win/scripts/Installers/Install-Perl.ps1
  26. images/win/scripts/Installers/Install-Sbt.ps1
  27. images/win/scripts/Installers/Install-Svn.ps1
  28. images/win/scripts/Installers/Install-VSWhere.ps1
  29. images/win/scripts/Installers/Install-Wix.ps1
  30. images/win/scripts/Installers/Install-Zstd.ps1
  31. images/win/scripts/Installers/Windows2016/Initialize-VM.ps1
  32. images/win/scripts/Installers/Windows2019/Initialize-VM.ps1

Related issue:

Issue: https://github.com/actions/virtual-environments-internal/issues/383

Check list

  • Related issue / work item is attached
  • Tests are written (if applicable)
  • Documentation is updated (if applicable)
  • Changes are tested and related VM images are successfully generated

choco retries

choco retries

choco retries

choco retries

choco retries

choco retries
Copy link
Contributor

@sergey-akhalkov sergey-akhalkov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! The only nitpick is to change Install-Choco to Run-Choco-Install for example to be consistent with original command otherwise it looks like we want to install choco itself

Copy link
Contributor

@alepauly alepauly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! The only nitpick is to change Install-Choco to Run-Choco-Install for example to be consistent with original command otherwise it looks like we want to install choco itself

I agree, or just call it "Choco-Install" since it resembles the choco install we would normally use.

Copy link
Contributor

@alepauly alepauly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I won't block on the 20 retries but please consider reducing.

@maxim-lobanov maxim-lobanov merged commit edce722 into actions:master Apr 17, 2020
@al-cheb al-cheb deleted the al-cheb/choco_retries branch April 17, 2020 07:53
k0kubun added a commit to ruby/ruby that referenced this pull request May 11, 2021
by using a wrapper provided by GitHub Actions
actions/runner-images#721

to address failures like
https://github.com/ruby/ruby/runs/2551980671
maximecb added a commit to Shopify/yjit that referenced this pull request May 14, 2021
* compile.c: Pass node instead of nd_line(node) to ADD_INSN* functions

... then, new_insn_core extracts nd_line(node).

Also, if a macro "EXPERIMENTAL_ISEQ_NODE_ID" is defined, this changeset
keeps nd_node_id(node) for each instruction. This is intended for
TypeProf to identify what AST::Node corresponds to each instruction.

This patch is originally authored by @yui-knk for showing which column a
NoMethodError occurred.

ruby/ruby@master...yui-knk:feature/node_id

Co-Authored-By: Yuichiro Kaneko <yui-knk@ruby-lang.org>

* Fixed shorten-64-to-32 errors when USE_COMBINATION_EXPLOSION_CHECK

* What's Here for class File (#4460)

What's Here for class File

* * 2021-05-08 [ci skip]

* What's Here for class Dir (#4472)

What's Here for class Dir

* Shrink timev.rb iseq size

* [ruby/irb] Dump ancestors' methods by ls command

ruby/irb@73edff287c

* [ruby/irb] Deal with different screen sizes

ruby/irb@7118b3322f

* Fix example code in Array#max doc

`[0, 1, 2, 3].max(6)` actually returns `[3, 2, 1, 0]`, but the doc said
it returns `[3, 2, 1]`.

* Enhanced RDoc for Enumerable (#4473)

Enhanced RDoc for Enumerable: #grep and #grep_v.

* * 2021-05-09 [ci skip]

* Fix Math.cbrt(0.0) on glibc

This should return 0, but on glibc it returned NaN.

Fixes [Bug #17804]

* rb_fiber_new_kw: doesn't exist

Not against having such thing but currently we lack one.

* * 2021-05-10 [ci skip]

* LEGAL: Remove entries that no longer exist

lib/bundler.gemspec and man/bundle-*,gemfile.* are now under the
directory lib/bundler/.

* Removed missing/dup2.c

This function should be always available, as POSIX-compliant or
Windows platform are required since 1.9.  Also the code in this
file is MT-unsafe.

* [ruby/set] Adding section: What's Here

ruby/set@ab81354de1

* [ruby/set] Adding section: What's Here

ruby/set@254d927c8c

* [ruby/set] Adding section: What's Here

ruby/set@8f4c62768d

* [ruby/set] Adding section: What's Here

ruby/set@257dc452a7

* Add a space to separate sentences in the error message

* [ruby/set] set is also dual licenses

ruby/set@fc24457e53

* [ruby/psych] Use test-unit instead of minitest

ruby/psych@01e7310dd3

* [ruby/psych] Use Ractor constant for ignoreing condition

ruby/psych@cc5f957327

* [ruby/psych] Fixed test-case for NaN

ruby/psych@f85a008263

* [ruby/psych] Use pend instead of skip

ruby/psych@efd2a62c9a

* [ruby/psych] Use assert_raise instead of assert_raises

ruby/psych@e6ad12b4e1

* [ruby/psych] Cache access to Psych.load_tags in Visitor::ToRuby

ruby/psych@58223f0426

* [ruby/psych] Cache dispatch cache in an instance variable

ruby/psych@285c461cd2

* [ruby/psych] Fix custom marshalization with symbolize_names: true

ruby/psych@ee26f26ab5

* [ruby/psych] Update to latest SnakeYAML

Fixes jruby/jruby#6365

ruby/psych@a88ff77f02

* [ruby/psych] docs: fix simple typo, expessed -> expressed

There is a small typo in ext/psych/yaml/yaml.h.

Should read `expressed` rather than `expessed`.

ruby/psych@1150d669cb

* [ruby/psych] bump version

ruby/psych@091cd46b1f

* [ruby/psych] Fix some typos [ci skip]

ruby/psych@98617e55a1

* Enhanced RDoc for Enumerable (#4479)

Methods treated:

    #count
    #find
    #find_index
    #select
    #filter_map
    #reject
    #map
    #flat_map

* * 2021-05-11 [ci skip]

* .github/compilers/workflows.yml: support GCC-11

GCC 11.1 was released. https://gcc.gnu.org/pipermail/gcc/2021-April/235922.html

See also ruby/ruby-ci-image#1

* [ruby/irb] Treat encodings in exception correctly

ruby/irb@4452adbe04

* Simplify syncing bundler

These files no longer exist upstream, so they don't need to be synced.

* Properly synchronize bundler gemspec too

By making the necessary modifications automatically.

* Sync bundler & rubygems at the same time

* Sync bundler & rubygems

* [ruby/resolv] Fix confusion of received response message

This is a follow up for commit 33fb966197f1 ("Remove sender/message_id
pair after response received in resolv", 2020-09-11).

As the @senders instance variable is also used for tracking transaction
ID allocation, simply removing an entry without releasing the ID would
eventually deplete the ID space and cause
Resolv::DNS.allocate_request_id to hang.

It seems the intention of the code was to check that the received DNS
message is actually the response for the question made within the method
earlier. Let's have it actually do so.

[Bug #12838] https://bugs.ruby-lang.org/issues/12838
[Bug #17748] https://bugs.ruby-lang.org/issues/17748

ruby/resolv@53ca9c9209

* [ruby/irb] Skip the new IRB test on Windows for now

It's not passing from the beginning
https://github.com/ruby/ruby/runs/2550929220
https://ci.appveyor.com/project/ruby/ruby/builds/39100747

ruby/irb@71fc180018

* Retry choco install

by using a wrapper provided by GitHub Actions
actions/runner-images#721

to address failures like
https://github.com/ruby/ruby/runs/2551980671

* Try running Choco-Install with powershell

https://github.com/ruby/ruby/runs/2552047430

* test/irb/test_raise_no_backtrace_exception.rb: UTF-8 is expected

... for the output of assert_in_out_err.

This will fix the following failure on many CI machines

http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20210511T030005Z.fail.html.gz
```
  1) Failure:
TestIRB::TestRaiseNoBacktraceException#test_raise_exception_with_different_encoding_containing_invalid_byte_sequence [/home/chkbuild/chkbuild/tmp/build/20210511T030005Z/ruby/test/irb/test_raise_no_backtrace_exception.rb:41]:
pid 221531 exit 0.

1. [1/2] Assertion for "stdout"
   | invalid byte sequence in US-ASCII.
```

* Split a Choco-Install command

In https://github.com/ruby/ruby/runs/2552065052, while it failed to
install winflexbison3, it exited the retry loop because openssl was
installed successfully.

https://github.com/actions/virtual-environments/blob/a5ee51f72dcbc3879a91a74c63f95737e2d4a292/images/win/scripts/ImageHelpers/ChocoHelpers.ps1

* Explicitly specify encoding for another test as well

Same as e2ccc33
https://ci.appveyor.com/project/ruby/ruby/builds/39102539/job/k8m1yrrjesxbgvtq

* [ruby/irb] Skip test_raise_exception_with_invalid_byte_sequence

on Windows for now. It seems like we haven't figured this out yet.

ruby/irb@ecf5a1ace1

* [ruby/irb] Fix `Encoding::ConverterNotFoundError`

Follow ruby/irb#237.

This PR fixes the following `Encoding::ConverterNotFoundError`.

```console
% bin/spring stop && bin/rails c
Spring stopped.
Running via Spring preloader in process 58395
Loading development environment (Rails 6.0.3.7)
irb(main):001:0> "こんにちは".do_something
Traceback (most recent call last):
(snip)

    12: from /Users/koic/src/github.com/ruby/irb/lib/irb.rb:547:in `eval_input'
    11: from /Users/koic/src/github.com/ruby/irb/lib/irb/ruby-lex.rb:232:in `each_top_level_statement'
    10: from /Users/koic/src/github.com/ruby/irb/lib/irb/ruby-lex.rb:232:in `catch'
     9: from /Users/koic/src/github.com/ruby/irb/lib/irb/ruby-lex.rb:233:in  `block in each_top_level_statement'
     8: from /Users/koic/src/github.com/ruby/irb/lib/irb/ruby-lex.rb:233:in `loop'
     7: from /Users/koic/src/github.com/ruby/irb/lib/irb/ruby-lex.rb:251:in `block (2 levels) in each_top_level_statement'
     6: from /Users/koic/src/github.com/ruby/irb/lib/irb.rb:548:in `block in eval_input'
     5: from /Users/koic/src/github.com/ruby/irb/lib/irb.rb:758:in `signal_status'
     4: from /Users/koic/src/github.com/ruby/irb/lib/irb.rb:586:in `block (2 levels) in eval_input'
     3: from /Users/koic/src/github.com/ruby/irb/lib/irb.rb:650:in `handle_exception'
     2: from /Users/koic/src/github.com/ruby/irb/lib/irb.rb:601:in `encode_with_invalid_byte_sequence'
     1: from /Users/koic/src/github.com/ruby/irb/lib/irb.rb:601:in `new'
/Users/koic/src/github.com/ruby/irb/lib/irb.rb:601:in `initialize': code
converter not found (UTF-8 to UTF-8) (Encoding::ConverterNotFoundError)
```

First, this patch skips `Encoding::Converter.new` for the same encoding.
https://github.com/ruby/irb/blob/170531df19bce289444afe97360480efed5f27f0/lib/irb.rb#L601

Next, this is a talk about the condition for skipping. `IRB.conf[:LC_MESSAGES].encoding`
becomes `"UTF-8"` string when `Reline.encoding_system_needs.name` is set in the below.
https://github.com/ruby/irb/blob/170531df19bce289444afe97360480efed5f27f0/lib/irb/input-method.rb#L269

OTOH, `message.encoding` is `Encoding::UTF_8`, so these are compared as a string by this patch.

ruby/irb@6df6e76cfc

* Alias assert/refute_path_exists for test-unit gem.
It's required at ruby/rubygems#3141

* test/irb/test_raise_no_backtrace_exception.rb: Set LC_MESSAGES as UTF-8

* Fix a typo of c6a11b8

It failed to define `refute_path_not_exist`

* Workaround for make test-tool

* Method cache: fix refinement entry handling

To invalidate some callable method entries, we replace the entry in the
class. Most types of method entries are on the method table of the
origin class, but refinement entries without an orig_me are housed in
the method table of the class itself. They are there because refinements
take priority over prepended methods.

By unconditionally inserting a copy of the refinement entry into the
origin class, clearing the method cache created situations where there
are refinement entry duplicates in the lookup chain, leading to infinite
loops and other problems.

Update the replacement logic to use the right class that houses the
method entry. Also, be more selective about cache invalidation when
moving refinement entries for prepend. This avoids calling
clear_method_cache_by_id_in_class() before refinement entries are in the
place it expects.

[Bug #17806]

* * 2021-05-12 [ci skip]

* Add a cache for class variables

This change implements a cache for class variables. Previously there was
no cache for cvars. Cvar access is slow due to needing to travel all the
way up th ancestor tree before returning the cvar value. The deeper the
ancestor tree the slower cvar access will be.

The benefits of the cache are more visible with a higher number of
included modules due to the way Ruby looks up class variables. The
benchmark here includes 26 modules and shows with the cache, this branch
is 6.5x faster when accessing class variables.

```
compare-ruby: ruby 3.1.0dev (2021-03-15T06:22:34Z master 9e5105c) [x86_64-darwin19]
built-ruby: ruby 3.1.0dev (2021-03-15T12:12:44Z add-cache-for-clas.. c6be0093ae) [x86_64-darwin19]

|         |compare-ruby|built-ruby|
|:--------|-----------:|---------:|
|vm_cvar  |      5.681M|   36.980M|
|         |           -|     6.51x|
```

Benchmark.ips calling `ActiveRecord::Base.logger` from within a Rails
application. ActiveRecord::Base.logger has 71 ancestors. The more
ancestors a tree has, the more clear the speed increase. IE if Base had
only one ancestor we'd see no improvement. This benchmark is run on a
vanilla Rails application.

Benchmark code:

```ruby
require "benchmark/ips"
require_relative "config/environment"

Benchmark.ips do |x|
  x.report "logger" do
    ActiveRecord::Base.logger
  end
end
```

Ruby 3.0 master / Rails 6.1:

```
Warming up --------------------------------------
              logger   155.251k i/100ms
Calculating -------------------------------------
```

Ruby 3.0 with cvar cache /  Rails 6.1:

```
Warming up --------------------------------------
              logger     1.546M i/100ms
Calculating -------------------------------------
              logger     14.857M (± 4.8%) i/s -     74.198M in   5.006202s
```

Lastly we ran a benchmark to demonstate the difference between master
and our cache when the number of modules increases. This benchmark
measures 1 ancestor, 30 ancestors, and 100 ancestors.

Ruby 3.0 master:

```
Warming up --------------------------------------
            1 module     1.231M i/100ms
          30 modules   432.020k i/100ms
         100 modules   145.399k i/100ms
Calculating -------------------------------------
            1 module     12.210M (± 2.1%) i/s -     61.553M in   5.043400s
          30 modules      4.354M (± 2.7%) i/s -     22.033M in   5.063839s
         100 modules      1.434M (± 2.9%) i/s -      7.270M in   5.072531s

Comparison:
            1 module: 12209958.3 i/s
          30 modules:  4354217.8 i/s - 2.80x  (± 0.00) slower
         100 modules:  1434447.3 i/s - 8.51x  (± 0.00) slower
```

Ruby 3.0 with cvar cache:

```
Warming up --------------------------------------
            1 module     1.641M i/100ms
          30 modules     1.655M i/100ms
         100 modules     1.620M i/100ms
Calculating -------------------------------------
            1 module     16.279M (± 3.8%) i/s -     82.038M in   5.046923s
          30 modules     15.891M (± 3.9%) i/s -     79.459M in   5.007958s
         100 modules     16.087M (± 3.6%) i/s -     81.005M in   5.041931s

Comparison:
            1 module: 16279458.0 i/s
         100 modules: 16087484.6 i/s - same-ish: difference falls within error
          30 modules: 15891406.2 i/s - same-ish: difference falls within error
```

Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>

* Filling cache values on cvar write

Instead of on read. Once it's in the inline cache we never have to make
one again. We want to eventually put the value into the cache, and the
best opportunity to do that is when you write the value.

* Revert "Filling cache values on cvar write"

This reverts commit 08de37f.
This reverts commit e8ae922.

* Run nmake check on Actions (#4487)

* Run nmake check on Actions

* Skip tests not working in mswin GitHub Actions

* Override TEMP

* Revert "Skip tests not working in mswin GitHub Actions"

This reverts commit 544d2575fcdf23ae63cd25aa03fce10c28b259f2.

* Revert "Revert "Skip tests not working in mswin GitHub Actions""

This reverts commit e1f8ad7862c9c4be52dc6e1031a004621eb07e6e.

* Fix timeouts

* Skip some more broken tests

* Update windows.yml

* Add a guard for rbasic_spec

* Revert "Update windows.yml"

This reverts commit bc9694b6b3b9594d406378d15ca11723fb052bc8.

* Skip the ensure clause

* Simplify the ensure

* Update keyword argument description in method syntax guide

Remove discussion of Ruby 2.7 specific handling of keyword
argument separation.  Add a small example of keyword to
positional hash conversion for methods not accepting
keyword arguments.

* [ruby/net-ftp] Bump version to 0.1.2

ruby/net-ftp@895ba44b3c

* cdhash_cmp: can take rational literals

Rational literals are those integers suffixed with `r`.  They tend to
be a part of more complex expressions like `123/456r`, but in theory
they can live alone.  When such "bare" rational literals are passed to
case-when branch, we have to take care of them.  Fixes [Bug #17854]

* cdhash_cmp: rational literals with fractions

Nobu kindly pointed out that rational literals can have fractions.

* cdhash_cmp: can also take complex

There are complex literals `123i`, which can also be a case condition.

* cdhash_cmp: recursively apply

For instance a rational's numerator can be a bignum.  Comparison using
C's == can be insufficient.

* cdhash_cmp: should use ||

cf: ruby/ruby#4469 (comment)

* test_cdhash: refactor change class

It is now strange to test Complex in a class named Rational_Test.

* suppress warnings on repeat tests.

Constant definitions are affect on outer namespace of an anonymous
module. To define constants on the anonymous module, this patch
uses Module#class_eval(str).

* skip test for debug.

test_memsize_of_iseq fails on repeat tests and it seems to difficult
to solve immediately. Now this test is skipped.

It seems that the result of `memsize_of(Object.new)` are increased.
Why...?

* [rubygems/rubygems] Use test-unit instead of minitest

ruby/rubygems@a8571524ad

* [rubygems/rubygems] Use capture_output instead of capture_io.

ruby/rubygems@ad9206d4d0

* [rubygems/rubygems] Also use capture_output instead of capture_io

ruby/rubygems@229858ea56

* [rubygems/rubygems] Use Regexp with refute_match

ruby/rubygems@51fdbe53bc

* [rubygems/rubygems] Extract assert_output to assert_empty and assert_equal with capture_output

ruby/rubygems@f6759440a4

* [rubygems/rubygems] Use assert_path_exist and assert_path_not_exist instead of assert_path_exists and refute_path_exists

ruby/rubygems@a7c93558c3

* [rubygems/rubygems] Use capture_output instead of capture_io for test-unit

ruby/rubygems@ab9c80d4cb

* [rubygems/rubygems] Use capture_output instead of assert_silent

ruby/rubygems@3225aab7f8

* [rubygems/rubygems] Use dummy assertion for assert_https

ruby/rubygems@64d843fe17

* [rubygems/rubygems] Use assert_raise instead of assert_raises

ruby/rubygems@769e87f011

* [rubygems/rubygems] Use capture_output instead of capture_io

ruby/rubygems@c46185abe3

* [rubygems/rubygems] Rewrite with capture_output

ruby/rubygems@a091004ded

* [rubygems/rubygems] Import capture_subprocess_io from minitest

ruby/rubygems@8b2ca6df3a

* [rubygems/rubygems] Fixed variable scope at test_silent_system

ruby/rubygems@bfcdf79657

* [rubygems/rubygems] capture_output will return empty string, not nil

ruby/rubygems@3fa93f6144

* [rubygems/rubygems] Removed minitest/mock from test_gem_package_tar_writer.rb

ruby/rubygems@45464bfcbd

* [rubygems/rubygems] Removed minitest/mock from test/rubygems/test_gem_remote_fetcher.rb

ruby/rubygems@f1af59fe02

* [rubygems/rubygems] Don't use Minitest::Mock

ruby/rubygems@d3fa893597

* [rubygems/rubygems] util/rubocop -a

ruby/rubygems@a10ff97830

* [rubygems/rubygems] Replace skip to pend

ruby/rubygems@0b145135c7

* [rubygems/rubygems] Added comment for Minitest::Mock

ruby/rubygems@ae44b68d57

* [rubygems/rubygems] Fixed an intentional blank-line

ruby/rubygems@795b572ac2

* [rubygems/rubygems] Removed the related code for minitest-bisect

ruby/rubygems@83ebdec27a

* [rubygems/rubygems] Update the link of minitest code with the commit hash.

ruby/rubygems@e7280f8d30

* [rubygems/rubygems] Added begin-end block for java platform

  Because pend of test-unit raises exception.

ruby/rubygems@b5e2d0855a

* Revert 924ce2c5ba4d1c1dc781a6a06682204d358421bb

  Because test-unit didn't provide the benchmark test. And This test
  is fragile with the several environments.

* Use assert_raise instead of assert_raises

* Use another class for the comparison.

`memsize_of(Object.new)` can be changed with past ivar creation
history for Object instances (another Object instance has 4 or
more ivars, next created Object instance has the area for the
ivars). So use antoher class for the comparison.

* * remove trailing spaces. [ci skip]

* parse.y: Allow "command" syntax in endless method definition

This change allows `def hello = puts "Hello"` without parentheses.

Note that `private def hello = puts "Hello"` does not parse for
technical reason.

[Feature #17398]

* * 2021-05-13 [ci skip]

* [rubygems/rubygems] Use `Time.stub :now` to avoid a random failure

Essentially this reverts 45464bfcbdf9f9cfb440950bc57a27d237627a17.
The commit removed a mock of Time.now, which caused a random failure.

http://rubyci.s3.amazonaws.com/ubuntu1804/ruby-master/log/20210512T123004Z.fail.html.gz
```
  1) Failure:
TestGemPackageTarWriter#test_add_file_signer [/home/chkbuild/chkbuild/tmp/build/20210512T123004Z/ruby/test/rubygems/test_gem_package_tar_writer.rb:117]:
Field mtime of the tar header differs..
<"14046746312\u0000"> expected but was
<"14046746311\x00">.
```

Object#stub is defined at f1af59fe02ef2cc58f13e2742e4cc6cf8c2a1a20, so
now `Time.stub :now` works.

ruby/rubygems@85f60a9ed0

* Fix handling of control/meta escapes in literal regexps

Ruby uses a recursive algorithm for handling control/meta escapes
in strings (read_escape).  However, the equivalent code for regexps
(tokadd_escape) in did not use a recursive algorithm.  Due to this,
Handling of control/meta escapes in regexp did not have the same
behavior as in strings, leading to behavior such as the following
returning nil:

```ruby
/\c\xFF/ =~ "\c\xFF"
```

Switch the code for handling \c, \C and \M in literal regexps to
use the same code as for strings (read_escape), to keep behavior
consistent between the two.

Fixes [Bug #14367]

* Avoid improper optimization of case statements mixed integer/rational/complex

Fixes [Bug #17857]

* Also `\U` after control/meta is invalid [Bug #17861]

As well as `\u`, `\U` should be invalid there too.
And highlight including `u`/`U` not only the backslash before it.

* Try to fix MJIT symbol clash with cargo cult

Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
Co-authored-by: Yuichiro Kaneko <yui-knk@ruby-lang.org>
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Co-authored-by: Burdette Lamar <BurdetteLamar@Yahoo.com>
Co-authored-by: git <svn-admin@ruby-lang.org>
Co-authored-by: Masataka Pocke Kuwabara <kuwabara@pocke.me>
Co-authored-by: Jeremy Evans <code@jeremyevans.net>
Co-authored-by: 卜部昌平 <shyouhei@ruby-lang.org>
Co-authored-by: Andrei Beliankou <arbox@yandex.ru>
Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
Co-authored-by: Charles Oliver Nutter <headius@headius.com>
Co-authored-by: Tim Gates <tim.gates@iress.com>
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
Co-authored-by: Ryuta Kamizono <kamipo@gmail.com>
Co-authored-by: aycabta <aycabta@gmail.com>
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
Co-authored-by: Kazuki Yamaguchi <k@rhe.jp>
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
Co-authored-by: Koichi ITO <koic.ito@gmail.com>
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
Co-authored-by: eileencodes <eileencodes@gmail.com>
Co-authored-by: Shugo Maeda <shugo@ruby-lang.org>
Co-authored-by: Koichi Sasada <ko1@atdot.net>
mcdurdin added a commit to keymanapp/api.keyman.com that referenced this pull request Jun 3, 2021
Fixes #154.

GitHub Actions have a wrapper for `choco install` called
`Choco-Install`, which automatically supports retries. Per comment at
actions/runner-images#3493 (comment),
I am trying this now to see if it does the job for us.

* See actions/runner-images#721 for implementation of
  `Choco-Install`.
yungsters added a commit to yungsters/react-native that referenced this pull request Sep 28, 2022
Summary:
I am not totally sure whether this will work, so putting up a PR to see what happens.

See: actions/runner-images#721

Changelog:
[Internal]

Differential Revision: D39890407

fbshipit-source-id: 567ba9926d8fa696163d5e0a97e057da0e9c666d
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request Sep 28, 2022
Summary:
Pull Request resolved: #34811

Switches the Windows Hermes CI step to use `Choco-Install` which implicitly supports retries for more reliable builds.

See: actions/runner-images#721

Changelog:
[Internal]

Reviewed By: rickhanlonii

Differential Revision: D39890407

fbshipit-source-id: 69c03845d2f2160fb39219dd4a5fff90a00de278
OlimpiaZurek pushed a commit to OlimpiaZurek/react-native that referenced this pull request May 22, 2023
Summary:
Pull Request resolved: facebook#34811

Switches the Windows Hermes CI step to use `Choco-Install` which implicitly supports retries for more reliable builds.

See: actions/runner-images#721

Changelog:
[Internal]

Reviewed By: rickhanlonii

Differential Revision: D39890407

fbshipit-source-id: 69c03845d2f2160fb39219dd4a5fff90a00de278
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.

6 participants