During the past month, I've been quietly releasing Pugs and its dependencies on Hackage.
Installation for Pugs is now much simpler than before; see http://svn.pugscode.org/pugs/INSTALL for details.
There has been no action in terms of features, but the internal has been refactored to reduce compilation time, and the individual components has been released as separate packages to reduce maintenance overhead.
Startup time is also greatly improved. As a consequence, running the full smoke test suite is no longer a multi-hour-long ordeal; it now takes less than 15 minutes on modern machines.
As of the 6.2.13.11 release, the smoke numbers say it passes 17215 tests out of 19260, which is not significantly different from the 6.2.13 release.
Going forward, I think GHC 6.10's Quasiquoting and View patterns are going to be vital for the sanity of Pugs internals, so please expect no Pugs 6.28.* releases before GHC 6.10.1.
And finally, a shameless plug: I'm still looking for ways to make ends meet, so any offers of telecommuting, project-based/part-time jobs would be very much appreciated.
Initially, I thought it was typical burn-out. Between the intense Brazil hackathon (with fglock++, incrementally-built bootstrapping compilers; with cmarcelo++, metaobjects in Haskell for 6.28.0) and moving to a new residence, a few weeks of rest seemed natural.
As the sudden drowsiness and strange non-motivation worsened, I thought it's some kind of mental block, and focused on Jifty instead.
But when external emergencies demanded my attention, all focus was suddenly lost, replaced by massive panic and self-doubt, leading to e.g., the cancellation of my POPL trip just before boarding.
At last, nine days ago, I was hospitalized at the brink of liver failure. Months of intellectualization and analysis was proved immaterial, as there is one very simple explanation: Acute Hepatitis B. The symptoms quickly ceased, thanks to lamivudine, and I expect to be discharged tomorrow, with 95%+ chance of full (immune, non-carrier) recovery.
With the nearest $job/conference safely booked at one month away, I've put various unpleasantries behind me, started populating the new dev.pugscode.org workspace, and resumed Pugs hacking (aiming for a March release of the much-delayed 6.28.0).
So... Stay tuned for backblogs on the progress happened during my absence. Viva la vie! ☺
After nearly four months of development and 3400+ commits, I'm very glad to announce that Pugs 6.2.13 is now available:
http://pugs.blogs.com/dist/Perl6-Pugs-6.2.13.tar.gz
SIZE: 6839270
SHA1: b06b8434c64e9bb5e3ab482282fbae0a6ba69218
Motivated by increasing use of Pugs in production, this is an extra release in the 6.2.x series, offering another 200%+ improvement in performance, comprehensive support for interoperability with Perl 5 modules, a built-in grammar engine via native perl5 embedding, and much better support for roles, classes and objects.
The web-based presence of Pugs and Perl 6 has improved as well:
Thanks again to all lambdacamels on #perl6 for building this new ship together; it is truly an exhilarating voyage.
Have -Ofun!
Audrey
Changes for 6.2.13 (r14402) - October 17, 2006
Build System
Feature Changes
Interactive Shell and Command-Line Flags
Perl 5 Interoperability
Lexical Syntax
Declarators and Operators
Blocks and Statements
Regexes and Grammars
Modules and Routines
Classes and Objects
Built-in Primitives
Bundled Modules
New modules
Test Suite
Examples and Utilities
examples/games/dispatch_quiz.pl
Documentation
docs/Perl6/Perl5/Differences.pod
Perl 6 on Perl 5
Experimental projects
misc/pX/Common/P5_to_P6_Translation/
misc/pX/Common/convert_regexp_to_six.pl
This is the Perl 6 Internals correction summary, for the weeks of 2006-02-13 through 2006-02-28, by Ann Barcomb.
Summary updates
Thank you to everyone who took the time to point out that I had accidently used February 2003 rather than 2006 for the internals section. This is the actual summary for February 2006.
Due to the comments received on short URLs, I have decided to use the originals, as I also prefer them.
Internals (Parrot-Porters)
This mailing list has been previously called perl6-internals. It is now known as parrot-porters, but the perl6-internals name will remain as an alias for now.
Leopold Toetsch announced the delay of the next release. The German Perl workshop and a hackathon with Audrey Tang were responsible.
Bug: PGE - truncating PIR code generated by p6rule
Allison pushed some code and a test which isolates a failing test in punie so that others could aid in debugging. Joshua Isom reported success on two platforms, but noted other problems he encountered, which Allison recognized as known Parrot::Test bugs. Some debugging took place.
Joshua Hoblitt requested that people with RT privileges spend a few minutes on the queue attempting to resolve a few bugs and wondered if RT could be configured to leave bugs marked as 'new' until they are owned.
Request for a clean bailout mechanism
In December, Joshua Hoblitt created a ticket [perl #37930] requesting a clean way for a step to signal a failure. As of February's r11568, all configuration steps were modified.
Param count mismatch errors enabled
Leopold Toetsch posted that param count mismatches now throw exceptions, but result/return count mismatches are still not checked. He included a list of failing tests from r11570 which were affected by this change.
Leopold Toetsch changed the syntax for registers in r11581.
Punie test failures in set_node method on Solaris/SPARC
Allison Randal passed on a reported failure on Solaris/SPARC [perl #38584].
In another thread, Andy Dougherty looked into the problem and gave his test results.
Leopold Toetsch gave a summary of some recent trace improvements. They were as follows: trace output runs through a dedicated debug interpreter, the output has been beautified, and tracing in to a file is faster.
Test failures with 'long long' on i386/linux
Andy Dougherty reported that this failure persists if one uses 64-bit opcodes on a 32-bit system. He was not especially concerned about the failure as he had explicitly created the situation in order to test the bug in its original context.
In January, Leopold Toetsch indicated that FloatvalArray and StringArray would be removed soon. As of r11602, they were removed.
Future JIT compiler improvements
Leopold Toetsch related a short list of desired JIT compiler improvements from [perl #38593].
Leopold Toetsch announced an upcoming release and put a code freeze on feature changes.
Later he started releasing 0.4.2 and blocked all checkins.
And finally, the release was complete.
Leopold Toetsch commented that the resizeable variant is broken, and had some comments on what *BooleanArray should support. Matt Fowles agreed with most of the *BooleanArray reductions, while Bob Rogers had some questions. Bernhard Schmalhofer also spoke up. After seeing the support for the methods, Leopold Toetsch decided they should remain.
Configure dependencies fix bug closed
Joshua Hoblitt closed a ticket [perl #31138] which was not addressed and was no longer applicable.
Question on t/pmc/array.t with a negative length to an array
Karl Forner asked a question about list_set_length, which puzzled him by accepting negative sizes. He requested a pointer to documentation describing the behavior of the routine.
Deprecated --expnetwork in Configure.pl
In October,
Will Coleda noted that --expnetwork from Configure.pl was an unused option which should probably be removed [perl #37388].
More recently,
Joshua Hoblitt requested clarification and Leopold Toetsch agreed with the removal.
Performance-adding profiling build options
Joshua Hoblitt inquired as to whether [perl #31156] was worth implementing. Leopold Toetsch asked how to add CFLAGS from a perl Configure.pl command, and Joshua replied.
Truncating results of factorial test on Parrot examples page
Back in September 2005, James Ghofulpo asked in [perl #31980] if the factorial example was meant to truncate results. Bernhard Schmalhofer confirmed that he got incorrect results running the example. Leopold Toetsch noted that most of the examples are outdated. There was a call to fix the factorials, and in February Joshua Hoblitt asked what had become of the example. Leopold Toetsch replied that it had been removed because it was broken.
As long ago as December 2004, Simon Glover created a ticket [perl #33603] noting that undef != undef. Leopold Toetsch tried to explain why undefs have to be distinct currently. A patch was proposed, but rejected, and in February Joshua Hoblitt asked for some resolution on the issue.
Karl Forner, a mailing list subscriber, expressed interest in helping to develop Perl6 and Parrot and asked what he could do. He was welcomed by Bernhard Schmalhofer, who proposed a starting place. Allison Randal responded to the suggestion of a FAQ for contributors by asking if Karl could start by making one.
Questions with building parrot-0.4.1 on Win32
Sisyphus asked if there was an appropriate place for asking questions relating to building Parrot, and then asked some questions relating to a Win32 build. Jonathan Worthington confirmed that this was the right list and offered suggestions. Nick Glencross also offered advice.
m4.pm versus M4.pm causes problems on case-insensitive filesystems
Chris Dolan reported [perl #38604] that Mac OS X had a problem with these two files. Bernhard Schmalhofer indicated that this was due to an svn move, which caused problems with svn update on case-insensitive filesystems.
Francois Perrad reported that Lua on Parrot took some large steps forward.
Karl Forner believed that the documentation created by 'make html' were more useful than the documents on the parrotcode website. He asked a bit about the linking process, and Will Coleda answered.
Steve Gunnell recapped that back in December he had a question about UTF-8 I/O. This led to some thoughts and a proposal on encoding filters. Leopold Toetsch and others offered comments.
Robert Spier announced some downtime for the subversion server.
Question on namespaces and classes
Leopold Toetsch asked for some thoughts on his proposals dealing with namespaces and classes. Jonathan Worthington and Chip Salzenberg replied.
Matt Diephouse posted a much-awaited namespace specification draft and requested comments. He received plenty.
Announcement: Amber for parrot 0.4.2 (Argument)
Roger Browne announced this release.
Applied patches
Brad Bowman submitted a patch [perl #38476] to normalize indentation in nativecall.pl.
Andy Dougherty suggested cutting cutting the memory use in half [perl #38577] because his system PANICs from the RAM allocation request. The patch was applied, but it was noted that there was a suspected bug in the ResizeableBooleanArray PMC.
Andy Dougherty was not satisfied with DETAIL_MEMORY_DEBUG in src/memory.c [perl #38576] when he tried to use it to debug an out of memory PANIC. He modified it to use STDERR instead of STDOUT and put in a guard against calling free(0). Leopold Toetsch complimented the quality of Andy's patches and told him to just apply them in the future.
In January, Bob Rogers proposed that Exception_Handler inherit from Continuations [perl #38348]. Leopold Toetsch applied the patch in r11379. Discussion continued until mid-February, and there were addition commits: r11616, and r11612.
Bob Rogers proposed a patch. Leopold Toetsch clarified how multiple get_params work with tailcalls and said the patch was okay, but there is no record of it being applied.
In [perl #38598], chromatic noted that some modifications were needed to bring documentation and tests up-to-date. He applied some patches (11755, 11756 and 11758).
Acknowledgments
chromatic recruited me at YAPC::NA 2006, and Jesse Vincent proposed this task. Audrey Tang helped me to get started. She also deserves a belated thank-you for her effort in finishing the previous edition, as does Yuval Kogman.
If you appreciate Perl, consider contributing to the Perl Foundation to help support the development of Perl.
Send complaints and comments about this summary to Ann Barcomb, kudra@domaintje.com.
See also
Summary updates
Starting with this update, Ann Barcomb will be writing the Perl 6 summaries. Her plan is to release new issues on Sundays, initially dealing with the backlog at a rate of one month per week, and eventually returning to posting a summary of the previous week on a weekly basis.
The proposed schedule is:
Compiler (perl6-compiler)
Making Pugs aware of Parrot
Peter Schwenn requested a concrete example settings to make Pugs aware of Parrot. Beau Cox replied with step-by-step instructions.
Difficulty installing Pugs on Cygwin
Syed Uzair Aqeel reported a Cygwin problem with finding package plugins when creating a makefile. Audrey made a suggestion.
Installation failure of Pugs revisions 9188 and 9204
Beau Cox reported that the 9188 revision of Pugs failed to pass smoke tests and install, and that the problem persisted with Pugs 9204 even after a reinstall of ghc and Haskell. Beau wrote a makefile patch, which also worked for chromatic, who had experienced the same problem.
Internals (parrot-porters)
Ed.: It turns out that the summaries in this section were mistakenly from 2003. This space will be filled with corrected summaries as they become available. Sorrie!
Language (perl6-language)
Typo Alert: Synopsis 5
Amos Robinson found a typo and Luke Palmer promptly corrected it.
Implementation of
David Romano asked some questions on extending the Rules domain specific language, the semantics of whitespace skipping, and negated matching semantics. Luke Palmer replied and explained that the extensions were not yet specified, and recommend possible solutions to the other two questions. Discussion ensued.
Overloading the variable declaration process
Darren Duncan wondered if he could get default values in variables instead of undef, in order to avoid calling the constructor, by simply annotating the type of the variable. Audrey Tang explained that a similar construct is available. This was followed by a discussion on the subject of class prototypes as default values for typed variables, as well as philosophical issues.
Instance attributes collision
Yiyi Hu asked what happens when different sigil attributes with the same name are declared in a single class. Various participants debated the merits of errors versus warnings.
CODE {...} mentioning variables without interpolation
Brad Bowman asked about the semantics of quasiquoting and variable interpolation for Perl 6's Macro language.
Larry Wall explained the semantics of AST binding,
the caller's scope,
interpolating ASTs into the macro,
and the COMPILING:: variable prefix.
This was followed by a comment on Brad's signature about intelligence and good sense.
Selective String Interpolation
Brad Bowman wanted to know if string interpolation and escaping could be optimized for creating strings of Perl code that selectively interpolate. Ideally he would be able to declare which variables are interpolated. He also mentioned closure interpolation and how it does not work well when quoting strings of code. Many people provided ideas, covering Lisp and Ruby, backslashes, and custom quote operators.
Some newbie questions about Synopsis 5
H. Stelling asked about Rule capture numbering, aliasing semantics, and nested subpattern details. Patrick R. Michaud clarified and the capture numbering scheme was discussed.
Named Subroutine return values
Joe Gottman wanted to know if subroutine declarations without an explicit declaration type (my,
our) can be annotated with a return value type.
Damian Conway replied that the returns trait can used regardless of the declaration syntax.
Luke Palmer and Larry Wall discussed the exact semantics of our Type sub foo,
--> and returns style return type declarations.
S02: Reserved namespace ops
TSa asked what reservations the design team had about the various uses of the reserved syntax for type subscripting.
Larry Wall reserved his right to silence,
adding that he thought that is reserved means "we don't have the foggiest idea what we'll do with this,
but we have a suspicion that if we let people use this particular thing right now,
we'll regret it someday." The official status of the various items in the notes/ directory was clarified -- they are considered to be unofficial.
Synopsis 29 patch
Larry Wall posted a patch for Synopsis 29, recognizing it as official. Ruud H.G. van Tol followed up with questions about a round function, and pi/atan/atan2.
Synopsis 29 and Complex numbers
Jonathan Lang noted that Synopsis 29 deals with complex numbers when describing the sqrt function, but omitted others. He proceeded to list the functions which require special handling of complex numbers. Several people commented.
Acknowledgments
chromatic recruited me at YAPC::NA 2006, and Jesse Vincent proposed this task. Audrey Tang helped me to get started and reviewed this summary, and Yuval Kogman assisted with the Language section.
If you appreciate Perl, consider contributing to the Perl Foundation to help support the development of Perl.
http://donate.perlfoundation.org/
Comments on the summary can be sent to kudra@domaintje.com.
See also
I apologize that I've not conveyed the scope of licensing to our contributors properly, causing a lot of confusion. While I have been saying "only the src/ tree will be affected" from the start, I did not clarify that the src/ here explicitly means the src/ directory in the Pugs repository, containing Haskell/C/Perl6 code that builds the main pugs executable -- i.e. it's Pugs's internals code.
I'm really, really sorry to cause people misparsing it as the "Pugs source tree". All other subdirectories, such as t/, examples/, perl5/ ext/, doc/ and util/, remains exactly in the same licensing situation (Artistic 2.0b5/GPL) as they were. Please see the README file for the full details, as well as my public apology to chromatic.
So, to reiterate again:
Aside from the src/ directory, I am uncomfortable with using Artistic license as whole-distribution compilation copyright license, because according to TPF, that may make it illegal to distribute Darren Duncan's Rosetta.pm module (GPL2+) along with Pugs, and I may have already been guilty for doing that for the past Pugs releases, just like Ruby people may be criminal for that with their regex.c (LGPL2+).
Because of this, I still wish to disclaim my compilation copyright, which basically means there is no global license that covers all of Pugs's subdirectory contents. This does not affect any contributed code in any way, and new commits in non-src/ trees are still under the Artistic2.0b5/GPL license by default, unless explicitly marked otherwise in that subdirectory or file.
Again, sorry for the confusion raised around this matter. I wish my English was more clear and succint...
(This is a repost from pugs.blogs.com; please leave a comment there instead of on use.perl.)