CINXE.COM
Raku Language Design
<!DOCTYPE html> <!-- Hacking: see NOTES and TODO in this directory --> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Raku Language Design</title> <link href="/favicon.ico" rel="shortcut icon" type="image/x-icon"> <link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="/bootstrap/css/bootstrap-theme.min.css" rel="stylesheet"> <link href="/style.css?v=1" rel="stylesheet"> </head> <body> <div class="bg"> <div class="container"> <nav class="navbar navbar-fixed-top navbar-inverse"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div id="navbar" class="collapse navbar-collapse"> <ul class="nav navbar-nav"> <li id="nav-home" ><a href="/">Home</a></li> <li id="nav-downloads" ><a href="/downloads">Download</a></li> <li id="nav-community" ><a href="/community/">Community</a></li> <li id="nav-docs" ><a href="https://docs.raku.org">Documentation</a></li> <li id="nav-res" ><a href="/resources/">Resources</a></li> <li id="nav-modules" ><a href="https://modules.raku.org/">Modules</a></li> <li id="nav-whatever" ><a href="/whatever/">IDEs</a></li> <li id="nav-fun" ><a href="/fun/">Fun</a></li> <li id="nav-faq" ><a href="https://docs.raku.org/language/faq">FAQ</a></li> </ul> </div> </div> </nav> <header id="subpage-header" class="lead well"> <img src="/camelia-logo-small.png" width="140" height="130" alt="Camelia, the Raku bug" class="pull-right"> <h2><b>Raku</b> Language Design</h2> <p> The Raku language design is developed by a core team around Larry Wall, the creator of Perl. </p> <p> Many parts of the language are rather mature, for example the object system and large parts of the syntax. Other parts, like macros, are still in flux, and wait for an implementation to try them out. </p> </header> <div class="row"> <div class="col-sm-3"> <ul class="list-group"> <li class="list-group-item"><a href="https://github.com/perl6/roast/tree/6.c-errata">Official test suite for the 6.c language specification</a></li> <li class="list-group-item"><a href="https://github.com/perl6/roast/tree/6.d-errata">Official test suite for the 6.d language specification</a></li> <li class="list-group-item"><a href="https://github.com/perl6/roast/tree/master">Work in progress for the 6.e language specification</a></li> <li class="list-group-item"><a href="https://design.raku.org/">Synopses</a> - historic Raku design documents</li> <li class="list-group-item"><a href="http://github.com/perl6/mu/raw/master/misc/camelia.txt">Camelia</a> - the Raku mascot (<a href="http://github.com/perl6/mu/raw/master/misc/camelia.pdf">PDF</a>)</li> </ul> </div> <div class="col-sm-9"> <div class="panel panel-default"> <div class="panel-body"> <h3 class="trim-top">Notes (excerpt from <a href="https://design.raku.org/S01.html">Synopsis 1</a>)</h3> <p> The spec will not be frozen prematurely, but will continue to solidify as various aspects of it are proven (or disproven) in various implementations. Many parts of the spec are already effectively frozen, or are in a slushy state. "The future is already here, it's just unevenly distributed." </p><p> All specced features that have not been proven in an implementation should be considered somewhat conjectural, even if not so marked. As implementations start to agree on what is practical and what is not, do not be surprised if some features that are currently specced may be deferred to future versions; these should still be considered long-term direction in the evolution of Raku over time, and the short-term design should be conservative in preserving that long-term evolution. Note that we are not in a hurry to defer any sections of the spec, even if that would give the illusion of progress. Convergence of specs and implementations will happen naturally as we get implementations that are closer to the spec. It is quite likely that the first practical implementation will largely determine which features are considered to be required in [version 6.c]. </p> </div> </div> </div> </div> </div> </div> <footer> <div class="container"> <div class="row"> <section class="col-sm-6 col-md-5ths"> <h4><a href="/community/">Community</a></h4> <ul class="shush-list"> <li><a href="/community/irc">#raku IRC channel</a>: <a href="irc://irc.libera.chat/#raku">system IRC client</a> or <a href="https://kiwiirc.com/client/irc.libera.chat/#raku">chat live in your browser</a></li> <li><a href="/community/rosettacode">Raku on Rosetta Code</a>, <a href="https://planet.raku.org/">Blogs</a></li> </ul> <a href="/community/" class="btn btn-success">More</a> </section> <section class="col-sm-6 col-md-5ths"> <h4><a href="/resources/">Resources</a></h4> <ul class="shush-list"> <li><a href="/getting-started/">Getting started</a></li> <li><a href="https://docs.raku.org/">Raku Documentation</a></li> <li><a href="https://docs.raku.org/language#Migration_guides">Other languages to Raku</a>, an introduction for programmers</li> </ul> <a href="/resources/" class="btn btn-success">More</a> </section> <section class="col-sm-6 col-md-5ths"> <h4><a href="https://modules.raku.org/">Modules</a></h4> <ul class="shush-list"> <li><a href="https://modules.raku.org/">Raku modules directory</a></li> <li><a href="https://raku.land/github:ugexe/zef">zef</a>: Raku module manager</li> </ul> <a href="https://modules.raku.org/" class="btn btn-success">More</a> </section> <section class="col-sm-6 col-md-5ths"> <h4><a href="/compilers/">Compilers</a></h4> <ul class="shush-list"> <li><a href="https://rakudo.org/">Rakudo</a>, a compiler running on <a href="https://moarvm.org/">MoarVM</a>, the JVM and other backends.</li> </ul> <a href="/compilers/" class="btn btn-success">More</a> </section> <section class="col-sm-6 col-md-5ths"> <h4><a href="/specification/">Language Design</a></h4> <ul class="shush-list"> <li><a href="https://github.com/Raku/roast">Specification</a> - Official Raku language specification test suite</li> <li><a href="https://design.raku.org/">Speculations</a> - historical language design documents</li> </ul> <a href="/specification/" class="btn btn-success">More</a> </section> <p class="col-sm-12 text-center" ><i class="glyphicon glyphicon-info-sign"></i> If you want to contribute to this page, <a href="/about/">look here for instructions</a>.<br/> The Raku庐 Programming Language </p> </div> </div> </footer> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script src="/bootstrap/js/bootstrap.min.js"></script> <script src="/js.js"></script> </body> </html>