2018.51 Principally Designed

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:

And another batch of one-liner Advent posts by Andrew Shitov:

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

Meanwhile on Twitter

Meanwhile on Facebook

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modules:

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.

2 thoughts on “2018.51 Principally Designed

  1. 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?

Got something to note?