Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First pass at Perl 6 -> Raku #2951

Closed
wants to merge 6 commits into from
Closed

First pass at Perl 6 -> Raku #2951

wants to merge 6 commits into from

Conversation

coke
Copy link
Collaborator

@coke coke commented Aug 13, 2019

Providing a target for for the Raku discussion going on at

Raku/problem-solving#81

Should not be merged until that issue has a clear resolution.

Only targeted the places in text where Perl 6 could safely be changed; if it's a historical quote, or required some context, made minimal edits.

Needs to also address instances of the executable name.

Didn't change the nbsp test because "Perl 6" still appears in some places (just not many).

Please feel free to keep this branch up to date with rebases, and with more commits.

doc/Language/classtut.pod6 Outdated Show resolved Hide resolved
doc/Language/pod.pod6 Outdated Show resolved Hide resolved
@AlexDaniel
Copy link
Member

Moreover, here's an unfiltered list of things to check. Anything that talks about “Perl” in general should now use “Raku” instead. Any references to perl5 should be moved to 5to6 docs (this was discussed long time ago).

ack 'Perl [^6]'
Language/101-basics.pod6
368:Perl code can appear within curly braces, C<Array>s and C<Hash>es may be

Language/5to6-nutshell.pod6
125:those restrictions are unlikely to concern much real-life Perl code (e.g.,
127:there are a few that will unfortunately conflict with some Perl hackers'
319:In Perl 5, the C<*> sigil referred to the GLOB structure that Perl uses to
1285:Perl pragma to use integer arithmetic instead of floating point.  There is
1491:=head2 Perl module library path
1494:Perl modules is C<PERL5LIB>.
1516:(Perl 6 does not recognize either the C<PERL5LIB> or the older Perl environment
1826:This project is dedicated to automated modernization of Perl code. It does
1837:This project is a suite of Perl cross-compilers, including Perl 5-to-6

Language/5to6-perlfunc.pod6
32:=head1 Alphabetical listing of Perl functions
518:of I<replacing> your Perl program's process with the new program;

Language/5to6-perlop.pod6
309:backticks do not do shell quoting as in Perl 5, and Perl variables are

Language/5to6-perlsyn.pod6
7:perlsyn - Perl syntax

Language/5to6-perlvar.pod6
140:like C<v6.c>; the full stringified version of the Perl interpreter is obtained

Language/classtut.pod6
834:C<$o.perl> returns a string that can be executed as Perl code, and

Language/community.pod6
10:of Perl and of the community." - Larry Wall
23:Perl 6 is also a common topic at L<Perl conferences|https://www.perl.org/events.html> and L<Perl Monger meetings|https://www.pm.org/> and L<other meetups|https://perl.meetup.com/>.
33:If you want a single resource to know what is going on in the Perl community now, this is your best resource

Language/concurrency.pod6
29:Additionally, certain Perl features may implicitly operate in an asynchronous

Language/faq.pod6
951:=item Perl 6's mottos remain the same as they have been for Perl all along:
952:“Perl is different. In a nutshell, Perl is designed to make the easy jobs easy,

Language/glossary.pod6
150:initial barrage of RFCs that came out of the Perl community. Now only kept
587:"There's More Than One Way To Do It", the Perl motto.
835:The Perl programming language in its many forms.
841:by many in the L<Perl Community|/language/community>.
1234:A virtual machine is the Perl compiler entity that executes the

Language/grammar_tutorial.pod6
709:check out the more advanced L<Perl Grammar Guide|/language/grammars>.

Language/io-guide.pod6
151:Here's an example that finds lines in a text file that mention Perl and prints

Language/io.pod6
217:on failure. Thus the standard Perl idiom works as expected:

Language/modules.pod6
49:have the same structure as any distribution in the Perl family of languages:

Language/nativecall.pod6
37:Sometimes you want the name of your Perl subroutine to be different from the
43:routine in your library that may be different from your Perl subroutine name.

Language/rb-nutshell.pod6
66:restrictions are unlikely to concern much real-life Perl code (e.g. whitespace
1052:=head2 Perl module library path

Language/regexes.pod6
1331:(e.g., replacing 'Perl Jam' with 'Pearl Jam'), to reformatting an ISO8601

Language/testing.pod6
32:As with any Perl project, the tests live under the C<t> directory in the

Language/variables.pod6
432:    $~MAIN       the current main language (e.g. Perl statements)
1479:Contains the name of the Perl executable that is currently running. (e.g.

Type/IO/CatHandle.pod6
567:(my $f1 = 'foo'.IO).spurt: 'Perl loves to';
571:    say .readchars: 11;   # OUTPUT: «Perl loves ␤»

Type/CallFrame.pod6
26:Perl constructs a frames for blocks and such as well, so if you need a callframe

Type/Code.pod6
91:    say comber 'Perl is awesome! Python is great! And PHP is OK too';
92:    # OUTPUT: «(Perl Python PHP)␤»

Type/Mu.pod6
179:ways to write a Perl expression that produces a particular value.

Type/Pair.pod6
186:    my $p = (Perl => 6);
197:    my $p = (Perl => 6);
239:    my $p = (Perl => 6);
251:    my $p = (Perl => 6);
253:    say $p.pairs[0];    # OUTPUT: «Perl => 6␤»
266:    say $p.first;                                     # OUTPUT: «Perl => 6␤»
287:    :foo<Perl is great>.invert.perl.say;

Type/Perl.pod6
5:=SUBTITLE Perl related information
7:    class Perl does Systemic { }
17:L<Compiler|/type/Compiler>, associated with the Perl object.

Type/independent-routines.pod6
386:$fh.say: 'I ♥ writing Perl code';

@AlexDaniel
Copy link
Member

AlexDaniel commented Aug 13, 2019

Oh, yeah, and “5to6” wouldn't mean much (or enough) if the Raku proposal is accepted, so should these be called something else too? Like “perl-to-raku”?

@Grinnz
Copy link
Contributor

Grinnz commented Aug 14, 2019

Embracing the power of names without numbers: perl2raku ;)

@AlexDaniel
Copy link
Member

Embracing the power of names without numbers: perl2raku ;)

I like that. Just need to make sure there's a redirect so that we're not braking any links outside of our infrastructure.

@JJ
Copy link
Contributor

JJ commented Aug 14, 2019 via email

@JJ
Copy link
Contributor

JJ commented Aug 14, 2019

And there are conflicts already

@AlexDaniel
Copy link
Member

I would opt for creating a new site with
the new names, leave this old one as a branch, and insert a notice in the
header of every one redirecting people to the new place

Isn't it, like, a lot of work? Doesn't look very actionable to me, giving the time constraints most people have.

@JJ
Copy link
Contributor

JJ commented Aug 14, 2019 via email

@coke
Copy link
Collaborator Author

coke commented Aug 14, 2019

For things that match Perl with no 6, it's not entirely clear that it's a simple substitution to Raku. Probably needs a human to verify the context.

My first pass here was most of the Perl 6 instances that didn't have some sort of historic context; it was my intent that any literal "Perl 6" that was left was intentional, so please also double check those before updating.

@coke
Copy link
Collaborator Author

coke commented Aug 14, 2019

my 2¢: Maintaining 2 copies of the site, one with redirects, is harder than adding more redirects to the .htaccess file, especially since, as you say, we're probably going to be static for some time.

I would expect that, when we change the DNS, we have one top level redirect to get people to the new hostname, and then any redirects for page names changed as a result of the rename can be tracked in .htaccess, so that old links still work.

We can add the redirects in this branch as we rename the pod6 files.

@JJ
Copy link
Contributor

JJ commented Aug 14, 2019 via email

@coke
Copy link
Collaborator Author

coke commented Aug 14, 2019

Please feel free to create an issue.

I understand the problem you're trying to fix about people searching for the literal string "strings in perl6". But keeping two sites live doesn't really help this, as it will confuse the users and the search engines, and whenever we shut it down, the bandaid that was in place is not replaced. And if the old site is somehow manually redirecting to the new site, that's more work to maintain. If it's automatically doing it (but at the page level), then we have a whole site that can be replaced with a single host level redirect (see below).

I don't understand the problem you're seeing with .htaccess (which we are already using on the existing live site). The issue I'm discussing is not about URL generation, it's about preserving the old URL paths. You don't need to keep both sets of pages if you have the redirects in place so that hitting the old page brings you to the new page. With a redirect at the top level so that anything at the old hostname goes to the new hostname, and then something to redirect any use of the old path to the new path, you cover any old URLS hitting the newly renamed pages on the new hostname.

So, on the old site, have a redirect that matches anything with the old hostname to the same path at the new hostname (this can be done inside an .htaccess controlled in the site, or via one that is part of the deployment to the original site.); say "https://doc.perl6.org/old-5-to-6-url" - this would then get redirected to "https://doc.raku.org/old-5-to-6-url", which would then get redirected to .../new-5-raku-url" - we'd change any internal references to the correct relative URL, but any old URLS would continue to work.

@JJ
Copy link
Contributor

JJ commented Aug 14, 2019 via email

@AlexDaniel
Copy link
Member

No, we're no longer using it, since we moved it to the interim
infrastructure. And I'm not sure it really worked before that.

It did work, it needs to be fixed. Breaking links is not cool.

@robertlemmen
Copy link
Contributor

regarding seo juice: if we have almost-the-same pages under two different URLs, I believe we need to say in the header (of both) which one is the "canonical" and that the two are equivalent, or get punished for link farming. I guess you know better than I how to do that, if not then I can find out...

@lizmat
Copy link
Collaborator

lizmat commented Aug 14, 2019

It feels to me we're getting ahead of ourselves here. There hasn't been an official decision yet about a rename. And in the end, Larry could still put a stop to it. Which would have consequences, but still.

Could we halt work on this until after the SPW (this weekend)?

@JJ
Copy link
Contributor

JJ commented Aug 14, 2019 via email

@JJ
Copy link
Contributor

JJ commented Aug 14, 2019 via email

@JJ
Copy link
Contributor

JJ commented Aug 14, 2019

@lizmat 👍

@nxadm
Copy link
Contributor

nxadm commented Aug 14, 2019

It feels to me we're getting ahead of ourselves here. There hasn't been an official decision yet about a rename. And in the end, Larry could still put a stop to it. Which would have consequences, but still.

See how much enthusiasm you generated? :)

@JJ JJ mentioned this pull request Oct 4, 2019
6 tasks
@JJ
Copy link
Contributor

JJ commented Oct 15, 2019

I'm closing this now, since it's conflicting, but also we prefer things to be done step by step and as indicated in the issue #3046

@JJ JJ closed this Oct 15, 2019
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.

None yet

7 participants