Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

[doc/announce/2011.02] added

  • Loading branch information...
commit c7970c0a096f72bc03d0b79699745db59f818102 1 parent 0c57255
Carl Mäsak authored February 05, 2011

Showing 1 changed file with 113 additions and 0 deletions. Show diff stats Hide diff stats

  1. 113  doc/announce/2011.02
113  doc/announce/2011.02
... ...
@@ -0,0 +1,113 @@
  1
+It is with extreme...
  2
+
  3
+...hm...
  4
+
  5
+I would like to digress a bit and tell a story. A week ago, I put on my
  6
+running shoes for the first time in my new hometown. I had already seen
  7
+out a suitable route on Google Maps, committing the more important street
  8
+names to memory. It was a cloud-free day, and the sun stood as high in
  9
+the sky as it ever will in January in Sweden. Out I went.
  10
+
  11
+Before half an hour had passed, I was completely lost. I didn't see any
  12
+of the streets I had memorized, nor did I run into any of the big roads
  13
+I knew I would run into if I ran too far.
  14
+
  15
+Gradually, I found myself out on the countryside. That wasn't part of
  16
+the plan at all. Fields stretched out in all directions. Airplanes
  17
+criscrossed the sky, their exhaust trails leaving nice patterns behind,
  18
+reminiscent of some CS books about graph theory.
  19
+
  20
+I started down the country road in the direction back to town, only to
  21
+have the road slowly curve back in the other direction. It was like one
  22
+of those text adventure games where you exit one location to the north
  23
+but end up entering the next location from the northwest! Not conducive
  24
+to getting somewhere at all.
  25
+
  26
+The the sun went down. At this point, I had been running for over an
  27
+hour, and was wondering whether I would sleep in a bed that night. I
  28
+was getting cold and a little bit miserable. The battery of my mp3
  29
+player died.
  30
+
  31
+Things got gradually better, though. I found a bigger road, and a sign
  32
+pointed back to my city, saying it was only five kilometers away. My
  33
+speed had dropped a bit due to hopelessness, but now it picked up again.
  34
+I passed a suburb, a mall, a school, a number of unfamiliar blocks, some
  35
+familiar blocks, and then I was home again. Exhausted. But grateful.
  36
+
  37
+The take-home message is, I hope, crystal clear. A refactor, just like
  38
+a run, is a process whereby you hope to end up in the same place as you
  39
+started. Oh, and sunsets can be very pretty.
  40
+
  41
+Anyway.
  42
+
  43
+It is with an exhausted but satisfied feeling that I announce on behalf
  44
+of the Yapsi development team the February 2011 release of Yapsi, a Perl
  45
+6 compiler written in Perl 6.
  46
+
  47
+You can download it here:
  48
+
  49
+ <http://github.com/downloads/masak/yapsi/yapsi-2011.02.tar.gz>
  50
+
  51
+Yapsi is implemented in Perl 6. It thus requires a Perl 6 implementation to
  52
+build and run. This release of Yapsi has been confirmed to work on all
  53
+releases of Rakudo Star to date. The test files only work flawlessly on Rakudo
  54
+Star 2011.01, though, due to s/done_testing/done/.
  55
+
  56
+Yapsi is an "official and complete" implementation of Perl 6. This has been
  57
+confirmed, documented, jokingly referred to, and lamented in a number of
  58
+places online and offline.
  59
+
  60
+This month's release is a bit late, for which I'm either terribly sorry,
  61
+or hereby announce that from as of this release, Yapsi will release on the
  62
+first Saturday of every month. Haven't decided yet.
  63
+
  64
+This month's release could be called a "developer release", but let's not
  65
+go that far. Suffice it to say that Yapsi behaves the same as last month,
  66
+but the internals are now much more hackable than last month, so if you've
  67
+secretly been thinking of becoming a contributor, now's an excellent time
  68
+to pick some low-hanging fruit. For example, the daughter project
  69
+'sigmund', mentioned at the bottom of every Yapsi release announcement,
  70
+is now feasible; it wasn't really before.
  71
+
  72
+Also, Yapsi has the cutest AST output of all the Perl 6 implementations:
  73
+
  74
+$ bin/yapsi --target=FUTURE -e 'my $a; { $a = 42 }; say $a'
  75
+Block -- B0 [$a]
  76
+  Var -- $a
  77
+  Block -- B2
  78
+    Assign
  79
+      Var -- $a
  80
+      Val -- 42
  81
+  Call -- &say
  82
+    Var -- $a
  83
+
  84
+It's so cute, it almost looks like Ruby!
  85
+
  86
+For a complete list of changes, see doc/ChangeLog.
  87
+
  88
+Yapsi consists of a compiler and a runtime. The compiler processes a piece
  89
+of source code, turns it into an annotated tree structure known as FUTURE,
  90
+and then serializes this tree into a sort of assembler code for a virtual
  91
+machine. (The virtual machine, being virtual, doesn't really exist. Which,
  92
+all things considered, is probably a good thing.) The SIC is then...
  93
+consumed... by the runtime which does its thing and executes it.
  94
+
  95
+With each new release of Yapsi, the old SIC format is thrown out the door,
  96
+and a new one, sometimes very similar, sometimes identical to the old one,
  97
+is employed instead. This process is codified for the purpose of keeping
  98
+people on edge. FUTURE, however, abides by a sofisticated deprecation
  99
+policy, which in short declares that the format never changes, except in
  100
+very rare cases when it does.
  101
+
  102
+An overarching goal for making a Perl 6 compiler-and-runtime is to use it as
  103
+a server for various other projects, which hook in at different steps:
  104
+
  105
+* A time-traveling debugger (tardis), which hooks into the runtime.
  106
+  Already underway, see <http://github.com/masak/tardis>
  107
+* A coverage tool (lid), which will also hook into the runtime.
  108
+* A syntax checker (sigmund), which will use output from the parser.
  109
+
  110
+Another overarching goal is to optimize for fun while learning about parsers,
  111
+compilers, and runtimes.
  112
+
  113
+Have the appropriate amount of fun! \o/

0 notes on commit c7970c0

Please sign in to comment.
Something went wrong with that request. Please try again.