Day 191/192 (r6310): Shop, Kontent, JS/CPS, Underscores.

autrijus on 2005-08-17T19:45:14

In the last two days, four people orderd T-shirts from the Pugs Store, a fact that made me unreasonably happy. :-)

mugwump's cute "Powered by Ph.D." design joined the store, along with a metamodel raglan shirt. We are bouncing a few new ideas in #perl6, most of which related to a hypothetical WebService::CafePress module (eg. per-release shirts that are available for a very limited time). This leads to conversations like:

<kolibrie> autrijus: update the AUTHORS shirt every release, it can lag some
<kolibrie> but WebService::CafePress would be good
* autrijus ponders a t-shirt that reflects the sky every minute
* kolibrie knows autrijus is crazy now
<autrijus> that would not be a news to many people here :)

Okay, enough shop talk. Today I succeeded in getting brentdax's Kontent running -- the default page looks elegant indeed. Thanks to kolibrie for reporting the Kontent failure with Perl 5 binding; it turns out that the perl5 glue was casting POPi as bool, causing a method call to only succeed if its CODE pointer address is an odd number! This weak typing thing is really annoying... Fortunately it's all fixed now.

Our new committer, Yiyi "xinming" Hu, reported that method $obj didn't call $obj.method as specced in the Synopsis. I fixed it promptly.

As an added bonus, I fixed the long-standing parse glitch that makes class Foo { syntax'error } report the error at the outer block level, instead of where the error happened. This should simplify debugging OO code a lot.

iblech finished converting PIL2JS to use the much faster -CPerl5, cutting down compile time by 50%. However, the CPS transform made the runtime 2x slower, so the end result for make jssmoke is about equal before and after the conversion. putter suggested some trampoline techniques to speed things up, so there may still be room for improvement.

iblech also made DrIFT.Perl5 emit Math::BigInt objects for NaN and Inf, so Perl6's numeric semantic can be correctly duplicated in Perl 5. As a result to the CPS conversion, various new features are working in JavaScript, including a true lexical $_; $CALLER::_ follows naturally.

putter added a link to mugwump's Wellinton.pm Perl6 talk in docs/talks/README.

Limbic_Region reported that 1_000_000.00_00 was not parsed, and I implemented it right away. Curiously, that broke some code, because dot is a method invocation now, and 1.e10 can take two meanings. An ongoing p6l thread is triggered to resolve this issue.

fglock cleared up much of the boxed/unboxed/reference semantics in the Perl 5 runtime implementation, and reimplemented the Scalar container to autoderef calls such as $x[2]. It's really exciting to see Pugs inch closer to the day of Perl6-on-perl5...


cameleopard

mr_bean on 2005-09-04T05:23:36

Whenever I see the word 'lambdacamel' I think of the cameleopard (the kirin in Chinese and Japanese). With the appearance of a camel and the skin of a leopard, the cameleopard was either a fantastic animal or the giraffe. Here is an image by the English wood engraver Thomas Bewick, which emphasizes the camel connection:
http://liesl.sharecom.ca/bewick/quadrupeds/9039051.html

With perl 6 being a transformation of the camel into some other kind of beast, the cameleopard seems an appropriate image for the language.