Chapter 9 of 9

How this was researched

A full-text search of the proposal archives found no hidden borrowing; the discussion archives found one. On 7 November 2026 the complete swift-evolution, rust-lang/rfcs, Kotlin KEEP, dotnet/csharplang (proposals and design-meeting notes), Scala SIP (current and historical) and dart-lang/language repositories were searched for Perl 6, Perl6, Raku and Rakudo, along with their GitHub issue and pull-request threads and the JEPs. Only four files matched: the C# chained-comparison proposal, Rust RFC 2909, a Kotlin design note on function colouring, and SE-0363's unused link. The issue threads added the Dart range survey and a handful of Rust comments. All of these are prior art or suggestions not taken, so none changes a verdict, and every other Perl mention in those archives concerns Perl 5 regexes, quoting or tooling. JEP coverage is near-complete where it matters. openjdk.org began refusing requests from this machine after 106 of its 511 pages had arrived, and Wayback Machine snapshots supplied 122 more, so 228 JEPs were read, including 157 of the 165 language, javac and core-library ones; the rest are HotSpot, GC, security, networking and tooling JEPs (JEP index). No JEP read mentions Perl 6 or Raku, and JEP 1111's Perl references are to Perl 5.10-era regex constructs.

What the sources say 1
  1. Xueming Shen, JEP owner (core-libs), endorsed by Brian Goetz JEP 111, Additional Unicode Constructs for Regular Expressions source ↗

    Proposes adding Unicode TR#18 constructs to Java regexes, noting that Java's regex syntax derives from Perl's and listing Perl-style forms such as \N{...}, \X, \R, \g{...}, \h and \v.

A second pass the same day covered the venues where design is argued rather than recorded. Seventeen Discourse forums — among them forums.swift.org with the 2015–2017 swift-evolution list imported into it, internals.rust-lang.org, contributors.scala-lang.org and discuss.python.org — were searched exhaustively for the same terms, along with csharplang Discussions, Ruby's Redmine tracker, PHP internals through externals.io, and the D and Nim forums (forums.swift.org; bugs.ruby-lang.org; externals.io; forum.dlang.org). The mailing lists were downloaded and grepped locally: the subject lines of all 271,342 perl5-porters articles from August 1999 to November 2026 plus about 2,000 thread bodies chosen by subject, the full text of python-3000, python-ideas and python-dev, es-discuss in full from 2006 to 2016 and by its mirror's search to 2021, and ruby-dev around Matz's 2005 commit (p5p; python-3000; es-discuss). Twenty more design and documentation repositories — Carbon, the Go, GHC, OCaml, F#, PowerShell and Nim proposal archives, TC39's lists, spec and meeting notes, the Julia, Elixir, Zig, Gleam, Crystal, Mojo and TypeScript docs, and the PEPs — plus 329 TC39 proposal repositories and 17 issue trackers were grepped too; outside the PEPs only three files matched, the Go 2 transitions design doc, Carbon's p0680 and the TC39 Decimal README, and the trackers yielded about 55 genuine threads (golang/proposal; carbon-lang; tc39/proposals). The Raku side was checked against the perl6-language archive (36,873 articles), the Pugs svn mirror, and 1,088 Weekly and Advent posts (perl6-language).

That pass produced one verdict-changing borrowing (Swift's heredoc rule), the perl5-porters credits for Perl 5's imports, two transmissions below the language level and most of the near-miss rows. As the first round had predicted, the p5p threads behind // and <<~ held the missing credits, while those behind Perl 5's chained comparisons and the python-3000 threads behind PEP 3102 did not. It also closed the earlier gaps on undocumented look-alikes with non-Perl origins: Swift's public history from July 2010 dates $0, \( ) and ?? and credits Groovy for ..< and Go for defer; Breslav credits Groovy for Kotlin's it and Elvis; ES2015's strawmen trace shorthand properties to SpiderMonkey and template literals to E, PHP and shell-style interpolation; and Guido traced any/all to ABC (Swift notes2; ErrorHandlingRationale3; Breslav4; harmony:quasis5; Artima6). Only C#'s ?? still has no origin statement, though it is now dated to the May 2004 C# 2.0 specification (Gunnerson7). Still unsearched: Elixir Forum's own search (blocked), Reddit (HTTP 403), news.php.net (unreachable), IRC logs and conference talks, golang-nuts and golang-dev, discuss.python.org beyond a keyword search, Kotlin's YouTrack and Slack, TC39 Discourse, the Mojo Discord, Perl's PPC discussions on GitHub, p5p bodies under unrelated subjects, es-discuss after October 2016 beyond its mirror's search, ruby-talk and later ruby-dev, and Swift's WWDC 2014 sessions and podcasts. The research notes behind every table and verdict here, with each hit's URL, date, author and classification and the gaps each search left, are in perl6-influence-notes/: feature-timelines/ holds the first round (the Perl 6 chronology, the Perl 5 backports, the per-feature timelines, the influence audit and the proposal-archive search), and beyond-proposals/ holds the second (forums, mailing lists, other languages' repositories, Raku-side dates and claims, and the look-alikes' origins).

What the sources say 6
  1. Apple's Swift team Swift internal release notes, utils/buildbot-release-notes.txt (swift-2.2 snapshot of 1 Dec 2015) source ↗

    Records under 23 Jun 2014 that Swift's half-open range now uses ..< in place of .., noting that Groovy and other languages already spell it this way.

  2. John McCall, Swift compiler engineer at Apple Error Handling Rationale and Proposal, docs/ErrorHandlingRationale in the Swift repository source ↗

    Surveys Go's defer and, preferring it to Java-style try/finally, proposes that Swift adopt a similar statement whose clean-up runs when the enclosing scope ends instead of when the function returns.

  3. Andrey Breslav, Kotlin lead designer Shoulders of Giants, talk slides (JPoint, per the PDF's metadata) source ↗

    Puts Kotlin's implicit lambda parameter, it, on a slide that credits Groovy, contrasts it with Scala, Java, C# and Python forms, and names Groovy and C# as sources of the Elvis operator and its relatives.

  4. TC39, ECMAScript Harmony proposal page (last edited by Mark Miller) ECMAScript wiki, harmony:quasis (Wayback snapshot of 23 Dec 2011) source ↗

    Chooses the backquote because JavaScript leaves it free and Ruby, PHP and Perl already quote with it, takes ${...} from jQuery templates and PHP, and lists E quasi-literals among its references.

  5. Guido van Rossum, creator of Python Artima weblog, The fate of reduce() in Python 3000 source ↗

    Proposes any() and all() builtins for short-circuit tests over generator expressions, saying they mostly recover ABC's EACH, SOME and NO quantifiers, in a post arguing reduce() and lambda can go.

  6. Eric Gunnerson, Microsoft C# team Gunnerson's MSDN blog source ↗

    Announces a revised C# 2.0 specification credited to Anders Hejlsberg, with nullable types as its largest new area, and tells a commenter no change list exists; no origin for ?? is given.