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

Path to raku #89

Merged
merged 83 commits into from
Oct 14, 2019
Merged
Changes from 22 commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
07c423e
Initial version of the name change PR
lizmat Aug 13, 2019
6b444bd
Remove mention of "Velvet Divorce"
lizmat Aug 14, 2019
0b5402e
The P and 6 in Camelia are not an issue, but a tribute
lizmat Aug 14, 2019
d71dc5c
s/.code/.raku/
lizmat Aug 14, 2019
bf7ab78
Mention what to do with IRC channels
lizmat Aug 14, 2019
e5c5d42
Mention channel forwarding
lizmat Aug 14, 2019
7d0aab8
"rakudo" should be the main executable
lizmat Aug 14, 2019
a79dde0
.pod6 to become .rd
lizmat Aug 14, 2019
1ee0908
Special attention to non-latin script countries
lizmat Aug 14, 2019
66daa4f
Open the door for .code
lizmat Aug 14, 2019
8d86f07
Mention versioning
lizmat Aug 14, 2019
3c0fee6
Compilers are free to handle optional nameds in 'unit'
lizmat Aug 14, 2019
7188f39
Handwave about support for other languages as a compunit
lizmat Aug 14, 2019
1c2ece9
Mention effects on event naming
lizmat Aug 14, 2019
e4461ed
Simplify versioning
AlexDaniel Aug 14, 2019
985934b
Move file to solutions/language
lizmat Aug 14, 2019
e35a5ac
Add mention about NQP (Not Quite Peanuts)
lizmat Aug 14, 2019
48793de
Add Not Quite Pottery as a backronym for NQP
lizmat Aug 14, 2019
084ca0a
Add section about books
lizmat Aug 15, 2019
31a0038
Refince external references section
lizmat Aug 16, 2019
92fd411
Open the door to a joint rename / next version event
lizmat Aug 16, 2019
cfd072d
Mention a "Raku Foundation" as part of YAS
lizmat Aug 16, 2019
c5cb2c9
Add mention of $*PERL and Perl class
lizmat Aug 18, 2019
04108b1
Remove suggestion of .code, go for .raku.
lizmat Aug 19, 2019
9301d09
Remove suggestion for new backcronym for NQP
lizmat Aug 19, 2019
b9c597b
Add mention of pragmas and other places needing adaptation.
lizmat Aug 20, 2019
87d4343
Separate next release from language release
lizmat Aug 20, 2019
535d778
Specify when "Perl 6" should be referenced
lizmat Aug 20, 2019
dd6054c
NQP stays Not Quit Perl
lizmat Aug 20, 2019
d14804e
Elaborate a bit about changing external references
lizmat Aug 20, 2019
ce377bd
Remove mention of marketing repo
lizmat Aug 20, 2019
2f5794b
Elaborated on special attention
lizmat Aug 20, 2019
1b89762
Elaborate on repo name changes and documentation changes
lizmat Aug 20, 2019
2b237b5
Elaborate on effects on running sub-projects
lizmat Aug 20, 2019
f3d057a
Elaborate a bit on community healing
lizmat Aug 20, 2019
6b00410
Add social media section
lizmat Aug 20, 2019
3118a7e
Add historical matters
lizmat Aug 20, 2019
531b628
Add initial version of SWOT analysis
lizmat Aug 21, 2019
15a8451
Simplify the Executables section
lizmat Aug 21, 2019
a1e9c80
Mention need for a META6.json file
lizmat Aug 21, 2019
25916df
More SWOTs
lizmat Aug 21, 2019
59d8608
Mention less confusion about name
lizmat Aug 21, 2019
2e477d6
Mention social media tagging
lizmat Aug 21, 2019
2c7aeaf
Add marketing opportunity
lizmat Aug 21, 2019
a264ae4
Add some more threats
lizmat Aug 21, 2019
62c083d
Add a strength and an opportunity
lizmat Aug 22, 2019
bcf6c87
Revert "Add a strength and an opportunity"
lizmat Aug 22, 2019
235ae7d
Mention potential drain from events
lizmat Aug 22, 2019
6af3f53
Remove Wikipedia / Rosettacode reference
lizmat Aug 24, 2019
115a260
Elaborate on IRC logging
lizmat Sep 3, 2019
dcd66a7
Suggest solution to .perl methods in non-core modules
lizmat Sep 3, 2019
0dc6534
Elaborate on $*RAKU and Raku class
lizmat Sep 3, 2019
6b2ddf8
Do **NOT** change "Perl5" where it's used
lizmat Sep 3, 2019
50f7697
Defer versioning discussion
lizmat Sep 3, 2019
998232a
Elaborate on tagging
lizmat Sep 3, 2019
50c14e2
Mention installers
lizmat Sep 3, 2019
24fddab
Introduce concept of a migration guide
lizmat Sep 3, 2019
5789db0
Migration guide for book authors
lizmat Sep 3, 2019
01efd7e
Follow suggestion on phrasing
lizmat Sep 3, 2019
813165e
More phrasing suggestions followed
lizmat Sep 3, 2019
3021673
Also mention "p6" in repo names
lizmat Sep 4, 2019
52b02f8
Tweak proposed language changes
jnthn Sep 10, 2019
b96dff1
Grammar tweak
jnthn Sep 10, 2019
749a9a2
Improve description of Windows file associations
jnthn Sep 10, 2019
7faff8b
Mention two env vars that include PERL6
jnthn Sep 10, 2019
9310222
Add a draft module author guide to the changes
jnthn Sep 10, 2019
9285582
Grammar tweak
jnthn Sep 10, 2019
90b8d0c
Rephrase the Social Media paragraph
lizmat Sep 13, 2019
43a1c6d
Move the extensions discussion to a separate issue / PR
lizmat Sep 13, 2019
6e7e625
Use the #rakulang hash tag, please
lizmat Sep 13, 2019
e0185a4
Settle on .raku / .rakumod / .rakudoc / .rakutest
lizmat Sep 21, 2019
9bcb834
Added "no longer linked to *good* reputation of Perl as weakness
lizmat Sep 21, 2019
69786a2
Fix typo
lizmat Sep 21, 2019
0de1d74
Clarify the situation with .t extension
vrurg Sep 26, 2019
dd8dcd5
Merge pull request #109 from vrurg/path-to-raku
lizmat Sep 26, 2019
dc7f451
Remove accidental markdown
AlexDaniel Sep 27, 2019
2d57afe
Replace the mention of “DarkPan”
AlexDaniel Sep 27, 2019
51890eb
Minor fixes
AlexDaniel Sep 27, 2019
4cad6d4
Expand a bit on .t support
AlexDaniel Sep 28, 2019
71e9405
Add some examples of filenames
AlexDaniel Sep 28, 2019
7257d5e
Mention that the chosen extensions are final
AlexDaniel Sep 28, 2019
e09f6c2
Add some basic reason why not use shorter extensions
AlexDaniel Sep 28, 2019
2d7b3f5
Be less specific about module loading
AlexDaniel Sep 28, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
228 changes: 228 additions & 0 deletions solutions/language/PATH-TO-RAKU.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,228 @@
# The Path to Raku

This document describes the steps to be taken to effectuate a rename of
lizmat marked this conversation as resolved.
Show resolved Hide resolved
`Perl 6` to `Raku`, as described in issue #81. It does not pretend to be
complete in scope or in time. To change a name of a project that has been
running for 19+ years will take time, a lot of effort and a lot of
cooperation. It will affect people in foreseen and unforeseen ways.

## Language changes

### .perl
lizmat marked this conversation as resolved.
Show resolved Hide resolved

The `.perl` method should be deprecated in 6.e, and removed in 6.f/g. It
should be replaced by a `.raku` method. This could be implemented by a
global search/replace of `.perl` to `.raku` (both in method names and in
calls) in `src/core`, `src/Perl6` and `lib`. A new `Mu.perl` method should
issue a DEPRECATED message, and then call `Mu.raku`.
lizmat marked this conversation as resolved.
Show resolved Hide resolved

Renaming to `.code` currently clashes with `CallFrame.code`, and visually
clashes with the `.codes` method. Renaming `CallFrame.code` to
`CallFrame.codeobj` and `.codes` to `.codepoints` appears to be an option
to be discussed further.

lizmat marked this conversation as resolved.
Show resolved Hide resolved
### Versioning

Because the next language release (6.e) may not coincide with
the rename, no changes to versioning of the language need to be done.
However, since a new language version would be an excellent marketing
lizmat marked this conversation as resolved.
Show resolved Hide resolved
opportunity, maybe the rename should coincide with a new language version
relese.

Given we are no longer forced to have "6" in the version, there are now
more options to do language versioning properly, and this aspect will
need to be discussed separately.
lizmat marked this conversation as resolved.
Show resolved Hide resolved

### NQP

The acronym for NQP is Not Quite Perl. It feels that this could stay, or maybe
lizmat marked this conversation as resolved.
Show resolved Hide resolved
officially document that NQP doesn't stand for anything anymore, or find a
backcronym for it, such as "Not Quite Peanuts" or "Not Quite Pottery".
lizmat marked this conversation as resolved.
Show resolved Hide resolved

## Documentation changes

Wherever `Perl 6` is mentioned in the documentation, this should be changed
lizmat marked this conversation as resolved.
Show resolved Hide resolved
to `Raku`. A mention of `Perl 6` in the glossary should remain, and maybe
in the documentation of the `.perl` (to be renamed to `.raku`) method.

## Website changes

Websites that have `perl6` in their name, should redirect to their
equivalent with a 301 (Moved Permanently). Some way should be devised that
if someone is redirected, that a small explanation of the name change is
offered and that the visitor is indeed at the place they were planning to
be.

## IRC Channels

The IRC channels used by Perl 6 users on freenode (#perl6\*) will need to
be renamed or closed / opened with the new name (#raku\*). New joins should
be forwarded to the new channels.

Colabti.org will need to be asked to log these channels, so that we can have
lizmat marked this conversation as resolved.
Show resolved Hide resolved
backlog again. Further down the road, it would probably be a wise idea to
make IRC channel logging one of the infrastructure tasks.

## External references

Many places on the Internet refer to `Perl 6`, e.g. Wikipedia and Rosetta
Copy link
Member

Choose a reason for hiding this comment

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

Either don't mention Wikipedia or talk about it differently. Currently the text reads as if we encourage people to rename things on wikipedia, which we definitely shouldn't do. In fact, the wikipedia page for Raku will probably be called Perl 6 for a significant amount of time after the rename, until Raku becomes more common.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Addressed with d14804e I think.

Copy link
Member

Choose a reason for hiding this comment

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

No, please absolutely delete the mention of Wikipedia. Wikipedia is its own thing with its own rules. Of course it's great to encourage contributions to it, but implying that users should go there and tweak mentions of Perl 6/Raku can be seen as malice.

code. These references will need to be changed to `Raku`, with a small
explanation of the name change.

Many sites, such as Reddit and StackOverflow, use implicit / explicit `perl6`
tags. These will need to be changed or have a `raku` tag added, possibly
with cooperation of the administrators.
lizmat marked this conversation as resolved.
Show resolved Hide resolved

Sites such as PerlMonks appear to be really `Perl` (aka `Perl 5`) focused,
and could possible make that clear in their description, or change their
description to specifically include `Raku`. It would look like the
`/r/perl` Reddit description can be changed to indicate that only `Perl 5`
questions are on topic there.

## Technical changes

All technical changes should make sure that all existing scripts continue
to work without change in the foreseeable future (with optional DEPRECATED
messages where appropriate).

### Executables

As some packagers have already done, the executable should be called `raku`.
With symlinks / hard links added as appropriate to keep the old executable
names working. If at all technically possible, running a script using the
`perl6` as the executor, should provide a DEPRECATED warning at some point.

Since `rakudo` is the name of the implementation, the main executable that
is created in the build process should have that name. `raku` and `perl6`
should be symlinks.

### Extensions

The extension `.rk` for scripts, `.rkm` for modules, and `.rd` for
Copy link
Contributor

Choose a reason for hiding this comment

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

In the light of extension discussion, can we add one last thing here: .rkt for test files. This would resolve conflicts with perl5 support in IDEs like Atom and intelliJ.

Copy link
Member

Choose a reason for hiding this comment

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

See #101 (comment).

My understanding is that we should keep using .t, and encourage people to put the right shebang (one that has raku in it).

Copy link
Contributor

Choose a reason for hiding this comment

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

Shebang won't help those poor things which solely rely on file extensions. For example, I'm currently bound to Atom. Kind of. Because when I need to edit Perl5 code I use Vim because Atom can only work with either perl5 or perl6 module but no both at the same time. The reason? Both claim for .t extension.

Copy link
Member

Choose a reason for hiding this comment

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

@vrurg seems like something specific to atom that is fixable, see https://discuss.atom.io/t/can-atom-interpret-my-bin-bash-shebang/47234.

Copy link
Contributor

Choose a reason for hiding this comment

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

@AlexDaniel the point is that only one of perl5 or perl6 package can be active at any given moment, not both of them. So, there is no use for detecting shebang if there is no language to bind to.

Besides, intelliJ doesn't allow file type switching whatsoever. So, you either see .t as perl5 or perl6. Always. Because we said so!

Copy link

Choose a reason for hiding this comment

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

I agree with some others that the filenames should not be part of this pull request, and are better left to another place, where we can have a nice listing of possibilities and decide which out of those we think work best. Or this could be changed to just be suggestions for filenames.

lizmat marked this conversation as resolved.
Show resolved Hide resolved
documentation (POD6) will become the defacto standards for files containing
`Raku` code or documentation. The old `.pm`, `.pm6` and `.pod6` extensions
will continue to be supported for 6.e. In 6.f, the `.pm`, `.pm6` and `.pod6`
extensions should be marked as DEPRECATED, causing a message to be generated
JJ marked this conversation as resolved.
Show resolved Hide resolved
when the module is loaded.

On Windows some more trickery may be involved to mark a script with the
`.rk` extension as executable.
lizmat marked this conversation as resolved.
Show resolved Hide resolved

### Testing

Roast continues to be the specification of the language. Only the name
of the language it specifies, changes. Internal references to `Perl 6`
will need to be changed.

## Mascot

Camelia will remain the mascot. So the only thing that should change there
is that it is the mascot of `Raku` rather than `Perl 6`. The fact that the
wings contain a "P" and a "6" is obscure enough to not be an issue, and could
be seen as a lasting tribute (easter egg) to the origin of "Raku".

## Marketing changes

Renaming `Perl 6` to `Raku` is an event that should be used to get maximum
marketing result. This will need a new marketing repo, with `Raku` marketing
lizmat marked this conversation as resolved.
Show resolved Hide resolved
materials. Announcement should be coordinated, e.g. by a blog post on
lizmat marked this conversation as resolved.
Show resolved Hide resolved
`opensource.com` or similar outlets, followed up by links on the various
social media outlets, such as Twitter, Facebook, Hacker News, Reddit, etc.

Specific attention should be given for the announcement of Raku in non-latin
lizmat marked this conversation as resolved.
Show resolved Hide resolved
script countries, such as India, Japan, China, Taiwan. Raku with its more
than excellent Unicode support, should be able to make a big splash for
developers in those regions.

## Ecosystem changes

From the standpoint of users, there should not be any change: `zef` should
continue to do what it does. The information about what is in the ecosystem,
is not related to the "perl 6" name at the moment, so does not need any
change either.

On PAUSE, Perl 6 distributions are automatically uploaded to a "Perl6"
subdirectory, but this is completely transparent to both the author as well
as anything else that needs to look at that. So for the foreseeable future,
no changes will be needed there.

Should PAUSE decide to no longer support `Raku` modules in its system, then
alternatives will need to be found and/or implemented.

## Effects on modules in ecosystem

Many modules either mention "perl6-" in their repo name, or mention "Perl 6"
in their documentation. These will have to be scanned and Pull Requests
lizmat marked this conversation as resolved.
Show resolved Hide resolved
will need to be made for them.

## Effects on running sub-projects

Projects, such as Comma and Cro do not need any notifications, but other
lizmat marked this conversation as resolved.
Show resolved Hide resolved
sub-projects may need to get advance notice.
lizmat marked this conversation as resolved.
Show resolved Hide resolved

## Effects on books

Currently printed copies of books will probably need a sticker like "Covers
the new exciting Raku programming language).

Perl 6 books that have been open sourced, can be adapted by the community or
the original author. Since ebook sales currently outperform printed books
by an order of magnitude, preparing another version of an ebook should be
a relatively small effort, which can actually be distributed among many
individuals using modern source control techniques..
lizmat marked this conversation as resolved.
Show resolved Hide resolved

## Effects on the Perl community

There is a (small) part of the Perl community that welcomes Perl 6 leaving
that community. But in general, it appears that Perl community members would
like to have channels open between members that only do `Perl 5`, and members
that only do `Raku`.
Copy link
Member

Choose a reason for hiding this comment

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

So what's the plan? Perhaps add a sentence like “We will be striving to keep the community together”, or whatever.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Hopefully addressed in f3d057a .

Copy link
Member

Choose a reason for hiding this comment

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

Well, I don't think the message is strong enough. I'd prefer to see a clear message explicitly defining our vision. “is also intended to have a healing” sounds a bit too weak to my liking, but see yourself, I won't be insisting on changing this.

Copy link
Contributor

Choose a reason for hiding this comment

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

There is a (small) part of the Perl community that welcomes Perl 6 leaving that community

Well, some may see it like that, but at least speaking for myself, I don't want to think of it as "leaving" at all. I think I'd phrase it as "welcome the rename, as they don't want anything to do with the language and are glad to disassociate it from the Perl name".

Copy link
Contributor

Choose a reason for hiding this comment

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

But in general, it appears that Perl community members would
like to have channels open between members that only do Perl 5, and members
that only do Raku.

I think I'd phrase this more like "There are community members with an active interest in both Perl 5 and Raku, and some of those who only do one or the other still feel there is much to be learned from, and shared with, each other, especially given the many shared design values of the languages."


## Effects on user groups

Each Perl user group (Perl Monger group) will have to decide for themselves
what they want to do with this new situation. More active groups in the
past years, have started using the services of online meeting organizers
such as MeetUp. To indicate the changed situation, it may be a good idea
to change the names of such groups, e.g. from "Foo Perl Mongers Meeting" to
"Foo Perl Family Meetup" or "Foo Perl Community Meetup". Should a user
group decide to only focus on `Perl 5` or `Raku` only, then they are of
course open to not change their name, or to change it to something like
"Foo Raku Meetup". This could coincide with the official announcement,
and maybe special events to celebrate the name change.

## Effects on events

Event organizers as always, are completely free in the naming of their events.
If an event would like to cater for both `Perl` and `Raku` attendees, then
this should be reflected in the name of the event. An event with just `Raku`
in its name, would appear to cater only for attendees interested in `Raku`.
An event with just `Perl` in its name, would appear to cater for attendees
interested in `Perl 5` only. Suggestions for naming events are (where "Foo"
is a place / country name):

The Foo Perl Community Workshop
The Foo Perl Family Workshop
The Foo Perl and Friends Workshop
The Foo Perl and Raku Conference
The Foo Raku and Friends Workshop

etc. etc.

## Relationship with The Perl Foundation

No changes should be necessary with regards to the relationship with The
Perl Foundation. But this is mostly up to The Perl Foundation. A suggestion
would be to make the website of The Perl Foundation more general: a Perl
Family. With equal attention for Perl, Raku, RPerl and CPerl, and emphasis
on continued development on all projects.

Should The Perl Foundation decide to not want to have anything to do with
`Raku`, only then should an alternate organisational support be discussed.

However, since "Yet Another Society" is doing business as "The Perl
Foundation", maybe it is an idea to create another "doing business as"
called "The Raku Foundation". Which would make it clear that "The Perl
Foundation" is for Perl 5 only, whereas "The Raku Foundation" would be for
Raku only. While both are part of the Perl Mindset in the "Yet Another
Society".
lizmat marked this conversation as resolved.
Show resolved Hide resolved