Skip to content

core/std: inline small functions - #161761

Draft
pacak wants to merge 12 commits into
rust-lang:mainfrom
pacak:push-rksmzopsvzlk
Draft

core/std: inline small functions#161761
pacak wants to merge 12 commits into
rust-lang:mainfrom
pacak:push-rksmzopsvzlk

Conversation

pacak added 7 commits August 25, 2026 08:13
Right now things are undertested and underspecified.

Some of the library code would get in a loop if searcher starts
returning empty rejects.

And there's no tests for backwards multi byte char matchers. Pull
request I'm reviving had a problem implementing that, so making sure
it's tested before the actual code lands.

Right now it is possible to break both tests (and user code) without
breaking anything else in the test suite I think.
Add a Haystack trait describing something that can be searched in and
make core::str::Pattern (and related types) generic on that trait.
This will allow Pattern to be used for types other than str (most
notably OsStr).

This somewhat follows the Pattern API 2.0 design.  While that design is
apparently abandoned (?), it is somewhat helpful when going for patterns
on OsStr, so I’m going with it unless someone tells me otherwise. ;)

For now leave Pattern, Haystack et al in core::str::pattern.  Since
they are no longer str-specific, I’ll move them to core::pattern in
future commit.  This one leaves them in place to make the diff
smaller.

@pacak: I moved some (or all new) of the `P: Pattern<&'a str>
constraints into where clause to keep things narrower:

```
pub fn foo<'a, P: Pattern<&'a str>>(&'a self, pat: P, ...) ...
```

to

```
pub fn replacen<'a, P>(&'a self, pat: P, ...) ...
     where
         P: Pattern<&'a str>,
```

Original code had indices in Haystack abstracted as an associated type
Cursor. Replaced with usize - Cursor adds noise with not much value.

Changed wording in 2-3 places - for example Searcher is generic over a
few types so it makes more sense to talk about split points in general
with utf8 split points as an example for `&str`.
Pattern is no longer str-specific, so move it from core::str::pattern
module to a new core::pattern module.  This introduces no changes in
behaviour or implementation.  Just moves stuff around and adjusts
documentation.
Introduce core::pattern::Split and core::pattern::SplitN internal types
which can be used to implement iterators splitting haystack into parts.
Convert str’s Split-family of iterators to use them.  In the future,
more haystacks will use those internal types.

Co-authored-by: Peter Jaszkowiak <p.jaszkow@gmail.com>

@pacak: Fixed some typos, added a few `#[inline]`. Since there's no
`H::Cursor` - I had to add `ctx: PhantomData<H>`.
This reverts commit 85cf233ced0d0fe02734c8a83b6d79ccc5432d06.

Gone for now, I'll reimplement it later in str_bytes.rs, will confirm
with the benchmarks included that the optimization still applies
Introduce core::pattern::EmptyNeedleSearcher internal type which
implements logic for matching an empty pattern against a haystack.
Convert core::str::pattern::StrSearcher to use it.  In future more
implementations will take advantage of it.

Also adapt and rework TwoWayStrategy into an internal SearchResult
trait  which abstracts differences between Searcher’s next, next_match
and next_rejects methods.  It makes it simpler to write a single generic
method implementing optimised versions of all those calls.


@pacak:
- Fixed a few typos.
- There's no H::Cursor parameter so code gets a bit simplified.
- Added a test to assert how TwoWaySearcher runs with
  EmptyNeedleSearcher
@pacak:
- made more things const fn
- there was a (copy-paste?) error in try_finish_byte_sequence so I
  added a test that checks try_next_code_point(_reverse) with some
  values, including invalid ones.
- reworded a few comments (passive voice, etc)

Also different comments: since former is public and later is private due
to historical reasons.

> This is different than [`next_code_point`] in that it doesn't assume

> This is different than `next_code_point_reverse` in that it doesn't assume
@rust-log-analyzer

This comment has been minimized.

@pacak
pacak force-pushed the push-rksmzopsvzlk branch from 130ab8b to 169e859 Compare August 25, 2026 14:58
@rust-log-analyzer

This comment has been minimized.

pacak added 2 commits August 25, 2026 13:18
Introduce a new core::str_bytes module with types and functions which
handle string-like bytes slices.  String-like means that they code
treats UTF-8 byte sequences as characters within such slices but
doesn't assume that the slices are well-formed.

A `str` is trivially a bytes sequence that the module can handle but
so is OsStr (which is WTF-8 on Windows and unstructured bytes on
Unix).

Move bunch of code (most notably implementation of the two-way
string-matching algorithm) from core::str to core::str_bytes.

Note that this likely introduces regression in some of the str
function performance (since the new code cannot assume well-formed
UTF-8).  This is going to be rectified by following commit which will
make it again possible for the code to assume bytes format.  This is
not done in this commit to keep it smaller.

@pacak:
- Added a few comments
- tried to hide internal types from the diagnostic

And then there's two different bugs where it would report matched areas
as rejected. This broke str::trim_end_matches and who knows what else.
Caught it thanks to tests in the previous commit. And one underflow bug
on invalid input.
It works right now, but original implementation of the next
commit breaks them with none of existing tests catching this
regression.
pacak added 3 commits August 25, 2026 13:22
Since core::str_bytes module cannot assume byte slices it deals with
are well-formed UTF-8 (or even WTF-8), the code must be defensive and
accept invalid sequences.  This eliminates optimisations which would
be otherwise possible.

Introduce a `Flavour` trait which tags `Bytes` type with information
about the byte sequence.  For example, if a `Bytes` object is created
from `&str` it’s tagged with `Utf8` flavour which gives the code
freedom to assume data is well-formed UTF-8.

This brings back all the optimisations removed in previous commit.

@pacak:
- removed IS_WTF8 associated constant - unused
- fixed a bug related to multibyte reverse matching:
  `next_code_point_reverse` reads the input via Iterator::next_back,
  passing `bytes.iter().rev()` reverses it a second time. Not good.
I reverted `ByteNeedle` change earlier, time to add the same
functionality back.

`ByteSearcherState` is mostly copied from `CharSearcherState`, does
a single ascii byte search.

It is possible to do the dispatch inside of a CharSearcherState, but
that makes it a bit slower.
@pacak
pacak force-pushed the push-rksmzopsvzlk branch from 169e859 to 30a139e Compare August 25, 2026 18:39
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job x86_64-gnu-tools failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
100  177M  100  177M    0     0   214M      0 --:--:-- --:--:-- --:--:--  214M
#12 DONE 1.1s

#13 [ 7/10] RUN unzip -d /usr/bin/ chrome-linux64.zip && rm chrome-linux64.zip
#13 0.047 Archive:  chrome-linux64.zip
#13 0.048   inflating: /usr/bin/chrome-linux64/ABOUT  
#13 0.048   inflating: /usr/bin/chrome-linux64/MEIPreload/manifest.json  
#13 0.048   inflating: /usr/bin/chrome-linux64/MEIPreload/preloaded_data.pb  
#13 0.048   inflating: /usr/bin/chrome-linux64/PrivacySandboxAttestationsPreloaded/manifest.json  
#13 0.049   inflating: /usr/bin/chrome-linux64/PrivacySandboxAttestationsPreloaded/privacy-sandbox-attestations.dat  
#13 0.049   inflating: /usr/bin/chrome-linux64/WidevineCdm/LICENSE  
#13 0.049   inflating: /usr/bin/chrome-linux64/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so  
#13 0.177   inflating: /usr/bin/chrome-linux64/WidevineCdm/manifest.json  
#13 0.177   inflating: /usr/bin/chrome-linux64/chrome  
#13 2.411   inflating: /usr/bin/chrome-linux64/chrome-wrapper  
#13 2.411   inflating: /usr/bin/chrome-linux64/chrome_100_percent.pak  
#13 2.416   inflating: /usr/bin/chrome-linux64/chrome_200_percent.pak  
#13 2.425   inflating: /usr/bin/chrome-linux64/chrome_crashpad_handler  
#13 2.442   inflating: /usr/bin/chrome-linux64/chrome_sandbox  
#13 2.442   inflating: /usr/bin/chrome-linux64/deb.deps  
#13 2.442   inflating: /usr/bin/chrome-linux64/icudtl.dat  
#13 2.523   inflating: /usr/bin/chrome-linux64/libEGL.so  
#13 2.526   inflating: /usr/bin/chrome-linux64/libGLESv2.so  
#13 2.576   inflating: /usr/bin/chrome-linux64/libvk_swiftshader.so  
#13 2.613   inflating: /usr/bin/chrome-linux64/libvulkan.so.1  
#13 2.619   inflating: /usr/bin/chrome-linux64/locales/af.pak  
#13 2.624   inflating: /usr/bin/chrome-linux64/locales/af_FEMININE.pak  
#13 2.624   inflating: /usr/bin/chrome-linux64/locales/af_MASCULINE.pak  
#13 2.624   inflating: /usr/bin/chrome-linux64/locales/af_NEUTER.pak  
#13 2.624   inflating: /usr/bin/chrome-linux64/locales/am.pak  
#13 2.631   inflating: /usr/bin/chrome-linux64/locales/am_FEMININE.pak  
#13 2.631   inflating: /usr/bin/chrome-linux64/locales/am_MASCULINE.pak  
#13 2.632   inflating: /usr/bin/chrome-linux64/locales/am_NEUTER.pak  
#13 2.632   inflating: /usr/bin/chrome-linux64/locales/ar.pak  
#13 2.639   inflating: /usr/bin/chrome-linux64/locales/ar_FEMININE.pak  
#13 2.639   inflating: /usr/bin/chrome-linux64/locales/ar_MASCULINE.pak  
#13 2.639   inflating: /usr/bin/chrome-linux64/locales/ar_NEUTER.pak  
#13 2.640   inflating: /usr/bin/chrome-linux64/locales/bg.pak  
#13 2.647   inflating: /usr/bin/chrome-linux64/locales/bg_FEMININE.pak  
#13 2.647   inflating: /usr/bin/chrome-linux64/locales/bg_MASCULINE.pak  
#13 2.648   inflating: /usr/bin/chrome-linux64/locales/bg_NEUTER.pak  
#13 2.648   inflating: /usr/bin/chrome-linux64/locales/bn.pak  
#13 2.658   inflating: /usr/bin/chrome-linux64/locales/bn_FEMININE.pak  
#13 2.658   inflating: /usr/bin/chrome-linux64/locales/bn_MASCULINE.pak  
#13 2.658   inflating: /usr/bin/chrome-linux64/locales/bn_NEUTER.pak  
#13 2.658   inflating: /usr/bin/chrome-linux64/locales/ca.pak  
#13 2.663   inflating: /usr/bin/chrome-linux64/locales/ca_FEMININE.pak  
#13 2.663   inflating: /usr/bin/chrome-linux64/locales/ca_MASCULINE.pak  
#13 2.664   inflating: /usr/bin/chrome-linux64/locales/ca_NEUTER.pak  
#13 2.664   inflating: /usr/bin/chrome-linux64/locales/cs.pak  
#13 2.669   inflating: /usr/bin/chrome-linux64/locales/cs_FEMININE.pak  
#13 2.669   inflating: /usr/bin/chrome-linux64/locales/cs_MASCULINE.pak  
#13 2.669   inflating: /usr/bin/chrome-linux64/locales/cs_NEUTER.pak  
#13 2.669   inflating: /usr/bin/chrome-linux64/locales/da.pak  
#13 2.674   inflating: /usr/bin/chrome-linux64/locales/da_FEMININE.pak  
#13 2.674   inflating: /usr/bin/chrome-linux64/locales/da_MASCULINE.pak  
#13 2.675   inflating: /usr/bin/chrome-linux64/locales/da_NEUTER.pak  
#13 2.675   inflating: /usr/bin/chrome-linux64/locales/de.pak  
#13 2.680   inflating: /usr/bin/chrome-linux64/locales/de_FEMININE.pak  
#13 2.680   inflating: /usr/bin/chrome-linux64/locales/de_MASCULINE.pak  
#13 2.680   inflating: /usr/bin/chrome-linux64/locales/de_NEUTER.pak  
#13 2.680   inflating: /usr/bin/chrome-linux64/locales/el.pak  
#13 2.689   inflating: /usr/bin/chrome-linux64/locales/el_FEMININE.pak  
#13 2.689   inflating: /usr/bin/chrome-linux64/locales/el_MASCULINE.pak  
#13 2.689   inflating: /usr/bin/chrome-linux64/locales/el_NEUTER.pak  
#13 2.689   inflating: /usr/bin/chrome-linux64/locales/en-GB.pak  
#13 2.693   inflating: /usr/bin/chrome-linux64/locales/en-GB_FEMININE.pak  
#13 2.694   inflating: /usr/bin/chrome-linux64/locales/en-GB_MASCULINE.pak  
#13 2.694   inflating: /usr/bin/chrome-linux64/locales/en-GB_NEUTER.pak  
#13 2.694   inflating: /usr/bin/chrome-linux64/locales/en-US.pak  
#13 2.698   inflating: /usr/bin/chrome-linux64/locales/en-US_FEMININE.pak  
#13 2.698   inflating: /usr/bin/chrome-linux64/locales/en-US_MASCULINE.pak  
#13 2.699   inflating: /usr/bin/chrome-linux64/locales/en-US_NEUTER.pak  
#13 2.699   inflating: /usr/bin/chrome-linux64/locales/es-419.pak  
#13 2.704   inflating: /usr/bin/chrome-linux64/locales/es-419_FEMININE.pak  
#13 2.704   inflating: /usr/bin/chrome-linux64/locales/es-419_MASCULINE.pak  
#13 2.704   inflating: /usr/bin/chrome-linux64/locales/es-419_NEUTER.pak  
#13 2.704   inflating: /usr/bin/chrome-linux64/locales/es.pak  
#13 2.709   inflating: /usr/bin/chrome-linux64/locales/es_FEMININE.pak  
#13 2.709   inflating: /usr/bin/chrome-linux64/locales/es_MASCULINE.pak  
#13 2.709   inflating: /usr/bin/chrome-linux64/locales/es_NEUTER.pak  
#13 2.710   inflating: /usr/bin/chrome-linux64/locales/et.pak  
#13 2.714   inflating: /usr/bin/chrome-linux64/locales/et_FEMININE.pak  
#13 2.715   inflating: /usr/bin/chrome-linux64/locales/et_MASCULINE.pak  
#13 2.715   inflating: /usr/bin/chrome-linux64/locales/et_NEUTER.pak  
#13 2.715   inflating: /usr/bin/chrome-linux64/locales/fa.pak  
#13 2.722   inflating: /usr/bin/chrome-linux64/locales/fa_FEMININE.pak  
#13 2.722   inflating: /usr/bin/chrome-linux64/locales/fa_MASCULINE.pak  
#13 2.722   inflating: /usr/bin/chrome-linux64/locales/fa_NEUTER.pak  
#13 2.722   inflating: /usr/bin/chrome-linux64/locales/fi.pak  
#13 2.727   inflating: /usr/bin/chrome-linux64/locales/fi_FEMININE.pak  
#13 2.727   inflating: /usr/bin/chrome-linux64/locales/fi_MASCULINE.pak  
#13 2.727   inflating: /usr/bin/chrome-linux64/locales/fi_NEUTER.pak  
#13 2.728   inflating: /usr/bin/chrome-linux64/locales/fil.pak  
#13 2.733   inflating: /usr/bin/chrome-linux64/locales/fil_FEMININE.pak  
#13 2.733   inflating: /usr/bin/chrome-linux64/locales/fil_MASCULINE.pak  
#13 2.733   inflating: /usr/bin/chrome-linux64/locales/fil_NEUTER.pak  
#13 2.733   inflating: /usr/bin/chrome-linux64/locales/fr.pak  
#13 2.739   inflating: /usr/bin/chrome-linux64/locales/fr_FEMININE.pak  
#13 2.739   inflating: /usr/bin/chrome-linux64/locales/fr_MASCULINE.pak  
#13 2.739   inflating: /usr/bin/chrome-linux64/locales/fr_NEUTER.pak  
#13 2.739   inflating: /usr/bin/chrome-linux64/locales/gu.pak  
#13 2.749   inflating: /usr/bin/chrome-linux64/locales/gu_FEMININE.pak  
#13 2.749   inflating: /usr/bin/chrome-linux64/locales/gu_MASCULINE.pak  
#13 2.749   inflating: /usr/bin/chrome-linux64/locales/gu_NEUTER.pak  
#13 2.749   inflating: /usr/bin/chrome-linux64/locales/he.pak  
#13 2.755   inflating: /usr/bin/chrome-linux64/locales/he_FEMININE.pak  
#13 2.755   inflating: /usr/bin/chrome-linux64/locales/he_MASCULINE.pak  
#13 2.756   inflating: /usr/bin/chrome-linux64/locales/he_NEUTER.pak  
#13 2.756   inflating: /usr/bin/chrome-linux64/locales/hi.pak  
#13 2.766   inflating: /usr/bin/chrome-linux64/locales/hi_FEMININE.pak  
#13 2.766   inflating: /usr/bin/chrome-linux64/locales/hi_MASCULINE.pak  
#13 2.766   inflating: /usr/bin/chrome-linux64/locales/hi_NEUTER.pak  
#13 2.766   inflating: /usr/bin/chrome-linux64/locales/hr.pak  
#13 2.771   inflating: /usr/bin/chrome-linux64/locales/hr_FEMININE.pak  
#13 2.772   inflating: /usr/bin/chrome-linux64/locales/hr_MASCULINE.pak  
#13 2.772   inflating: /usr/bin/chrome-linux64/locales/hr_NEUTER.pak  
#13 2.772   inflating: /usr/bin/chrome-linux64/locales/hu.pak  
#13 2.778   inflating: /usr/bin/chrome-linux64/locales/hu_FEMININE.pak  
#13 2.778   inflating: /usr/bin/chrome-linux64/locales/hu_MASCULINE.pak  
#13 2.778   inflating: /usr/bin/chrome-linux64/locales/hu_NEUTER.pak  
#13 2.778   inflating: /usr/bin/chrome-linux64/locales/id.pak  
#13 2.783   inflating: /usr/bin/chrome-linux64/locales/id_FEMININE.pak  
#13 2.783   inflating: /usr/bin/chrome-linux64/locales/id_MASCULINE.pak  
#13 2.784   inflating: /usr/bin/chrome-linux64/locales/id_NEUTER.pak  
#13 2.784   inflating: /usr/bin/chrome-linux64/locales/it.pak  
#13 2.789   inflating: /usr/bin/chrome-linux64/locales/it_FEMININE.pak  
#13 2.789   inflating: /usr/bin/chrome-linux64/locales/it_MASCULINE.pak  
#13 2.789   inflating: /usr/bin/chrome-linux64/locales/it_NEUTER.pak  
#13 2.789   inflating: /usr/bin/chrome-linux64/locales/ja.pak  
#13 2.795   inflating: /usr/bin/chrome-linux64/locales/ja_FEMININE.pak  
#13 2.796   inflating: /usr/bin/chrome-linux64/locales/ja_MASCULINE.pak  
#13 2.796   inflating: /usr/bin/chrome-linux64/locales/ja_NEUTER.pak  
#13 2.796   inflating: /usr/bin/chrome-linux64/locales/kn.pak  
#13 2.806   inflating: /usr/bin/chrome-linux64/locales/kn_FEMININE.pak  
#13 2.806   inflating: /usr/bin/chrome-linux64/locales/kn_MASCULINE.pak  
#13 2.806   inflating: /usr/bin/chrome-linux64/locales/kn_NEUTER.pak  
#13 2.806   inflating: /usr/bin/chrome-linux64/locales/ko.pak  
#13 2.811   inflating: /usr/bin/chrome-linux64/locales/ko_FEMININE.pak  
#13 2.811   inflating: /usr/bin/chrome-linux64/locales/ko_MASCULINE.pak  
#13 2.812   inflating: /usr/bin/chrome-linux64/locales/ko_NEUTER.pak  
#13 2.812   inflating: /usr/bin/chrome-linux64/locales/lt.pak  
#13 2.817   inflating: /usr/bin/chrome-linux64/locales/lt_FEMININE.pak  
#13 2.817   inflating: /usr/bin/chrome-linux64/locales/lt_MASCULINE.pak  
#13 2.818   inflating: /usr/bin/chrome-linux64/locales/lt_NEUTER.pak  
#13 2.818   inflating: /usr/bin/chrome-linux64/locales/lv.pak  
#13 2.823   inflating: /usr/bin/chrome-linux64/locales/lv_FEMININE.pak  
#13 2.823   inflating: /usr/bin/chrome-linux64/locales/lv_MASCULINE.pak  
#13 2.824   inflating: /usr/bin/chrome-linux64/locales/lv_NEUTER.pak  
#13 2.824   inflating: /usr/bin/chrome-linux64/locales/ml.pak  
#13 2.834   inflating: /usr/bin/chrome-linux64/locales/ml_FEMININE.pak  
#13 2.834   inflating: /usr/bin/chrome-linux64/locales/ml_MASCULINE.pak  
#13 2.835   inflating: /usr/bin/chrome-linux64/locales/ml_NEUTER.pak  
#13 2.835   inflating: /usr/bin/chrome-linux64/locales/mr.pak  
#13 2.844   inflating: /usr/bin/chrome-linux64/locales/mr_FEMININE.pak  
#13 2.844   inflating: /usr/bin/chrome-linux64/locales/mr_MASCULINE.pak  
#13 2.845   inflating: /usr/bin/chrome-linux64/locales/mr_NEUTER.pak  
#13 2.845   inflating: /usr/bin/chrome-linux64/locales/ms.pak  
#13 2.850   inflating: /usr/bin/chrome-linux64/locales/ms_FEMININE.pak  
#13 2.850   inflating: /usr/bin/chrome-linux64/locales/ms_MASCULINE.pak  
#13 2.850   inflating: /usr/bin/chrome-linux64/locales/ms_NEUTER.pak  
#13 2.850   inflating: /usr/bin/chrome-linux64/locales/nb.pak  
#13 2.855   inflating: /usr/bin/chrome-linux64/locales/nb_FEMININE.pak  
#13 2.855   inflating: /usr/bin/chrome-linux64/locales/nb_MASCULINE.pak  
#13 2.855   inflating: /usr/bin/chrome-linux64/locales/nb_NEUTER.pak  
#13 2.855   inflating: /usr/bin/chrome-linux64/locales/nl.pak  
#13 2.860   inflating: /usr/bin/chrome-linux64/locales/nl_FEMININE.pak  
#13 2.860   inflating: /usr/bin/chrome-linux64/locales/nl_MASCULINE.pak  
#13 2.860   inflating: /usr/bin/chrome-linux64/locales/nl_NEUTER.pak  
#13 2.860   inflating: /usr/bin/chrome-linux64/locales/pl.pak  
#13 2.866   inflating: /usr/bin/chrome-linux64/locales/pl_FEMININE.pak  
#13 2.866   inflating: /usr/bin/chrome-linux64/locales/pl_MASCULINE.pak  
#13 2.866   inflating: /usr/bin/chrome-linux64/locales/pl_NEUTER.pak  
#13 2.866   inflating: /usr/bin/chrome-linux64/locales/pt-BR.pak  
#13 2.871   inflating: /usr/bin/chrome-linux64/locales/pt-BR_FEMININE.pak  
#13 2.871   inflating: /usr/bin/chrome-linux64/locales/pt-BR_MASCULINE.pak  
#13 2.872   inflating: /usr/bin/chrome-linux64/locales/pt-BR_NEUTER.pak  
#13 2.872   inflating: /usr/bin/chrome-linux64/locales/pt-PT.pak  
#13 2.877   inflating: /usr/bin/chrome-linux64/locales/pt-PT_FEMININE.pak  
#13 2.877   inflating: /usr/bin/chrome-linux64/locales/pt-PT_MASCULINE.pak  
#13 2.877   inflating: /usr/bin/chrome-linux64/locales/pt-PT_NEUTER.pak  
#13 2.877   inflating: /usr/bin/chrome-linux64/locales/ro.pak  
#13 2.882   inflating: /usr/bin/chrome-linux64/locales/ro_FEMININE.pak  
#13 2.883   inflating: /usr/bin/chrome-linux64/locales/ro_MASCULINE.pak  
#13 2.883   inflating: /usr/bin/chrome-linux64/locales/ro_NEUTER.pak  
#13 2.883   inflating: /usr/bin/chrome-linux64/locales/ru.pak  
#13 2.891   inflating: /usr/bin/chrome-linux64/locales/ru_FEMININE.pak  
#13 2.891   inflating: /usr/bin/chrome-linux64/locales/ru_MASCULINE.pak  
#13 2.891   inflating: /usr/bin/chrome-linux64/locales/ru_NEUTER.pak  
#13 2.891   inflating: /usr/bin/chrome-linux64/locales/sk.pak  
#13 2.897   inflating: /usr/bin/chrome-linux64/locales/sk_FEMININE.pak  
#13 2.897   inflating: /usr/bin/chrome-linux64/locales/sk_MASCULINE.pak  
#13 2.897   inflating: /usr/bin/chrome-linux64/locales/sk_NEUTER.pak  
#13 2.898   inflating: /usr/bin/chrome-linux64/locales/sl.pak  
#13 2.903   inflating: /usr/bin/chrome-linux64/locales/sl_FEMININE.pak  
#13 2.903   inflating: /usr/bin/chrome-linux64/locales/sl_MASCULINE.pak  
#13 2.903   inflating: /usr/bin/chrome-linux64/locales/sl_NEUTER.pak  
#13 2.903   inflating: /usr/bin/chrome-linux64/locales/sr.pak  
#13 2.911   inflating: /usr/bin/chrome-linux64/locales/sr_FEMININE.pak  
#13 2.911   inflating: /usr/bin/chrome-linux64/locales/sr_MASCULINE.pak  
#13 2.911   inflating: /usr/bin/chrome-linux64/locales/sr_NEUTER.pak  
#13 2.911   inflating: /usr/bin/chrome-linux64/locales/sv.pak  
#13 2.916   inflating: /usr/bin/chrome-linux64/locales/sv_FEMININE.pak  
#13 2.916   inflating: /usr/bin/chrome-linux64/locales/sv_MASCULINE.pak  
#13 2.916   inflating: /usr/bin/chrome-linux64/locales/sv_NEUTER.pak  
#13 2.916   inflating: /usr/bin/chrome-linux64/locales/sw.pak  
#13 2.921   inflating: /usr/bin/chrome-linux64/locales/sw_FEMININE.pak  
#13 2.922   inflating: /usr/bin/chrome-linux64/locales/sw_MASCULINE.pak  
#13 2.922   inflating: /usr/bin/chrome-linux64/locales/sw_NEUTER.pak  
#13 2.922   inflating: /usr/bin/chrome-linux64/locales/ta.pak  
#13 2.933   inflating: /usr/bin/chrome-linux64/locales/ta_FEMININE.pak  
#13 2.933   inflating: /usr/bin/chrome-linux64/locales/ta_MASCULINE.pak  
#13 2.933   inflating: /usr/bin/chrome-linux64/locales/ta_NEUTER.pak  
#13 2.933   inflating: /usr/bin/chrome-linux64/locales/te.pak  
#13 2.943   inflating: /usr/bin/chrome-linux64/locales/te_FEMININE.pak  
#13 2.944   inflating: /usr/bin/chrome-linux64/locales/te_MASCULINE.pak  
#13 2.944   inflating: /usr/bin/chrome-linux64/locales/te_NEUTER.pak  
#13 2.944   inflating: /usr/bin/chrome-linux64/locales/th.pak  
#13 2.953   inflating: /usr/bin/chrome-linux64/locales/th_FEMININE.pak  
#13 2.953   inflating: /usr/bin/chrome-linux64/locales/th_MASCULINE.pak  
#13 2.953   inflating: /usr/bin/chrome-linux64/locales/th_NEUTER.pak  
#13 2.954   inflating: /usr/bin/chrome-linux64/locales/tr.pak  
#13 2.959   inflating: /usr/bin/chrome-linux64/locales/tr_FEMININE.pak  
#13 2.959   inflating: /usr/bin/chrome-linux64/locales/tr_MASCULINE.pak  
#13 2.959   inflating: /usr/bin/chrome-linux64/locales/tr_NEUTER.pak  
#13 2.959   inflating: /usr/bin/chrome-linux64/locales/uk.pak  
#13 2.967   inflating: /usr/bin/chrome-linux64/locales/uk_FEMININE.pak  
#13 2.967   inflating: /usr/bin/chrome-linux64/locales/uk_MASCULINE.pak  
#13 2.967   inflating: /usr/bin/chrome-linux64/locales/uk_NEUTER.pak  
#13 2.967   inflating: /usr/bin/chrome-linux64/locales/ur.pak  
#13 2.974   inflating: /usr/bin/chrome-linux64/locales/ur_FEMININE.pak  
#13 2.974   inflating: /usr/bin/chrome-linux64/locales/ur_MASCULINE.pak  
#13 2.975   inflating: /usr/bin/chrome-linux64/locales/ur_NEUTER.pak  
#13 2.975   inflating: /usr/bin/chrome-linux64/locales/vi.pak  
#13 2.981   inflating: /usr/bin/chrome-linux64/locales/vi_FEMININE.pak  
#13 2.981   inflating: /usr/bin/chrome-linux64/locales/vi_MASCULINE.pak  
#13 2.981   inflating: /usr/bin/chrome-linux64/locales/vi_NEUTER.pak  
#13 2.981   inflating: /usr/bin/chrome-linux64/locales/zh-CN.pak  
#13 2.985   inflating: /usr/bin/chrome-linux64/locales/zh-CN_FEMININE.pak  
#13 2.985   inflating: /usr/bin/chrome-linux64/locales/zh-CN_MASCULINE.pak  
#13 2.985   inflating: /usr/bin/chrome-linux64/locales/zh-CN_NEUTER.pak  
#13 2.986   inflating: /usr/bin/chrome-linux64/locales/zh-TW.pak  
#13 2.990   inflating: /usr/bin/chrome-linux64/locales/zh-TW_FEMININE.pak  
#13 2.990   inflating: /usr/bin/chrome-linux64/locales/zh-TW_MASCULINE.pak  
#13 2.990   inflating: /usr/bin/chrome-linux64/locales/zh-TW_NEUTER.pak  
#13 2.990  extracting: /usr/bin/chrome-linux64/product_logo_48.png  
#13 2.990   inflating: /usr/bin/chrome-linux64/resources.pak  
#13 3.079   inflating: /usr/bin/chrome-linux64/rpm.deps  
#13 3.080   inflating: /usr/bin/chrome-linux64/v8_context_snapshot.bin  
#13 3.085   inflating: /usr/bin/chrome-linux64/vk_swiftshader_icd.json  
#13 3.085    creating: /usr/bin/chrome-linux64/resources/
#13 3.085    creating: /usr/bin/chrome-linux64/resources/inspector_overlay/
#13 3.085   inflating: /usr/bin/chrome-linux64/resources/inspector_overlay/inspector_overlay_resources.grd  
#13 3.086   inflating: /usr/bin/chrome-linux64/resources/inspector_overlay/main.js  
#13 3.086    creating: /usr/bin/chrome-linux64/resources/accessibility/
#13 3.086    creating: /usr/bin/chrome-linux64/resources/accessibility/reading_mode_gdocs_helper/
#13 3.087   inflating: /usr/bin/chrome-linux64/resources/accessibility/reading_mode_gdocs_helper/content.js  
#13 3.087   inflating: /usr/bin/chrome-linux64/resources/accessibility/reading_mode_gdocs_helper/gdocs_script.js  
#13 3.087   inflating: /usr/bin/chrome-linux64/resources/accessibility/reading_mode_gdocs_helper_manifest.json  
#13 3.087    creating: /usr/bin/chrome-linux64/hyphen-data/
#13 3.087   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-tk.hyb  
#13 3.087   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-de-1901.hyb  
#13 3.089   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-de-1996.hyb  
#13 3.090   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-mul-ethi.hyb  
#13 3.090   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-es.hyb  
#13 3.091   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-hi.hyb  
#13 3.091   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-cu.hyb  
#13 3.092   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-as.hyb  
#13 3.092   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-ta.hyb  
#13 3.092   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-pa.hyb  
#13 3.092   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-el.hyb  
#13 3.092   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-te.hyb  
#13 3.092   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-und-ethi.hyb  
#13 3.093   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-de-ch-1901.hyb  
#13 3.094   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-bg.hyb  
#13 3.094   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-gu.hyb  
#13 3.094   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-et.hyb  
#13 3.095   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-cs.hyb  
#13 3.096   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-nl.hyb  
#13 3.097   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-ru.hyb  
#13 3.097   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-hy.hyb  
#13 3.097   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-uk.hyb  
#13 3.097   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-eu.hyb  
#13 3.098   inflating: /usr/bin/chrome-linux64/hyphen-data/manifest.json  
#13 3.098   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-ga.hyb  
#13 3.098   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-sk.hyb  
#13 3.099   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-mr.hyb  
#13 3.099   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-bn.hyb  
#13 3.099   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-nb.hyb  
#13 3.101   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-en-gb.hyb  
#13 3.102   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-or.hyb  
#13 3.102   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-cy.hyb  
#13 3.102   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-hr.hyb  
#13 3.103   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-fr.hyb  
#13 3.103   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-kn.hyb  
#13 3.103   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-mn-cyrl.hyb  
#13 3.103   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-lt.hyb  
#13 3.103   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-en-us.hyb  
#13 3.104   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-ml.hyb  
#13 3.104   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-pt.hyb  
#13 3.105   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-be.hyb  
#13 3.105   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-sl.hyb  
#13 3.105   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-lv.hyb  
#13 3.105   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-sv.hyb  
#13 3.106   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-hu.hyb  
#13 3.110   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-af.hyb  
#13 3.111   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-sq.hyb  
#13 3.111   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-ka.hyb  
#13 3.111   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-it.hyb  
#13 3.111   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-gl.hyb  
#13 3.112   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-da.hyb  
#13 3.112   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-nn.hyb  
#13 3.114   inflating: /usr/bin/chrome-linux64/hyphen-data/hyph-la.hyb  
#13 DONE 3.8s

#14 [ 8/10] COPY scripts/nodejs.sh /scripts/
#14 DONE 0.0s

---
.                                                  (151/151)

======== tests/rustdoc-gui/item-decl-colors.goml ========

[ERROR] item-decl-colors output:
Runtime.callFunctionOn timed out. Increase the 'protocolTimeout' setting in launch/connect calls for a higher timeout if needed.
stack: ProtocolError: Runtime.callFunctionOn timed out. Increase the 'protocolTimeout' setting in launch/connect calls for a higher timeout if needed.
    at <instance_members_initializer> (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/common/CallbackRegistry.js:108:14)
    at new Callback (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/common/CallbackRegistry.js:112:16)
    at CallbackRegistry.create (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/common/CallbackRegistry.js:27:26)
    at Connection._rawSend (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/cdp/Connection.js:125:26)
    at CdpCDPSession.send (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/cdp/CdpSession.js:72:14)
    at #evaluate (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/cdp/ExecutionContext.js:374:50)
    at ExecutionContext.evaluate (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/cdp/ExecutionContext.js:288:36)
    at IsolatedWorld.evaluate (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/cdp/IsolatedWorld.js:104:30)
    at CdpFrame.evaluate (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/api/Frame.js:364:43)
    at CdpFrame.<anonymous> (file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/node_modules/puppeteer-core/lib/puppeteer/util/decorators.js:101:27)


======== tests/rustdoc-gui/search-result-display.goml ========

[WARNING] line 38: Delta is 0 for "x", maybe try to use `compare-elements-position` instead?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants