This Week in Perl 6, April 12 - 19, 2005
All~
Sadly, a slip of the mouse caused me to delete a partially completed summary, so I am going to push ahead on the rewrite without a witty intro. Feel free to make one up for yourself involving stuffed animals, musicians, and dinner.
Perl 6 Compilers
Pugs 6.2.0
Autrijus released Pugs 6.2.0, marking the first major milestone for Pugs. This includes most of the control flow primitives of Perl 6 and is a testament to the solid work that all of the “lambdacamels” have put in.
CGI.pm and Multibyte Characters
BÁRTHÁZI András had trouble encoding and decoding multibyte characters in CGI.pm. This led to a general discussion of how to avoid such characters in URLs as well as when to call chr
.
Auto Currying?
Matthew D. Swank wondered if he really needed an extra set of parens to call a function generator and its generated function simultaneously. Autrijus told him that yes he did as Perl 6 is not quite Haskell yet.
Case Insensitive P5 Regex
BÁRTHÁZI András wanted to use the :i
switch on P5 regexes. Autrijus implemented it, but Larry noticed that this introduced a flag ordering dependency. As a result, the new way to supply flags to a Perl 5 regex is rx:P5<imsxg>/.../
.
Cookbook Ettiquette
Marcus Adair wondered if there were rules of etiquette he should obey when writing examples for the Perl 6 Cookbook. In particular, should examples run and be only one file? Ovid suggested that one file was a good idea, but was open to contrary arguments.
Austrian Parrot/Pugs Hackathon
Thomas Klausner announced that on June 9-10 in Vienna, Austria there would be a Hackathon featuring the collective might of Autrijus, Chip, Leo, and more. When that much brain power gets together only two things can happen: much hacking and much drinking.
Encoding Illegal Byte Sequences in Strings
BÁRTHÁZI András wanted to know if he could encode an illegal byte sequence in a string. Much discussion ensued, but Larry promised that it would be possible.
Test::TAP
Yuval Kogman announced the release of two new modules to CPAN that provide Pugs smoke HTML.
- Announcement
- <a href=“http://nothingmuch.woobling.org/pugs_test_status/"Smoke ‘em if You Got ‘em
Quoting Constructs
Roie Marianer noticed that Pugs was missing some quoting constructs. He implemented them. This led to discussion of interpolation and corner cases. As usual, Larry provided both answers and questions. Roie produced a patch which Autrijus applied.
Code Block as Argument
Stevan Little found some bugs with passing a code block to a function in Pugs. Warnock applies.
push
, pop
, shift
, and unshift
on Infinite Lists
Stevan Little has been playing with push
, pop
, shift
, and unshift
on infinite lists. He thinks he has found a bug, although maybe he just hasn’t let it run long enough. Larry provided answers regarding the correct semantics.
cd
Issue in Makefile
Jonathan Worthington noticed a Win32 issue in the Makefile. He can point to the offending line in the autogenerated Makefile, but that is not where the fix belongs. Warnock applies.
Hyperoperator Tests
David Christensen provided a patch for hyperoperators. Unfortunately, character set transcodings ate his patch.
shift
Oddity
Stevan Little noticed that shift
did not act like pop
. Larry noted that the examples were not semantically valid, but even so, Pugs should not freeze.
Pugs SEGV
Aaron Sherman managed to make Pugs segfault. Autrijus thinks someone might already have fixed it.
Parrot
Dynamic Perl 2
William Coleda provide the second of his patches to move Perl*PMC
out of the core. Leo applied it.
SVN Revision in Bug Reports
Jens Rieks reported a difficult-to-reproduce bug. This caused Leo to pine for having the SVN revision in the bug report. Brent “Dax” Royal-Gordon commented that this was a good idea. Jens Rieks offered to implement it.
Win32 SDL
Jerry Gay tried to get SDL working on Windows. There was some give and take, but in the end, it works.
-l/path/to/icu
Andy Dougherty provided a patch making Configure.pl provide a link flag to ICU headers if provided. Jens Rieks applied it.
Svk and SVN issues
Roger Hale noticed a small problem with parrotcode.org. Robert Spier fixed it.
nci.t Failure Under MinGW
François Perrad fixed a MinGW test failure. Leo applied the patch.
Trailing Space with ${LD_OUT}
Andy Dougherty fixed an old bug with LD_OUT
having trailing space. Leo applied the patch.
Warnings Cleaning
Jerry Gay cleaned some warnings from the source tree. Leo applied most of the patch.
Win32 Path Nit
Philip Taylor fixed a small Win32 path issue. Leo applied the patch.
cmp
Op Bug
Leo found a bug in cmp_p_i_ic
opcodes.
SDL Uninitialized Variable
Nick Glencross provided a patch fixing an uninitialized variable in SDL. Leo applied the patch.
PerlScalar
Morph Bug
Nicholas Clark found a bug in morph for PerlScalar
. Leo verified that it was a bug. Nick Glencross offered to fix it.
Infix Method Change
Leo threatened to continue with his plan to simplify infix methods. No one objected.
Used Before Set Warning?
Nick Glencross wanted a warning for using unset variables in imcc. Leo pointed out that this was not as simple as one might like.
Remove Temp Files for Win32 make clean
Jerry Gay provided a patch removing more files under make clean
in Win32. Warnock applies.
Fix Typos
Nick Glencross provided a patch which fixes some typos in docs. chromatic applied it with a few extra tweaks.
Parrot Security
BÁRTHÁZI András wondered about the general security mechanisms that Parrot would provide. Dan assured him that security would be a fundamental part of Parrot. He also provided a sketch of the Parrot security model which sparked some discussion.
Debian ARM Failure
Falls Huang reported a build failure on Debian-ARM. Leo provided a pointer in the right direction.
Missing Make Target
François Perrad notice that make src/revision.c
couldn’t handle .svn/entries. Jens Rieks fixed the problem.
JIT Generation Help
Adam Preble put out a call for some general advice on understanding Parrots JIT. Leo provided some general advice.
“Attribute not found” Exception
Cory Spencer provide a patch changing getattribute
to throw a real exception. Jens applied the patch with a few tweaks.
stderr during bc
Configure Step
Jerry Gay provided a patch to suppress stderr during the bc
configure step. There was some debate on how to make this cross platform. I don’t think there was a resolution.
string.c Segfault
Nick Glencross provided a patch fixing a few segfaults in string.c. Jens applied it.
MSWin32 ICU Linkage
Ron Blaschke added ICU to the linkage for Win32. Jens applied the patch.
Win32 Readme Updates
Ron Blaschke updated the README.win32 document. chromatic applied the patch.
Big Changes Afoot
Our pumpking Leo has some big changes underway and asked someone else to man the pumps for a little while. Jens volunteered to be someone.
More Registers Make Dan’s Code less Unhappy
Dan has some very ugly generated code. It takes a LONG time to compile. Leo sped it up by giving Parrot more registers.
.const
Weirdness
Nick Glencross found some weirdness with .const
in IMCC. Warnock applies.
PMC Help
Bloves hoped for a pointer on PMC writing. Leo provided a helpful pointer.
&&
in Commands is Not Cross Platform
Jens noticed that &&
in commands causes problems on some platforms. Michael G. Schwern fixed it and Jens applied the patch.
MMD Migration
Leo continued his slow but steady migration to a more MMD-like world.
Make Config Info Available at Runtime
Leo wants to have useful config information available at runtime. Steven Philip Schubiger offered to try.
Remove Old Files
Leo opened a ticket for removing some outdated files.
Small Spelling Errors
Steven Philip Schubiger provided a patch fixing some small spelling errors. He worried that perhaps he picked nits needlessly. I don’t think so, but Warnock applies.
Win32 ICU Error
François Perrad fixed a small mistake in the naming of icudt.lib. chromatic applied the patch.
Drunken Parrot
Cory Spencer has succeed in making LISP run on Parrot and uncovered a few GC bugs in the process, impressing everyone.
Python on Parrot
Kevin Tew wondered about the state of Pyrate. Sam Ruby provided a general explanation.
C => Parrot Compiler
Philip Taylor posted a few questions about Parrot for help with Carrot, his C to Parrot Compiler. Leo and Chip provided a few answers.
Perl 6 Language
Yet Another Perl Conference, North America
Gerard Lim announced YAPC::NA with much information and useful links.
Subscripts as Objects
Yuval Kogman threw out the idea of using subscripts as objects. Larry worried that this would hurt speed a little too much.
Statement Modifiers and Scopes
Paul Seamons posted some examples involving local scopes and statement modifiers. Larry decided that only curlies will delimit scopes, so as not to surprise too many people.
Whitespace in heredocs
Juerd posted a question from the p6cookbook asking about spaces v. tabs. Larry took a guess as to the context and pointed to A2 for info.
in \s
, <?ws>
, <>
Juerd wondered what sort of character classes matched nonbreaking spaces. Larry replied that they did, but postulated a <bws>
class for breaking whitespace.
trim()
and words()
Marcus Adair wondered about trim
and words
and if they actually existed. It seems that trim
will exist although words might be <<$string>>
.
<[]>
Ugly and Hard to Type
Some people are complaining that character classes are difficult to type. The design team considers this a feature as character classes do not handle internationalization well.
Comparing Floats with Fudge
Marcus Adair wants an easy way to compare floats with a fudge factor. Larry seemed to feel that ~~
could use more DWIMery.
$*CWD
vs cwd()
and chdir()
Michael G. Schwern wanted a simple tied variable interface to $*CWD
. This is apparently a sensitive topic. Much discussion ensued of changing directory in bizarre circumstances. It looks like Michael’s suggestion will not reach the core, although it looks like a fairly simple module.
Junction Precedence Error
Brad Bowman noticed an error in some examples involving junction precedence. Larry confirmed the error. Patrick R. Michaud fixed it.
Spelling Mistake in A06
Steven Philip Schubiger found a spelling error in A06. Patrick R. Michaud applied the patch.
<[a-z]>
to Become <[a..z]>
Larry decided that the range operator in character classes should change to ..
. Much discussion ensued. I like it.
Tainted Variables
BÁRTHÁZI András wondered if he could mark variables as tainted. Luke Palmer showed him a way.
Re-declarable temp
Variables
Aaron Sherman wants a way to re-declare variables without warnings. He suggested temp
. Larry suggested ok
to turn off a warning, but doesn’t think Aaron’s feature is really necessary. There’s no official ruling yet, I think.
Hyper Slices
David Christensen wants to use hyper slices as a convenient way of dealing with multidimensional data structures. Luke Palmer showed him how.
Hyperoperator Corner Case
David Christensen wondered how hyperoperators know what to pad with when one side is not long enough. The answer appears to be slightly ill-defined magic, especially when considering subtraction or division.
Fine Granularity Sleeping/Events
Gaal Yahas wants to have an alarm
function that takes a double (for systems with sub-second timing promises). He also wants a version that takes a callback (possibly called later
). Warnock applied.
Junctions in Subscripts
David Christensen wants junctions in subscripts to autothread. Luke Palmer commented that they might. I think they do.
Quote Operators and Interpolation
Roie Marianer had a few questions about how interpolation and quote operators would work. Larry and Juerd provided some answers. Larry’s short version: “We pretend we’re a top-down parser even if we aren’t”.
Junctions with Adverbs
David Christensen wants to use adverbs to supply exceptions to junctions. Luke Palmer told him that it doesn’t work that way.
++
Evaluation Order
Lam Fayland found an oddity in Pugs evaluation order for ++
. Warnock applies.
Statement Modifiers for Setting Variables
Dave Whipp wants to use statement modifiers to restrict the scope for variables in his print
statements. Larry provided a different technique.
Tie Hashes
Ingo Blechschmidt wondered what syntax to use for tying hashes. Larry began to muse aloud.
The Usual Footer
Posting via the Google Groups interface does not work. To post to any of these mailing lists please subscribe by sending email to perl6-internals-subscribe@perl.org
, perl6-language-subscribe@perl.org
, or perl6-compiler-subscribe@perl.org
. If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl. You might also like to send feedback to ubermatt@gmail.com.
Tags
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub