pax_global_header00006660000000000000000000000064135673013730014522gustar00rootroot0000000000000052 comment=8fa2b0f6a413d88f5875179c24fc6cdae76528ea rakudo-2019.11/000077500000000000000000000000001356730137300131645ustar00rootroot00000000000000rakudo-2019.11/.circleci/000077500000000000000000000000001356730137300150175ustar00rootroot00000000000000rakudo-2019.11/.circleci/config.yml000066400000000000000000000021741356730137300170130ustar00rootroot00000000000000version: 2.1 variables: build-parameters: &build-parameters parameters: moar-rev: type: string default: "" nqp-rev: type: string default: "" jobs: test-linux: machine: true <<: *build-parameters steps: - build-rakudo: nqp-rev: << parameters.nqp-rev >> moar-rev: << parameters.moar-rev >> test-macos: macos: xcode: "10.2.0" <<: *build-parameters steps: - build-rakudo: nqp-rev: << parameters.nqp-rev >> moar-rev: << parameters.moar-rev >> commands: build-rakudo: description: "Build MoarVM, NQP, and Rakudo" <<: *build-parameters steps: - checkout - run: name: Build and test rakudo command: | perl Configure.pl --gen-moar=<< parameters.moar-rev >> --gen-nqp=<< parameters.nqp-rev >> make test make install workflows: version: 2 test: jobs: - test-linux - test-linux: nqp-rev: HEAD moar-rev: HEAD - test-macos - test-macos: nqp-rev: HEAD moar-rev: HEAD rakudo-2019.11/.github/000077500000000000000000000000001356730137300145245ustar00rootroot00000000000000rakudo-2019.11/.github/ISSUE_TEMPLATE.md000066400000000000000000000006601356730137300172330ustar00rootroot00000000000000 ## The Problem ## Expected Behavior ## Actual Behavior ## Steps to Reproduce ## Environment * Operating system: * Compiler version (`perl6 -v`): rakudo-2019.11/.gitignore000066400000000000000000000034071356730137300151600ustar00rootroot00000000000000/gen/* /nqp/ repo/ install/ install-jvm/ Makefile *.pir *.lib *.dll /*.dll.a *.so *.o *.obj *.exp *.pdb *.bundle *~ .*.swp *.patch *.pdb *.res *.exp *.lib *.jar *.moarvm *.js.map blib/Perl6/**/*.js lib/Test.pir lib/Pod/To/Text.pir lib/lib.pir CORE.setting.pbc RESTRICTED.setting.pbc SAFE.setting.pbc perl6.class perl6.pbc perl6.moarvm perl6_s1.pbc perl6-p.exe.manifest perl6-p.c perl6-p.o perl6-p.obj perl6-debug-p perl6-debug-p.c perl6-debug-p.o perl6-debug-p.obj perl6-debug-p.exe perl6-debug.pbc perl6-debug.rc perl6.RES perl6.ilk perl6.opt perl6.pdb perl6.rc /perl6 /perl6.exe /perl6.bat /perl6-p /perl6-p.exe /perl6-j /perl6-j.bat /perl6-debug-j /perl6-debug-j.bat /perl6-jdb-server /perl6-jdb-server.bat /perl6-eval-server /perl6-eval-server.bat /eval-client.pl /perl6.js /rakudo.js /perl6-debug.js /perl6-js /perl6-js.bat /rakudo-m.c /perl6-m /perl6-m.exe /perl6-debug-m /perl6-debug-m.bat /perl6-gdb-m /perl6-gdb-m.bat /perl6-lldb-m /perl6-lldb-m.bat /perl6-valgrind-m /perl6-valgrind-m.bat /rakudo-debug-m /rakudo-debug-m.bat /rakudo-gdb-m /rakudo-gdb-m.bat /rakudo-lldb-m /rakudo-lldb-m.bat /rakudo-valgrind-m /rakudo-valgrind-m.bat /inst-perl6 /inst-perl6-debug /inst-perl6-m /inst-perl6-debug-m /inst-perl6.exe /inst-perl6-debug.exe /inst-perl6-m.exe /inst-perl6-debug-m.exe t/localtest.data t/spec t/packages/tap-harness6 /panda MANIFEST commits.png docs/test_summary.times dynext/*.o dynext/*.obj dynext/*.bundle dynext/*.so dynext/*.dll dynext/*.pdb dynext/*.dylib perl6_group.? perl6_group.obj docs/test_summary.times docs/test_summary.times.tmp lib/DateTime/strftime.pir lib/Safe.pir rakudo_test_run.tar.gz config.status config.default /bin rakudo-runtime.jar CORE.?.setting.class CORE.?.setting.js *.rakudo.moar *.rakudo.jvm .precomp t/03-jvm/*.class /zef .DS_Store node_modules/* rakudo-2019.11/.gitmodules000066400000000000000000000001661356730137300153440ustar00rootroot00000000000000[submodule "3rdparty/nqp-configure"] path = 3rdparty/nqp-configure url = https://github.com/perl6/nqp-configure.git rakudo-2019.11/.travis.yml000066400000000000000000000023451356730137300153010ustar00rootroot00000000000000language: perl os: - linux - osx sudo: false fast_finish: true install: "echo" dist: xenial jdk: openjdk11 addons: apt: sources: # add PPAs with more up-to-date toolchains - ubuntu-toolchain-r-test script: - perl Configure.pl $RAKUDO_OPTIONS --moar-option=--cc=$(command -v gcc-6 >/dev/null 2>&1; if [ $? -eq 1 ]; then printf "gcc"; else printf "gcc-6"; fi) - "make install" - (cd ~/build/rakudo/rakudo/ && prove -e ~/build/rakudo/rakudo/install/bin/perl6 -vlr t) branches: only: - master - /smoke-me/ notifications: irc: channels: - "irc.freenode.net#raku-dev" on_success: change on_failure: always template: - "Rakudo build %{result}. %{author} '%{commit_message}'" - "%{build_url} %{compare_url}" env: - RAKUDO_OPTIONS="--backends=moar --gen-nqp --gen-moar" - RAKUDO_OPTIONS="--backends=moar --gen-nqp=master --gen-moar" - RAKUDO_OPTIONS="--backends=moar --gen-nqp=master --gen-moar=master" - RAKUDO_OPTIONS="--backends=jvm --gen-nqp" - RAKUDO_OPTIONS="--backends=jvm --gen-nqp=master" matrix: allow_failures: - env: RAKUDO_OPTIONS="--backends=jvm --gen-nqp" - env: RAKUDO_OPTIONS="--backends=jvm --gen-nqp=master" rakudo-2019.11/3rdparty/000077500000000000000000000000001356730137300147345ustar00rootroot00000000000000rakudo-2019.11/3rdparty/nqp-configure/000077500000000000000000000000001356730137300175115ustar00rootroot00000000000000rakudo-2019.11/CONTRIBUTING.md000066400000000000000000000137231356730137300154230ustar00rootroot00000000000000# Filing Issues ## Potential bugs Please include a way for developers to reproduce the problem. A small program that demonstrates a problem is best. Describe the behaviour you're observing and how it differs from expectations. Include the version of the compiler you're using (run `perl6 -v`) as well as the type and version of the operating system (e.g. `Windows 10`) -------------------------------- # How to Contribute to Rakudo Perl 6 Contributions to Rakudo are very welcome. To make the process smoother for you and the contributors, please read the note below. ## The Contribution Process For small changes, please submit a pull request on GitHub. This includes * bug fixes * improvements to the build process * implementation of features that are already specified If you want to implement a new language feature or built-in of your own design, please discuss it first in the `#perl6-dev` IRC channel on irc.freenode.org. If you get no feedback on your pull request, feel free to nudge us in the IRC channel mentioned above. If you want to contribute large amounts of code, please follow the [Contributor License Agreement process](https://www.perlfoundation.org/contributor-license-agreement.html) from the Perl Foundation. For small contributions, you agree to place your code under the terms of the license of the code that Rakudo is under. Please separate your commits for different issues into different branches, and please squash out any intermediate commits, like adding/removing debug output. ## Test Coverage New features should be accompanied by test cases in the [roast repository](https://github.com/perl6/roast/). Please ask for direct push access in the `#perl6-dev` or `#perl6` IRC channels on freenode, or submit a pull request. Bug fixes should also come with test cases (if practical), though we prefer bug fixes without test cases to no contribution at all. In this case, the corresponding bug ticket will stay open, and gets the `testsneeded` tag. If you add the tests to a new test file, please include that filename in the `t/spectest.data` file in the Rakudo repository. ## Coding Style Please match your coding style to that of the code around it. We aren't terribly strict when it comes to coding style, but here are some very basic guidelines: * Indentation happens with four spaces * Use uncuddled `else`, so use a newline between a closing curly brace and the `else` keyword * Perl 5 code (part of the build system) should `use strict; use warnings;` and loosely follow [perlstyle](http://perldoc.perl.org/perlstyle.html). ## Commit messages How to write [a good **and** useful commit message](https://chris.beams.io/posts/git-commit/). Commit messages are where you tell the what, why and how of your commit to others. The subject/title of a commit should 50 or less characters ideally. The absolute maximum is 72. Titles usually will tell what you did. You should almost always have a body except in the case of the most trivial changes. These style guidelines are best practices, but use your judgment. You may want to fit 100 characters into the commit title to get in all the details, but `git` will cut it off if the window is not wide enough, and github.com will truncate it at the end if it is too long. The commit body is where you can go into detail about these things, the subject should be easy to read at a glance what you did. A good commit is one where months from now you be able to read this commit and understand what you did and why you did it. Don't make a commit that only says `Fix RT #130979` because when the time to do the monthly changelog comes, someone will need to look up the ticket. And then usually wade through several replies on that ticket to figure out what the problem was and at the end I'm often unsure what the ACTUAL problem was that got fixed in the commit, not just the RT number. If somebody is trying to find a recent commit that affected, say, `infix:`, would they be able to find it by searching through the subject and body for `xx`? The body should tell the reader: * **What** you did/changed * **Why** you did it * Background info Don't end commit subjects with periods for ease of viewing a commit log by title. If there are multiple sentences in the subject, you can have a period, but do not have one at the end of the commit. Example: `Fix foo and bar. This is good because reasons` This makes them look better and easier to read in shortlog/oneline form. If you fixed a ticket, or the commit relates to a specific ticket, please mention the ticket in the title or the body as `RT #12345`. If there was an IRC conversation that can give some background or useful information, you can link to it by visiting [irclog.perlgeek.de](https://irclog.perlgeek.de/perl6/) and linking the link provided by the timestamps on the left side of the page. Put links on their own line if they are going to go over the 76 character maximum for the body text. #### Sample/Tutorial Commit ```git Capitalized, short (50 chars or less) summary More detailed explanatory text. The commit relates to a ticket, please write it as RT #12345. Wrap at about 72 characters, but never above 76, unless it is a URL or code that cannot be separated. The blank line separating the summary from the body is critical; tools like rebase can get confused if you run the two together. Write your commit message in the imperative: "Fix bug" and not "Fixed bug" or "Fixes bug." This convention matches up with commit messages generated by commands like git merge and git revert. Further paragraphs come after blank lines. - Bullet points are okay, too - Typically a hyphen or asterisk is used for the bullet, followed by a single space. - Indent the lines following the bullet the same as the line above. NOT like this. ``` Above faux commit adapted from [here](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) , which also has some more information on how to make a good commit. ## Have Fun! Enjoy the ride, and please join our IRC channels to meet the great community. rakudo-2019.11/CREDITS000066400000000000000000000321751356730137300142140ustar00rootroot00000000000000=pod Following in the steps of other open source projects that eventually take over the world, here is the partial list of people who have contributed to Rakudo and its supporting works. It is sorted by name and formatted to allow easy grepping and beautification by scripts. The fields are: name (N), email (E), web-address (W), description (D), Subversion or GitHub username (U) and snail-mail address (S). Thanks, The Rakudo Team PS: Yes, this looks remarkably like the Linux CREDITS format PPS: This file is encoded in UTF-8 ---------- N: ab5tract E: john.haltiwanger@gmail.com N: Adrian White U: snarkyboojum E: snarkyboojum@gmail.com N: Ahmad M. Zawawi U: azawawi E: ahmad.zawawi@gmail.com D: Rakudo builtins, win32 patches N: Alberto Manuel Brandao Simoes U: ambs E: ambs@cpan.org S: Braga, Portugal W: http://alfarrabio.di.uminho.pt/~albie/ N: Aleks-Daniel Jakimenko-Aleksejev U: AlexDaniel E: alex.jakimenko@gmail.com N: Alex Elsayed U: eternaleye E: eternaleye@gmail.com N: Alexander Moquin U: Mouq N: Allison Randal D: Parrot Architect (0.4.6...) E: allison@parrot.org U: allison N: Amir E. Aharoni E: amir.aharoni@mail.huji.ac.il N: amire80 E: amir.aharoni@mail.huji.ac.il N: Andrew Egeler U: retupmoca N: Andrew Whitworth E: wknight8111@gmail.com U: Whiteknight N: Andy Lester E: andy@petdance.com W: http://perlbuzz.com/ S: McHenry, IL, USA U: petdance N: Arne Skjærholt U: arnsholt E: arnsholt@gmail.com U: ask N: Ask Bjørn Hansen D: Keeps us running E: ask@develooper.com N: Audrey Tang U: au E: audreyt@audreyt.org D: Pugs, a Perl6->Parrot implementation. N: bacek E: bacek@illusion.dev.optusnet.com.au N: Bahtiar `kalkin-` Gadimov U: kalkin E: bahtiar@gadimov.de W: https://bahtiar.gadimov.de/ N: Bart Wiegmans U: bdw U: brrt E: bartwiegmans@gmail.com D: Hack MoarVM JIT stuff N: Ben Davies U: Kaiepi E: kaiepi@outlook.com D: Improving *BSD and networking support N: Bernhard Schmalhofer U: bernhard E: Bernhard.Schmalhofer@gmx.de N: Bob Kuo E: bob@celect.org N: Bob Rogers D: Random small bug fixes E: rogers-perl6@rgrjr.dyndns.org U: rgrjr N: Brad Gilbert E: b2gills@gmail.com N: Brent Laabs U: labster E: bslaabs@gmail.com N: Brian Gernhardt E: benji@silverinsanity.com N: Brian S. Julin U: skids N: Bruce Gray U: util E: bruce.gray@acm.org N: Bruce Keeler U: bkeeler D: variable interpolation into regexes N: Bryan C. Warnock D: The First Perl 6 Summarizer D: Little things here and there in pre-Parrot days. D: And, yes, {sigh}, *that* Warnock. E: bwarnock@raba.com N: Carl Mäsak E: cmasak@gmail.com U: masak N: Carlin E: glassflag@users.noreply.github.com N: Carlin Bingham E: cb@viennan.net U: carbin N: Chip Salzenberg D: Release manager emeritus D: Architect emeritus (0.1.2-0.4.5) U: chip E: chip@pobox.com N: Chris Davaz D: Rakudo builtins E: cdavaz@gmail.com N: Chris Dolan U: cdolan D: Rakudo patches E: cdolan@cpan.org N: Chris Fields U: cjfields D: Rakudo patches N: Chris Jepeway E: jepeway@blasted-heath.com N: Christian Bartolomäus U: usev6 U: bartolin E: bartolin@gmx.de N: Christoph Otto E: christoph_git@mksig.org N: Christoph Otto a.k.a. cotto U: cotto E: christoph@mksig.org N: Christopher J. Madsen E: perl@cjmweb.net N: Claudio Ramirez U: nxadm U: El_Che E: pub.claudio@gmail.com N: Clifton Wood U: Xliff E: clifton.wood@gmail.com N: Colin Kuskie U: colink E: ckuskie@sterling.net N: Cory Spencer U: cspencer D: Rakudo builtins E: cspencer@sprocket.org N: Cosimo Streppone E: cosimo@opera.com N: cosmicnet E: webmaster@cosmicperl.com N: Curtis 'Ovid' Poe U: Ovid D: docs/test cleanups/Makefile fixes D: Rename 'pbc_to_c' to 'pbc_to_exe' E: ovid@cpan.org N: cygx E: cygx@cpan.org N: Daenyth E: Daenyth+git@gmail.com N: Dagfinn Ilmari Mannsåker E: ilmari@ilmari.org N: Dagur Valberg Johannsson E: dagurval@pvv.ntnu.no N: dagurval E: dagurval@pvv.ntnu.no N: Dan Miller E: danielcliffordmiller@gmail.com U: danielcliffordmiller N: Dan Sugalski U: dan D: Architect emeritus (0.0.1-0.1.1) E: dan@sidhe.org W: http://www.sidhe.org/~dan/blog/ N: Daniel Green U: MasterDuke17 E: ddgreen@gmail.com N: Dave Rolsky U: autarch E: autarch@urth.org W: http://blog.urth.org/ N: Dave Whipp E: dwhipp@google.com N: David Romano D: PGE tests and fixes E: david.romano+p6i@gmail.com N: David Warring E: david.warring@gmail.com N: Dino Morelli D: PGE tests E: dmorelli@reactorweb.net N: Donald Hunter U: donaldh E: donald@sealgair.com N: Edwin Steiner E: edwin.steiner@gmx.net N: Elise U: rightfold U: eli-se E: rightfold@gmail.com N: Elizabeth Mattijsen U: lizmat E: liz@wenzperl.nl N: Erik Johansen E: perl6-git@uniejo.dk N: Faye Niemeyer U: ShimmerFairy N: Felix Herrmann E: felix@herrmann-koenigsberg.de N: Fernando Brito E: email@fernandobrito.com N: Fernando Corrêa de Oliveira U: FCO E: fco@cpan.org S: Rio de Janeiro, RJ, Brazil N: Filip Sergot E: filip@sergot.pl N: Fitz Elliott E: felliott@virginia.edu N: Florian Ragwitz U: rafl U: flora E: rafl@debianforum.de W: http://www.tu-chemnitz.de/~rafl/ S: Chemnitz, Germany N: flussence E: flussence@gmail.com N: François Perrad E: francois.perrad@gadz.org W: http://fperrad.googlepages.com/home U: fperrad N: Gabor Szabo E: szabgab@gmail.com N: Geir Amdal E: gam@grok.no N: Geoff Broadwell U: japhb E: geoff@broadwell.org N: Gerd Pokorra E: pokorra@uni-siegen.de N: Gerhard R E: gerd.r.devel@googlemail.com N: Gerhard R. E: gerd.r.devel@googlemail.com N: Gianni Ceccarelli E: dakkar@thenautilus.net N: GlitchMr E: glitchmr@myopera.com N: Gregor N. Purdy U: gregor E: gregor@focusresearch.com S: Sunnyvale, CA N: Hongwen Qiu E: qiuhongwen@gmail.com N: Ingy döt Net U: ingy E: ingy@ingy.net W: http://ingy.net/ S: Seattle, WA, USA D: Make is() work like Perl 5; add .pm6 to extensions searched. N: Itsuki Toyota U: titsuki E: titsuki@cpan.org N: James E Keenan (Jim) E: jkeenan@cpan.org U: jkeenan W: http://thenceforward.net/parrot/ S: Brooklyn, NY, USA N: Jan Ingvoldstad E: jani+perl6-2010@ifi.uio.no N: Jan-Olof Hendig U: dogbert17 E: jan-olof.hendig@bredband.net N: japhb E: gjb@sonic.net N: Jarkko Hietaniemi U: jhi E: jhi@iki.fi N: Jarrod E: gigantic.midget@gmail.com N: Jason Gloudon N: Jaume Martí E: jaume.martif@gmail.com N: JD Horelick U: jdhore E: jdhore1@gmail.com N: Jeff Goff D: Parrot Release Manager Emeritus (0.2..0.4) E: drforr@pobox.com U: drforr N: Jeff Horwitz E: jeff@smashing.org U: jhorwitz N: Jens Rehsack E: sno@netbsd.org N: Jerry Gay U: particle E: Jerry.Gay@gmail.com S: Seattle, WA, USA N: Jesse Vincent U: jesse E: jesse@fsck.com N: Jimmy Zhuo E: zhuomingliang01@qq.com N: Joelle Maslak E: jmaslak@antelope.net U: jmaslak W: http://digitalbarbedwire.com/ S: Golden, CO, USA N: John Harrison U: __ash__ E: ash@greaterthaninfinity.com N: Jonathan "Duke" Leto U: leto U: dukeleto E: jonathan@leto.net W: http://leto.net S: Portland, OR N: Jonathan Scott Duff U: perlpilot U: PerlJam E: duff@pobox.com N: Jonathan Stowe U: RabidGravy N: Jonathan Worthington U: jnthn E: jnthn@jnthn.net D: Perl 6 (Rakudo Perl) lead developer W: http://www.jnthn.net/ N: Joshua Gatcomb N: Julian Albo U: julianalbo E: julian.notfound@gmail.com N: Justin DeVuyst U: jdv79 N: Kamil Kułaga E: teodozjan@users.noreply.github.com N: Kane Valentine U: kawaii E: kane@cute.im W: https://cute.im N: kboga E: kristofbogaerts@gmail.com N: Kevan Benson E: kbenson@brinstar.netcrucial.com N: Kevin Tew U: tewk E: tewk@tewk.com N: Klaas-Jan Stol U: kjs E: parrotcode@gmail.com N: Kodi Arfer U: Kodi W: http://arfer.net N: Kris Shannon E: kris@shannon.id.au N: Kyle Hasselbacher E: kyleha@gmail.com U: KyleHa U: kyle D: Test.pm improvements, ticket testing N: L. Grondin E: grondilu@yahoo.fr N: laben E: labensigma@gmail.com N: Lanny Ripple E: Lanny.Ripple@gmail.com N: Larry Wall E: larry@wall.org U: TimToady N: Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 E: daxim@cpan.org N: last.of.the.careless.men@gmail.com E: last.of.the.careless.men@gmail.com N: Leon Timmermans U: leont E: fawaka@gmail.com N: Leopold Toetsch U: leo D: Patchmonster & release manager emeritus (0.0.13 - 0.4.5) E: lt@toetsch.at S: Herrnbaumgarten, Austria N: Lloyd Fournier E: LLFourn@users.noreply.github.com N: Lucas Buchala E: lucasbuchala@gmail.com N: Luke Palmer E: luke@luqui.org U: luqui N: Marcus Ramberg E: marcus@nordaaker.com N: Mark Glines U: infinoid E: mark@glines.org S: South Lake Tahoe, CA, USA N: Mark Grimes E: mgrimes@cpan.org N: Mark Rushing E: seatek@gmail.com U: adaptiveoptics N: Mark Shoulson E: mark@kli.org N: markmont E: markmont@markmont-dev.web.itd.umich.edu N: Martin Berends E: mberends@autoexec.demon.nl D: Rakudo patch(es) N: Martin Kjeldsen E: martin@martinkjeldsen.dk N: Marton Papp E: anteusz@freemail.hu N: Matt Diephouse U: mdiep E: matt@diephouse.com N: Matt Kraai E: kraai@ftbfs.org N: Matthew (lue) E: rnddim@gmail.com N: Matthew Walton E: matthew@matthew-walton.co.uk N: Matthew Wilson E: diakopter@gmail.com N: mberends E: github@autoexec.demon.nl N: Michael Schroeder U: mls D: Exception handling E: mls@suse.de N: Michael Stapelberg E: michael@stapelberg.de N: Mike Francis E: ungrim97@gmail.com N: Mikhail Khorkov E: m.s.khorkov@gmail.com N: Moritz Lenz E: moritz.lenz@gmail.com U: moritz D: Test infrastructure, tests, general Rakudo hacking N: Mouq E: alexmoquin@gmail.com N: Momo E: skelic3@gmail.com U: momozor N: Nicholas Clark U: nicholas E: nick@ccl4.org N: Nick Glencross E: nick.glencross@gmail.com N: Nick Logan U: ugexe E: nlogan@gmail.com N: Nick Wellnhofer E: wellnhofer@aevum.de N: Notfound E: julian.notfound@gmail.com N: Nuno 'smash' Carvalho U: smash E: mestre.smash@gmail.com N: particle E: jerry.gay@gmail.com N: Patrick Abi Salloum U: patrickas E: patrick.abisalloum@gmail.com N: Patrick R. Michaud U: pmichaud D: Perl 6 (Rakudo Perl) lead developer E: pmichaud@pobox.com N: Patrick Böker U: patzim E: patrickz@cpan.org N: Paul Cochrane U: paultcochrane E: paul@liekut.de N: Paweł Murias N: Pawel Murias U: pmurias E: pawelmurias@gmail.com N: Nele Schwarz U: crnl U: crnlskn U: noelsken E: schwrzcrnl@gmail.com N: Peter Gibbs U: petergibbs E: peter@emkel.co.za N: Peter Lobsinger E: plobsing@gmail.com N: Piers Cawley U: pdcawley D: The Second Perl 6 Summarizer after Bryan C. Warnock E: pdcawley@bofh.org.uk W: http://www.bofh.org.uk:8080/ N: quester E: quester.pm@gmail.com N: Radu Stoica E: radu_cs85@yahoo.com N: raydiak E: raydiak@cyberuniverses.com N: Reini Urban U: rurban E: rurban@cpan.org D: cygwin fixes N: Ricardo Signes E: rjbs@cpan.org N: Rob Hoelz U: hoelzro E: rob@hoelz.ro N: Robert Spier D: Keeps us running U: robert E: robert@perl.org N: Ronald Schmidt E: ronaldxs@software-path.com U: ronaldxs N: root E: root@atlas.clarku.edu N: Ruslan Zakirov E: ruz@bestpractical.com N: Salve J. Nilsen E: sjn+gnurf@kaizendo.org N: Samantha McVey E: samantham@posteo.net W: cry.nu U: samcv N: sergot E: filip@sergot.pl N: ShimmerFairy E: rnddim@gmail.com N: Shlomi Fish E: shlomif@iglu.org.il N: Shoichi Kaji E: skaji@cpan.org N: Shrivatsan Sampathkumar U: isBEKaml E: nastavs@gmail.com N: Siddhant Saraf E: siddhantsaraf@gmail.com N: Simon Cozens U: simon E: simon@simon-cozens.org N: skids E: bri@abrij.org N: smashz E: smash@cpan.org N: smls E: smls75@gmail.com N: Solomon Foster U: colomon E: colomon@gmail.com N: Stefan O'Rear U: sorear E: stefanor@cox.net N: Stefan Seifert U: niner E: nine@detonation.org N: Stéphane Payrard U: cognominal E: cognominal@gmail.com D: Various code fixes and improvements N: Stephen Weeks U: tene D: Minor Rakudo patches E: tene@allalone.org N: Sterling Hanenkamp E: sterling@hanenkamp.com N: Steve Mynott E: steve.mynott@gmail.com N: sue spence E: virtuallysue@gmail.com N: Tadeusz Sośnierz U: tadzik E: tadzikes@gmail.com N: thundergnat E: thundergnat@comcast.net N: Tim Smith E: tim.dolores@gmail.com N: Timo Paulssen U: timo U: timotimo E: timonator@perpetuum-immobile.de N: Timothy Totten U: novus D: Temporal (DateTime/Date) modifications E: supernovus@gmail.com W: http://huri.net/ N: Tobias Leich U: FROGGS E: email@froggs.de N: Tokuhiro Matsuno E: tokuhirom@gmail.com N: Tom Browder E: tom.browder@gmail.com U: tbrowder S: Niceville, Florida, USA N: Tomasz Konojacki E: me@xenu.tk N: Tomoki Aonuma E: uasi@99cm.org N: tony-o E: tony.odell@xpertminds.net N: Tyler Curtis U: tcurtis D: $*ARGFILES E: tyler.l.curtis@gmail.com N: Ujwal Reddy Malipeddi E: ujwalic@gmail.com D: Rakudo patch N: usev6 E: use_v6@aglaz.de N: Vasily Chekalkin E: bacek@bacek.com D: Core and Rakudo patches N: vendethiel E: vendethiel@hotmail.fr N: Vladimir Lettiev E: thecrux@gmail.com N: Vyacheslav Matjukhin E: mmcleric@yandex-team.ru N: Wenzel P. P. Peppmeyer E: wenzel.peppmeyer@gmx.de U: gfldex N: Will "Coke" Coleda U: coke E: will@coleda.com N: William Orr E: will@worrbase.com N: Yun SangHo E: foollbar@gmail.com N: Zach Morgan E: zpmorgan@gmail.com D: Rakudo patch N: Zoffix Znet E: cpan@zoffix.com W: perl6.party N: Zohar Kelrich E: lumimies@gmail.com N: Ævar Arnfjörð Bjarmason E: avarab@gmail.com N: Вячеслав Матюхин U: mmcleric E: me@berekuk.ru D: Whatever-currying, colonpair fixes N: eater U: the-eater E: perl6@eaterofco.de N: Oleksii Varianyk U: cono E: q@cono.org.ua N: Vadim Belman U: vrurg E: vrurg@cpan.org D: Build subsystem, various code changes =cut rakudo-2019.11/Configure.pl000077500000000000000000000202441356730137300154470ustar00rootroot00000000000000#!/usr/bin/env perl # Copyright (C) 2009-2019 The Perl Foundation use 5.10.1; use strict; use warnings; use Text::ParseWords; use Getopt::Long; use File::Spec; use Cwd; use FindBin; BEGIN { if ( -d '.git' ) { my $set_config = !qx{git config rakudo.initialized}; unless ( -e '3rdparty/nqp-configure/LICENSE' ) { print "Updating nqp-configure submodule...\n"; my $msg = qx{git submodule sync --quiet 3rdparty/nqp-configure && git submodule --quiet update --init 3rdparty/nqp-configure 2>&1}; if ( $? >> 8 == 0 ) { say "OK"; $set_config = 1; } else { if ( $msg =~ /[']([^']+)[']\s+already exists and is not an empty/ ) { print "\n===SORRY=== ERROR: " . "Cannot update submodule because directory exists and is not empty.\n" . ">>> Please delete the following folder and try again:\n$1\n\n"; exit 1; } } } if ($set_config) { system("git config submodule.recurse true"); system("git config rakudo.initialized 1"); } } } use lib ( "$FindBin::Bin/tools/lib", "$FindBin::Bin/3rdparty/nqp-configure/lib" ); use NQP::Config qw; use NQP::Config::Rakudo; $| = 1; my $cfg = NQP::Config::Rakudo->new; my $config = $cfg->config( no_ctx => 1 ); my $lang = $cfg->cfg('lang'); # We don't use ExtUtils::Command in Configure.pl, but it is used in the Makefile # Try `use`ing it here so users know if they need to install this module # (not included with *every* Perl installation) use ExtUtils::Command; MAIN: { if ( -r 'config.default' ) { unshift @ARGV, shellwords( slurp('config.default') ); } my $config_status = "$config->{lclang}_config_status"; $config->{$config_status} = join ' ', map { qq("$_") } @ARGV; GetOptions( $cfg->options, 'help!', 'prefix=s', 'perl6-home|rakudo-home=s', 'nqp-home=s', 'sysroot=s', 'sdkroot=s', 'relocatable!', 'backends=s', 'no-clean', 'with-nqp=s', 'gen-nqp:s', 'gen-moar:s', 'moar-option=s@', 'git-protocol=s', 'ignore-errors!', 'make-install!', 'makefile-timing!', 'git-depth=s', 'git-reference=s', 'github-user=s', 'rakudo-repo=s', 'nqp-repo=s', 'moar-repo=s', 'roast-repo=s', 'expand=s', 'out=s', 'set-var=s@', 'silent-build!', 'raku-alias!' ) or do { print_help(); exit(1); }; # Print help if it's requested if ( $cfg->opt('help') ) { print_help(); exit(0); } if ( $cfg->opt('ignore-errors') ) { $cfg->note( "WARNING!", "Errors are being ignored.\n", "In the case of any errors the script may behave unexpectedly." ); } $cfg->configure_paths; $cfg->configure_from_options; $cfg->configure_relocatability; $cfg->configure_repo_urls; $cfg->configure_commands; $cfg->configure_nqp; $cfg->configure_refine_vars; $cfg->configure_backends; $cfg->configure_misc; # Save options in config.status $cfg->save_config_status unless $cfg->has_option('expand'); $cfg->options->{'gen-nqp'} ||= '' if $cfg->has_option('gen-moar'); $cfg->gen_nqp; $cfg->configure_active_backends; $cfg->clean_old_p6_libs; $cfg->expand_template; unless ( $cfg->opt('expand') ) { my $make = $cfg->cfg('make'); if ( $cfg->opt('clean') ) { no warnings; print "Cleaning up ...\n"; if ( open my $CLEAN, '-|', "$make clean" ) { my @slurp = <$CLEAN>; close($CLEAN); } } if ( $cfg->opt('make-install') ) { system_or_die($make); system_or_die( $make, 'install' ); print "\n$lang has been built and installed.\n"; } else { print "\nYou can now use '$make' to build $lang.\n"; print "After that, '$make test' will run some tests and\n"; print "'$make install' will install $lang.\n"; } } exit 0; } # Print some help text. sub print_help { print <<"END"; Configure.pl - $lang Configure General Options: --help Show this text --prefix= Install files in dir; also look for executables there --nqp-home=dir Directory to install NQP files to --perl6-home=dir, --rakudo-home=dir Directory to install Rakudo files to --relocatable Dynamically locate NQP and Perl6 home dirs instead of statically compiling them in. (On AIX and OpenBSD Rakudo is always built non-relocatable, since both OSes miss a necessary mechanism.) --no-raku-alias Don't create `raku` alias for `rakudo` binary --sdkroot= When given, use for searching build tools here, e.g. nqp, java, node etc. --sysroot= When given, use for searching runtime components here --backends=jvm,moar,js Which backend(s) to use (or ALL for all of them) --gen-nqp[=branch] Download, build, and install a copy of NQP before writing the Makefile --gen-moar[=branch] Download, build, and install a copy of MoarVM to use before writing the Makefile --with-nqp= Provide path to already installed nqp --make-install Install Rakudo after configuration is done --moar-option='--option=value' Options to pass to MoarVM's Configure.pl For example: --moar-option='--compiler=clang' --github-user= Fetch all repositories (rakudo, nqp, roast, MoarVM) from this github user. Note that the user must have all required repos forked from the originals. --rakudo-repo= --nqp-repo= --moar-repo= --roast-repo= User-defined URL to fetch corresponding components from. The URL will also be used to setup git push. --git-protocol={ssh,https,git} Protocol used for cloning git repos --git-depth= Use the --git-depth option for git clone with parameter number --git-reference= Use --git-reference option to identify local path where git repositories are stored For example: --git-reference=/home/user/repo/for_perl6 Folders 'nqp' and 'MoarVM' with corresponding git repos should be in for_perl6 folder --makefile-timing Enable timing of individual makefile commands --no-clean Skip cleanup before installation --ignore-errors Ignore errors (such as the version of NQP) --expand=