Ralph Mellor started an interesting discussion about the principles people have adopted for the design of their programming language. Recommended reading. And he initiated an at least equally interesting discussion on /r/ProgrammingLanguages about Jonathan Worthington‘s article titled: Racing to writeness to wrongness leads. As if there wasn’t already good stuff to read in this time of year!
Tis the Time of Year
Another batch of regular Advent posts:
- Testing your Times Tables by Ludo Tolhurst-Cleaver.
- Building a flexible grammar by Moray Jones.
- Web server from scratch with
Cro
andDebian
by Ramiro Encinas (Facebook comments). - Designing a (little) Spacecraft by Alexander Kiryuhin.
- Building a (little) Spacecraft by Alexander Kiryuhin.
- Checking Your List Twice by Mark Swayne (Reddit comments).
- Compiling our way to happiness by Carl Mäsak.
And another batch of one-liner Advent posts by Andrew Shitov:
- Solving the Problem 34 of Project Euler
- What’s behind
0.1 + 0.2
- How many days in the century match the condition? (Reddit, Facebook comments)
- Another solution of yesterday’s problem (Reddit comments)
- Playing with Fibonacci numbers
- Distance between two points
- Playing with prime numbers (Reddit comments)
Improve Perl 6 Networking Support
Ben Davies has submitted a request for a grant to improve the networking support of Perl 6. Comments welcome!
last / LAST on whenever
A feature sometimes felt sorely missed: Timo Paulssen implemented the last
statement (and the LAST
phaser) on whenever
blocks. This now gives a more idiomatic way to get out of the implicit loop in a whenever
block.
Byte-oriented read/write methods
Using the nqp::
functions that Stefan Seifert has implemented using Jonathan Worthington’s design from a few months ago, Elizabeth Mattijsen has implemented the associated functions in Perl 6:
blob8.read-int8/16/32/64/128
for reading signed integers, blob8.read-uint8/16/32/64/128
for reading unsigned integers and blob8.read-num32/64
for reading IEEE floating point values (full documentation).
And of course there are also counterparts for writing: buf8.write-int8/16/32/64/128
for writing signed integers, buf8.write-uint8/16/32/64/128
for writing unsigned integers, and buf8.write-num32/64
for writing IEEE floating point values (full documentation).
All of these methods take a byte offset as the first parameter, and an optional endianness parameter for the last parameter. To indicate endianness, the Endian
enum has been created: it has three possible values: NativeEndian
(the endianness of the system Perl 6 is running on), LittleEndian
and BigEndian
. The default for the last parameter is NativeEndian
. The write-...
methods take a second parameter as the value to set.
Finally, the Kernel
class now has a endian
class method that indicates the endianness of the system on which Perl 6 is executing.
Other Core Developments
- Ticket status of past week.
- Ben Davies had his Pull Request implementing native descriptor access on sockets finally merged.
- Stefan Seifert fixed several issues related to writing binary data on big-endian systems, which affected pre-compilation on those systems.
- Jonathan Worthington has been very busy: he fixed some issues related to garbage collection and JITting and made failure to join a thread no longer a panic, but a normal exception. And he fixed a pesky issue that caused memory corruption if a type was being augmented with an additional attribute. And fixed a memory leak for long running processes such as with
cro
. And he improved the performance of simple regular expressions. - Paweł Murias fixed various issues on the Javascript backend.
- Nick Logan fixed an issue with
$*EXECUTABLE
if Rakudo was invoked with a relative path. - And many more smaller fixes and improvements.
Questions about Perl 6
- Accessing resources of a dynamically loaded module by Vadim Belman.
CompUnit :force
flag doesn’t seem to work by Richard Hainsworth.- Updating a program in a
CompUnit::PrecompilationStore
? by Richard Hainsworth. .sort()
doesn’t use overriddencmp
by mscha.- Catching up with
require
for a metamodel class by Vadim Belman. - Constraining multis and their use for selecting them by JJ Merelo.
- How does a triangular reduction on the comma operator know to make a list of all lists? by Sean.
- Can’t precompile when using some external module by JJ Merelo.
- Writable multidimensional subscript access with
AT-POS
by mscha. - Fetch the content of url gets stuck when using
Cro
orHTTP::UserAgent
by chenyf. - Obtaining the
QAST
of a Perl 6 file from another program by JJ Merelo.
Meanwhile on Twitter
- RunningRedis? by Jonathan Stowe.
- Documentation like Elixir by ryn1x.
- Excellent by りひにー.
- Proud! by Ludo Tolhurst-Cleaver.
- Starting by めしてろぼっと.
- Okinawa by magniolak.
- Thousands by The Perl Shop.
- Number of words by Fernando Correa de Oliveira.
- January 2017 by 幽夢.
- *K -> 44K by Joelle Maslak.
- Never got around by Tamara Roberson.
- All four happy by Ashe.
- IPV6 or Perl 6 first? by ホタペン.
- Seem to be different by take2.
- What it felt like by Carl Mäsak.
- Looks like a… by ryn1x.
- POD6 by JJ Merelo.
- Almost all new work in Perl 6 by Daddy December.
- Redis working again by Jonathan Stowe.
- Debut by 日暮・月乃.
- Arrive by Christmas? by Tatsuhiko Miyagawa.
- Tampered with by Shinji Kono.
- Parsing numbers by Joelle Maslak.
- Thanks David! by Simon Proctor.
- IP Comb by chenyf.
- CamelCase comb by chenyf.
- At least by Daniel Standage.
- Awesome by Kheled Mohamed.
- Non-existing nested objects by Simon Proctor.
- Is it good? by Ashe.
- But legible by George Furbish.
- Cannot remember by wata.
- Loving Perl 6 even more by JJ Merelo.
- State in Debian by Wouter Verhelst.
- The answer is Perl 6 by Mick Watson.
- Tomtit – task runner by CodeIgnition.
- Torture technique by int16h.
- Nifty feature by JJ Merelo.
- Brotherly by одишария-2-полушария.
- Unknown world by 夕は”.
- Errata link by brian d foy.
- You can
.fmt
by Joelle Maslak. - 6pad by MOONGIFT.
- 6pad again by ふるかわ ゆたろ ほぼぼっと.
- A break from tradition by Jonathan Stowe.
- Dreamer by Цифругл.
- Tryout your first Perl 6 web app by The Perl Shop.
Meanwhile on Facebook
- Perl at FOSDEM by Wendy van Dijk.
- Weirdness doesn’t stop by Andrew Shitov.
- Perl 6 Development Fund by Wendy van Dijk.
Perl 6 in comments
- Enjoy reading by xisukar.
- Not ossified by snapdangle.
- Crux of your joke by snapdangle.
- Any code can be an infix by b2gills.
await
vsasync
by Ralph Mellor.- See wrong right by Ralph Mellor.
- Static type system? by Ralph Mellor.
- Not fun by Reini Urban.
- actors and monitors by Ralph Mellor.
- Static vs dynamic by Ralph Mellor.
- Rant by Ralph Mellor.
Perl 6 Modules
New Modules:
- StrictClass by Martin Barth.
- ASN::BER by Alexander Kiryuhin.
- Pod::Load by JJ Merelo.
- Tomtit by Alexey Melezhik (Reddit comments).
Updated Modules:
- Term::Choose, Term::TablePrint by Matthäus Kiem.
- Uzu by Sam Morrison.
- Chart::Gnuplot by Itsuki Toyota.
- IoC, Bailador by Martin Barth.
- PDF::Class by David Warring.
- Math::FFT::Libfftw3 by Fernando Santagata.
- Redis by Jonathan Stowe.
Winding Down
With lots of nice stuff to read, yours truly hopes you will have time enough to prepare for the holiday season.
In the coming weeks, the Perl 6 Weekly will most likely already be published on Sunday night (CET) rather than on Monday: publishing in the evening of the 24th and the 31st of December is not only in conflict with the schedule of yours truly, but probably also with most of the readers of the Perl 6 Weekly.
Please change the color of the links so that they are visibly distinct from the normal text. As is I do not know where should I point the mouse cursor. :-[
I’m not sure how to do that easily: in my browser (Safari) the links are underlined, as from a UI point of view, especially wrt to visually challenged people, that works better than different colour schemes. Are you saying the links are not underlined in your browser?