I'm revising how I name files that are included in my modules. With the name change to Raku, the file extensions also changed for script and module files.

In addition Jonathan has defined some format extensions for Cro files, and I am sure there would be other developers who would like to claim unique extension names for files.

This is not a post intended to start a war about file extensions, that is whether they should exist in a modern file system. For whatever reason they came into being, a significant number of users, such as myself, find them useful, if only as a mnemonic for their files' probable contents.

It seems to me a short page in the docs.raku.org would be useful with the various file extensions, and so if a developer wanted for a custom file extension to be primarily applied to some new module, the way to do would be to create a PR on the documentation file.

If this post gets some positive responses, then I'll write the POD6 file for inclusion in docs.raku.org and create a PR for inclusion.

[Another naming question would be the name of the markup language - as distinct from the file extension - for documentation. For Perl it is POD, for Perl6 it was natural to use POD6. POD stands for Plain Old Documentation, but I think that POD6 is neither Plain, nor Old. How about RDM for Raku documentation markup? ]

There is a wrinkle in that Raku best practice has evolved in line with the evolution of perl6 into Raku. So it seems reasonable to have previous file formats listed as well.

The following are what I think are the current best practices. Since I have been out of circulation for a while, the list is likely not exhaustive and may be wrong. I am certain there are other file types I have not included.

For each file type, extensions on the left are earlier, and the extension of the far right (after the TAB) is considered best practice

Perl6 / Raku script: .pl, .pl6, <TAB> .raku

Perl6 / Raku Module: .pm, .pm6, <TAB> .rakumod

Perl6 / Raku Standalone Documentation (POD6 can be included in a script or module file): .pm, .pm6, .pod, .pod6, <TAB> .rakudoc

NQP file: <TAB> .nqp

Cro template: <TAB> .crotmp






Reply via email to