Re: Language design

2015-06-12 Thread Bruce Gray

On Jun 12, 2015, at 8:54 AM, Parrot Raiser 1parr...@gmail.com wrote:

 Has somebody been following the discussions on types? http://xkcd.org/1537/ 
 :-)*

Yes; see the 4 minute lightning talk:
https://www.destroyallsoftware.com/talks/wat
:^)

— 
Bruce Gray (Util of PerlMonks)



Parrot 7.4.0 Festive Amazon released!

2015-05-19 Thread Bruce Gray
On behalf of the Parrot team, I'm proud to announce Parrot 7.4.0, also known
as Festive Amazon.  Parrot (http://parrot.org/) is a virtual machine aimed
at running all dynamic languages.

Parrot 7.4.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/devel/7.4.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 7.4.0 News:
- Documentation
+ Many minor corrections
- Community
+ Coverity scans to resume RSN.


The SHA256 message digests for the downloadable tarballs are:
b191da72e668c5bd97e1792a1b5d8fe66713819066f6a2f5eef2e9bc21d92968 
parrot-7.4.0.tar.gz
724868f94bf7d45ba5cda29b041b18fc7cbcd2fe5196455cc3882c2f99a84f4b 
parrot-7.4.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is at 16 Jun 2015.

Enjoy!



Parrot 7.2.0 Blue-crowned racquet-tail released!

2015-03-18 Thread Bruce Gray
   This is the bright candlelit room where the life-timers are
   stored—shelf upon shelf of them, squat hourglasses, one for every
   living person, pouring their fine sand from the future into the past.
   The accumulated hiss of the falling grains makes the room roar like
   the sea.

   This is the owner of the room, stalking through it with a preoccupied air.
   His name is Death.

   But not any Death. This is the Death whose particular sphere of
   operations is, well, not a sphere at all, but the Discworld, which is
   flat and rides on the back of four giant elephants who stand on the
   shell of the enormous star turtle Great A’Tuin, and which is bounded by
   a waterfall that cascades endlessly into space.

   Scientists have calculated that the chance of anything so patently
   absurd actually existing are millions to one.

   But magicians have calculated that million-to-one chances crop up nine
   times out of ten.

   -- Mort, GNU Terry Pratchett

On behalf of the Parrot team, I'm proud to announce Parrot 7.2.0, also known
as Blue-crowned racquet-tail.  Parrot (http://parrot.org/) is a virtual 
machine aimed
at running all dynamic languages. The blue-crowned racket-tail (Prioniturus 
discurus)
is a parrot found on all the larger islands of the Philippines not starting 
with P.

Parrot 7.2.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/devel/7.2.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 7.2.0 News:
   - Build
   + Fix warning on Win32 (with cl.exe)  when `link` is not explicitly set.


The SHA256 message digests for the downloadable tarballs are:
f4792fc1a82040dd855f73890de6fa26759aa62f4b4ad1aa468597592b7bf3bf 
parrot-7.2.0.tar.gz
74e5821155eaf29d7c1655fd3b5b90a84afe23361318242947c50f59da5918e1 
parrot-7.2.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is at 21 Apr 2015.

Enjoy!



Parrot 7.0.0 Crimson Shining Parrot released!

2015-01-20 Thread Bruce Gray
We'll show him! We'll show them *all*!

Okay, said Susan, that was *definitely* evil -

No, said Lavender, that's a Chaos Legion motto, actually. Only she
didn't do the insane laughter.

That's right, Tracey said, her voice low and grim. This time I'm not
laughing. The girl went on stalking through the corridor, like she had
dramatic music accompanying her that only she could hear.

(Hermione was starting to worry about what *exactly* the impressionable
youths of the Chaos Legion were learning from Harry Potter.)

   -- Harry Potter and the Methods of Rationality
  http://hpmor.com/chapter/70


On behalf of the Parrot team, I'm proud to announce Parrot 7.0.0, also known
as Crimson Shining Parrot.  Parrot (http://parrot.org/) is a virtual machine 
aimed
at running all dynamic languages.

Parrot 7.0.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/supported/7.0.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 7.0.0 News:
   - Core
   + Added a experimental INTERPINFO_MAX_GENERATIONS api, made 
MAX_GENERATIONS
 --ccflags adjustable, renamed to GC_MAX_GENERATIONS, and use the 
correct number.
 Default 3 for generations 0,1,2.
   + Add the DEPRECATED attribute to all deprecated functions. #1163
   + Fix parser crashes detected by the american fuzzy lop (1.06b) #1168
   + Replace an end op inside pcc methods by a returncc op, #1168.
 This used to crash the last years, now it returns. It is now 
documented as
 unspecified behavior.
   + Finish PackFile_ API deprecation and refactoring. No wrong exports 
anymore.
 See api.yml. #1170 #1122
   + Reenabled the following NCI signatures: t (cstring), 2 (Integer PMC - 
short),
 3 (- int), 4 (- long). SDL and Curses is now usable again. #436, 
#601, #605
   + Added a useful subset of static nci thunks to core-thunks. #1171
 Updated the extra thunks to pass most nci examples without libffi, just
 2, 3 and 4 require libffi when being used destructively on the Integer 
PMC.
   + Fixed a couple of blocking ResizablePMCArray (rpa) splice 
regressions from 6.10,
 which broke perl6. See https://github.com/perl6/nqp/issues/209, GH 
#1174, #1175.
   + Added an optional rpa splice warning as in perl5, when an overlarge 
offset is
 adjusted. #1176
   + Fix a GC regression from 6.11 with ResizablePMCArray #1159 (1.2% 
slower)
   + Skip startup warnings Unknown codeset `', defaulting to ASCII when
 nl_langinfo() failed, and silently use ASCII. #1180
   - Build
   + More code cleanup to reduce compiler warnings, code size and unneeded 
calls.
   + Add ARGIN_FORMAT declarations, probe for gnu_printf, ms_printf, 
printf. #1163
   + Fix PARROT_CANNOT_RETURN_NULL #1163
   + Move HASATTRIBUTE_* definitions from ccflags via cmdline to 
has_header.h #1163
   + Add the _Check_return_ MSVC SAL variant #1163
   + Check and fix that PARROT_EXPORT being the first function attribute 
(C++) #1164
   + Allow PARROT_DOES_NOT_RETURN without PARROT_CANNOT_RETURN_NULL #1163
   + Move -Wformat to --cage #1165
   + Fix and allow --cxx on FreeBSD 10 (clang, not g++) #1166
   + Fix git_describe config probe on tag-less repos, e.g. git clone 
--depth #1167
   + Fix solaris asctime_r with _POSIX_C_SOURCE #858
   - Documentation
   - Tests
   - Community


The SHA256 message digests for the downloadable tarballs are:
0c356f0d63cacb8b68375d695fa62fede3881ae86989c9a6b0adda709f1f2f45 
parrot-7.0.0.tar.gz
cdc5ccbaf4b5fbe64c99c0475a542154f25d7226e2d9823c539ee4f6f723fdf0 
parrot-7.0.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is at 17 Feb 2015.

Enjoy!



Parrot 6.10.0 New Caledonian lorikeet released!

2014-11-18 Thread Bruce Gray
   Now instead of four in the eights place
   You've got three,
   'Cause you added one,
   That is to say, eight, to the two,
   But you can't take seven from three,
   So you look at the sixty-fours...

   Sixty-four?  How did sixty-four get into it?  I hear you cry!
   Well, sixty-four is eight squared, don't you see?
   -- Tom Lehrer, New Math
   (Which starts in decimal, but ends in octal)

On behalf of the Parrot team, I'm proud to announce Parrot 6.10.0, also known
as New Caledonian lorikeet.  Parrot (http://parrot.org/) is a virtual machine 
aimed
at running all dynamic languages.

Parrot 6.10.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/devel/6.10.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 6.10.0 News:
   - Core
   + Add imcc -d2 flag for MKCONST tracing.
   + Fix darwin --m=32 Parrot_sysmem_amount() #1113
   + Honor rlimit settings on all non-windows platforms. #935
   + Slightly improved mark methods for Coroutine, Continuation,
 CallContext, NCI, Task. #1109
   + Unify code for platform encodings, now supports all. #1120
 e.g. unicode filenames or UTF-8 term output on cygwin, solaris, 
dragonfly
   + Update pcre for cygwin
   + Add more -D flags for --ccflags=-DMEMORY_DEBUG #1108.
 Print initial memory settings on -D1 and more with -D101 and -D200.
   + Added -t10 trace flag for pmc flags, prettier -t output, less GC 
stress.
   + Fixed GC bug in Coroutine.clone #1108, #1109
   + Export Parrot_io_get_vtable. #1131
   + Added lstat io op for nqp, fixed os.lstat method. #1129
   + Throw errors on illegal seek arguments, no assertions. #1130
   + Disallow negative count argument for array splice methods. GH #766
   + Allow array negative index access for most arrays. #1127
   + Shorten and harmonize array exception messages: no context, just:
 index out of bounds, illegal argument, can't resize, ... #1126
   + Add simplier Parrot_ex_throw_from_c_noargs. #1132
   + Fix all wrong exception codes left-overs, 0, 1 or -1. #1133
   + Unescape double-quoted .lex string constants. #1095, perl6 RT#116643
   + Downgrade external ascii strings on multi-byte platform encodings
 to ascii. #1098
   + Fix self heuristic with vtable overridden method calls.
 $P0($P0) instead of $P0() is now invalid, it is always a method.
 https://trac.parrot.org/parrot/ticket/103 #1013
   - Build
   + Set -mabi=64 for gcc --m=64 on mips, -m64 on powerpc #1110
   + Add --{en,dis}able-static #1104
   + Fix Windows build for pbc_to_exe #1114
   + Fix default cygwin builds #1116
   + Silence failing auto::inline probe #1118
   + Revert automatic regeneration of encoding tables, added with 6.9.0. 
#1119
   + Use labs() instead of abs() with 64-bit #
   + Avoid duplicate src/longopt.o, export Parrot_longopt_get. #1121
   + Detect icu version, new icu_version config key. #867
   + Skip -Werror=strict-prototypes only on broken icu 4.2 - 4.9. #867
   - Documentation
   + Document .lex name limitations. Use .lex 'name' w/ single-quotes 
#1095
   + Fixed 6.9 manpage regressions on BSD make #1125
   + Better newclass example code in pirbook #802
   - Tests
   + Fixed make smoke, uploading to smolder with changed YAML::Tiny
 quoting. #1078
   + Add better GC stress tests with reproducible GC bugs. #1108
   - Community


The SHA256 message digests for the downloadable tarballs are:
e90e83b69ec2f6c54bb0c6dc5645159c044bb3a48618e88e858dd18234ed1e84 
parrot-6.10.0.tar.gz
a2c1a94ae73be57c3f26d97901edfffea5fc65e0df270863477465b9f301eba0 
parrot-6.10.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is at 16 Dec 2014.

Enjoy!



Parrot 6.8.0 Little Lorikeet released!

2014-09-16 Thread Bruce Gray
Lories and lorikeets (tribe Lorini) are small to medium-sized arboreal
parrots characterized by their specialized brush-tipped tongues for feeding
on nectar of various blossoms and soft fruits, preferably berries.
   -- http://en.wikipedia.org/wiki/Lories_and_lorikeets
   (Parrots that eat like hummingbirds!)

On behalf of the Parrot team, I'm proud to announce Parrot 6.8.0, also known
as Little Lorikeet.  Parrot (http://parrot.org/) is a virtual machine aimed
at running all dynamic languages.

Parrot 6.8.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/devel/6.8.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 6.8.0 News:
   - Build
   + pbc_to_exe created executables use now the absolute execname on most 
platforms
 and not only argv[0] which needs to be looked up in the path. [GH 
#1088]
   - Documentation
   + Fix various new podchecker syntax errors with the new Pod::Simple 3.28
   - Tests
   + Update embedded Pod::Simple to 3.28 to fix the missing 
whiteline_handler method
 from non-embedded podchecker [GH #1089]
   + Skip 3 crashing codingstd tests with 5.8 DEBUGGING [GH #1090]


The SHA256 message digests for the downloadable tarballs are:
986a0e543e660e83595a3c477b7b7f065099edb559d74c56f61d88e216042f4e 
parrot-6.8.0.tar.gz
d8db85a305e61babf9f3c23ddd31dffebb8cc7ccd730abcd618eb0fbbad64b6a 
parrot-6.8.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is at 21 Oct 2014.

Enjoy!



Parrot 6.6.0 Parrothead released!

2014-07-15 Thread Bruce Gray
As a dreamer of dreams and a travelin' man,
I have chalked up many a mile.
Read dozens of books about heroes and crooks,
And I've learned much from both of their styles.
-- Heard playing in Margaritaville bar,
   in Orlando after YAPC::NA::2014.

On behalf of the Parrot team, I'm proud to announce Parrot 6.6.0, also known
as Parrothead.  Parrot (http://parrot.org/) is a virtual machine aimed
at running all dynamic languages.

Parrot 6.6.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/supported/6.6.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 6.6.0 News:
- Core
+ Optimized method call overhead at compile-time in pmc2c directly
  to avoid run-time overhead. Less temp. PMC's, less branches and
  avoiding at least 2 costly C functions per method call.
+ New arity warning:
wrong number of arguments: %d passed, %d expected [GH #1080]
- Build
+ Workaround libffi-3.1 upstream bug in ffi.h [GH #1081]
+ Expand pkg-config make macros in auto::libffi [GH #1082]
- Tests
+ Fix t/pmc/filehandle.t on cygwin with newer Cwd = 3.40 [GH #1077]
- Community
+ Our GSoC student passed the project midterm, having made great 
progress.
  Congratulations to Chirag Agrawal!
+ More parrot-bench numbers at https://github.com/parrot/parrot-bench,
  now using gnuplot for all releases from 1.8.0 - 6.6.0, amd64 + -m32


The SHA256 message digests for the downloadable tarballs are:
6d21d3b733d980ab7cb8ee699c59e2b782d8a9c8c0e2cb06d929767e61024ace 
parrot-6.6.0.tar.gz
08e9e02db952828f6ab71755be47f99ebc90894378f04d8e4d7f3bc623f79ff5 
parrot-6.6.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is at 19 Aug 2014.

Enjoy!



Parrot 6.4.0 Double-eyed Fig Parrot released!

2014-05-27 Thread Bruce Gray
(Dateline: 2014-05-21)

On behalf of the Parrot team, I'm proud to announce Parrot 6.4.0, also known
as Double-eyed Fig Parrot.  Parrot (http://parrot.org/) is a virtual machine 
aimed
at running all dynamic languages.

Parrot 6.4.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/devel/6.4.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 6.4.0 News:
   - Examples
   + Enhance shootout/regexdna.pir to test GC write barrier crashes
   - Community
   + Our GSOC project did officially start. See 
https://github.com/ZYROz/parrot


The SHA256 message digests for the downloadable tarballs are:
025bfe953211d09af6a4d80b13b4e7fef2bfaa055963b76f1bf674440c0cdbba 
parrot-6.4.0.tar.gz
419ddbd4c82b08e4ab1670a67c2a222120d34090413e2d4ecef9cb35f9b0bef0 
parrot-6.4.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is 17 Jun 2014.

Enjoy!



Parrot 6.2.0 Imperial Amazon Released!

2014-03-18 Thread Bruce Gray
Beside him, Melvin and Lavender and Allen all seemed to feel like marching too.
And Neville softly began to sing the Song of Chaos.

The tune was what a Muggle would have identified as John Williams's Imperial
March, also known as Darth Vader's Theme; and the words Harry had added were
easy to remember.

Doom doom doom
Doom doom doom doom doom doom
Doom doom doom
Doom doom doom doom doom doom
DOOM doom _DOOM_
Doom doom doom-doom-doom doom doom
Doom doom-doom-doom doom doom
Doom doom doom, doom doom doom.

By the second line the others had joined in, and soon you could hear
the same soft chant coming from nearby parts of the forest.

And Neville marched alongside his fellow Chaos Legionnaires,
strange feelings stirring in his heart,
imagination becoming reality,
as from his lips poured a fearful song of doom.

-- Harry Potter and the Methods of Rationality
   http://hpmor.com/chapter/30

On behalf of the Parrot team, I'm proud to announce Parrot 6.2.0, also known
as Imperial Amazon.  Parrot (http://parrot.org/) is a virtual machine aimed
at running all dynamic languages.

Parrot 6.2.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/devel/6.2.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 6.2.0 News:
   - Core
   + Re-enable old immc flags for parrot and parrot_old, such as
 -On -a -v -y -E -dxx. [GH #1033]
   + Fixed imcc -O1 and -O2
 -O1 fixes:
   = Special-case get_global for branch_cond_loop_swap, which broke
 NCI tests [GH #1037]
   = set_addr label does mark a basic_block, dead_code_remove() needs
 the label. Fixes nqp [GH #1061].
 -O2 used_once fixes:
   = Allow used_once elimination only for purely functional ops
 without side-effects [GH #1036]
   = Empty ins-next in deletion [GH #1042].
 -O2 constant propagation fixes:
   = Empty ins-op ptrs when deleting or skipping certain instruction
 [GH #1039],
   = Wrong logic leading to missed detecting writes from get_results
 [GH #1041],
   = Propagate only matching types in setters [GH #1042],
   = Stop at yield or invokecc for possible push_eh/pop_eh non-local
 effects [GH #1044]
   + Fixed TT #1930, a floating point optimizer problem on PPC
   + Added cache iterators in encoding_find_*cclass [GH #1027]
 to speedup the utf8 pattern scan a whole string for newlines.
   - Build
   + Set emacs buffer-read-only:t tags in generated files [GH #1034]
   + Provide coda for generated include/*.pasm files [GH #1032]
   + Fix parser for bison 3 [GH #1031]
   + Add support for __builtin_expect LIKELY/UNLIKELY branch optimizations
 in a new auto::expect step. [GH #1047]
   - Deprecations
   + Warn on deprecated usage of append_configure_log()
   - Documentation
   + Updated pod for parrot and tools/build/c2str.pl
   - Tests
   + Added -O1 and -O2 to fulltest
   - Community
   + Parrot has been accepted to Google Summer of Code 2014
   + Got a candidate for Improve performance of method signatures


The SHA256 message digests for the downloadable tarballs are:
a4c97e5974cf6e6ee1e34317aafd2d87a3bd63730098a050d4f09802b13da814 
parrot-6.2.0.tar.gz
f8b9cd2d558a1517038dc3154343f622ab1fd7b1f1d13f41a5c6dd51425bfe8e 
parrot-6.2.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is 15 Apr 2014.

Enjoy!



Parrot 6.0.0 Red-necked Amazon Released!

2014-01-21 Thread Bruce Gray
May your pleasures be many, your troubles be few.
   -- Cast of Hee Haw

On behalf of the Parrot team, I'm proud to announce Parrot 6.0.0, also known
as Red-necked Amazon.  Parrot (http://parrot.org/) is a virtual machine aimed
at running all dynamic languages.

Parrot 6.0.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/supported/6.0.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 6.0.0 News:
   - Core
   - Build
   - Documentation
   + Fixed bad IPv6 examples in pdd22_io, thanks to Zefram++ [GH#1005]
   - Tests
   + Fixed failure in t/configure/062-sha1.t.
   + Updated to Unicode 6.3 (libicu5.2): U+180e Mongolian Vowel Separator
 is no whitespace anymore [GH #1015]
   - Community


The SHA256 message digests for the downloadable tarballs are:
e150d4c5a3f12ae9d300f019bf03cca58d8e8051dd0b934222b4e4c91160cd54 
parrot-6.0.0.tar.gz
6cb9223ee389a36588acf76ad8ac85e2224544468617412b1d7902e5eb8bd39b 
parrot-6.0.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is 18 Feb 2014.

Enjoy!



Parrot 5.10.0 Sun Conure Released!

2013-11-21 Thread Bruce Gray
Great quotations are the wisdom of the tribe.
They bridge time and space.
They connect the living and the dead.

The Talmud says the right quotation at the right moment is
like bread to the Famished.
May you be Fed. 
-- from Sunbeams: A Book of Quotations [2nd ed], by Sy 
Safransky
(Inadvertently creating a meta-meta-quote)

On behalf of the Parrot team, I'm proud to announce Parrot 5.10.0, also known
as Sun Conure.  Parrot (http://parrot.org/) is a virtual machine aimed
at running all dynamic languages.

Parrot 5.10.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/devel/5.10.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 5.10.0 News:
   - Core
   + Fixed bareword method names check for  in imcc [GH #1015]
   + Moved eval from eval.pmc to HLLCompile and use new packfile API.
 This is a prerequisite for --target=pbc in the HLLCompiler [GH #937]
   + Merged branch 'new-packfile-api' [GH #937]
   = Removed Eval PMC
   = IMCCompiler now returns PackfileView instead of Eval.
   = Added Parrot_pf_single_sub_by_tag() to packfile API.
   = Added first_sub_in_const_table() to PackfileView PMC as a
 stopgap until properly tagged subs are generated.
   - Build
   + Removed wrong -Wlogical-op exception for imcparser.c [GH #1015]
   + Fixed parsing for OpenGL 4.1 on OS X Mavericks. [GH #1016]
   - Documentation
   - Tests
   - Community


The SHA256 message digests for the downloadable tarballs are:
417d504ccf557528d179c9f25df4f8430d5ec1e703ea63126d722452bfd38be3 
parrot-5.10.0.tar.gz
6030f72adccdb577a8e781e3d81c52dc60d68c6a9e2be626db3cff69e1f36ce5 
parrot-5.10.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is 17 Dec 2013.

Enjoy!



Parrot 5.7.0 Azure-rumped Parrot Released!

2013-08-21 Thread Bruce Gray
Rock Concert Movement #237 - Taking the audience on a Jungian journey
into the collective unconscious by using the shadow as a metaphor for
the primal self that gets repressed by the modern persona and also by
using an underground setting and labyrinth office design to represent
both the depths of the psyche and the dungeon-like isolation of our
increasingly mechanistic society which prevents people from finding
satisfying work or meaningful connections with others.
...
It's Time to Start!
-- Rock Concert Instruction Manual Narrator, Blue Man Group

On behalf of the Parrot team, I'm proud to announce Parrot 5.7.0, also known
as Azure-rumped Parrot.  Parrot (http://parrot.org/) is a virtual machine 
aimed
at running all dynamic languages.

Parrot 5.7.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/devel/5.7.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 5.7.0 News:
   - Build
   + Fixed GH#976 - Cannot load PCRE library during install on gentoo x64.
   - Community
   + All three of our GSoC students passed their midterms, and are
 on track to complete their Parrot and Perl 6 projects on time.
 Congratulations to Saurabh Kumar, Paweł Murias, and Denis Boyun!


The SHA256 message digests for the downloadable tarballs are:
0d07c210a8b90d368cde600351173b8c90a28d376379836ba36edf83acf7a21f 
parrot-5.7.0.tar.gz
73aacaecd81b7ef43689e9d23f641a690aabde524a2e60660d872dad82f7a337 
parrot-5.7.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is 17 Sep 2013.

Enjoy!



Parrot 5.5.0 Salvadori's Fig Parrot Released!

2013-06-18 Thread Bruce Gray
Obi-Wan: That boy is our last hope.
Yoda: No. There is another.
-- Star Wars Episode V: The Empire Strikes Back

On behalf of the Parrot team, I'm proud to announce Parrot 5.5.0, also known
as Salvadori's Fig Parrot.  Parrot (http://parrot.org/) is a virtual machine 
aimed
at running all dynamic languages.

Parrot 5.5.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/devel/5.5.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 5.5.0 News:
- Build
+ Configure options are now allowed to be quoted.
+ Fixed build on Win32.
+ Updated location of NQP on Win32.
+ Fixed Parrot::Distribution detection.
- Documentation
+ Noted that RESPONSIBLE_PARTIES is mostly out of date.
- Tests
+ Stopped testing native PBC on 64bit LE, due to lack of access to
  such machine.
- Release
+ Added tool: make_upload_commands.pl
- Community
+ Parrot has been awarded 3 student slots in Google Summer of Code 2013!
  This means that 3 lucky students will be on a paid internship from
  Google to work on these accepted proposals:
  = Saurabh Kumar - Update parrot-libgit2 to latest libgit2 release
  https://gist.github.com/sa1/5468408
  
http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/saurabh_kgp/11002
  = Paweł Murias - A Javascript backend for Rakudo

http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/pmurias/9002
  = Denis Boyun  - Improve Web UI of App::Parrot::Create
  https://gist.github.com/denisboyun/5472762
  
https://google-melange.appspot.com/gsoc/proposal/review/google/gsoc2013/chob_rock/9001
+ YAPC::NA::2013 hosted 4 days of Hackathon, focusing on the next
  generation of Perl implementations.
  = Huge Success!
+ MoarVM was unveiled:
https://github.com/MoarVM
+ P2 on Potion was debuted:
http://perl11.org/p2/


The SHA256 message digests for the downloadable tarballs are:
408a45660483499106a35107a836a80da27269a6d54bb114ba6e2249b2b9e9da 
parrot-5.5.0.tar.gz
eb7b7d461e627673e77f5e875154506054ce9950d63b263875d9272c7814fd30 
parrot-5.5.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is 16 Jul 2013.

Enjoy!



Parrot 5.4.0 Austin Parrot Released!

2013-05-21 Thread Bruce Gray
Jimi Hendrix, deceased, drugs.
Janis Joplin, deceased, alcohol.
Mama Cass, deceased, ham sandwich.
-- Austin Powers (making a list of friends from the Summer of Love)

On behalf of the Parrot team, I'm proud to announce Parrot 5.4.0, also known
as Austin Parrot.  Parrot (http://parrot.org/) is a virtual machine aimed
at running all dynamic languages, and currently focusing on Perl 6.

Parrot 5.4.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/devel/5.4.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 5.4.0 News:
- Core
+ Implemented the coth() and acot() math functions.
+ Fixed chomp to only trim a newline when it ends the string. [GH #958]
+ Added readlink() and Parrot_file_readlink(), with tests. [GH #967]
- Build
+ Parrot now detects the CPU model on Linux systems, as well as
  detecting more CPU models on BSD, Cygwin, Solaris, Win32, and Darwin.
  ARM v7 is also now recognized. [GH #962]
- Documentation
+ Threads examples now have proper POD sections and useful descriptions
  with links to references.
+ Added main description for Task PMC.
+ Added descriptions to trig methods in Float PMC.
- Tests
+ Added improved test coverage targets cover_new and fullcover_new.
+ Improved tests for acot(), coth(), acot() math functions.
+ Added tests for options passed to debugger.
+ Updated native PBC test files for string, number, and integer,
  which resolved 11 TODOs in the test suite. [GH #959]
+ Fixed test for the auto/arch config step.
- Release process
+ Added message digests to crow.pir.
+ Added in release.json: release.type can be devel or supported.
+ Refactored common code to sub in auto_release.pl.
- Community
+ Parrot is part of the Hackathon at YAPC::NA::2013, in Austin, TX, USA!
http://www.yapcna.org/yn2013/wiki?node=Hackathons
+ Parrot has been accepted to Google Summer of Code 2013!
+ Currently there are two high-quality proposals being worked on:
https://gist.github.com/sa1/5468408- parrot-libgit2
https://gist.github.com/denisboyun/5472762 - App::Parrot::Create


The SHA256 message digests for the downloadable tarballs are:
4e37686911b446f5e5f2c0aa62138988ba0c411d2c5e2ba231d1a3421a85ad10 
parrot-5.4.0.tar.gz
91d0e46fe3ef08e692e80756f26ee0e7311fe58e49d6c31f3f5180d4eb475696 
parrot-5.4.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is 18 Jun 2013.

Enjoy!



Parrot 5.3.0 W00tstock Parrot Released!

2013-04-16 Thread Bruce Gray
We are stardust.
Billion year old carbon.
We are golden.
Caught in the devil's bargain
And we've got to get ourselves back to the garden.
(To some semblance of a garden.)
   -- Woodstock, by Joni Mitchell

On behalf of the Parrot team, I'm proud to announce Parrot 5.3.0, also known
as W00tstock Parrot.  Parrot (http://parrot.org/) is a virtual machine aimed
at running all dynamic languages, and currently focusing on Perl 6.

Parrot 5.3.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/devel/5.3.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 5.3.0 News:
   - Build
   + Files generated by `make cover` are now correctly cleaned by `make`
 and ignored by `git`.
   - Tests
   + Internal testing of the Configure probe for Fink now works correctly
 with the --verbose flag.
   + Tests added for .sort method of ResizableFloatArray and
 ResizableIntegerArray. [GH #926], [GH #927]
   + Benchmarks added for .sort methods of various Array objects.
 [GH #175]
   + Coverage analysis added for pbc_disassemble.


The SHA256 message digests for the downloadable tarballs are:
79d6f1fe20645b0afbc496cd0d7850a78b8940230e7637c5356d780f5aa1750b 
parrot-5.3.0.tar.gz
4cff32521c79d8a783ad57d9a13e205ea3c1b1585085e0da80138b58b77d0ed5 
parrot-5.3.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is 21 May 2013.

Enjoy!



Parrot 5.2.0 Stuffed Parrot Released!

2013-03-23 Thread Bruce Gray
I am not dead yet   I can dance and I can sing
I am not dead yet  I can do the Highland Fling
I am not dead yet No need to go to bed
No need to call the doctor  Cause I'm not yet dead
-- Spamalot

On behalf of the Parrot team, I'm proud to announce Parrot 5.2.0, also known
as Stuffed Parrot.  Parrot (http://parrot.org/) is a virtual machine aimed
at running all dynamic languages.

Parrot 5.2.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/devel/5.2.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 5.2.0 News:
- Core
+ IO now only syncs buffers for the IO types where syncing makes sense.
= PIO_VF_SYNC_IO flag added
- Build
+ installable_pdump now has the correct rpath (blib corrected to lib).
- Libraries
+ Tcl/Glob.pir has been removed. (PGE/Glob.pir remains intact)
- Ecosystem
+ All Parrot tarballs are now symlinked to the 'all' directory,
  regardless of their true homes ('devel' or 'stable'), to better
  allow for automated downloads.
ftp://ftp.parrot.org/pub/parrot/releases/all/


The SHA256 message digests for the downloadable tarballs are:
1245d11f2b2ea44e6465aff6da5a533324d69b6eb3ddf7d84e81385ea95150ad 
parrot-5.2.0.tar.gz
0c538d780f9c70c510e142a8a663c30474125c9fcf9fe25d2129e68fc7baec8d 
parrot-5.2.0.tar.bz2

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is 16 Apr 2013.

Enjoy!

-- 
Bruce Gray (Util of PerlMonks)



Parrot 5.1.0 Zombie Parrot Released!

2013-02-19 Thread Bruce Gray
Flat on the bunk again, he ran for his life. The Parrot stalked him
through the grey hours of morning, smoothing its fractal feathers,
shuffling itself slowly into clarity as though at the end of a
flashy film-dissolve, until at last his mind's eye had to acknowledge
a shape,
a shape,
a wink
-- From BLIT, a short story by David Langford
http://www.infinityplus.co.uk/stories/blit.htm

On behalf of the Parrot team, I'm proud to announce Parrot 5.1.0, also known
as Zombie Parrot.  Parrot (http://parrot.org/) is a virtual machine aimed
at running all dynamic languages.

Parrot 5.1.0 is available on Parrot's FTP site
(ftp://ftp.parrot.org/pub/parrot/releases/supported/5.1.0/), or by following the
download instructions at http://parrot.org/download.  For those who would like
to develop on Parrot, or help develop Parrot itself, we recommend using Git to
retrieve the source code to get the latest and best Parrot code.

Parrot 5.1.0 News:
   - Core
   + The .sort() method was added to the FixedFloatArray PMC
   + Improved detection of system memory for machines with 2GB
   + Improved pbc_to_exe support for spacey paths
   + Fixed Parrot_io_readall_s allocating too much string space
   - Build
   + Fixed generated MANIFEST files to omit $destdir
   - Documentation
   - Tests
   + .readall now checks that prior reads are respected.
   - Community
   + Weekly IRC meetings have resumed. #parrotsketch Tuesdays at 1930 UTC

The SHA256 message digests for the downloadable tarballs are:
af26c2fcc806505ec516ebb013bdd37b218633f5fe63faaa6b843ffe55e0135e 
parrot-5.1.0.tar.bz2
2483963c1bec665be772cb40a71fd3d9d2621feca547932475017c81a2f7e49b 
parrot-5.1.0.tar.gz

Many thanks to all our contributors for making this possible, and our sponsors
for supporting this project.  Our next scheduled release is 19 Mar 2013.

Enjoy!

-- 
Bruce Gray (Util of PerlMonks)



Re: How to make a new operator.

2012-03-22 Thread Bruce Gray

On Mar 21, 2012, at 11:49 PM, Jonathan Lang wrote:

What I want to know is whether there's a way to define a step  
function that's based in part or in whole on the current term's  
index.  For example, how would I use infix:... to generate the  
perfect squares between 0 and 100?  Namely,  
'0,1,4,9,16,25,36,49,64,81,100'.  For example, is Perl 6 set up to  
try to pass the current element's index into the step function by  
means of a named parameter?


I would hope for something like:

  - :index { $index * $index } ... 100

or

  1, *+:index ... * # 1,3,6,10,15,21,28,36,45,...

(Note: I _don't_ expect the above to work as is; they're merely  
intended to convey a rough idea of what I _do_ want.)


If not, how _would_ I generate these lists?



In real life, you would just use this:
   my @squares = map { $_ * $_ }, 0..10;
or, for an infinite list, use a binding instead of an assignment:
   my @squares := map { $_ * $_ }, 0..*;
But you were asking about ... specifically :^)

I have run into the same need for something like :index, while
playing with RosettaCode tasks like Continued_fraction.
Your squares example will be clearer than the RC tasks.

At first, I tried to trick the compiler, by *binding* the list to an
array, then referring to that bound array from within the closure.
   my @squares := 0, { @squares.elems ** 2 } ... *;
This worked, but only as an artifact of the then-current Rakudo
implementation. It is not specced to work, and I was told in
freenode/#perl6 not to rely on that behavior.

On freenode/#perl6, I was pointed to part of the spec that I had  
overlooked.

The sequence operator is defined in S03:
   http://perlcabal.org/syn/S03.html#List_infix_precedence
Buried in its definition is this gem:
   http://perlcabal.org/syn/S03.html#line_1884
   The function may also be slurpy (n-ary), in which case all
   the preceding values are passed in (which means they must
   all be cached by the operator, so performance may suffer,
   and you may find yourself with a space leak).

That means that this will work:
   sub sq_gen (*@a) { @a.elems ** 2 };
   my @squares = 0, sq_gen ... {$_ = 100};
   say ~@squares;
(Note that the asterisk in *@a is mandatory)
or, infinitely:
   sub sq_gen (*@a) { @a.elems ** 2 };
   my @squares := 0, sq_gen ... *;
   say ~@squares[^11];

Great! However, I wanted to do it inline, without a separately-defined  
sub.
If it wasn't for that required asterisk, then I could use a  
placeholder variable to do this:

   my @squares = 0, { @^a.elems ** 2 } ... {$_ = 100};
FAIL! (Niecza)
   Unhandled exception: Nominal type check failed in binding '@a' in  
'ANON'; got Int, needed Positional


The last piece of the puzzle is the arrow sub syntax, more commonly
seen in for loops:
   my @squares = 0, (- *@a { @a.elems ** 2 }) ... {$_ = 100};
Or, more concisely:
   my @squares = 0, - *@a { +@a ** 2 } ... * = 100;

This works!

Well, it works in Niecza. It does not (yet) work in Rakudo:
	15:25 Util perl6: my @squares := 0, (- *@a { @a.elems ** 2 }) ...  
*; say ~@squares[^11];
	15:25 p6eval ..niecza v15-4-g1f35f89: OUTPUT0 1 4 9 16 25 36 49  
64 81 100NL

15:25 p6eval ..rakudo 1a468d: OUTPUT0 0 0 0 0 0 0 0 0 0 0NL

For your second example (1,3,6,10,15,21,28,36,45,...), it would look  
like this:

my @triangle = 1, (- *@a { @a[*-1] + @a.elems + 1 }) ... {$_ = 45};
Note that this particular sequence is just the triangle numbers, which
has a shorter form via triangular reduce:
   my @triangle = [\+] 1..9;

After writing all the above, it occurred to me that the use of @_ should
implicitly define a closure as slurpy/n-ary. That would remove the need
for the arrow, and make the code much less ugly.
Also, the first value (0) might be unnecessary. The spec says that it
should not be required when the closure is 0-ary, but I think that
should also be true for slurpy/n-ary closures.
These work in Niecza:

my @squares := { @_ ** 2 } ... *;

my @triangle := 1, { @_[*-1] + @_ + 1 } ... *;

--
Hope this helps,
Bruce Gray
(Util of PerlMonks)



Re: Recursive lazy lists?

2011-07-30 Thread Bruce Gray

On Jul 30, 2011, at 8:30 AM, Mark J. Reed wrote:

--snip--
Does Perl6's variety of
laziness support this sort of definition?
It's not an infinite list; zipWith stops zipping as soon as either  
list is
empty.  But the self-reference in the definition means it still has  
to be

computed lazily.


Yes, Perl 6 does support laziness in this sort of definition, via run- 
time binding.

I was delighted to find that it already works in Rakudo!
(We also support Haskell's cool pictogram-style declarations.)

Here is a quick conversion of the Haskell solution into Perl 6; its  
output

(when run in Rakudo) exactly matches the output of my iterative Perl 6
solution (http://rosettacode.org/mw/index.php/Gray_code#Perl_6):

our multi sub infix:xor2 ( $x, $y ) { ( $x + $y ) % 2 };

multi bin_to_gray ( [] ) { [] }
multi bin_to_gray ( [$head, *@tail] ) {
   return [ $head, ( @tail Zxor2 ($head, @tail) ) ];
}

multi gray_to_bin ( [] ) { [] }
multi gray_to_bin ( [$head, *@tail] ) {
   my @bin := $head, (@tail Zxor2 @bin); # Note the recursive  
definition via bound array

   return @bin.flat;
}

for ^32 - $n {
   my @b = $n.fmt('%b').comb;
   my $g = bin_to_gray( @b );
   my $d = gray_to_bin( $g );
   printf %2d: %5b = %5s = %5s: %2d\n, $n, $n, $g.join, $d.join, : 
2($d.join);

   die if :2($d.join) != $n;
}

--
Hope this helps,
Bruce Gray (Util of PerlMonks)



Re: Recursive lazy lists?

2011-07-30 Thread Bruce Gray


On Jul 30, 2011, at 6:40 PM, Mark J. Reed wrote:

On Sat, Jul 30, 2011 at 6:02 PM, Bruce Gray bruce.g...@acm.org  
wrote:

--snip--

our multi sub infix:xor2 ( $x, $y ) { ( $x + $y ) % 2 };


Why did you need to define this yourself instead of just using +^ ?


Umm, because that is what was done in the Haskell code I was  
translating?
That is my only excuse for my oversight. You are correct; in fact,  
Solomon
Foster already pointed this out to me, and I have already posted the  
revised

version on RC as a second solution:
http://rosettacode.org/wiki/Gray_code#Perl_6

--
Hope this helps,
Bruce Gray (Util of PerlMonks)



Re: Bug?

2011-07-17 Thread Bruce Gray


On Jul 14, 2011, at 4:47 PM, Parrot Raiser wrote:


When a subroutine is invoked with an empty parameter list, as follows:

run_stuff();

sub run_stuff {
  my ($parm) = @_;
  say Parameter is $parm;
}

@_[0] contains Any().

Should it?


Yes, but only because of the way you are inspecting it.

When run_stuff is called with no arguments, @_ is empty.
It does *not* contain an element with the value Any; it contains no  
elements at all.


When you ask for the value of a specific (and non-existent) element of  
the array,

you only see that the element has no defined value yet.
(The `Any` value in Perl 6 is like the `undef` value in Perl 5.)
The same will happen if you declared @foo, then asked for the value of  
@foo[42].



perl -MData::Dumper -e 'sub look { print Dumper scalar(@_), \@_,  
$_[0]; } look();'

   $VAR1 = 0;
   $VAR2 = [];
   $VAR3 = undef;
perl6 -e 'sub look { .say for @_.elems, @_.perl, @_[0].perl; }; look();'
   0
   []
   Any

--
Hope this helps,
Bruce Gray (Util)



Re: perl6 compiler

2010-03-16 Thread Bruce Gray


On Mar 14, 2010, at 11:09 AM, dell wrote:


Is perl6 actually compiled then ran similar to java
or is the script ran and then compiled at run time?


It supports either, but defaults to single-step compile-run (like Perl  
5).


I think that a transparent cache is envisioned for the future,
so that a compiled version is silently saved during the first compile- 
run,
and future runs check the timestamps of the source and compiled  
versions,

skipping the compile if the source has not been updated.

--
Hope this helps,
Bruce Gray



Re: Support for ensuring invariants from one loop iteration to the next?

2008-12-03 Thread Bruce Gray




On Dec 3, 2008, at 7:14 AM, Aristotle Pagaltzis wrote:
--snip--

Does Perl 6 have some mechanism so I could write it along the
following obvious lines?

my $i;
while ( @stuff ) {
$_-do_something( ++$i ) for @stuff;
}

# plus some way of attaching this fix-up just once
{ @stuff = grep !$_-valid, @stuff }


In Perl 5 or Perl 6, why not move the grep() into the while()?

my $i;
while ( @stuff = grep !$_-valid, @stuff ) {
$_-do_something( ++$i ) for @stuff;
}

Perl 5 example:
$ perl -wle '@z=qw(a bb ccc); while (@z = grep { length($_)  4 } @z)  
{ print @z; $_ .= . for @z }'

a bb ccc
a. bb.
a..

By the way, your use of '!$_-valid' instead of '$_-valid'
sounds backwards when compared with your text
...assume that [EMAIL PROTECTED] will contain only valid elements.

--
Hope this helps,
Bruce Gray (Util of PerlMonks)