Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Announcing amber for parrot 0.2.1

3 views
Skip to first unread message

Roger Browne

unread,
Jun 5, 2005, 4:18:28 PM6/5/05
to perl6-i...@perl.org
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.
http://smarteiffel.loria.fr/
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 http://xamber.org/ - 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
directly.

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

-- Prints the song "99 Bottles of Beer"
-- See http://99-bottles-of-beer.net/

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.")
else
print("Take one down and pass it around, ")
print_line(bottles(n - 1) & " on the wall.\n")
end
end)

private
bottles(n)
do
if n = 0 then
result := "No more bottles of beer"
elseif n = 1 then
result := "1 bottle of beer"
else
result := n & " bottles of beer"
end
end
end

Regards,
--
Roger Browne <ro...@eiffel.demon.co.uk>

Leopold Toetsch

unread,
Jun 6, 2005, 4:17:14 AM6/6/05
to Roger Browne, perl6-i...@perl.org
Roger Browne <ro...@eiffel.demon.co.uk> wrote:
> I have made available version 0.2.1 of the "amber for
> parrot" scripting language.

Could you please submit a patch against languages/LANGUAGES.STATUS - a
short summary and where folks can find it.

Thanks,
leo

0 new messages