With two months of development, this release features more tightly integrated
JavaScript and Perl5 code generator backends, a library interface to the Pugs
system via support for the Haskell Cabal frameworks, as well as many new tests.
After the release, the push toward 6.28.0 will begin in earnest, with the newly
specified container model and object model integrated back to the main runtime,
fleshing out support for the remaining OO features.
Again, thanks to all the lambdacamels for building this new ship with me.:)
Enjoy! /Autrijus/
Changes for 6.2.10 (r7520) - Oct 10, 2005
Feature Changes
Shared components
Support for the Haskell Cabal framework, exposing Pugs as a library to other Haskell users, paving the way for use in IDEs, as well as future Inline::Pugs and Inline::GHC modules
Adopted the code convention of expanding literal tab chars to spaces
JavaScript backend can be invoked with pugs -B JS
Perl 5 backend can be invoked with pugs -B Perl5
Pugs will now compile version ranges in use/require statements
Significant backend enhancements; see below
$?PUGS_BACKEND can be used to tell which runtime is in use
exec emulated partially on Win32
JavaScript backend
Passes 91% of the main test suite including TODO failures
Integrated with MetaModel 1.0
Faster code generation, taking advantage of -CPerl5 output.
Switched to continuation passing style CPS to properly support return, ?CALLER_CONTINUATION, coroutines, and sleep
Improved support for binding and autodereferentiation
Initial support for multi subs
Initial support for symbolic dereferentiation
List construction no longer creates new containers
Miscellaneous performance improvements
Named-only arguments +$x and ++$x cant be passed positionally anymore
Parts of the Prelude can be written in Perl 5 now to improve performance
Perl 5-like regular expressions mostly working
Proper UTF-8 handling
Support for monkey-but $foo but {...}
Support for $CALLER:: and $OUTER::
Support for lazy {...} blocks for delayed evaluation
Support for temp and let declarations
Support for array and hash autovivification
Support for array and hash slices
Support for evaluating expressions in the PIL2JS shell:e <exp>
Support for junctions
Support for loading JSAN modules by using use jsan:Module.Name
Support for lvalue subroutines foo =...
Support for slurpy hashes in subroutine signatures
Support for the Proxy class not yet user-visible
Support for the eqv operator
Using for with only one element to loop over works now
int works correctly on special values like Inf or NaN now
substr returns a r/w proxy: substr$str, $pos, $len = $replacement
Perl 5 backend
Passes 33% of the main test suite including TODO failure
Verily. However, I think a key parts of of the fun is a solid expectation of making a difference in the world, while the current result being immediately useful (for learning and/or production).
A project generally regarded as pointless will likely have a difficult time finding contributors that sees this kind of fun in it.
Thank-you for your kind words and support... I really appreciate it. However, there is a few point I'd like to clarify:
Pugs and Parrot complement each other. Pugs is a parser, evaluator and eventually compiler of the Perl 6 language, and Parrot is a virtual machine for a compiler to target. As they are totally different things, the time taken to implement them could probably not be directly measured or compared.
Haskell is an excellent language to implement parsers and compilers. If I were to use Perl 5 to implement Pugs, it would take much more time and result in far more lines of code, which would probably hinder people's help -- it takes only a few hours to learn Haskell in order to hack Pugs, so I do not consider a major entry barrier.
That said, Perl 6 will become a much more language to write parsers and compilers in, so the eventual rewrite in Perl 6 should be much easier than implementing it in Perl 5.
The Perl 6 interpreter will not be recoded in Perl 6 -- the compiler will.:-)
I would not have worked on Perl 6 if it will break my 111 CPAN modules. So yes, we'll find a way to run CPAN.
Perl 6 also eliminated a large amount of @{[]} unreadable code -- see Pugs's modules/ and ext/ directory for examples that may be compared directly with equivalent Perl 5 modules.
There are several projects underway to migrate existing Perl 5 code to Perl 6 and Parrot, so no-one will be forced to give up Perl 5 and CPAN when it arrives. Indeed, were it not for CPAN, I think many people (me included) would stay around to work with Perl 6.
As to fresh mindshare, Perl 6's optional strong typing and cleaner OO semantics does draw new people to join. It is also worth noting that Perl 6 has fewer precedence levels then Perl 5, and the operators are more streamlined as well.
Well, yes, that's what RT::Integrate::SVN, RTx::Foundry and other related RT extensions on CPAN is for. We are also working on a better, more simplified UI for project development (ala Jira, Trac.):-)
RT is an enterprise-grade ticketing system which enables a group of people to intelligently and efficiently manage tasks, issues, and requests submitted by a community of users. It is used by Fortune 100 companies, government agencies, educational institutions, and development organizations worldwide.
I have created a Windows port of RT, and have been maintaining it for two years now, selling support contracts for a living, as well as developing RT-Foundry, a project similar to GForge/Trac, on top of RT.
The RT-Win32 installer comes with its own Apache2, MySQL4.1, Perl 5.8.6 and Fetchmail, so you'd not need any other existing SQL server to set it up. I'd be happy if you'd give it a try.:)
However I'm keeping my eye on it. When they support changesets and distributed repositories, as well as transparent CVS support for legacy clients, I'll be first in line.
In that case, do check out the svk project, which supports distributed repositories, transparent CVS mirroring, and has an almost identical command set as Subversion.
One thing I really like about svk is that it can choose to present itself as a "single stack of revisions" monolithic system, or as a "multiple stacks, star-merged back and forth" decentralized system, or even a "shallow stack of patch chains, swapped freely" system, based on the current needs of the user.
I am implementing a darcs-compatible command set and patch tracking algorithm for svk, which should be merged to the main trunk on 0.23 or 0.24,
Also, svk interoperates with existing p4, cvs, svn (and soon arch) repositories, as you don't have to convince everybody else to use the same system.
I sincerely encourage you to play with svk. The next biweekly release (0.22), to be released next Monday, would be an excellent choice.
What's involved in translating programs? Is there a process that can
be followed to make the inevitable easier? Is there a group providing
guidelines for this already? -- Do you work in program translation?
Step up and do tell."
If I recalled correctly, the FreeBSD development tree makes heavy
use of an internal Perforce depot, which keeps in close mirror
with the public CVS tree, as seen in this status repport:
The release engineering activities for 4.6.1 are taking place on the RELENG_4_6 branch in
CVS, while the work on 5.0 DP2 is taking place in Perforce so as not to disturb ongoing
-CURRENT development.
Also, the current Perl 5 development also takes place on a Perforce
repository, with public-accessible rsync mirrors available.
What is going wrong with Linux kernel development that CVS is not sufficient?
CVS is painful to use for many common tasks required for large-sized
software projects -- its shortcoming on atomic commits, directory
versioning, copy-on-write branches, etc. are widely acknowledged.
It is a good thing that, for a relatively small software sector where
the neccessary designs are hardly well-understood, proprietary version
control systems could use its customer's funding to experiment with
advanced features. As long as nobody gets a monopoly on those ideas
(read: software patents), they create a pool of ideas that related
free software projects can learn from it -- it is really more like
a symbiosis, not antagonism.
It is all a very healthy process of ideas in the
'niche' market, first commissioned by paying customers, then
trickle down to the low-end market (think iMovie), which makes
enough people to appreciate and understand how it should work like,
and finally appears as a full-fledged free software -- and everybody
can just move forward and play with new things, proprietary or not.
The remark on lkml that the new BKL is 'pulling a Qt' is probably
right on the mark, though: The new Perl pumpking (Hugo) wishes to migrate
Perforce to Subversion, and help building the missing pieces that
people needs. No doubt that many people are doing the same thing
right now, myself included.
Of course, you mean 'Copy-protected' CDs. Non-copyrighted (public domain) CDs are probably not selled in retail stores.:)
That's about the extent of the game.
Why not just send out a press release?
Perhaps. But then, the algorithm used in Civilizations, SimCity or other highly-addictive games (except for Nethack) could probably boil down to a few bullet lists as well.
The point of a game is the experience that made the player identify with the protagonist -- a press release would be a highly ineffective way to accomplish that.
I've been using and localizing sql-ledger for a while now, and it's definitely a very extensible and easy-to-use package.
However, please Do Not use it as a remote administration / accounting tool that serves over the internet. Its place is inside the firewall.
The reasons is that it doesn't have a session control-related audits. Any user that types in http://hostname/sql-ledger/ir.pl?login=admin&path= bin/mozilla could get into the syste under the name 'admin', given the attacker knows the username "admin" (not hard), and regardless of that account's permission. indeed the same scheme is workable on any other.pl program.
You can apply This patch to fix it, if you don't worry about shared proxies.
And yes, this patch has been sent to the author. His comment was more along the line of accountants are not script kiddies, so we don't need to worry too much. That is probably reasonable, too.
The release tarball will be available from CPAN shortly:
With two months of development, this release features more tightly integrated JavaScript and Perl5 code generator backends, a library interface to the Pugs system via support for the Haskell Cabal frameworks, as well as many new tests.
After the release, the push toward 6.28.0 will begin in earnest, with the newly specified container model and object model integrated back to the main runtime, fleshing out support for the remaining OO features.
Again, thanks to all the lambdacamels for building this new ship with me. :)
Enjoy!
/Autrijus/
Changes for 6.2.10 (r7520) - Oct 10, 2005
Feature Changes
Shared components
JavaScript backend
Perl 5 backend
A project generally regarded as pointless will likely have a difficult time finding contributors that sees this kind of fun in it.
Fully agreed, although note that rewriting everything excepts the tests is an usual form of "refactoring" in the Pugs project. :-)
Perl 6 also eliminated a large amount of @{[]} unreadable code -- see Pugs's modules/ and ext/ directory for examples that may be compared directly with equivalent Perl 5 modules.
Perl 6 is waiting mainly on a Perl6 to Parrot AST compiler, and the Parrot AST itself. See this draft milestones document for details.
%hash.keys of course works, in the Rubyish fashion. It does work in Pugs now, too. :)
There are several projects underway to migrate existing Perl 5 code to Perl 6 and Parrot, so no-one will be forced to give up Perl 5 and CPAN when it arrives. Indeed, were it not for CPAN, I think many people (me included) would stay around to work with Perl 6.
As to fresh mindshare, Perl 6's optional strong typing and cleaner OO semantics does draw new people to join. It is also worth noting that Perl 6 has fewer precedence levels then Perl 5, and the operators are more streamlined as well.
The canonical link for PAR, is http://par.perl.org/. And yes, our feature set is largely a superset over perl2exe and perlapp's.
Thanks for using PAR/pp. Incidentally, it is developed by the same person as Pugs. :-)
Well, yes, that's what RT::Integrate::SVN, RTx::Foundry and other related RT extensions on CPAN is for. We are also working on a better, more simplified UI for project development (ala Jira, Trac.) :-)
RT is an enterprise-grade ticketing system which enables a group of people to intelligently and efficiently manage tasks, issues, and requests submitted by a community of users. It is used by Fortune 100 companies, government agencies, educational institutions, and development organizations worldwide.
I have created a Windows port of RT, and have been maintaining it for two years now, selling support contracts for a living, as well as developing RT-Foundry, a project similar to GForge/Trac, on top of RT.
The RT-Win32 installer comes with its own Apache2, MySQL4.1, Perl 5.8.6 and Fetchmail, so you'd not need any other existing SQL server to set it up. I'd be happy if you'd give it a try. :)
The "while" here means "at the same time that", not "whereas"."
In that case, do check out the svk project, which supports distributed repositories, transparent CVS mirroring, and has an almost identical command set as Subversion.
One thing I really like about svk is that it can choose to present itself as a "single stack of revisions" monolithic system, or as a "multiple stacks, star-merged back and forth" decentralized system, or even a "shallow stack of patch chains, swapped freely" system, based on the current needs of the user.
I am implementing a darcs-compatible command set and patch tracking algorithm for svk, which should be merged to the main trunk on 0.23 or 0.24,
Also, svk interoperates with existing p4, cvs, svn (and soon arch) repositories, as you don't have to convince everybody else to use the same system.
I sincerely encourage you to play with svk. The next biweekly release (0.22), to be released next Monday, would be an excellent choice.
Please go away, troll.
I have given a presentation in OSCon 2002 and a paper in ICOS 2002 that addressed these problems in the context of Perl-based web applications. The paper is also available in Chinese.
Also, the current Perl 5 development also takes place on a Perforce repository, with public-accessible rsync mirrors available.
CVS is painful to use for many common tasks required for large-sized software projects -- its shortcoming on atomic commits, directory versioning, copy-on-write branches, etc. are widely acknowledged.
It is a good thing that, for a relatively small software sector where the neccessary designs are hardly well-understood, proprietary version control systems could use its customer's funding to experiment with advanced features. As long as nobody gets a monopoly on those ideas (read: software patents), they create a pool of ideas that related free software projects can learn from it -- it is really more like a symbiosis, not antagonism.
It is all a very healthy process of ideas in the 'niche' market, first commissioned by paying customers, then trickle down to the low-end market (think iMovie), which makes enough people to appreciate and understand how it should work like, and finally appears as a full-fledged free software -- and everybody can just move forward and play with new things, proprietary or not.
The remark on lkml that the new BKL is 'pulling a Qt' is probably right on the mark, though: The new Perl pumpking (Hugo) wishes to migrate Perforce to Subversion, and help building the missing pieces that people needs. No doubt that many people are doing the same thing right now, myself included.
Of course, you mean 'Copy-protected' CDs. Non-copyrighted (public domain) CDs are probably not selled in retail stores. :)
That's about the extent of the game.
Why not just send out a press release?
Perhaps. But then, the algorithm used in Civilizations, SimCity or other highly-addictive games (except for Nethack) could probably boil down to a few bullet lists as well.
The point of a game is the experience that made the player identify with the protagonist -- a press release would be a highly ineffective way to accomplish that.
However, please Do Not use it as a remote administration / accounting tool that serves over the internet. Its place is inside the firewall.
The reasons is that it doesn't have a session control-related audits. Any user that types in http://hostname/sql-ledger/ir.pl?login=admin&path= bin/mozilla could get into the syste under the name 'admin', given the attacker knows the username "admin" (not hard), and regardless of that account's permission. indeed the same scheme is workable on any other .pl program.
You can apply This patch to fix it, if you don't worry about shared proxies.
And yes, this patch has been sent to the author. His comment was more along the line of accountants are not script kiddies, so we don't need to worry too much. That is probably reasonable, too.