in reply to Re^12: A "Perl-7" that I could actually USE right now
in thread A "Perl-7" that I could actually USE right now
Update David Warring has begun working his way through the advent posts creating tests for the code in them
How many years of advent articles no longer work because they only ran on Pugs or Necza or Parrot and those are now broken?
(Fwiw I think some contributors to these projects would say they're not broken.)
Using the P6 advent search box to search thru the 5 years worth of advent articles:
- 3 articles match "Pugs". None of the articles in which Pugs is mentioned have Pugs specific code, so no breakage.
- 21 articles match "Niecza". There's a "contributing to P6" article that focuses on Niecza and C# code. Let's call that fundamentally broken. Two articles (tetris and the 2011 mandelbrot) use CLR libraries. The P6 code itself looks valid, so these articles might work fine if/when there's a Rakudo/.NET, but I'll call these fundamentally broken. The rest don't contain Niecza specific code or instructions.
- 15 articles match "Parrot". The two articles Reini Urban wrote last year are Parrot specific (threads, and low level encoding details). The rest don't contain Parrot specific code or instructions.
How many no longer run because the design of Perl-6 changed?
I'm not currently willing to go thru all 100+ articles. I've gone thru the first 10 articles for 2009 and 2011 and entered the examples in a current Rakudo. Afaict, all of the 2009 articles remain 100% valid and two of the 2011 articles generate a message (both trivial to fix):
- The 2011 day 4 article "Traits — Meta Data With Character" led to a deprecated message:
Saw 1 call to deprecated code during execution. ================================================ Method exists (from EnumMap) called at: /tmp/pssDL_7axD, line 1 Please use the :exists adverb instead.
This year we have advents covering the deprecation message mechanism, adverbs in general and the :exists adverb.
- The 2011 day 7 article "Adventures in writing a simple grammar profiler" led to this message:
Obsolete use of | or \ with sigil on param $args
Nowadays you have to use terms, not sigiled variables, eg writing |args rather than |$args.
How many no longer run because they use some library that no longer runs?
Other than the CLR libraries used by Niecza, I didn't see any articles with this problem in the sampling I went thru.