develooper Front page | perl.perl6.internals | Postings from June 2005

Announcing amber for parrot 0.2.1

Thread Next
Roger Browne
June 5, 2005 13:18
Announcing amber for parrot 0.2.1
Message ID:
I have made available version 0.2.1 of the "amber for
parrot" scripting language. This is a language being designed
specifically for parrot. The syntax and semantics of amber are largely
inspired by Eiffel although there's a good deal of ruby in there too
(especially the anonymous agents which work like ruby blocks).

This is nothing more than a "proof-of-concept" release, a "piece of hack
pie" to confirm that one can implement some of the ideas of Eiffel in a
scripting language that targets the parrot virtual machine. Many things
don't work, and those that do are poorly documented. Nevertheless, the
example programs and the hand-crafted test cases do all work.

The current release is for Linux, and was built with SmartEiffel 2.1.
You will need to install version 0.2.1 of the parrot virtual machine.

For those who don't want to install an Eiffel compiler, it should be
possible to build amber from the C-code generated by SmartEiffel. I'll
make another announcement when I have prepared a C-based distribution.

I've set up a website at - just click on the
"Download" link. You can also browse the development sources online, and
if you have the darcs version control client you can keep a synchronised
copy on your own machine.

Thanks to anyone who takes the time to try this. Let me know if you have
any problems - either by posting to this group or by emailing me

To whet your appetite, here's a sample amber script:

   -- Prints the song "99 Bottles of Beer"
   -- See
   99.down_to(1, agent(n) do
      print_line(bottles(n) & " on the wall, " & bottles(n) & ".")
      if n = 0 then
         print_line("Go to the store and buy some more ... 99 bottles of beer.")
         print("Take one down and pass it around, ")
         print_line(bottles(n - 1) & " on the wall.\n")

            if n = 0 then
               result := "No more bottles of beer"
            elseif n = 1 then
               result := "1 bottle of beer"
               result := n & " bottles of beer"
Roger Browne <>

Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About