Skip to content
Small experimental language with a license to macro
Branch: master
Clone or download
masak Add another paper
"Next-Paradigm Programming Languages: What WillThey Look Like and What Changes Will They Bring?"
Latest commit 4757014 May 2, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Make CLI arguments work from bin/007 Feb 7, 2019
bytecode add POP_JUMP_IF_FALSE Jun 6, 2018
docs Re-word documentation on `div` Apr 22, 2019
documentation Add another paper May 2, 2019
examples Remove unnecessary case in power.007 Apr 30, 2019
fuzzing Add the fuzzing tool to source control Apr 5, 2019
lib Implement infix:<div> operator Apr 21, 2019
self-host Remove comment Feb 11, 2019
t Add another line of output in power.007 Apr 30, 2019
.gitignore add *.rev-deps to .gitignore Dec 21, 2015
.travis.yml Revert "Change .travis.yml to "the long way"" Apr 23, 2019
LICENSE Add LICENSE file Apr 24, 2017
META6.json
README.md Explain the ROADMAP in the README Nov 7, 2018
ROADMAP.md [ROADMAP] Shuffle short-term items around Dec 9, 2018
feature-flags.json Add a feature-flags.json file Nov 8, 2018
operators.md Update operators.md Jul 26, 2018

README.md

007 Build Status

007 is a small language created as a testbed for Perl 6 macros. Its goal as a language is to inform the implementation of macros in Perl 6, by means of being a faster-moving code base and easier to iterate on towards good solutions.

Rakudo already contains a rudimentary implementation of macros, but at this point the most mature macro implementation for Perl 6 is embodied in 007.

The name "007" was chosen because the data type representing program fragments is called Q.

Get it

You need to have Rakudo Perl 6 installed and in your path.

Then, clone the 007 repository. (This step requires Git. There's also a zip file.)

$ git clone https://github.com/masak/007.git
[...]

Run it

Set the PERL6LIB environment variable:

$ cd 007
$ export PERL6LIB=$(pwd)/lib

Now this should work:

$ bin/007 -e='say("OH HAI")'
OH HAI

$ bin/007 examples/format.007
abracadabra
foo{1}bar

Status

007 is currently in development.

The explicit goal is to reach some level of feature completeness for macros in 007, and then to backport that solution to Rakudo.

Useful links

To learn more about macros:

To learn more about 007:

You can’t perform that action at this time.