The SF Perl Raku Study Group, 6/30 at 1pm PDT

2024-06-28 Thread Joseph Brenner
>From "Merge and the Strong Minimalist Thesis" by Noam Chomsky, et. al.
(2023):

"Your knowledge of language is *infinite*, but your memory is *finite*.
Your knowledge of language therefore can't be just a list of memorized
sentences.  A central component of any theory of language, then,
involves generating an infinity of sentences with finite resources.
>From a finite set of atomic elements, *lexical items* (roughly but not
exactly words) composed of irreducible linguistic features, the
syntax must build an infinite array of hierarchically structured
expressions interpretable at the 'meaning' interface and available for
externalization at the 'form' (sound/sign) interface, the
so-called basic property of language (Berwick and Chomsky 2016)."


The Raku Study Group

June 30th, 2024   1pm in California, 8pm in the UK

An informal meeting: drop by when you can, show us what you've got,
ask and answer questions, or just listen and lurk.

Perl and programming in general are fair game, along with Raku,

Zoom meeting link:

https://us02web.zoom.us/j/86005169074?pwd=hfqkU7o2hZxoZ45gjIiCQYbXekx26s.1

Passcode: 4RakuRoll

RSVPs are useful, though not needed:

https://www.meetup.com/san-francisco-perl/events/301925389/?slug=san-francisco-perl=301656837=true


The SF Perl Raku Study Group, 12/6 at 1pm PDT

2020-12-02 Thread Joseph Brenner
Gregory Corso's "The Poet's Choice": When
confronted by two alternatives, choose both.

The Raku Study Group.

December 6th, 2020  1pm  in California, 9pm in the UK

Zoom meeting link:
  https://us02web.zoom.us/j/89496477711?pwd=aUdqa3FSdGZMNFBnR1hNbzdsbkZsUT09
Passcode: 4RakuRoll

RSVPs are useful, though not needed:
  https://www.meetup.com/San-Francisco-Perl/events/274951937/


Re: PCRE -> Perl 6 RE

2020-02-18 Thread Paul Procacci
Right,

I'm going with bug.

https://github.com/rakudo/rakudo/issues/2624

It looks like there's some discussion about dropping Perl5 regex support
from the engine.
I didn't want to translate this by hand as there's too many regexes within
this source file to do so by hand (I lean on the Perl5 adverb) ... and was
hoping someone get frustrated enough w/ Raku's perl5 regex implementation
that rolled their own.  ;(

Thanks Brad,
Paul

On Tue, Feb 18, 2020 at 11:56 PM Brad Gilbert  wrote:

> The \p{L} syntax is done by using :L inside of <> instead
>
> /\p{L}/
> /<:L>/
>
> You can combine them
>
> /[\p{L}\p{Z}\p{N}]/
> /<:L + :Z + :N>/
>
> Character classes are also done inside of <>
>
> /[_.:/=+\-@]/
> /<[_.:/=+\-@]>/
>
> They of course can also be combined with the previous discussed feature.
>
> /[\p{L}\p{Z}\p{N}_.:/=+\-@]+/
> /<:L + :Z + :N + [_.:/=+\-@] >+/
>
> So that is the translation of your regex.
>
> ---
>
> It might be considered a bug that you can't just use :P5, as your regex
> works just fine in Perl5.
>
> On Tue, Feb 18, 2020 at 10:03 PM Paul Procacci 
> wrote:
>
>> Hey Guys,
>>
>> I've got a bunch of source files with PCRE's like the following:
>>
>> [\p{L}\p{Z}\p{N}_.:/=+\-@]+
>>
>> I have a program that generates other perl6 source files, by way of
>> reading the initial source files.
>> It was my intention to simply pass along this regex to the resulting
>> output file for use in subset's like the following:
>>
>> subset ThisType of Str where * ~~ m:P5/[\p{L}\p{Z}\p{N}_.:/=+\-@]+/;
>>
>> I was going to at first hope add a PCRE adverb of sorts but that doesn't
>> exist.
>> I then was going to stick the Perl5 adverb on it ... but again no luck as
>> it pukes on the escaped p's.
>>
>> Is there anything smart enough to translate these tokens into either:
>>
>> a) perl5 syntax for use with the Perl5 adverb or
>> b) perl6 syntax for use with built-in perl6 re's.
>> c) A module that anyone's familiar with that isn't publish or
>> d) I'm simply SOL?
>>
>> Thanks,
>> Paul
>>
>> --
>> __
>>
>> :(){ :|:& };:
>>
>

-- 
__

:(){ :|:& };:


Re: PCRE -> Perl 6 RE

2020-02-18 Thread Brad Gilbert
The \p{L} syntax is done by using :L inside of <> instead

/\p{L}/
/<:L>/

You can combine them

/[\p{L}\p{Z}\p{N}]/
/<:L + :Z + :N>/

Character classes are also done inside of <>

/[_.:/=+\-@]/
/<[_.:/=+\-@]>/

They of course can also be combined with the previous discussed feature.

/[\p{L}\p{Z}\p{N}_.:/=+\-@]+/
/<:L + :Z + :N + [_.:/=+\-@] >+/

So that is the translation of your regex.

---

It might be considered a bug that you can't just use :P5, as your regex
works just fine in Perl5.

On Tue, Feb 18, 2020 at 10:03 PM Paul Procacci  wrote:

> Hey Guys,
>
> I've got a bunch of source files with PCRE's like the following:
>
> [\p{L}\p{Z}\p{N}_.:/=+\-@]+
>
> I have a program that generates other perl6 source files, by way of
> reading the initial source files.
> It was my intention to simply pass along this regex to the resulting
> output file for use in subset's like the following:
>
> subset ThisType of Str where * ~~ m:P5/[\p{L}\p{Z}\p{N}_.:/=+\-@]+/;
>
> I was going to at first hope add a PCRE adverb of sorts but that doesn't
> exist.
> I then was going to stick the Perl5 adverb on it ... but again no luck as
> it pukes on the escaped p's.
>
> Is there anything smart enough to translate these tokens into either:
>
> a) perl5 syntax for use with the Perl5 adverb or
> b) perl6 syntax for use with built-in perl6 re's.
> c) A module that anyone's familiar with that isn't publish or
> d) I'm simply SOL?
>
> Thanks,
> Paul
>
> --
> __
>
> :(){ :|:& };:
>


PCRE -> Perl 6 RE

2020-02-18 Thread Paul Procacci
Hey Guys,

I've got a bunch of source files with PCRE's like the following:

[\p{L}\p{Z}\p{N}_.:/=+\-@]+

I have a program that generates other perl6 source files, by way of reading
the initial source files.
It was my intention to simply pass along this regex to the resulting output
file for use in subset's like the following:

subset ThisType of Str where * ~~ m:P5/[\p{L}\p{Z}\p{N}_.:/=+\-@]+/;

I was going to at first hope add a PCRE adverb of sorts but that doesn't
exist.
I then was going to stick the Perl5 adverb on it ... but again no luck as
it pukes on the escaped p's.

Is there anything smart enough to translate these tokens into either:

a) perl5 syntax for use with the Perl5 adverb or
b) perl6 syntax for use with built-in perl6 re's.
c) A module that anyone's familiar with that isn't publish or
d) I'm simply SOL?

Thanks,
Paul

-- 
__

:(){ :|:& };:


Re: Help with Perl 6 script

2019-08-11 Thread Eliza

me either. no error happens.

在 2019/8/10 9:30, William Michels via perl6-users 写道:

Spoiler alert: the Perl6 code you posted works with no errors on my
Perl6 install.


Re: Help with Perl 6 script

2019-08-09 Thread William Michels via perl6-users
Hi Rui, Have you considered just installing Perl 6 ?

https://rakudo.org
https://www.perl6.org

Spoiler alert: the Perl6 code you posted works with no errors on my
Perl6 install.

Best Regards, Bill.



On Thu, Aug 8, 2019 at 1:07 PM Rui Fernandes  wrote:
>
> Greetings
>
> I have this Perl 6 script from Rosetta, which I wanted to run on Perl 5 (due 
> to the Active Sate Perl and App version that I have). However, several syntax 
> errors appear given the difference (some) in language.Here's the script:
>
> ---
>
> # Simple Vector implementation
> multi infix:<+>(@a, @b) { @a Z+ @b }
> multi infix:<->(@a, @b) { @a Z- @b }
> multi infix:<*>($r, @a) { $r X* @a }
> multi infix:(@a, $r) { @a X/ $r }
> sub norm { sqrt [+] @_ X** 2 }
>
> # Runge-Kutta stuff
> sub runge-kutta() {
> return -> \t, \y, \δt {
> my $a = δt * yp( t, y );
> my $b = δt * yp( t + δt/2, y + $a/2 );
> my $c = δt * yp( t + δt/2, y + $b/2 );
> my $d = δt * yp( t + δt, y + $c );
> ($a + 2*($b + $c) + $d) / 6;
> }
> }
>
> # gravitational constant
> constant G = 6.674e-11;
> # astronomical unit
> constant au = 150e9;
>
> # time constants in seconds
> constant year = 365.25*24*60*60;
> constant month = 21*24*60*60;
>
> # masses in kg
> constant $ma = 2e30; # Sun
> constant $mb = 6e24; # Earth
> constant $mc = 7.34e22;  # Moon
>
> my  = runge-kutta my  = sub ( $t, @ABC ) {
> my @a = @ABC[0..2];
> my @b = @ABC[3..5];
> my @c = @ABC[6..8];
>
> my $ab = norm(@a - @b);
> my $ac = norm(@a - @c);
> my $bc = norm(@b - @c);
>
> return [
> flat
> @ABC[@(9..17)],
> map G * *,
> $mb/$ab**3 * (@b - @a) + $mc/$ac**3 * (@c - @a),
> $ma/$ab**3 * (@a - @b) + $mc/$bc**3 * (@c - @b),
> $ma/$ac**3 * (@a - @c) + $mb/$bc**3 * (@b - @c);
> ];
> }
>
> loop (
> my ($t, @ABC) = 0,
> 0, 0, 0, # Sun position
> au, 0, 0,# Earth position
> 0.998*au, 0, 0,  # Moon position
> 0, 0, 0, # Sun speed
> 0, 2*pi*au/year, 0,  # Earth speed
> 0, 2*pi*(au/year + 0.002*au/month), 0# Moon speed
> ;
> $t < .2;
> ($t, @ABC) »+=« (.01, dABC($t, @ABC, .01))
> ) {
> printf "t = %.02f : %s\n", $t, @ABC.fmt("%+.3e");
> }
>
>
> ---
>
> I'm having problem specially in the "multi infix" and even in the "norm" sub 
> routine. The problem is that I do not understand the construction of these in 
> Perl 5 (otherwise, I would translate this easely, and I wouldn't be asking 
> for help...)
>
> Any help is apreciated.
>
> Clear skies
>
> Rui Fernandes


Help with Perl 6 script

2019-08-08 Thread Rui Fernandes
Greetings

I have this Perl 6 script from Rosetta, which I wanted to run on Perl 5
(due to the Active Sate Perl and App version that I have). However, several
syntax errors appear given the difference (some) in language.Here's the
script:

---

# Simple Vector implementation
multi infix:<+>(@a, @b) { @a Z+ @b }
multi infix:<->(@a, @b) { @a Z- @b }
multi infix:<*>($r, @a) { $r X* @a }
multi infix:(@a, $r) { @a X/ $r }
sub norm { sqrt [+] @_ X** 2 }

# Runge-Kutta stuff
sub runge-kutta() {
return -> \t, \y, \δt {
my $a = δt * yp( t, y );
my $b = δt * yp( t + δt/2, y + $a/2 );
my $c = δt * yp( t + δt/2, y + $b/2 );
my $d = δt * yp( t + δt, y + $c );
($a + 2*($b + $c) + $d) / 6;
}
}

# gravitational constant
constant G = 6.674e-11;
# astronomical unit
constant au = 150e9;

# time constants in seconds
constant year = 365.25*24*60*60;
constant month = 21*24*60*60;

# masses in kg
constant $ma = 2e30; # Sun
constant $mb = 6e24; # Earth
constant $mc = 7.34e22;  # Moon

my  = runge-kutta my  = sub ( $t, @ABC ) {
my @a = @ABC[0..2];
my @b = @ABC[3..5];
my @c = @ABC[6..8];

my $ab = norm(@a - @b);
my $ac = norm(@a - @c);
my $bc = norm(@b - @c);

return [
flat
@ABC[@(9..17)],
map G * *,
$mb/$ab**3 * (@b - @a) + $mc/$ac**3 * (@c - @a),
$ma/$ab**3 * (@a - @b) + $mc/$bc**3 * (@c - @b),
$ma/$ac**3 * (@a - @c) + $mb/$bc**3 * (@b - @c);
];
}

loop (
my ($t, @ABC) = 0,
0, 0, 0, # Sun position
au, 0, 0,# Earth position
0.998*au, 0, 0,  # Moon position
0, 0, 0, # Sun speed
0, 2*pi*au/year, 0,  # Earth speed
0, 2*pi*(au/year + 0.002*au/month), 0# Moon speed
;
$t < .2;
($t, @ABC) »+=« (.01, dABC($t, @ABC, .01))
) {
printf "t = %.02f : %s\n", $t, @ABC.fmt("%+.3e");
}


---

I'm having problem specially in the "multi infix" and even in the "norm"
sub routine. The problem is that I do not understand the construction of
these in Perl 5 (otherwise, I would translate this easely, and I wouldn't
be asking for help...)

Any help is apreciated.

Clear skies

Rui Fernandes


Announce: Rakudo Perl 6 compiler, Release 2019.07.1

2019-07-28 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I'm announcing an
out-of-schedule release of the Rakudo Perl 6 compiler.
Rakudo is an implementation of Perl 6 on the Moar Virtual Machine[^1].

This release is a point release in addition to the regular
releases. Rakudo 2019.07 (note: no .1) was discovered to have some
issues with the build system that affected packaging. Moreover, this
release comes with a corresponding MoarVM point release which has some
important stability and reliability fixes.

The tarball for this release is available from
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2019.07.1:
  + Build system:
    + Fixed issues when installing into `/usr` [f41db044]
    + Fixed unnecessary use of `git` in release tarballs
[540926bf][e18b4f3b]
    + Fixed intermittent failures in one of the performance tests [bd29d3f6]

The following people contributed to this release:

Patrick Böker, Aleks-Daniel Jakimenko-Aleksejev, Timo Paulssen,
Jonathan Worthington, Stefan Seifert, Samantha McVey

If you would like to contribute or find out more information, visit
<https://perl6.org>, <https://rakudo.org/how-to-help>, ask on the
 mailing list, or ask on IRC #perl6 on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Perl 6 development: <https://donate.perlfoundation.org/>
(put “Perl 6 Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#132), is tentatively scheduled for 2019-09-21.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

[^1]: See <http://moarvm.org/>

[^2]: What’s the difference between the Rakudo compiler and the Rakudo
Star distribution?

The Rakudo compiler is a compiler for the Perl 6 language.
Not much more.

The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, a module installer, Perl 6 introductory
documentation, and other software that can be used with the Rakudo
compiler to enhance its utility.




signature.asc
Description: OpenPGP digital signature


Re: Announce: Rakudo Perl 6 compiler, Release #131 (2019.07)

2019-07-18 Thread Parrot Raiser
"https://rakudo.org/files/rakudo; still appears to be broken; it
generates a 500 page.

Attempting to go there from the "compiler-only" button on the download
page does the same thing. I've tried to track down the problem and the
source code for the Web page, but got rather lost  (I don't actually
need the bare compiler, was just poking around.)


Re: Announce: Rakudo Perl 6 compiler, Release #131 (2019.07)

2019-07-18 Thread Elizabeth Mattijsen
Patches welcome!

Fact is: the JVM support group is very small.  If you feel that this is 
important, the best way to get what you want to see in Java support, is to work 
on it.

> On 18 Jul 2019, at 05:53, Darren Duncan  wrote:
> 
> On 2019-07-17 2:18 p.m., Aleks-Daniel Jakimenko-Aleksejev wrote:
>> On behalf of the Rakudo development team, I’m very happy to announce the
>> July 2019 release of Rakudo Perl 6 #131. Rakudo is an implementation of
>> Perl 6 on the Moar Virtual Machine[^1].
>> New in 2019.07:
>>   + SPECIAL NOTES:
>> + Upcoming releases after this one will have a different changelog
>> format
>> + Java 9 is now required for JVM backend [ea94966d][8a37b931][b1fac3d6]
> 
> I question this decision.  If we're not going to support Java 8, then why not 
> make Java 11 the minimum dependency instead of Java 9?  Java 8 and 11 have 
> long term support while Java 9 and 10 are already no longer supported.  Who 
> now can use Java 9 but not use Java 11? -- Darren Duncan


Re: Announce: Rakudo Perl 6 compiler, Release #131 (2019.07)

2019-07-17 Thread Darren Duncan

On 2019-07-17 2:18 p.m., Aleks-Daniel Jakimenko-Aleksejev wrote:

On behalf of the Rakudo development team, I’m very happy to announce the
July 2019 release of Rakudo Perl 6 #131. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

New in 2019.07:
   + SPECIAL NOTES:
     + Upcoming releases after this one will have a different changelog
format
     + Java 9 is now required for JVM backend [ea94966d][8a37b931][b1fac3d6]


I question this decision.  If we're not going to support Java 8, then why not 
make Java 11 the minimum dependency instead of Java 9?  Java 8 and 11 have long 
term support while Java 9 and 10 are already no longer supported.  Who now can 
use Java 9 but not use Java 11? -- Darren Duncan


Announce: Rakudo Perl 6 compiler, Release #131 (2019.07)

2019-07-17 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
July 2019 release of Rakudo Perl 6 #131. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements 6.c and 6.d versions of the Perl 6 specification.
6.c version of the language is available if you use the `use v6.c`
version pragma, otherwise 6.d is the default.

Upcoming releases in 2019 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

The tarball for this release is available from
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2019.07:
  + SPECIAL NOTES:
    + Upcoming releases after this one will have a different changelog
format
    + Java 9 is now required for JVM backend [ea94966d][8a37b931][b1fac3d6]
  + Deprecations:
    + `--profile-filename` will be deprecated in the future. Instead, there
    is a `--profile-kind` option that accepts the `instrumented`
(default)
    or `heap` arguments, and `--profile(-compile)` accepts a
filename as an
    argument [31e534cf]
  + Fixes:
    + Fixed `asinh` with large negative arguments [5281c23a]
    + Fixed laziness check on `[\+]` [8f424c9d]
    + Fixed representation of constant constraint in `Parameter.perl`
[a1591fbe]
    + Fixed `$*KERNEL.bits` on Windows [5a9b720d][6e8df010]
    + Made sure creating a Failure from a Failure object throws [c9110654]
    + Made a Failure throw when it is used as something `Iterable`
[23fca8f6]
    [4ffb4082]
    + Fixed `CLIENT::.keys` [658c]
    + Fixed a crash when values are deleted from `(Set|Bag|Mix)Hash` while
    iterating [a6a60705][1f066d96][63657986][c5664301][787d5bf6]
    + Fixed method cloning [d14fad4a]
    + Fixed USAGE message to not omit candidates when it shouldn't
[bea51993]
    [dd1c8059][2b991664]
    + Class symbols are now merged into stub when
    using `require STUB:file<>` [f03c7814]
    + Fixed named parameters in `MAIN` so that a single parameter for a
    `@`-sigilled parameter is now accepted [87d219ee]
    + Improved USAGE message for `@` sigilled parameters [d5faa02b]
    + Implemented `:123foo` parameter format in POD6 config [95ce37d3]
    + Fixed notification queue growth in `Channel.Supply` [d5044de2]
    + Fixed `FatRat.base` failure for large denominators
[d4e1d8e7][b69964b5]
    + Allowed `:at`/`:in`/`:every` to be `Inf`/`-Inf`/`NaN`
    in `ThreadPoolScheduler.cue` [cc88d63d][de76a056][9b46cb90]
    [c977d6c5][1a19c660]
    + Fixed an error when `RAKUDO_EXCEPTIONS_HANDLER` is set [939ea419]
    + Fixed parsing of Unicode brackets in string interpolation [ba07a62f]
    + Fixed a lot of reproducibility issues in Rakudo and precompiled
modules
   
[0990ecc4][50699817][e1f1eb00][7926cdd6][95af2f4c][a2ba5737][4af81c36]
   
[5ee341cc][5b8b9c0c][5dcc687e][aa1d1ce0][7b5a9981][a973dae6][4d44bd93]
   
[8ec2c43f][532d19fc][5669bc92][37b7ef7c][5c24182f][c5bc71e3][cd11b507]
    [b0dd44b0]
    + Fixed an issue with multiple dimensioned indexes throwing rather than
    failing [7bbbebc0][9ce87eeb]
    + Made sure the REPL creates a history file if it doesn't exist
[cb691da5]
    + Made sure that `.head`/`.tail` can take `Cool` values [74c8f044]
    + Fixed bogus role conflict when the same method is added under
    multiple names [e274f4a2]
    + Made sure classes doing the `QuantHash` role have `.hash` and
    `.Hash` [650bbc1d]
    + Fixed `ThreadPoolScheduler.cue` when called with a `times` named
    parameter [48a12551]
    + Fixed an off-by-one error in infinite range subscript [35b69f07]
    + Fixed colon parsing of adverbs
[76e5ee1b][91359141][c227693a][a26e95ba]
    + Fixed `List.perl` for lazy lists [ec978780]
    + Fixed `compile_in_context` with an immediate block [b9f89954]
    + Fixed parsing of `&` in regexes [f18af941]
    + Allowed capture argument to `MAIN` to accept arguments [410ff564]
    + Made `Date.truncate-to('day')` a no-op [e943f3eb]
    + Fixed assigning `Nil` to a scalar declared with captured type
[c0134d2a]
    + Fixed roles inheriting from a class failing to type check against
    that class [90d81c7f][41f6f9ea]
    + Fixed type checking on curried roles [86290889][5f07a394]
    [9b65b33b][9c6fa1e7]
    + Fixed type matching of parameterized roles [0023f64c]
    + Fixed type matching of roles against their "parent" classes [6c023546]
    + Fixed role exports [163f0a03]
    + Fixed assigning a native array from an `Array` with deleted
    elemen

Announce: Rakudo Perl 6 compiler, Release 2019.03.1

2019-03-17 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I'm announcing an
out-of-schedule release of the Rakudo Perl 6 compiler.
Rakudo is an implementation of Perl 6 on the Moar Virtual Machine[^1].

This release is a point release in addition to the regular, monthly
releases. Rakudo 2019.03 (note: no .1) was discovered to have issues
on Windows where calling certain methods on `$*KERNEL`
(like `$*KERNEL.bits`) would throw instead of returning a proper
value. This release is for Windows users only: users on other systems
do not need to update, but are of course welcome to.

The tarball for this release is available from
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2019.03.1:
  + Fixes:
    + Fixed issues with `$*KERNEL` on Windows [190a7148][2f9d69c2]

The following people contributed to this release:

Nick Logan, Aleks-Daniel Jakimenko-Aleksejev

If you would like to contribute or find out more information, visit
<https://perl6.org>, <https://rakudo.org/how-to-help>, ask on the
 mailing list, or ask on IRC #perl6 on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Perl 6 development: <https://donate.perlfoundation.org/>
(put “Perl 6 Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#131), is tentatively scheduled for 2019-04-20.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

[^1]: See <http://moarvm.org/>

[^2]: What’s the difference between the Rakudo compiler and the Rakudo
Star distribution?

The Rakudo compiler is a compiler for the Perl 6 language.
Not much more.

The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, a module installer, Perl 6 introductory
documentation, and other software that can be used with the Rakudo
compiler to enhance its utility.




signature.asc
Description: OpenPGP digital signature


Announce: Rakudo Perl 6 compiler, Release #130 (2019.03)

2019-03-07 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
March 2019 release of Rakudo Perl 6 #130. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements 6.c and 6.d versions of the Perl 6 specification.
6.c version of the language is available if you use the `use v6.c`
version pragma, otherwise 6.d is the default.

Upcoming releases in 2019 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

The tarball for this release is available from
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2019.03:
  + Fixes:
    + Fixed uncaught processor floating point exception on
    `Rat.round` [11da0fb4]
    + Fixed `$a=~$a` if `use isms ` is active [df748ea7]
    [af868f84]
    + Fixed `.WHICH` methods that did not return `ObjAt` types
    [e50f4f2e][6b401dad][67cbd993][9df09621][0d29768a][ca8d8afc]
    [4b91610e][537621e4]
    + Fixed missing redeclaration of bound outer error
    [23663609]
    + Made `X::TypeCheck::Assignment` and `X::Trait::Unknown` more
    resilient against strange values [a6d8858e][54fe8a1a]
    + [6.d] `$_` container is no longer `is dynamic` [33f79fef]
    [3d581c8d][c2e272ef]
    + Fixed thread safety of some state variables [a5b9fc2d]
    + Fixed `.^compose` calls on types stored in a scalar [ab8052dd]
    + Fixed `Parameter.perl` for slurpy parameters [d8b7fabe]
    + Fixed `$*EXECUTABLE` path construction after a `chdir` [5c14916b]
    + Fixed `$*PROGRAM` path construction after a `chdir` [cebf0cb7]
    + Fixed `.^add_attribute` calls with `Attribute` object stored in
    a scalar [bf0dbbe6]
    + Fixed hang in Channel `subscribe`/`close`/`drain` [9b77459b]
    + Fixed `Inline::Perl5` failing to load when installed through the
    Staging repository [1c101a04]
    + Allowed parameterization of parent class in `class` declaration
    [35ecfc8e]
    + Made `IO::Path.dir` on non-existent paths throw rather than
    return a `Failure` [38f4b7b4]
    + Fixed line number accuracy in backtraces [5b231e09]
    + Made regex literals capture `$/` and `$!` [8ef7c15e][ee2238f7]
    [4a2124a6]
    + Fixed `«=>»` crash if RHS is a List in a Scalar container
    [df96fa0f]
    + Tweaked `Range.ACCEPTS` to work better with Junctions [46409c07]
    [f3f7c5cb][d904b704]
    + Made `Baggy.ACCEPTS` signature the same as `Setty.ACCEPTS`
    [37ce147c]
    + Fixed "No concretization found" on role-qualified method call with
    inheritance [a6c8180f]
    + Fixed use of a role by its short name in some cases [b3eb3826]
    [9d6e508d]
    + Made sure that `CArray` can be `STORE`d into `Buf`/`Blob`
    [ada116ef][5e5c909d][30fc5146][84ed8548][bfadefaa][05b9aa0d]
    [b394b63c]
    + Made CUR uninstall `.bat` wrapper scripts [121ca5fd]
    + Fixed a problem with adding/subtracting negative values from
    `Date` [91ca8275]
    + Made sure hash slice auto-vivifies using infix metaop [616b757a]
    [e68e38e0]
    + Many improvements to the JS backend [634633be][8f2d9ed0][fc39f5ff]
    [9b20c476][822962da][e233f287][52de9657][6dd723a9][7b053d54]
    [17a2bcca][f7ba400e][ada01420]
    + Various improvements to produced messages [e48712a3][59bafb83]
    [6a8f08b9][89ca56af][8095cead][d499bd4b][7133b81e][f7704267]
  + Additions:
    + Added a candidates method to `CompUnit::Repository::FileSystem`
    and `CompUnit::Repository::Installation`, which acts as the API
    for module lookup. Internals were refactored to use this API for
    module lookup, which fixes some issues as a side effect (i.e.
    old bin scripts being invoked instead of a newer version)
    [2d007bf4][07f62c60][bed3bbd0][a25d5fa4][29d74709][085fa19c]
    [78de05eb][b378a157][d0a3fec9][d533d450][877e7dc0][270b355e]
    [683df8bf][e1ef571e][077f88a5][22021fdd][603010be][27e141cc]
    [ddb6abd0][c868ca9c][339ea850][3999d753][bfff01a5][d998c1ea]
    [83f0fd6c][d39e2fc4][74ccb4c8][67cf829f][92ebc333]
    + Added `buf8`/`blob8` read-(u)bits / write-(u)bits methods for
    reading/writing any number of **bits** [45a945b5]
    + Added `$?DISTRIBUTION` to give introspection and IO capabilities
    to the current `Distribution` [32d480ab]
    + Added `addendum` to `X::Method::NotFound` so that we can give
    better error messages for specific cases [04dd52f9][b6c8f5ed]
    + Added HLL interface for creating `Signature` and `Parameter`
    ob

Re: [perl #133791] perl 6 parser bugging out on a comment thinking it is a real var

2019-01-28 Thread Warren W. Music Jr. via RT
A missing string never got flagged though. When I comment out the
line I call the C line everything worked.

I submitted this as a bug since being the worse kind of exploiter
I love seeing things like this.  I'd go gung ho at using
this for malicious activities if I was a hacker.



"Concentrationism"

On 1/25/19 1:20 PM, Aleks-Daniel Jakimenko-Aleksejev via RT wrote:
> Usually this happens when you have an unclosed string somewhere earlier in 
> your
> code.
> 
> That is:
> 
> say "foo; ← oops! Forgot the closing "
> 
> # $a ← we think that this is a comment, but actually it's part of the string
> above!
> On 2019-01-23 01:27:08, warren.mu...@gmail.com wrote:
>> Hello:
>>
>> I ran into this while setting up a post test for json
>> in bailador. While compiling it flags the commented
>> line at the end as bad when the fail should be on the
>> check of request.body[0].
>>
>> It happened with the latest rakudo built from scratch
>> as of Jan 23rd 2019 as well as rakudo-star 2018.10.
>>
>> Linux Mint system, 64 bit.
>>
>>
>>
>>
>> # --->perl6 t1.pl6
>> # ===SORRY!=== Error while compiling
>> /home/userx/p6d/tests/latester/t1.pl6
>> # Variable '%bb' is not declared
>> # at /home/userx/p6d/tests/latester/t1.pl6:97
>> # --> #pukes here #say ⏏%bb{"name"};
>>
>> # code snippet that causes the parser to think
>> # the commented code below is not commented
>> if request.body[0] == "{" { say "JSON"} else {say "NOTJSON"};
>>
>> # #my %bb = from-json(request.body);
>> #
>> # this one pukes
>> #pukes here #say %bb{"name"};
> 


Re: [perl #133791] perl 6 parser bugging out on a comment thinking it is a real var

2019-01-28 Thread Warren W. Music Jr. via RT
Oh, for me I just moved on to a proper bit of code.
I filed the bug for the perfection of the parser so
it's less exploitable.  :)

"I code therefore I am!"

On 1/26/19 8:17 PM, Timo Paulssen via RT wrote:
> I believe the problem comes from `"{"` which actually starts an
> interpolated code block containing a string immediately. That's also why
> it doesn't complain about the "else" being in an odd place; it's also
> inside the string!
> 
> So here's an equivalent piece of code that shows what's wrong:
> 
> if request.body[0] == "" ~ do { qq⟨{ say "JSON"} else {say "NOTJSON"};
> # my %bb = 1234 => 99;
> (and here comes the closing quote for the qq that was missing in the original 
> code: ⟩
> 
> Simplifying a tiny bit more:
> 
> if request.body[0] == "" ~ (say "JSON") ~ " else " ~ (say "NOTJSON") ~ ";
> # my %bb = 1234 => 99;
> again no closing double-quotes
> 
> Does that help?
> 
> On 25/01/2019 07:20, Aleks-Daniel Jakimenko-Aleksejev via RT wrote:
>> Usually this happens when you have an unclosed string somewhere earlier in 
>> your
>> code.
>>
>> That is:
>>
>> say "foo; ← oops! Forgot the closing "
>>
>> # $a ← we think that this is a comment, but actually it's part of the string
>> above!
>> On 2019-01-23 01:27:08, warren.mu...@gmail.com wrote:
>>> Hello:
>>>
>>> I ran into this while setting up a post test for json
>>> in bailador. While compiling it flags the commented
>>> line at the end as bad when the fail should be on the
>>> check of request.body[0].
>>>
>>> It happened with the latest rakudo built from scratch
>>> as of Jan 23rd 2019 as well as rakudo-star 2018.10.
>>>
>>> Linux Mint system, 64 bit.
>>>
>>>
>>>
>>>
>>> # --->perl6 t1.pl6
>>> # ===SORRY!=== Error while compiling
>>> /home/userx/p6d/tests/latester/t1.pl6
>>> # Variable '%bb' is not declared
>>> # at /home/userx/p6d/tests/latester/t1.pl6:97
>>> # --> #pukes here #say ⏏%bb{"name"};
>>>
>>> # code snippet that causes the parser to think
>>> # the commented code below is not commented
>>> if request.body[0] == "{" { say "JSON"} else {say "NOTJSON"};
>>>
>>> # #my %bb = from-json(request.body);
>>> #
>>> # this one pukes
>>> #pukes here #say %bb{"name"};
> 


Re: [perl #133791] perl 6 parser bugging out on a comment thinking it is a real var

2019-01-27 Thread Warren W. Music Jr.

A missing string never got flagged though. When I comment out the
line I call the C line everything worked.

I submitted this as a bug since being the worse kind of exploiter
I love seeing things like this.  I'd go gung ho at using
this for malicious activities if I was a hacker.



"Concentrationism"

On 1/25/19 1:20 PM, Aleks-Daniel Jakimenko-Aleksejev via RT wrote:

Usually this happens when you have an unclosed string somewhere earlier in your
code.

That is:

say "foo; ← oops! Forgot the closing "

# $a ← we think that this is a comment, but actually it's part of the string
above!
On 2019-01-23 01:27:08, warren.mu...@gmail.com wrote:

Hello:

I ran into this while setting up a post test for json
in bailador. While compiling it flags the commented
line at the end as bad when the fail should be on the
check of request.body[0].

It happened with the latest rakudo built from scratch
as of Jan 23rd 2019 as well as rakudo-star 2018.10.

Linux Mint system, 64 bit.




# --->perl6 t1.pl6
# ===SORRY!=== Error while compiling
/home/userx/p6d/tests/latester/t1.pl6
# Variable '%bb' is not declared
# at /home/userx/p6d/tests/latester/t1.pl6:97
# --> #pukes here #say ⏏%bb{"name"};

# code snippet that causes the parser to think
# the commented code below is not commented
if request.body[0] == "{" { say "JSON"} else {say "NOTJSON"};

# #my %bb = from-json(request.body);
#
# this one pukes
#pukes here #say %bb{"name"};




Re: [perl #133791] perl 6 parser bugging out on a comment thinking it is a real var

2019-01-27 Thread Warren W. Music Jr.

Oh, for me I just moved on to a proper bit of code.
I filed the bug for the perfection of the parser so
it's less exploitable.  :)

"I code therefore I am!"

On 1/26/19 8:17 PM, Timo Paulssen via RT wrote:

I believe the problem comes from `"{"` which actually starts an
interpolated code block containing a string immediately. That's also why
it doesn't complain about the "else" being in an odd place; it's also
inside the string!

So here's an equivalent piece of code that shows what's wrong:

if request.body[0] == "" ~ do { qq⟨{ say "JSON"} else {say "NOTJSON"};
# my %bb = 1234 => 99;
(and here comes the closing quote for the qq that was missing in the original 
code: ⟩

Simplifying a tiny bit more:

if request.body[0] == "" ~ (say "JSON") ~ " else " ~ (say "NOTJSON") ~ ";
# my %bb = 1234 => 99;
again no closing double-quotes

Does that help?

On 25/01/2019 07:20, Aleks-Daniel Jakimenko-Aleksejev via RT wrote:

Usually this happens when you have an unclosed string somewhere earlier in your
code.

That is:

say "foo; ← oops! Forgot the closing "

# $a ← we think that this is a comment, but actually it's part of the string
above!
On 2019-01-23 01:27:08, warren.mu...@gmail.com wrote:

Hello:

I ran into this while setting up a post test for json
in bailador. While compiling it flags the commented
line at the end as bad when the fail should be on the
check of request.body[0].

It happened with the latest rakudo built from scratch
as of Jan 23rd 2019 as well as rakudo-star 2018.10.

Linux Mint system, 64 bit.




# --->perl6 t1.pl6
# ===SORRY!=== Error while compiling
/home/userx/p6d/tests/latester/t1.pl6
# Variable '%bb' is not declared
# at /home/userx/p6d/tests/latester/t1.pl6:97
# --> #pukes here #say ⏏%bb{"name"};

# code snippet that causes the parser to think
# the commented code below is not commented
if request.body[0] == "{" { say "JSON"} else {say "NOTJSON"};

# #my %bb = from-json(request.body);
#
# this one pukes
#pukes here #say %bb{"name"};




Re: [perl #133791] perl 6 parser bugging out on a comment thinking it is a real var

2019-01-26 Thread Timo Paulssen via RT
I believe the problem comes from `"{"` which actually starts an
interpolated code block containing a string immediately. That's also why
it doesn't complain about the "else" being in an odd place; it's also
inside the string!

So here's an equivalent piece of code that shows what's wrong:

if request.body[0] == "" ~ do { qq⟨{ say "JSON"} else {say "NOTJSON"};
# my %bb = 1234 => 99;
(and here comes the closing quote for the qq that was missing in the original 
code: ⟩

Simplifying a tiny bit more:

if request.body[0] == "" ~ (say "JSON") ~ " else " ~ (say "NOTJSON") ~ ";
# my %bb = 1234 => 99;
again no closing double-quotes

Does that help?

On 25/01/2019 07:20, Aleks-Daniel Jakimenko-Aleksejev via RT wrote:
> Usually this happens when you have an unclosed string somewhere earlier in 
> your
> code.
>
> That is:
>
> say "foo; ← oops! Forgot the closing "
>
> # $a ← we think that this is a comment, but actually it's part of the string
> above!
> On 2019-01-23 01:27:08, warren.mu...@gmail.com wrote:
>> Hello:
>>
>> I ran into this while setting up a post test for json
>> in bailador. While compiling it flags the commented
>> line at the end as bad when the fail should be on the
>> check of request.body[0].
>>
>> It happened with the latest rakudo built from scratch
>> as of Jan 23rd 2019 as well as rakudo-star 2018.10.
>>
>> Linux Mint system, 64 bit.
>>
>>
>>
>>
>> # --->perl6 t1.pl6
>> # ===SORRY!=== Error while compiling
>> /home/userx/p6d/tests/latester/t1.pl6
>> # Variable '%bb' is not declared
>> # at /home/userx/p6d/tests/latester/t1.pl6:97
>> # --> #pukes here #say ⏏%bb{"name"};
>>
>> # code snippet that causes the parser to think
>> # the commented code below is not commented
>> if request.body[0] == "{" { say "JSON"} else {say "NOTJSON"};
>>
>> # #my %bb = from-json(request.body);
>> #
>> # this one pukes
>> #pukes here #say %bb{"name"};


Re: [perl #133791] perl 6 parser bugging out on a comment thinking it is a real var

2019-01-26 Thread Timo Paulssen
I believe the problem comes from `"{"` which actually starts an
interpolated code block containing a string immediately. That's also why
it doesn't complain about the "else" being in an odd place; it's also
inside the string!

So here's an equivalent piece of code that shows what's wrong:

if request.body[0] == "" ~ do { qq⟨{ say "JSON"} else {say "NOTJSON"};
# my %bb = 1234 => 99;
(and here comes the closing quote for the qq that was missing in the original 
code: ⟩

Simplifying a tiny bit more:

if request.body[0] == "" ~ (say "JSON") ~ " else " ~ (say "NOTJSON") ~ ";
# my %bb = 1234 => 99;
again no closing double-quotes

Does that help?

On 25/01/2019 07:20, Aleks-Daniel Jakimenko-Aleksejev via RT wrote:
> Usually this happens when you have an unclosed string somewhere earlier in 
> your
> code.
>
> That is:
>
> say "foo; ← oops! Forgot the closing "
>
> # $a ← we think that this is a comment, but actually it's part of the string
> above!
> On 2019-01-23 01:27:08, warren.mu...@gmail.com wrote:
>> Hello:
>>
>> I ran into this while setting up a post test for json
>> in bailador. While compiling it flags the commented
>> line at the end as bad when the fail should be on the
>> check of request.body[0].
>>
>> It happened with the latest rakudo built from scratch
>> as of Jan 23rd 2019 as well as rakudo-star 2018.10.
>>
>> Linux Mint system, 64 bit.
>>
>>
>>
>>
>> # --->perl6 t1.pl6
>> # ===SORRY!=== Error while compiling
>> /home/userx/p6d/tests/latester/t1.pl6
>> # Variable '%bb' is not declared
>> # at /home/userx/p6d/tests/latester/t1.pl6:97
>> # --> #pukes here #say ⏏%bb{"name"};
>>
>> # code snippet that causes the parser to think
>> # the commented code below is not commented
>> if request.body[0] == "{" { say "JSON"} else {say "NOTJSON"};
>>
>> # #my %bb = from-json(request.body);
>> #
>> # this one pukes
>> #pukes here #say %bb{"name"};


[perl #133791] perl 6 parser bugging out on a comment thinking it is a real var

2019-01-24 Thread Aleks-Daniel Jakimenko-Aleksejev via RT
Usually this happens when you have an unclosed string somewhere earlier in your
code.

That is:

say "foo; ← oops! Forgot the closing "

# $a ← we think that this is a comment, but actually it's part of the string
above!
On 2019-01-23 01:27:08, warren.mu...@gmail.com wrote:
> Hello:
>
> I ran into this while setting up a post test for json
> in bailador. While compiling it flags the commented
> line at the end as bad when the fail should be on the
> check of request.body[0].
>
> It happened with the latest rakudo built from scratch
> as of Jan 23rd 2019 as well as rakudo-star 2018.10.
>
> Linux Mint system, 64 bit.
>
>
>
>
> # --->perl6 t1.pl6
> # ===SORRY!=== Error while compiling
> /home/userx/p6d/tests/latester/t1.pl6
> # Variable '%bb' is not declared
> # at /home/userx/p6d/tests/latester/t1.pl6:97
> # --> #pukes here #say ⏏%bb{"name"};
>
> # code snippet that causes the parser to think
> # the commented code below is not commented
> if request.body[0] == "{" { say "JSON"} else {say "NOTJSON"};
>
> # #my %bb = from-json(request.body);
> #
> # this one pukes
> #pukes here #say %bb{"name"};


[perl #133791] perl 6 parser bugging out on a comment thinking it is a real var

2019-01-24 Thread via RT
# New Ticket Created by  Warren W. Music Jr. 
# Please include the string:  [perl #133791]
# in the subject line of all future correspondence about this issue. 
# https://rt.perl.org/Ticket/Display.html?id=133791 >


Hello:

I ran into this while setting up a post test for json
in bailador.  While compiling it flags the commented
line at the end as bad when the fail should be on the
check of request.body[0].

It happened with the latest rakudo built from scratch
as of Jan 23rd 2019 as well as rakudo-star 2018.10.

Linux Mint system, 64 bit.




#  --->perl6 t1.pl6
   #  ===SORRY!=== Error while compiling 
/home/userx/p6d/tests/latester/t1.pl6
   #  Variable '%bb' is not declared
   #  at /home/userx/p6d/tests/latester/t1.pl6:97
   #  -->   #pukes here  #say ⏏%bb{"name"};

   # code snippet that causes the parser to think
   # the commented code below is not commented
   if request.body[0] == "{" { say "JSON"} else {say "NOTJSON"};

   #  #my %bb = from-json(request.body);
   #
   # this one pukes
   #pukes here  #say %bb{"name"};


Announce: Rakudo Perl 6 compiler, Release #129 (2018.12)

2018-12-20 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
December 2018 release of Rakudo Perl 6 #129. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements 6.c and 6.d versions of the Perl 6 specification.
6.c version of the language is available if you use the `use v6.c`
version pragma, otherwise 6.d is the default.

Upcoming releases in 2019 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

The tarball for this release is available from
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2018.12:
  + Fixes:
    + Fixed infiniloops with some set operators [99d94db4][9f5cc8d1]
    + Fixed regression in handling of `"1"..9` [d92b155c]
    + Fixed use of `Proxy` in a class attribute using
    the `Attribute`.`get_value`/`set_value` interface [a5411e45]
    + Fixed semantics of `minpairs`/`maxpairs` (ignore undefined values)
[7bf7a2c6]
    + Fixed error on `@a > 2` if `@a` is a native array
    + Fixed error reporting on initializing shaped array with
    improperly shaped data [fd216fec]
    + Negative indexes on native arrays are now checked properly [dd2af90c]
    + Fixed use of uninitialized value in `IO::Notification` [83d0056b]
    + Enums can now have private methods mixed in [3c2cfb22]
    + Fixed resource content lookup for `Distribution::Path` [370310b3]
    + Fixed precompilation when cwd gets changed at run time [e2e5cc53]
    + Shared library versions are now ignored on OpenBSD [5603128e]
    + Many improvements to the JS backend [1865db0d][fdd249a3][194c84b9]
    [1dd59f10][52c2af5d][8b13655c][2869a48b][cf5432ae][758caa89]
    [e0b943d0][a759f9d7]
    + Various improvements to produced messages [869b9e58][abfb9a40]
    [79824db5][55d08c8f][24c8e172]
  + Additions:
    + Added `Endian` enum and implemented new methods in `blob8`/`buf8`
    for reading/writing native values [46d4c9fe][011c6f11][f66861dc]
    [f0279313][b781f8cc][543219c9][77182713][06156a7c]
    + Added `Kernel.endian` [2a761ca7][af43b159]
    + Implemented `Blob.readint` / `Buf.writeint` [4f14d713][fecfb22d]
    [5cc0e02d][79dd1c8e][ceaf7218][631940c7][38afa2d6][e7b61aff]
    + Added `.native-descriptor` for async sockets [a4db9139][2fd90b1e]
    + Added `.Real` method to native arrays [dd3f91a2]
    + Implemented `last` and `LAST` in `whenever` blocks [890d628a]
  + Efficiency:
    + Made `<$rx>` interpolation 1.05x as fast [62243cd9]
    + Made simple regex matches 1.05x as fast [01c56b48]
    + Other minor optimizations [93ea7ed1][a0cb89a7][adb85609][6c2f3c83]
  + Internal:
    + Introduced a more generally usable `X::ArrayShapeMismatch` error
[dd030145]
    + Internal micro-optimizations [38bc682b][f18432ea]


The following people contributed to this release:

Paweł Murias, Elizabeth Mattijsen, Aleks-Daniel Jakimenko-Aleksejev,
Stefan Seifert, Jonathan Worthington, Ben Davies, Petr Rockai, Nick Logan,
Samantha McVey, Timo Paulssen, Momo

If you would like to contribute or find out more information, visit
<https://perl6.org>, <https://rakudo.org/how-to-help>, ask on the
 mailing list, or ask on IRC #perl6 on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Perl 6 development: <https://donate.perlfoundation.org/>
(put “Perl 6 Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#130), is tentatively scheduled for 2019-01-19.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

[^1]: See <http://moarvm.org/>

[^2]: What’s the difference between the Rakudo compiler and the Rakudo
Star distribution?

The Rakudo compiler is a compiler for the Perl 6 language.
Not much more.

The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, a module installer, Perl 6 introductory
documentation, and other software that can be used with the Rakudo
compiler to enhance its utility.




signature.asc
Description: OpenPGP digital signature


Announce: Rakudo Perl 6 compiler, Release #128 (2018.11)

2018-11-29 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
November 2018 release of Rakudo Perl 6 #128. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements 6.c and 6.d versions of the Perl 6 specification.
6.c version of the language is available if you use the `use v6.c`
version pragma, otherwise 6.d is the default.

Upcoming releases in 2018 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

The tarball for this release is available from
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2018.11:
  + SPECIAL NOTES:
    + ❇️ Default language version is now `v6.d` ❇️ [46ef0ea0]
  + Deprecations:
    + Deprecated `.path`/`.args` in `Proc::Async`, use `.command`
    instead [45bbc946]
  + Fixes:
    + Fixed `$*PERL.version` to always report the right version [c9ecfb7a]
    + Consistified `:U.pairup` with `:D.pairup` to return a Seq [d73272e4]
    + Provided a stable `.WHICH` for `Map` [4e0a1c24][052067fd]
    + Made sure `DEPRECATED` reports location correctly when
    using `:up` [8561d0ae]
    + Fixed literal `\` in `tr///` [85107ec0]
    + Fixed tap add/remove race in `Supplier` and `Supplier::Preserving`
    [7ee1f3c5][68d79e70]
    + `QuantHash`es now properly report `.of` and `.keyof` [8b93ec9f]
    + Added type constraints to port numbers in `IO::Socket::Async`
[547f28ba]
    + Fixed re-initialization on some types of arrays [f1fa5adf]
    [7262b4e8][49f07abe]
    + Gave 6.d correct `is rw` Proxy semantics [7d37f9aa]
    + Fixed `Match.^roles` [becbdeb9]
    + Fixed missing path volume after `..` is resolved [8854bbd3]
    + The `.values` method can now be used to change values in
    object hashes [a728bb2d]
    + Fixed shaped dynamic variables like `my %*a{Int}` [bcdf87a6]
    + Made `my @a is Blob / Buf = ...` work [762c708f]
    + Object hashes and `QuantHash`es can now be used with
    metaops [Hyper refactor]
    + Many improvements to the JS backend [32b7c089][f35dd301][9457f7e5]
   
[ea69c0a0][0e4969fe][9df074ba][78389aa2][1ef62aca][f460ad1a][cbbe16ed]
    + Improved error message when using placeholders with methods [deae5bcd]
    [0896c301][48093d0d][0bda7dc1][90103f6d][68b44e33][8549c4c1]
    + Various improvements to produced messages [15c16e35][e6758492]
  + Additions:
    + Implemented `X::Language::TooLate` [3365094f]
    + `$*COLLATION.set` is no longer experimental [20c41ca5]
    + Added dynamic variable `$*FOLDING` [cec1f511]
  + Removals:
    + Removed unspecced `.allowed` attribute in `Pod::Block::Code`
[5aba3e96]
    + Set operators `(<+)`, `≼`, `(>+)`, `≽` now die when used [951303f9]
    [7a1a1868][81474bf9][5598f37d]
    + `Associative >>op<< Iterable` now dies, as the results are
indeterminate
    due to random hash key order [Hyper refactor]
  + Build system:
    + Fixed `t/*/*.t` rule in generated Makefile [d2c7e327]
    + Made running timing based tests optional [72b896c8]
  + Efficiency:
    + Made `Int eqv Int` 3x and `int eqv int` 5x as fast
[fb9a0454][94dd0a41]
    + Made `ObjAt` `eqv` `ObjAt` also faster [5120d3d2]
    + Made `Hash`/`Map` slices about 5x as fast [6fe27894][b83179f0]
    [c4da4c7e][9a2c4b44]
    + Optimized various operations on `Date` and `DateTime` making
    them up to 3x as fast [11cb4fac][b6292fe9][08fac045][98d07cf6]
    [b463746d][bf3eb8ec][a11d599f]
    + Made metaops use the fast path for `&[+=]`-like ops [e7ce194a]
    + Hyper operator refactor makes many things like
    `%h >>+>> 1` 1.3x to 8x as fast [bfe2ad63][130cc817][0bc72e05]
  [75c9456a][ec2848c4][f06e8582][73eb297f][194daab7][a575effe]
  [c50cf82a][1a2b39dc][307a98bd][843118ea][6208c266][9221c08d]
  [c03e71d5][78f64203][63ae9dcc][fa5215b6][d5a751d9][674a0837]
  [8fa72681][80edefcf][cf5c8a09][534d8f65][7fad12b0][800d8fbb]
  [c3f03e67][1ed2b098][21434dda][234e298b][e8285c01][32ab0d30]
  [90ac0940][f7007ac0][dc67ee75][cae9847e][481dbf92][c4445649]
  [19f0c842][86ce4f4e][50f2207b][2e5be5b8][1b7253df][64a47d87]
  [005261a4][10693d16]
  + Internal:
    + Changed CORE.d setting compilation to propagate indicator flags
[4a6d9108]
    + Made sure we don't add object to serialization context more
    than once [3995e423]
    + New QAST to mbc compiler
[edc4c054][6aafe18d][f8be2fa0][656a8045][bb43acdb]
    + Added `Hash.STORE(\keys,\values)` [faa19ab9]
    + Introduced `R:I.Ass

Re: Perl 6 Advent calendar open for contributions

2018-11-19 Thread vijayvithal jahagirdar
I recently worked on, and am proposing the topic of, "Writing a SystemC
parser and unit test framework generator in one day" If the topic is
interesting please block a slot in the second half of December for me.
Regards
Vijay

On Fri, Nov 16, 2018 at 11:57 AM JJ Merelo  wrote:

> Do you have something to say with/about Perl 6? Add your name (and then
> write the article) to the Perl 6 Advent Calendar schedule!
> https://github.com/perl6/mu/blob/master/misc/perl6advent-2018/schedule
>
> ... Please!
>
> Cheers
>
> --
> JJ
>


-- 
https://www.facebook.com/vijayvithal.jahagirdar
https://twitter.com/jahagirdar_vs
http://democracies-janitor.blogspot.in/


Re: Perl 6 Advent calendar open for contributions

2018-11-16 Thread Simon Proctor
Can I just say on this. I did one last year,

I don't think I'd been doing anything with Perl6 the year before.

You don't have to be some kind of super guru or anything you just need to
have something *you* like about the language or it's uses that you think
others might find interesting.

The only thing you have to fear is fear itself and all that. ;)

Go on. Give it a go.



On Fri, 16 Nov 2018 at 06:27, JJ Merelo  wrote:

> Do you have something to say with/about Perl 6? Add your name (and then
> write the article) to the Perl 6 Advent Calendar schedule!
> https://github.com/perl6/mu/blob/master/misc/perl6advent-2018/schedule
>
> ... Please!
>
> Cheers
>
> --
> JJ
>


-- 
Simon Proctor
Cognoscite aliquid novum cotidie

http://www.khanate.co.uk/


Perl 6 Advent calendar open for contributions

2018-11-15 Thread JJ Merelo
Do you have something to say with/about Perl 6? Add your name (and then
write the article) to the Perl 6 Advent Calendar schedule!
https://github.com/perl6/mu/blob/master/misc/perl6advent-2018/schedule

... Please!

Cheers

-- 
JJ


Re: Announce: Raku Perl 6 'Diwali' 6.d Language Specification Release

2018-11-05 Thread Parrot Raiser
> This announcement is available in a form of a colourful PDF brochure:
> https://marketing.perl6.org/id/1541379592/pdf_digital
>

A massive applause for this, even though the announcement was so
inconspicuous that I had actually reverted to the inbox to collect the
next message before a little voice said "Hmm, what was that about?".
Nicely designed, and the "creatives" haven't gone berserk with the
piece.

A "Marketing" subsection is a great idea.


Announce: Raku Perl 6 'Diwali' 6.d Language Specification Release

2018-11-04 Thread zoffix



This announcement is available in a form of a colourful PDF brochure:
https://marketing.perl6.org/id/1541379592/pdf_digital




On behalf of the development team, it brings me great pleasure to
announce the Diwali release of the Official Specification of
the Raku Perl 6 programming language.

The 6.d specification is available as a `6.d` git tag in the repository
at https://github.com/perl6/roast and any future errata will be
published in the `6.d-errata` branch.

*
Note: The compiler releases that use 6.d language by
default will follow their standard release schedules.
*

If you have any questions about this or future language releases,
you can inquire at our Help Chat at https://perl6.org/irc or
on our mailing list at 

## Language Name Alias Decision: "Raku"

Larry Wall has created a second name for the language, an alias or
a "stage name" if you will. That name is "Raku". It can be used
interchangeably with the original "Perl 6" name or even be combined with it
to form "Raku Perl 6". Pick the one that works the best for you and
use it consistently.

## Authors

The following people contributed to this version of the language,
including making documentation updates and contributing work to known
open‑source compiler implementations. The list is ordered alphabetically.

If you believe your name has been erroneously omited, please contact us
(https://perl6.org/irc), and we'll update the primary copy of this list.

0racle, A. Sinan Unur, ab5tract, Adrian White, Ahmad M. Zawawi,  
Alberto Luaces,

Aleks-Daniel Jakimenko‐Aleksejev, Alex Chen, Alex Elsayed, Alex Schroeder,
Alex Wander, Alexander, Alexey Melezhik, Alexis, Alexius Korzinek, allan,
Altai‐man, Amir Aharoni, andreoss, Andrew Ruder, Andrew Shitov, Andy  
Weidenbaum,

Anthony Parsons, Antonio, Antonio Quinonez, antoniogamiz, Armand Halbert,
Arne Skjærholt, Athos Ribeiro, Bahtiar `kalkin-` Gadimov, Bart Wiegmans,
Bartosz Janus, bazzaar, Ben Davies, benji, Benny Siegert, Bill Barry,  
bitrauser,

Brad Gilbert, Breno G. de Oliveira, Brent Laabs, brian d foy, Brian Duggan,
Brian Gernhardt, Brian S. Julin, Brock Wilcox, Bruce Gray, bspecht, Cale,
Carl Mäsak, CC, Cecilia, cfa, Christian Bartolomäus, Christian Sánchez,
Christian Walde, Christopher Bottoms, chromatic, Claudio Ramirez,  
Clifton Wood,

Coleoid, COMBORICO, coypoop, cpin, Cuon  Manh Le, Curt  Tilmes, cygx,
Dabrien 'Dabe' Murphy, Dagfinn Ilmari Mannsåker, Dale Evans, Dan Book,
Dan Kogai, Dan Miller, Dan Zwell, Daniel Dehennin, Daniel Green, Daniel Mita,
Daniel Perrett, dariusantia, Dave Olszewski, Dave Rolsky, David Brunton,
David H. Adler, David M. Cawthon, David Warring, dmaestro, Dmitri  
Iouchtchenko,

Dominique Dumont, Donald Hunter, Douglas Jenkins, Douglas L. Schrag,
Douglas Schrag, dugword, eater, Eckhart Arnold, Eike Frost, Elena Merelo,
Elise, Elizabeth Mattijsen, Emeric54, Eric de Hont, Fernando Correa de  
Oliveira,

Fernando Santagata, fireartist, flussence, Francis Grizzly Smit,
Francois Perrad, francois@, Fritz Zaucker, Fyodor  Sizov,  
Gabor Szabo,

Garrett Goebel, Geoffrey Broadwell, gerd, Gerd Pokorra, gotoexit, Greg Donald,
Harrison Chienjo, holli-holzer, ianmcb, ijneb, ilyash-b, Innokenty Shniperson,
Itsuki Toyota, İsmail Arılık, Jack Kuan, Jake Russo, James ( Jeremy ) Carman,
Jan-Olof Hendig, Jared Miller, Jarkko Haapalainen, Jason Cole, Jeff Linahan,
Jeffrey Goff, Jeremy Studer, Jim Davis, Jimmy Zhuo, jjatria, Joachim  
Durchholz,

Joel, Joelle Maslak, John Gabriele, John Harrison, John Spurr, Jonas Kramer,
Jonathan Beebe, Jonathan Scott Duff, Jonathan Stowe, Jonathan Worthington,
Josh Soref, José Albert Cruz Almaguer, Juan Julián Merelo Guervós,
Juerd Waalboer, Julien Simonet, Justin DeVuyst, karl yerkes, kjpye,
KlappeZuAffeTot, Kris Shannon, Lance Wicks, Larry Wall, LE Manh Cuong, lefth,
LemonBoy, Leon Timmermans, Lichtkind, LLFourn, Lloyd Fournier,
Luca Ferrari, Lucas Buchala, Luis Balderas Ruiz, Luis F.  Uceta,
M, M. Faiz Zakwan Zamzuri, Maik Hentsche, Marc Chantreux, Marcel Timmerman,
Mario, Mark Montague, Mark Rushing, Martin Barth, Martin Dørum Nygaard,
Martin Ryan, Mathieu Gagnon, Matt Oates, Matthew Wilson, Matthias  
Bloch, mendel,

Michael D. Stemle, Jr, Michal Jurosz, Mint, Moray, MorayJ, Moritz Lenz, mryan,
Nacho Mas, Nadim Khemir, Naoum Hankache, Nat, Neil Shadrach, Nelo Onyiah,
neuron, Nic, Nic Q, Nick Logan, Norbert Buchmueller, Nova Patch, nsvedberg,
Nuno 'smash' Carvalho, okaoka, Oleksii Varianyk, Panu Ervamaa, parabolize,
Patrick R. Michaud, Patrick Böker, Patrick Spek, Paul Cochrane, Paul Smith,
Paula, Paweł Murias, Pepe Schwarz, Peter Stuifzand,
Philippe Bruhat (BooK), Piers Cawley, Prakash Kailasa,
Przemysław Wesołek, Páll Haraldsson, Rafael Schipiura, raiph,
Randy  Lauen, raydiak, Reini Urban, Reko98, ribbon-otter, Ri

Announce: Rakudo Perl 6 compiler, Release #127 (2018.10)

2018-10-28 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
October 2018 release of Rakudo Perl 6 #127. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2018 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2018.10:
  + SPECIAL NOTES:
    + This is the first Rakudo release that comes with an additional
  JS backend. See `6pad` project for running Perl 6 code directly
  in your browser.
  + Deprecations:
    + Deprecated `gethostname()` in favor of `$*KERNEL.hostname` [f7fa5185]
  + Fixes:
    + Fixed/improved divide-by-zero errors in
    `Rational.floor`/`.ceiling`/`.Str` [a639fa9c][6d70346c]
    + Fixed semantics of `[Nil]` [88e6de22]
    + Fixed issue with custom `bless` method [64137bd2]
    + Made nativecall's `postcircumfix:<[ ]>` return containers [be2d4cb4]
    + Fixed hash descriptor when doing `Hash[Int].new` [9acbf000][ea710414]
    + `Nil` is now allowed in initialization and assignment of hashes
    [f61ba41a][605bcb39][7e86d4e3]
    + Fixed ContainerDescriptor for arrays with a dimension of three
[a2e78ec8]
    + Fixed indexing of shaped arrays with a dimension higher than 3
[0307c366]
    + `.in-timezone`s value is now coerced to Int [c8438e6a]
    + Stub methods from roles are now verified [fd5d5bdf]
    + Fixed double-closing of handles in `.lines` when `:close` and
    `$limit` are used [6edb142f]
    + Fixed closing of handles in `IO::Handle.lines` when `$limit`
    is used [c1c75740]
    + Consistified Rat.base to fail instead of throw [a804ab57]
    + Fixed enforcing of return constraints on multi method stubs [abba67b2]
    + Various improvements to produced messages [cc2fcc9a][560e94ef]
    [bf10f4c5][243a2f01][7d02b949][9894eda5][0243275d]
  + Additions:
    + [6.d] Constructs `$()`/`@()`/`%()` no longer have any `$/`-related
    magic [bb88a032]
    + [6.d] DefiniteHOWs' (type smileys) default default is now the base
    type [38b198c9]
    + Zero-Denominator Rationals are now normalized on creation [671c4115]
    [75ec2248]
    + Made `my @a is List = 1,2,3,4` work [2bdf2b35]
    + Using `is Type` on `@` and `%` attributes is now allowed [b537ce2e]
    + Added a BOM on `open` for utf16 filehandles [959b89cf][479348f3]
    + Added initial support for Unicode 11.0 [5c272ee4]
    + Pluggable `MAIN` interface refactored, documented and tested
   
[f234b9af][35f3d83d][7c9b2955][33c24153][8c3a4131][fbfccfa2]][341190e2][24413b5f[2c43d2bf]
    + Usage message now limits itself to partially matching candidates
    [0d1be77e]
    + Added additional dashed variants for utf16le and utf16be [4307996a]
    + Added `Parameter.coerce_type` method [0243275d]
    + Added `Code.cando` method to allow for `.cando` on all `Callable`s
    [45eeab78][69533b50]
  + Removals:
    + Removed --encoding support [bea08ec6][31b19d09]
  + Efficiency:
    + Made Hash.push/append between 1.2x and 1.4x as fast [12cfde2a]
    + Made `"".ord` orders of magnitude faster [b22edce4]
    + Made `==` with Rationals up to 1.55x as fast [c5a2eb81]
    + Made Rational `===` Rational 2.47x as fast [97e8413b]
    + Made many cases of `for (range-like things)` up to 150x as fast
    [2dd02751][645eeb52][dfd6450d][49baea70][89787028][2af789d7]
    + Made `[42]` not allocate anything anymore [8c4546bb]
    + Made `[@a]` and `[1,2,3]` about 1.4x as fast [e430813f]
    + Made `Array.List` coercion 1.5x as fast [3d405e89]
    + Made `.isa` about 2x as fast [4e8740c8]
    + Made `infix:<%%>` 10.42x as fast on natives [3d161a56]
    + Other minor optimizations [464a86b1][ab83b9d8][8cc3d5d7][b107cda5]
  + Internal:
    + Made `make` an only [369068ae]
    + Added skip-one method to appropriate PredictiveIterators [e54885e5]
    + More things are now initialized at setting compile time
    [06dfbf02][688cbac1][92735770]
    + Simplified initialization of `CompUnit::RepositoryRegistry`
    [0425d927][8e1cd01a]
    + Introduced `IterationBuffer.List` [8c10da6a]
    + Made it not go through `.new` if we can `nqp::create` [84311b77]
    + Made sure `.STORE` only works on instances [9daac683]
    + Added `$*INSIDE-EVAL` to mark that we're inside an `EVAL` [73b7c603]

Re: Feedback requested on playlist of 200 Perl 6 videos

2018-10-05 Thread Laurent Rosenfeld via perl6-users
This list is quite useful, thank you Raiph for it. I've found some that I
did not know about.
Cheers, Laurent.


Le jeu. 4 oct. 2018 à 01:03, Ralph Mellor  a
écrit :

> On Wed, Oct 3, 2018 at 6:16 AM David Green <
> david.gr...@pl-comme.ci-comme.ca> wrote:
>
>> There are  quite a few recorded P6 presentations around, but I
>> don't know if  there's a collected list anywhere, or one that links
>> to recent talks (anything not too out-of-date).
>>
>
> I've been building a collection of P6 videos for about 5 years.
>
> I'm pretty sure I've caught most of the reasonably obvious ones.
>
> I've reviewed them all and added a couple hundred to a playlist.
>
> I include a tweet sized summary for each.
>
> The most recent 100 are post 6.c. Older ones go back a decade.
>
>
> https://www.youtube.com/playlist?list=PLRuESFRW2Fa77XObvk7-BYVFwobZHdXdK_polymer=true
>
> A few months ago google changed something so they start at
> random times. that's badly screwed things up. I've researched
> and it looks like I'll have to rebuild the playlist. So now would
> be a great time for anyone to give me feedback on what they
> think of this list of videos, or the summary I've written for any
> video you watch some of, or any other comment you care to
> make.
>
> TIA.
>
> --
> raiph
>


Re: Feedback requested on playlist of 200 Perl 6 videos

2018-10-03 Thread David Green

On 2018-10-03 5:03 pm, Ralph Mellor wrote:

I've been building a collection of P6 videos for about 5 years.
https://www.youtube.com/playlist?list=PLRuESFRW2Fa77XObvk7-BYVFwobZHdXdK_polymer=true
Terrific -- I was going to say this should be listed on 
https://perl6.org/resources/ but it is indeed there! (Dunno why I didn't 
see it before, my brain was probably expecting "presentations" or 
"videos" and scanned right past the *Screencasts* section.)



-David



Feedback requested on playlist of 200 Perl 6 videos

2018-10-03 Thread Ralph Mellor
On Wed, Oct 3, 2018 at 6:16 AM David Green 
wrote:

> There are  quite a few recorded P6 presentations around, but I
> don't know if  there's a collected list anywhere, or one that links
> to recent talks (anything not too out-of-date).
>

I've been building a collection of P6 videos for about 5 years.

I'm pretty sure I've caught most of the reasonably obvious ones.

I've reviewed them all and added a couple hundred to a playlist.

I include a tweet sized summary for each.

The most recent 100 are post 6.c. Older ones go back a decade.

https://www.youtube.com/playlist?list=PLRuESFRW2Fa77XObvk7-BYVFwobZHdXdK_polymer=true

A few months ago google changed something so they start at
random times. that's badly screwed things up. I've researched
and it looks like I'll have to rebuild the playlist. So now would
be a great time for anyone to give me feedback on what they
think of this list of videos, or the summary I've written for any
video you watch some of, or any other comment you care to
make.

TIA.

--
raiph


Announce: Rakudo Perl 6 compiler, Release #126 (2018.09)

2018-09-23 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
September 2018 release of Rakudo Perl 6 #126. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2018 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2018.09:
  + Fixes:
    + Made native arrays throw when storing a lazy Seq [fc8c7f84][bb963a25]
    + Fixed smartmatching of Seqs against Iterables [d3cac14e]
    + Made it possible to emit Mu [3f10e2d1][db3768e3]
    + Fixed setting of `$/` when matching NDF [cf1df1d7]
    + Fixed prefix calls with `.:< ... >` on integer literals [ec366c30]
    [1835f280]
    + `.Array` on shaped arrays now returns a proper `Array` instead of
    dying [efbd58c8]
    + Fixed `.keys` on one-dimensional native shaped arrays [5a9105ae]
    + Made `Parameter.twigil` also work on dynamic Parameters [39f2d68a]
    + Made sure the decoder is detached when closing handles [b07874e0]
    + Made sure `X` handles empty lists on RHS [6c93fde8]
    + Various improvements to produced messages [d419a313][c8db35e3]
  + Additions:
    + Added a `PredictiveIterator` role for `Iterator`s that can
    determine how many values can still be generated, without
    actually generating them [3ffacb9f][5cbbcc6e][842d4b32]
    [78ae9028][000ac81e][c2c9df1c][cdf65305][ad64c757][eefbe6e1]
    [da663afd][e717e21b][ca5825b4]
    + Added `use isms ` and make `use isms` assume all available
    "isms" (now 'Perl5' and 'C++') [57f89278][c6c2b6c4][528def48]
    + Partially implemented Pod `#` alias for `%config :numbered` [b4bf1660]
    + Added utf16 decodestream and file handle write support [8fcebb86]
    [e8a7564d][0bf909bb][d275ea09]
  + Efficiency:
    + Made `Str.words` about 3x as fast [b8f37bfc]
    + Made `Str.lines` about 2x as fast [3dd09be3]
    + Made `IO::Handle.lines` about 1.2x as fast [874ec002][d198c1b7]
    + Made `IO::Path.lines` about 1.1x as fast [1905838c]
    + Made `Str.chop(N)` about 5x as fast [07089e89]
    + Made `Str.(r)index(needle,pos)` about 1.2x as fast [5d1d792a]
    + Improved `.elems` and `.Bool` on `Seq` by adding
    `count-only`/`bool-only` methods [89055755][86468e1e][070780e0]
    [64ddacab][9738dfbf][d1e80dfe][9ff17367][b1c645ed][bd832061]
    [708ff624][5f3c2bfc][2a011a0e][faed3a9c][e73e3ecc][78bebc7a]
    [d970c2b3][f5ebad98]
  + Internal:
    + Moved some iterators from Range to `R::Iterator` [fcd45ff8]
    + Streamlined quoted words handling [92951168][ae739adf]
    + Fixed a bug in the optimizer where optimizations were
    improperly combining [e436f4e5]
    + Simplified `Map.kv` iterator [6977973d]
    + Replaced use of `p6bool` by `hllbool` and `hllboolfor` [672196cd]
    [20feda70][170ffd40][7e69c640][3272207a][f1f6825b]
    + Removed obsolete p6settypes extop [de4e8225]
    + Standardized use of proto's on `.STORE` methods [ed9b48de]
    + Removed EmptySeq [a4db33e7]


The following people contributed to this release:

Zoffix Znet, Elizabeth Mattijsen, Paweł Murias, Bart Wiegmans,
Samantha McVey, Stefan Seifert, Jeremy Studer, Timo Paulssen,
Aleks-Daniel Jakimenko-Aleksejev, Will "Coke" Coleda, Daniel Green,
Tom Browder, MorayJ, Naoum Hankache, Nick Logan, Ben Davies, Curt Tilmes,
David M. Cawthon, Lichtkind, Luis F. Uceta, 陈梓立, Alexander, Daniel Mita,
Itsuki Toyota, Jonathan Stowe, Jonathan Worthington,
Juan Julián Merelo Guervós, Robert Lemmen, Steve Mynott, Tobias Boege

If you would like to contribute or find out more information, visit
<https://perl6.org>, <https://rakudo.org/how-to-help>, ask on the
 mailing list, or ask on IRC #perl6 on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Perl 6 development: <https://donate.perlfoundation.org/>
(put “Perl 6 Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#127), is tentatively scheduled for 2018-10-20.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feed

Re: Information about Perl 6 internals

2018-09-21 Thread Fernando Santagata
Thank you for answering, Your digression about PDL was very much
appreciated.

About the module I'm writing, the raw interface to the library is almost
complete, but I need more time to work on the high level interface and
right now I have little time, due to $job, so don't hold your breath :-)

You wrote "You can still access it as a CArray if you allocate it
yourself;"can you share any hint on how to make a CArray point to a
Pointer? NativeHelpers::Blob doesn't seem to help, even if there are some
ideas in there that might be adapted to the problem at hand.

Thank you!

On Thu, Sep 20, 2018 at 6:51 PM Curt Tilmes  wrote:

> I haven't seen many responses to this yet.  I am by no means a
> MoarVM/NQP/Rakudo internals expert, speaking only as a developer on top of
> those things, not inside them.
>
> On Sun, Sep 16, 2018 at 8:12 AM Fernando Santagata <
> nando.santag...@gmail.com> wrote:
>
>> I'm developing an interface to libfftw3 (Fastest Fourier Transform in the
>> West).
>> The library provides a function to allocate SIMD-aligned memory (Single
>> Instruction Multiple Data), in order to maximize access speed to data.
>> Before I start to investigate a way to blandish a CArray into pointing to
>> a stretch of previously allocated memory, how does Perl 6 allocate memory?
>> Does it already use the SIMD alignment?
>>
>
> I think efforts like this are important for Perl 6.  Things like PDL were
> 'tacked on top' of Perl 5, while I think with 'native' types, the long term
> goal is to have such things more integrated.  NativeCall,, 'is native',
> CArrays, etc, have been huge steps in that direction, but I think there is
> much work to go.
>
> I've had very good luck using NativeCall, keeping everything in C land,
> and having in/out methods to transform things, but less luck trying to keep
> the data structures straight between the two.  That feels like the old PDL
> way.  I want to construct huge multi-dimensional arrays of native types in
> Perl 6 and seamlessly call NativeCall functions on it (like fftw) and also
> auto-parallelized, optimized Perl 6 operations for plain math.  We're not
> quite there yet.
>
> Something to keep in mind. If you allocate memory from Perl, the garbage
> collector may move it around on you.  Always get a fresh C pointer to it
> just prior to passing to any NativeCall function.  Another option is to
> just allocate (and free -- you are responsible for it) from C, either with
> some library allocation function, or just plain NativeCall malloc()/free()
> and friends.  It will never move around, and you can still use a bunch of
> Perlish ways (Pointer, CArray, etc.) to read and manipulate it.
>
> I don't know the answer to your SIMD alignment question, but I suspect the
> answer is no.  If that is a requirement for your library (or performance),
> you probably just want to allocate it yourself.  You can still access it
> as a CArray if you allocate it yourself.
>
> If you are doing some action heavily and find it slow, build a tiny test
> case to illustrate and file a bug.  That will give the folks with the
> implementation knowledge some guidance for what would really help you.
>
> There is a lot of work still needed, but things have come very far already
> and are moving fast.  The fundamental architecture was designed to support
> numeric work in the manner you will be doing, so there is a lot of room for
> improvement, especially with multi-threading, long after Perl 5 PDL, NumPy
> and friends have run out of gas.
>
> Since I'm here :-) will Perl 6 ever support a native type mirroring the
>> __float128 quadruple-precision type provided by gcc?
>>
>
> I'll wager that the answer to "ever support" is probably yes, as long as
> somebody wants it.  We're just waiting for the same person to be in the
> "wants it" and "can do it" category at the same time.
>
> Curt
>
>

-- 
Fernando Santagata


Re: Information about Perl 6 internals

2018-09-21 Thread Elizabeth Mattijsen
> On 20 Sep 2018, at 18:45, Curt Tilmes  wrote:
>> Since I'm here :-) will Perl 6 ever support a native type mirroring the 
>> __float128 quadruple-precision type provided by gcc?
>>  
> I'll wager that the answer to "ever support" is probably yes, as long as 
> somebody wants it.  We're just waiting for the same person to be in the 
> "wants it" and "can do it" category at the same time.

Please note that the “wants it” could be someone different willing to sponsor 
the work.  This has happened for various Perl 6 / MoarVM features in the past.



Liz

Re: Information about Perl 6 internals

2018-09-20 Thread Curt Tilmes
I haven't seen many responses to this yet.  I am by no means a
MoarVM/NQP/Rakudo internals expert, speaking only as a developer on top of
those things, not inside them.

On Sun, Sep 16, 2018 at 8:12 AM Fernando Santagata <
nando.santag...@gmail.com> wrote:

> I'm developing an interface to libfftw3 (Fastest Fourier Transform in the
> West).
> The library provides a function to allocate SIMD-aligned memory (Single
> Instruction Multiple Data), in order to maximize access speed to data.
> Before I start to investigate a way to blandish a CArray into pointing to
> a stretch of previously allocated memory, how does Perl 6 allocate memory?
> Does it already use the SIMD alignment?
>

I think efforts like this are important for Perl 6.  Things like PDL were
'tacked on top' of Perl 5, while I think with 'native' types, the long term
goal is to have such things more integrated.  NativeCall,, 'is native',
CArrays, etc, have been huge steps in that direction, but I think there is
much work to go.

I've had very good luck using NativeCall, keeping everything in C land, and
having in/out methods to transform things, but less luck trying to keep the
data structures straight between the two.  That feels like the old PDL
way.  I want to construct huge multi-dimensional arrays of native types in
Perl 6 and seamlessly call NativeCall functions on it (like fftw) and also
auto-parallelized, optimized Perl 6 operations for plain math.  We're not
quite there yet.

Something to keep in mind. If you allocate memory from Perl, the garbage
collector may move it around on you.  Always get a fresh C pointer to it
just prior to passing to any NativeCall function.  Another option is to
just allocate (and free -- you are responsible for it) from C, either with
some library allocation function, or just plain NativeCall malloc()/free()
and friends.  It will never move around, and you can still use a bunch of
Perlish ways (Pointer, CArray, etc.) to read and manipulate it.

I don't know the answer to your SIMD alignment question, but I suspect the
answer is no.  If that is a requirement for your library (or performance),
you probably just want to allocate it yourself.  You can still access it as
a CArray if you allocate it yourself.

If you are doing some action heavily and find it slow, build a tiny test
case to illustrate and file a bug.  That will give the folks with the
implementation knowledge some guidance for what would really help you.

There is a lot of work still needed, but things have come very far already
and are moving fast.  The fundamental architecture was designed to support
numeric work in the manner you will be doing, so there is a lot of room for
improvement, especially with multi-threading, long after Perl 5 PDL, NumPy
and friends have run out of gas.

Since I'm here :-) will Perl 6 ever support a native type mirroring the
> __float128 quadruple-precision type provided by gcc?
>

I'll wager that the answer to "ever support" is probably yes, as long as
somebody wants it.  We're just waiting for the same person to be in the
"wants it" and "can do it" category at the same time.

Curt


Information about Perl 6 internals

2018-09-16 Thread Fernando Santagata
Hello,

I'm developing an interface to libfftw3 (Fastest Fourier Transform in the
West).
The library provides a function to allocate SIMD-aligned memory (Single
Instruction Multiple Data), in order to maximize access speed to data.
Before I start to investigate a way to blandish a CArray into pointing to a
stretch of previously allocated memory, how does Perl 6 allocate memory?
Does it already use the SIMD alignment?

Since I'm here :-) will Perl 6 ever support a native type mirroring the
__float128 quadruple-precision type provided by gcc?

Thank you!

-- 
Fernando Santagata


Re: Perl 6 Design specification?

2018-09-11 Thread ToddAndMargo

On 09/11/2018 02:50 AM, JJ Merelo wrote:


Hi JJ,

Yes it helps a bunch.  Thank you!

Follow up: where would I find the design specifications for the
functions?


There's a search engine in design.perl.org , 


Got a ton of hits. But no joy.

they should all be there. If you want to see how they work, use the 
search facility in the Roast repo. If you want to see how they are 
defined, use the search facility in the Rakudo repo.


Where is that?



Cheers

JJ



--
~~
Computers are like air conditioners.
They malfunction when you open windows
~~


Re: Perl 6 Design specification?

2018-09-11 Thread JJ Merelo
> Hi JJ,
>
> Yes it helps a bunch.  Thank you!
>
> Follow up: where would I find the design specifications for the functions?


There's a search engine in design.perl.org, they should all be there. If
you want to see how they work, use the search facility in the Roast repo.
If you want to see how they are defined, use the search facility in the
Rakudo repo.

Cheers

JJ


Re: Perl 6 Design specification?

2018-09-11 Thread ToddAndMargo

On 09/11/2018 01:13 AM, JJ Merelo wrote:
Short answer: if you look up "perl 6 design specification" in any search 
engine (Google or Baidu) the 3-4 first results make sense.

Long answer: it's a bit more complicated than that.
First, there's the synopsis: (first result in Baidu) 
http://design.perl6.org/ Those are the initial guidelines that specify 
the language, the core modules, and the behavior of everything. That's 
the starting point.
Then, there's roast: https://github.com/perl6/roast Roast is rather 
ROAST, "Repository of All Spec Tests". Those are the tests that a 
compiler or interpreter must pass if it wants to be called Perl 6. So 
far, only Rakudo passes those tests.
And then, of course, there's Rakudo. There are some user-accessible 
classes and modules that you can use, but they are not part of the 
language itself, only part of the only language compiler existing for 
the time being.


Hope this helps

JJ

El mar., 11 sept. 2018 a las 10:04, ToddAndMargo (<mailto:toddandma...@zoho.com>>) escribió:


    Hi All,

Is the Perl 6 design specification (the one the developers use)
out there somewhere on the web that I could look at?

Many thanks,
-T



--
JJ


Hi JJ,

Yes it helps a bunch.  Thank you!

Follow up: where would I find the design specifications for the functions?

-T

--
~~
Computers are like air conditioners.
They malfunction when you open windows
~~


Re: Perl 6 Design specification?

2018-09-11 Thread JJ Merelo
Short answer: if you look up "perl 6 design specification" in any search
engine (Google or Baidu) the 3-4 first results make sense.
Long answer: it's a bit more complicated than that.
First, there's the synopsis: (first result in Baidu)
http://design.perl6.org/ Those are the initial guidelines that specify the
language, the core modules, and the behavior of everything. That's the
starting point.
Then, there's roast: https://github.com/perl6/roast Roast is rather ROAST,
"Repository of All Spec Tests". Those are the tests that a compiler or
interpreter must pass if it wants to be called Perl 6. So far, only Rakudo
passes those tests.
And then, of course, there's Rakudo. There are some user-accessible classes
and modules that you can use, but they are not part of the language itself,
only part of the only language compiler existing for the time being.

Hope this helps

JJ

El mar., 11 sept. 2018 a las 10:04, ToddAndMargo ()
escribió:

> Hi All,
>
> Is the Perl 6 design specification (the one the developers use)
> out there somewhere on the web that I could look at?
>
> Many thanks,
> -T
>


-- 
JJ


Perl 6 Design specification?

2018-09-11 Thread ToddAndMargo

Hi All,

Is the Perl 6 design specification (the one the developers use)
out there somewhere on the web that I could look at?

Many thanks,
-T


Announce: Rakudo Perl 6 compiler, Release #125 (2018.08)

2018-09-02 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
August 2018 release of Rakudo Perl 6 #125. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2018 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from 
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2018.08:
  + SPECIAL NOTES:
+ Changed filenames and permissions of many scripts in the repo
  (e.g. install-dist.pl is now install-dist.p6) [07b4100c][9d8b6600]
  [c5c4ea38][59a6f7d2][248ee79c][906bec8c][683ae67b]
  + Deprecations:
+ Deprecated RAKUDO_EXCEPTIONS_HANDLER [5e1df41b][d2116efd]
+ [6.d] Deprecated `undefine` [72bac670]
  + Fixes:
+ Fixed .assuming on subs with slurpies [93a8ec66]
+ Fixed auto-printing of low-level (non-`Mu`) objects in REPL [9ea427a3]
+ Made `Map.list` return a List instead of a Seq [60447c62]
+ Made internal safely_stringify routine safer [0e2a7d93]
+ Made .perl of `(|)` signature a bit more idiomatic [24467ed6]
+ Fixed coping with failures to open a directory in internal
`DIR-RECURSE` sub [e9351cba]
+ Fixed preservation of newlines in pod blocks [c6433838]
+ Fixed big int values in `BagHash` [fd779109]
+ Fixed several crashes and bugs involving meta assign operator [b9b0838d]
+ Fixed roundtripability of `QuantHash`es [84f60ada][ddf496c7]
+ Fixed `.comb` on allomorphs with leading 0's [f8d6a3f4][72ccd432]
+ Fixed crash when doing EVAL :lang from multiple threads [66683080]
+ Fixed potential race condition in EVAL [80bbfbb3]
+ Fixed `Test`'s `diag` to no longer die on `Junction`s [5ec2c96e]
+ Fixed Cool consistency in arguments of  [e547811a]
+ Fixed  to convert numeric data to allomorphs [38d7f2a0]
[0275ea29][07b032d0]
+ Many fixes and improvements to the contributors.p6 script
[7a87b7f5][8fee8d48][c5cfbc64][f6c8159d][1197c3f6][ade83c86]
+ Made `Routine.perl` more verbose / precise [d6c161ba]
+ Added some missing `is rw` [6caf86be][832ccd81]
+ Fixed problem in concatenation of 2 `Junction`s [4ef8433a]
+ Fixed failure to set up encoder/decoder in IO::Handle via
`.encoding` call in certain cases/encodings [86846ac5]
+ Made it impossible to assign to a Map [fffe89c5]
+ Fixed `Map.WHICH` to reflect subclasses correctly [199d276b]
+ Gave PseudoStash its own non-value based .WHICH [bb5db6a8]
+ Fixed `QuantHash`.hash/Hash return values [76298204]
+ Made `Proc.command` return an immutable List instead of Array [925c1134]
+ Fixed `loop` to always return Nil [aff96bae]
+ Made an uncomposed class type-check against roles that have been added
[38d046fa]
+ Fixed IO::Handle.encoding to check if$!decoder was set up [edf81bfe]
+ Fixed `is required($reason)` [7c349b7e]
+ Fixed `Range.roll(*)`/`roll(N)`/`pick(N)` with big ints [b30800c8]
+ Removed `` token in `term:sym` [51e41da8]
+ [6.d] Reserved `:sym` colonpair on names of routines [a68784a6]
+ Fixed a ThreadPoolScheduler memory leak whereby certain usage
patterns caused it to build up an ever-deeper call stack, due
to continuation mis-use [bf514c15]
+ Fixed misscoping of blocks in whatever curries [85495890]
+ Made sure that onlystar Routines cannot be optimized away when
wrapped [434ede49][1188f801]
+ Made it possible to use `Array::` as a top level namespace
in modules [a71e370b]
+ Fixed Distribution::Resource.^mro to not error [bb46381a]
+ [6.d] Changed `$*ARGFILES` to be based on `$*IN` inside sub MAIN
[84d45f07]
+ [6.d] Made `num` variables default to 0e0 [f045042d]
+ Made Rationals fully-immutable [5c429e4e]
+ Fixed problem in QuantHash.ACCEPTS [712d0f0f]
+ Slightly changed semantics of (+), (-), (&), (.), (^), (|) on QuantHashes
[3a6c1197][b826a07a][42595c27][f1693f26][64ab7179][8cedbbd1]
+ Fixed wrong math with largish Ints [fec1bd74][8e2c70fa][342c5a9c]
+ Fixed crash with attr + submethod TWEAK [d09756ae]
+ Removed sig from Routine.perl if it is empty [546d08c1]
+ Gave Routine its own .gist [6ad50d79]
+ Made sure `my ($a,$b)` does not have any runtime effect [90ef3061]
+ Prevented REPL from writing to filehandle when opening 

Perl 6 User Survey - June 2018

2018-06-25 Thread seno
To help with improving Perl 6's user experience, we've decided to make a 
survey in the IRC (#Perl6).


https://goo.gl/forms/JXtrWDYFrV9ENW6x2

--
benjikun


Announce: Rakudo Perl 6 compiler, Release #124 (2018.06)

2018-06-21 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
June 2018 release of Rakudo Perl 6 #124. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2018 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2018.06:
  + Fixes:
    + Fixed numeric values in Signal enum [aa622a95][852c1bd3][f2b50378]
    [774ec5a0][189c5a8a][b19cc4bd][c661c03c][5603771f][bfcfa5da]
    [7e5a862e][cd8d0445]
    + Fixed long class names being cut off in X::TypeCheck message
[a79de429]
    + Many improvements to POD parsing [75430ac9][cb66dfcc][6f1b1cb6]
    [e1e7e4c6][cc28ce37][e776ded7][54aa17c6]
    + Fixed code execution in elided duplicate argument pair values
    [fc57f9f0][73297600]
    + Fixed `use isms ` for `rand` [d1d31fd5]
    + Fixed miscompilation of chain ops [c10b1eec]
    + Fixed home path when setting up repositories [91b211ac][d06e70c3]
    + [JVM] Implemented canStore in RakudoContainerSpec [704b893c]
  + Additions:
    + Made `is DEPRECATED` work on attributes with auto-generated
    accessors [7e3aa2f2]
    + Added `:api` in preparation for full zef / ecosystem
    support [affc218f]
    + Added .perl method to Distributions [18f9de61]
  + Removals:
    + Removed backwards compatibility with installers using the
    old Distribution class [2acbe7fc]
    + Moved pack/unpack support to lib/experimental.pm6 [9472fdfd][edc6ac6b]
    + Renamed `use p5isms` to more general `use isms ` [4109ce36]
    [c80ea2f2][56dbd735][148d7c56][95aa77c9]
  + Efficiency:
    + Streamlined creation of HyperWorkBatchIterator [20bf96f9]
    + Made .minpairs/.maxpairs about 25% faster [788cda94]
    + Privatized a lot of methods for (now) better performance
    [c940a0ed][ec5e51c8][7284a30f][c49bbc93][0ac5c4ff][09a9bbc0]
    [caafcb38][0c265d49][48864774][0e835805][5621b262]
    + Added spesh plugin support [192083f6]
    + Made private method calls 6.6x faster (spesh plugin) [51ff83c7]
    + Made qualified method calls 12x faster (spesh plugin) [f6f43d58]
  + Internal:
    + Moved  to Rakudo::Deprecations.DEPRECATED [472f6e48]
    [89a4cf0d][afbbf8f8][2fa08d5e][874ead51]
    + Turned Hash.BIND-KEY into multis [1c1acbc2]
    + Various NQP ↔ Perl 6 fixes [e4ecf5e5][23af3491][7bc6e46f][cbb5ee5f]


The following people contributed to this release:

Elizabeth Mattijsen, Will "Coke" Coleda, Jonathan Worthington,
Aleks-Daniel Jakimenko-Aleksejev, Zoffix Znet, Jeremy Studer,
Rafael Schipiura, 陈梓立, Tom Browder, Samantha McVey, Christian
Bartolomäus,
Juan Julián Merelo Guervós, Stefan Seifert, Christian Sánchez, Daniel Green,
Ben Davies, Nick Logan, Luca Ferrari, Claudio Ramirez, Paweł Murias,
Bruce Gray, Tison, Ronald Schmidt, Timo Paulssen, Rob Hoelz, Luis F. Uceta,
dmaestro, Jonas Kramer, Moritz Lenz, Jan-Olof Hendig, KlappeZuAffeTot,
Jack Kuan, Brad Gilbert, İsmail Arılık

If you would like to contribute or find out more information, visit
<https://perl6.org>, <https://rakudo.org/how-to-help>, ask on the
 mailing list, or ask on IRC #perl6 on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Perl 6 development: <https://donate.perlfoundation.org/>
(put “Perl 6 Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#125), is tentatively scheduled for 2018-07-21.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

[^1]: See <http://moarvm.org/>

[^2]: What’s the difference between the Rakudo compiler and the Rakudo
Star distribution?

The Rakudo compiler is a compiler for the Perl 6 language.
Not much more.

The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, a modul

[perl #133246] Possible bug in Perl 6 OO

2018-06-10 Thread via RT
# New Ticket Created by  Richard A Hogaboom 
# Please include the string:  [perl #133246]
# in the subject line of all future correspondence about this issue. 
# https://rt.perl.org/Ticket/Display.html?id=133246 >


Attached is an executable file that demos a possible Perl 6 OO bug if 
attributes and method names are the same.  This includes some compile 
time errors and an infinite loop.

-- 
Richard A Hogaboom
16 Alprilla Farm Road
Hopkinton, MA 01748-1922
richard.hogab...@gmail.com
www.linkedin.com/in/richardhogaboom/
https://plus.google.com/+RichardHogaboom
https://github.com/rahogaboom
M508-330-3775


# Richard Hogaboom
# richard.hogab...@gmail.com

# Fedora 28
# Perl 6 2018.04
# uname -a
# Linux new-host-3 4.16.12-300.fc28.x86_64 #1 SMP Fri May 25 21:13:28 UTC 2018 
x86_64 x86_64 x86_64 GNU/Linux


# in Perl 6 OO if you have in a class an attribute name and a method name that 
are the same,
# some errors may result or not - including compile time errors and an infinite 
loop.  just
# comment in the various examples one by one to run them individually.

use v6;

=begin pod
# EXAMPLE 1
# this works

class Address {
has $.var is rw;
}

my $addr = Address.new;
$addr.var = 'VAR';
say $addr.var;
=end pod

=begin pod
# EXAMPLE 2
# this works

class Address {
has $.var is rw;

multi method var() {
return $!var;
}

multi method var(Str $v) {
$!var = $v;
}
}

my $addr = Address.new;
$addr.var('VAR');
say $addr.var();
=end pod

=begin pod
# EXAMPLE 3
# adding a method of the same name as the attribute gives:
# Cannot modify an immutable Str (Nil)
#   in block  at t.p6 line 66

class Address {
has $.var is rw;

method var() {
}
}

my $addr = Address.new;
$addr.var = 'VAR';
say $addr.var;

# is there a general prohibition on having an attribute and an explicit method 
of the same name?
=end pod

=begin pod
# EXAMPLE 4
# adding a return statement in the var() method gives a hang.
# using top shows the moar process at 100% CPU.

class Address {
has $.var is rw;

method var() {
return $.var;
}
}

my $addr = Address.new;
$addr.var = 'VAR';
say $addr.var;

# why does just adding a return statement eliminate the compile error? and hang?
# either this should not compile or a run time error should occur, not an 
infinite loop.
# adding 'multi' to 'method var() {' above does not help.
=end pod

=begin pod
# EXAMPLE 5
# changing only $.var to $!var in the var() method gives:
# Cannot assign to a readonly variable or a value
#   in block  at t.p6 line 109

class Address {
has $.var is rw;

method var() {
return $!var;
}
}

my $addr = Address.new;
$addr.var = 'VAR';
say $addr.var;

# this eliminates the infinite loop , but returns to the previous readonly 
variable msg.
=end pod

# all this seems a caution against using the same name as an attribute and 
explicit method name,
# but shouldn't there be some type of prohibition/warning?



[perl #133246] Possible bug in Perl 6 OO

2018-06-09 Thread Zoffix Znet via RT
On Sat, 09 Jun 2018 05:33:04 -0700, c...@zoffix.com wrote:
> when
> using implicit return:
> 
> 
> method var1() is rw { return$!var }
> method var2()   { return-rw $!var }

Correction, that should be:

method var1() is rw {   $!var }
method var2()   { return-rw $!var }


[perl #133246] Possible bug in Perl 6 OO

2018-06-09 Thread Zoffix Znet via RT
On Sat, 09 Jun 2018 05:33:04 -0700, c...@zoffix.com wrote:
> when
> using implicit return:
> 
> 
> method var1() is rw { return$!var }
> method var2()   { return-rw $!var }

Correction, that should be:

method var1() is rw {   $!var }
method var2()   { return-rw $!var }


[perl #133246] Possible bug in Perl 6 OO

2018-06-09 Thread Zoffix Znet via RT
On Mon, 04 Jun 2018 07:31:40 -0700, richard.hogab...@gmail.com wrote:
> Attached is an executable file that demos a possible Perl 6 OO bug if 
> attributes and method names are the same.  This includes some compile 
> time errors and an infinite loop.
> 

Thanks for the report, but there's no bug here.

The `has $.foo` attribute syntax is just a shorthand for writing `has $!foo; 
method foo { $!foo }`.
In other words, the compiler auto-generated an accessor method for you.

When you use `$.foo` syntax inside a method, it's a shorthand for `self.foo`; 
in other words, it's a
method call.

If you define a method with the same name as the attribute, then it signals to 
the compiler that you chose
to take care of accessor method yourself.

Also, to return a writeable container, you need to either use `return-rw` 
instead of plain `return` when
using explicit return, or apply the `is rw` trait to the method, when using 
implicit return:


method var1() is rw { return$!var }
method var2()   { return-rw $!var }

With that knowledge, you can see why the failing examples fail:

* EXAMPLE 3: You defined a method with the same name as attribute, so it'll 
function as the accessor. The body
 of that method is empty, so it returns `Nil` and hence the error 
about trying to assign to `Nil`
* EXAMPLE 4: Again, you defined your own accessor, but now you're also using 
`$.var` syntax inside, so the method
 infiniloops calling itself over and over. Hence the hang.
* EXAMPLE 5: You've used `return` instead of `return-rw`, so only a readonly 
value is returned instead of a
 writable container. Hence the error

> but shouldn't there be some type of prohibition/warning?

No, as it's perfectly fine to declare your own accessors. Of course, writing 
`has $.foo` instead of `has $!foo` is
pointless, in that case, but it serves as a hint to the programmer that it's a 
public attribute, so I don't think
warning about that is appropriate.


[perl #133246] Possible bug in Perl 6 OO

2018-06-09 Thread Zoffix Znet via RT
On Mon, 04 Jun 2018 07:31:40 -0700, richard.hogab...@gmail.com wrote:
> Attached is an executable file that demos a possible Perl 6 OO bug if 
> attributes and method names are the same.  This includes some compile 
> time errors and an infinite loop.
> 

Thanks for the report, but there's no bug here.

The `has $.foo` attribute syntax is just a shorthand for writing `has $!foo; 
method foo { $!foo }`.
In other words, the compiler auto-generated an accessor method for you.

When you use `$.foo` syntax inside a method, it's a shorthand for `self.foo`; 
in other words, it's a
method call.

If you define a method with the same name as the attribute, then it signals to 
the compiler that you chose
to take care of accessor method yourself.

Also, to return a writeable container, you need to either use `return-rw` 
instead of plain `return` when
using explicit return, or apply the `is rw` trait to the method, when using 
implicit return:


method var1() is rw { return$!var }
method var2()   { return-rw $!var }

With that knowledge, you can see why the failing examples fail:

* EXAMPLE 3: You defined a method with the same name as attribute, so it'll 
function as the accessor. The body
 of that method is empty, so it returns `Nil` and hence the error 
about trying to assign to `Nil`
* EXAMPLE 4: Again, you defined your own accessor, but now you're also using 
`$.var` syntax inside, so the method
 infiniloops calling itself over and over. Hence the hang.
* EXAMPLE 5: You've used `return` instead of `return-rw`, so only a readonly 
value is returned instead of a
 writable container. Hence the error

> but shouldn't there be some type of prohibition/warning?

No, as it's perfectly fine to declare your own accessors. Of course, writing 
`has $.foo` instead of `has $!foo` is
pointless, in that case, but it serves as a hint to the programmer that it's a 
public attribute, so I don't think
warning about that is appropriate.


Announce: Rakudo Perl 6 compiler, Release #123 (2018.05)

2018-05-24 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
May 2018 release of Rakudo Perl 6 #123. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2018 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2018.05:
  + SPECIAL NOTES:
    + Corresponding MoarVM release introduces hash randomization to
  prevent DoS attacks. Among other things, this may affect user
  tests that expect keys or values returned from a Hash object to
  be in the same order every run.
  + Fixes:
    + Made .assuming available in WhateverCodes [6e8dc6f1]
    + Fixed truncation of seconds in DateTime.later/.earlier [656ff77b]
    + Fixed spurious unhandled Failures caused by require [666eb3ab]
    + Made IO::Handle.seek to always return True [24a90774]
    + Made CallFrame skip over thunk-like things [0d216bef]
    + Fixed unwanted warnings in X::NYI when $.feature is omitted [a7c03101]
    + Fixed WHICH of non-reduced Rats [8cd70d1e]
    + Fixed smartmatch exception explosion [97d5d83e]
    + Made code detection in subsets more robust [ede507b7][febcb917]
    + Made build of BOOTSTRAP.moarvm reproducible
[39227d54][56c03572][6ae0526f]
    + Simplified Signature.perl/gist for unnamed invocants
[71159bed][f14dc6bd]
    + Made it possible to call .perl on uninitialized native strings
[b12fba38]
    + Made .gist on native / non-native arrays similar [4e88fa15]
    + Fixed overzealous X::Syntax::NoSelf throwage [9b915f09]
    + Fixed smartmatching an Iterable type object [385308d3]
    + Fixed unexpected POD table failures [2cda7a19]
    + Made pass() and flunk() more consistent [82b3a894]
    + Fixed distribution path format on windows [4cacbf66]
    + Various fixes for the JVM backend [7d2940ee][cc57d06a][be35160d]
    + Various improvements to produced messages [7b336519][0de80523]
    [b4973115][22d08069]
  + Additions:
    + Added shapes support for HAS scoped attributes [4c3807c5][7847768c]
    + Added NativeCall CArray.allocate method [a02131d5]
    + Added "use p5isms" pragma to stop complaints about Perl 5 traps
[8ae82a55]
    [8ccda189][7bde26fc]
  + Removals:
    + Removed some 5to6 error messages [3f350912][4ac9915e]
    [5ce24929][cf35764d][44538f50]
  + Build system:
    + Fixed Configure script to not assume gmake location [abd88a94]
  + Efficiency:
    + Made Int.lsb 2x faster [9e2dacd4]
    + Made Int.msb 2x faster [775a42ee]
    + Made Range slices on native arrays about 23x faster [67a31600]
    [f038e12d][09cbe679][c69179cc]
    + Made .splice on native arrays up to 2x faster [ee1ba153]
    [4ab2f2cd][da646aa2][e0ad668e]
    + Made Rat / FatRat stringification up to 200x faster [e0dca0cc]
    + Made creation of regexes up to 30% faster [32a78996]
    + Made @a.splice(offset) about 20% faster [8d12d5b4][a5d46b42][8bde96d2]
    + Made module loading 10ms faster by avoiding IO::relative [849ba56d]
    + Other minor optimizations [d53fe90a][aa18140e][776ff354]
    [ac6e26e8][073a7f50][54e390f5]
  + Internal:
    + Introduced nqp::slice op [090432bb]


The following people contributed to this release:

Juan Julián Merelo Guervós, Elizabeth Mattijsen, Zoffix Znet,
Will "Coke" Coleda, Aleks-Daniel Jakimenko-Aleksejev, Luca Ferrari,
Christian Bartolomäus, 陈梓立, Samantha McVey, Stefan Seifert,
Brian S. Julin, Ben Davies, Elena Merelo, Jeremy Studer, Paweł Murias,
Daniel Green, Itsuki Toyota, Fritz Zaucker, Nick Logan, cfa, Steve Mynott,
Moritz Lenz, Cecilia, Tom Browder, Timo Paulssen, Tobias Leich,
Lucas Buchala, Paula, Reko98, Jonathan Worthington, Ronald Schmidt,
COMBORICO, thundergnat, Martin Ryan, Claudio Ramirez,
Wenzel P. P. Peppmeyer, Christian Sánchez, antoniogamiz, Jonas Kramer,
Luis F. Uceta, Oleksii Varianyk, Jan-Olof Hendig, Martin Barth,
Julien Simonet, brian d foy, Matt Oates, allan

If you would like to contribute or find out more information, visit
<https://perl6.org>, <https://rakudo.org/how-to-help>, ask on the
<perl6-compi...@perl.org> mailing list, or ask on IRC #perl6 on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Perl 6 development: <https://donate.perlfoundation.org/>
(put “Perl 6 Core 

Announce: Rakudo Perl 6 compiler, Release 2018.04.1

2018-04-29 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I'm announcing an
out-of-schedule release of the Rakudo Perl 6 compiler.
Rakudo is an implementation of Perl 6 on the Moar Virtual Machine[^1].

This release is a point release in addition to the regular, monthly
releases. Rakudo 2018.04 (note: no .1) was discovered to fail num
precision tests (on i386) and also hang when parsing nums with huge
exponents (on all platforms). To ensure that platform-specific issues
are found before the release we are now continuously testing
prerelease Rakudo versions on various platforms.

The tarball for this release is available from
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2018.04.1:
  + Fixes:
    + Fixed hang in parsing of nums with huge exponents [4e38bc1f]
    + Fixed denormals and precision issues in num parser [cc93bc9a]

The following people contributed to this release:

Zoffix Znet, Aleks-Daniel Jakimenko-Aleksejev

If you would like to contribute or find out more information, visit
<https://perl6.org>, <https://rakudo.org/how-to-help>, ask on the
<perl6-compi...@perl.org> mailing list, or ask on IRC #perl6 on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Perl 6 development: <https://donate.perlfoundation.org/>
(put “Perl 6 Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#123), is tentatively scheduled for 2018-05-19.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

[^1]: See <http://moarvm.org/>

[^2]: What’s the difference between the Rakudo compiler and the Rakudo
Star distribution?

The Rakudo compiler is a compiler for the Perl 6 language.
Not much more.

The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, a module installer, Perl 6 introductory
documentation, and other software that can be used with the Rakudo
compiler to enhance its utility.




signature.asc
Description: OpenPGP digital signature


Is the free download for Lenz' "Perl 6 Fundamentals" legitimate?

2018-04-29 Thread Joseph Brenner
I was just wondering if "www.world-of-digitals.com" is a
legitmate source for the Moritz Lenz book "Perl 6 Fundamentals".
They've got a PDF up available for free download:

  https://www.world-of-digitals.com/en/moritz-lenz-perl-6-fundamentals-ebook-pdf

But I also see that Apress is trying to sell an ebook version of
it, which makes me wonder if the free download is a pirated version:

  https://www.apress.com/us/book/9781484228982

But on the other hand if "world-of-digitals" is a pirate site,
I would think I'd find someone complaining about that.


Announce: Rakudo Perl 6 compiler, Release #122 (2018.04)

2018-04-25 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
April 2018 release of Rakudo Perl 6 #122. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2018 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from
<https://rakudo.org/files/rakudo>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2018.04:
  + Fixes:
    + Fixed bug mapping windows1252/windows1251 without a dash [c9c5f341]
    + Made sure .encode and .decode accept the same encoding aliases
[5298b7aa]
    + Fixed `infix:` identity function [87e43c4a]
    + Made builds reproducible [16daf02f]
    + Made build of NQP modules reproducible [2c882d96]
    + Fixed explosion in List.combinations(Range) [624b3f0c]
    + Consistified / with method forms [29dcde10]
    + Made .produce/.reduce nodal [08eb465f]
    + Fixed Channel iterator failing if Nil was sent [bdd8143e]
    + Fixed value drift & precision issues in Num creation
[8422d7b4][17446fc1]
    + Made sure that values of `once` blocks are deconted
[f97398cf][53c02d85]
    + Made Supply.interval a serial Supply [7572983a]
    + Fixed bug with iteration of negative empty character classes
[20495f09]
    + Fixed crash in loop + FIRST + LAST when it's wanted
[cfc6b109][879b3340]
    + Fixed error for .native-descriptor on closed handle
[5d554ba3][c6c25159]
    + Fixed QAST::Block migration in `with` + loop-comprehended `for`
[fc192212]
    + Fixed `infix:<->($n)` to not negate [edbbc442]
    + Fixed crash in double-sink `for ... { Package::foo }` [4402839a]
    + Fixed thinko in CURR conditional [9bcc8e52]
    + Fixed crash with unknown column in RAKUDO_REPORT_COLUMNS [c015f08d]
    + Fixed substr to handle non-int arguments properly  [f0c85125]
    + Fixed hang in IO::Socket::INET.lines [6e37c7f0]
    + Made Setty.perl consistent with Baggy/Mixy.perl [c0212af9]
    + Fixed set difference for Bag (-) List [344a64e9]
    + Fixed @a[]:v and @a[*]:v to filter out deleted elements [08b951c8]
    + Fixed precision/value drift with Complex literals [43026662]
    + Fixed crash in NativeCall when calling into a C++ library [db8b218f]
    + Fixed dispatch with IO::Socket::INET.new: :!listen [ceeb3a00]
    + Fixed unwanted consumption of Seqs [9e6ae276]
    + Fixed proto .arity/.count for all core multi subs [4b5d36f3]
    [6a65ed02][d17f7535][859178b0]
    + Various improvements to produced messages [db7361a3][299dc6fc]
    [54137e8b][6c2f2445][5fee5891][91fe6b63][6cdee60d][4b2512a2]
  + Additions:
    + Added support for "api" adverb when loading modules [32c5c83c]
    + Added strict, replacement options for IO::Handle, Str.encode
    [6458811a][2760753d][37fc2883]
    + Added ShiftJIS decode/encode support [646f9211][f4863601]
    + Added a way to get child process ID via Proc::Async [1321917d]
    + Added Proc.pid [05816139][5ad102ea]
    + Added fails-like routine in Test.pm6 [4abfd4ca]
    + Added Array.grab [a0e5e880][a393ff69]
    + Added support for "const" marked return values in C++
    functions (NativeCall) [9b3a0b6f]
    + Added gist methods to AbsolutePath, NQP and Perl6 repositories
[8f3237c2]
  + Build system:
    + Added missing tools/build/check-nqp-version.pl [26518055]
    + Fixed build when using a different nqp than the one in $PATH
[eb71edcc]
    + Fixed the Makefile on Solaris [affeaa79]
    + Fixed build system not noticing change to BOOTSTRAP.nqp [2ae3f484]
  + Efficiency:
    + Made HyperIteratorBatcher.produce-batch 3x faster [684a50d1]
    + Made .hyper.grep batch producer at least 23% faster
[3e9b705e][1c4eebe5]
    + Made Iterator.push-exactly about 8% faster [9d784dd0]
    + Made `grep :kv .pull-one` 1.5x faster [c40f0254]
    + Made `grep :p .pull-one` 1.5x faster [5db9ebc4]
    + Made `squish :as .pull-one` 1.5x faster [d2c88bcc]
    + Made `squish() .pull-one` 1.6x faster [c41b79c0]
    + Made `grep :k .push-all` 1.5x faster [e3aef509]
    + Made Blob/Buf comparisons up to 30% faster [9ffb06b2]
    + Made Capture.FLATTENABLE_(LIST|HASH) 30% faster [768cf9f2]
    + Made List cmp 20x faster [0d7b42fb][126d8a84][082f8152]
    + Made ORDER() about 7% faster (affects `infix:`) [32b3ddc7]
    + Made List.roll($n) 6% faster [c71ff664][7327a33a]
    + Micro-optimized the Awaitable role (up to 10% faster) [266f4a22]
    +

Re: Slides for "8 ways to do concurrency and parallelism in Perl 6"?

2018-04-11 Thread Timo Paulssen
https://jnthn.net/papers/2018-conc-par-8-ways.pdf

Here you go! :)

Taken from this tweet:
https://twitter.com/jnthnwrthngtn/status/983817396401180672

HTH
  - Timo


Slides for "8 ways to do concurrency and parallelism in Perl 6"?

2018-04-11 Thread Norman Gaywood
There was a talk by Jonathan Worthington at the German Perl Workshop 2018,

http://act.yapc.eu/gpw2018/talk/7326

"8 ways to do concurrency and parallelism in Perl 6"

I'd be very interested in seeing the slides and/or video of this talk.

Anyone know if it is available or will be available anywhere?

Currently not available on: http://www.jnthn.net/slides.html


Announce: Rakudo Perl 6 compiler, Release #121 (2018.03)

2018-03-19 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
March 2018 release of Rakudo Perl 6 #121. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2018 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from
<http://rakudo.org/downloads/rakudo/>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<http://rakudo.org/downloads/star/>.

The changes in this release are outlined below:

New in 2018.03:
  + SPECIAL NOTES:
    + Str.comb(Regex) was fixed to return a Seq instead of a List,
  making Str.comb always return a Seq. Code relying on the
  specifics of the previous behavior might require some tweaks.
  + Fixes:
    + Fixed various sleep() issues [e3c4db73]
    + Fixed <0/0> to be False [748d1a57]
    + Improved Test.pm6's like/unlike [7c1a6cac]
    + Fixed failure to sink last statements of `for` loops [4c5b81fe]
    + Removed unneeded candidates in  and  [3a0d53ce]
    + Made Str.comb(Regex) return a Seq [1da07530]
    + Fixed  and  to not auto-thread [b62e0eb7][355b2eb5]
    + Differentiated precomp NC sub setup markers [b27c548f][ec5edcae]
    + Moved chrs() logic to List.chrs and made chrs() the gateway [1894eace]
    + Moved ords() logic to Str.ords [61176475]
    + Fixed bug on ops with subclasses of Range [440fceac]
    + Fixed wrong assumption of Junction execution order [207313be]
    [89f33bbe][e9cff795]
    + Fixed cases of mis-scoped QAST::Block of regexes [fb882d49]
    + Fixed .grep(Regex) on Hyper/Race Seqs [5e462e12]
    + Fixed  to not mark Failures as handled [7773c3d5][65874b15]
    + Enabled native-int candidates in bitshift operators
[29fdb75a][3d735975]
    + Made Int:D (elem) Range:D be independent of size of Range [de30c162]
    + Straightened up `$/` handling in Str.subst[-mutate] [874fcdda]
    + Fixed Metamodel shortname assignments [ce08683f]
    + Fixed Pair.clone [5031dab3]
    + Improved Pod::To::Text to indent tables [57af8b84][dffbd68a]
    + Fixed precomp files of NativeCall users having absolute paths
[51c4d4d8]
    + Made sure `samewith`-using routines aren't inlined [e12e305a]
    + Made sure MERGESORT-* don't leak low-level types [511bec0a]
    + Fixed code generation bug affecting private methods calls in roles
  where the target private method used a role parameter [21997b62]
    + Various improvements to produced messages [a4f9090e][235d3f1c]
    [3b350739][5ae1bbe1][52176c3c]
  + Additions:
    + Implemented IO::CatHandle.handles [d5baa036][eb064922][639c6da0]
    + Made signal handlers cancellable [db010b84][a31579c7]
    + “datagram”-oriented API for UDP sockets [67f36e36][b406b320][dd2c9019]
    + Added support for replacement and strict setting in Buf.decode
[0d796fb0]
    + Added support to Encoding::Decoder to use replacements [ea92f550]
  + Removals:
    + Removed no longer used DELETEKEY helper sub [6f2cbcf7]
    + Removed Range.clone-with-op [440fceac]
  + Efficiency:
    + Optimized Uni.list to reify 15x faster (on 1-char str) [8b7385d8]
    + Made Str.perl 43x faster for some chars [ba6b84bd]
    + Optimized Str.perl by making uniprop(Int, Str) 2.7x faster [6ac56cc0]
    + Made Rational.Str 28% faster [008b9279]
    + Made internal RETURN-LIST sub faster for common case [3a4056bf]
    + Made Num.Bool 9x faster [2a42cdbb]
    + Nano-optimized supervisor thread sleep [4617976d][85ad0eba]
    + Added special cases for 2-tuple infix:<,> that are 10% faster
[b6e5d7fc]
    [48c46fa7][90079357][ddf00078][d5a148c0]
    + Made Channel.receive/receive-nil-on-close 2.5% faster [4054ca68]
    + Reduced the number of DYNAMIC calls when hypering [598832cc]
    + Made Channel.poll 2x fast [eff92f94]
    + Made HyperIteratorBatcher.produce-batch 3.6x faster [8026cef8]
    + Many HyperToIterator speedups [0194ef46][6232d29e][34889beb]
  + Internal:
    + Turned many subs into multis [16b57af5][55bc053c][182b7ea5][63775474]
   
[c2d0d3ac][cdb45fa5][4f473867][bf5e3357][5210d702][b704a175][4c67498f]
   
[7d72387b][838782b7][abfbd1ab][6d6a69fd][c1d2a5bc][4da2418a][62fc3118]
   
[d3f50dba][b9f40fea][dfef8283][9a0a7bdd][32b08035][51fccdfe][474c512c]
   
[4f04698f][423e7cc0][ae4204c5][8cba0846][1b94ff6f][5490bacd][e1b711ae]
    [a23684f3][804c009a][f5b23a55][4513c279]
    + Marked many subs as “only” [1be26afb][25bedf88]
    + Marked set ops as “pure” on their proto only [af353894]
    + Made U

Announce: Rakudo Perl 6 compiler, Release 2018.02.1

2018-02-22 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I'm announcing an
out-of-schedule release of the Rakudo Perl 6 compiler.
Rakudo is an implementation of Perl 6 on the Moar Virtual Machine[^1].

This release is a point release in addition to the regular, monthly
releases. Rakudo 2018.02 (note: no .1) was discovered to contain a bug
which caused segfaults when using Whatever curries in topics of
for/given statement modifiers.

The tarball for this release is available from
<http://rakudo.org/downloads/rakudo/>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<http://rakudo.org/downloads/star/>.

The changes in this release are outlined below:

New in 2018.02.1:
  + Fixes:
    + Fixed Whatever curry QAST::Block migration in stmt mods [5270471c]

The following people contributed to this release:

Zoffix Znet, Aleks-Daniel Jakimenko-Aleksejev

If you would like to contribute or find out more information, visit
<http://perl6.org>, <http://rakudo.org/how-to-help>, ask on the
<perl6-compi...@perl.org> mailing list, or ask on IRC #perl6 on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Perl 6 development: <https://donate.perlfoundation.org/>
(put “Perl 6 Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#121), is tentatively scheduled for 2018-03-17.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

[^1]: See <http://moarvm.org/>

[^2]: What’s the difference between the Rakudo compiler and the Rakudo
Star distribution?

The Rakudo compiler is a compiler for the Perl 6 language.
Not much more.

The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, a module installer, Perl 6 introductory
documentation, and other software that can be used with the Rakudo
compiler to enhance its utility.




signature.asc
Description: OpenPGP digital signature


Announce: Rakudo Perl 6 compiler, Release #120 (2018.02)

2018-02-20 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
February 2018 release of Rakudo Perl 6 #120. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2018 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from
<http://rakudo.org/downloads/rakudo/>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<http://rakudo.org/downloads/star/>.

The changes in this release are outlined below:

New in 2018.02:
  + Fixes:
    + Fixed `no worries` pragma [f5b4d89f]
    + Fixed IO::Socket::Async losing :$scheduler in .print-to [7c451514]
    + Fixed postconstraints in `my (...)` being ignored [3745eff1]
    + Fixed optimizer crashes in `map` with certain args [f3efe5e6]
    + Fixed IO::Handle.get on TTYs blocking after EOF [359efef7][af4dfe82]
    + Fixed crash with colonpaired variable declaration [a35cd4e6]
    + Fixed crashes in degenerate .tail(Callable) [ba675971]
    + Fixed crash in `temp`/`let` with parameterized hashes [0a32e51b]
    + Fixed Hash.clone and Array.clone losing descriptor
[0d7c4fe8][45560ac9]
    + Fixed `let`/`temp` on hashes losing Nils [8c4c979e]
    + Fixed crash in Any.skip(Callable) [8efba3a8]
    + Fixed crashes with native types in conditionals [d1a48efc]
    + Fixed many issues with block migration in thunk gen
[1ee89b54][31ab8683]
    + Fixed "No such method 'prefix'" when there's no HOME directory
[b6a7d7f6]
    + Fixed buf8 punning happening at INIT time instead of BEGIN [c6cc673d]
    + Fixed type constraint in Str.split's Seq [8afd791c]
    + Fixed Iterator.Rotor when cycle contains Whatever or Inf [ba7b4571]
    + Fixed crash with ENTER nested inside LEAVE [58de239c]
    + Fixed wrong error in REPL with none Junctions [2c36ab2e]
    + Fixed semantics of :b quoter tweak [deffe54b]
    + Fixed error when throwing error during setting compilation [c820e4be]
    + Fixed crashes with compile time evaluation of Whatever curry
[7c1f0b41]
    + Fixed crash in Proxy.perl [902f45f5]
    + Fixed encoding of ›˜œžŸ™š with windows-1252 (Latin) encoding
[4507a565]
    + Fixed state vars in `do`-ed loops [299e8526]
    + Fixed whatever curry with regexes [d80fc376]
    + Fixed crashes with compile time evaluation of `where` thunks
[95f23a56]
    + Fixed broken 2-arity sort of 2-el list [2e65de29]
    + Fixed postfix whatever curry with another curry inside [e8c6c259]
    + Fixed empty compiler version when the git repo has no tags [382024e6]
    + Fixed migration of in-regex blocks [c0c7756f]
    + Fixed missing decont in `cmp` [114e3735][25c5c488]
    + Fixed drift when reusing lazy iterables for indexing [f330d7fc]
    + Fixed crash in parameterized constraints on attrs with .= [562edfc5]
    + Fixed REPL adding empty lines to the history file [24fab707]
    + Fixed Parameter.usage-name to omit leading * and ! [3c73099c]
    + Fixed Any.tail(Callable) violating Iterator protocol [2cc7b631]
    + Fixed .perl of handled Failures [b2a21fa9]
    + Unified List.roll/pick invocant specification [311ef07f]
    + Fixed multi-threaded precompilation [ac87ea2a]
    + Fixed issues in constant type declarations [f559c6d8]
    + Fixed `if` with slurpies on its block [ef1d22f4][dfb6d951][59556c70]
    [4b7113fa][00af9ce2]
    + Improved SprintfHandler [d419afe4][4ac67e73][684b99ea][13406517]
    + Fixed unwanted curries with HyperWhatever type object [57a1aa7a]
    + Made Backtrace.gist more helpful [555db42a]
    + Fixed ($ = 42) vs ($ = "42").subst-mutate [e7af9a6a]
    + Fixed Cool.subst-mutate to only mutate if there's a match [61015526]
    + Made Str.subst-mutate always return a List on :g [77794a28]
    + Made Str.match(:x) consistently return a non-Slip List [829ea8e3]
    + Fixed return of multi-match options of Str.subst-mutate [e0d39321]
    + Fixed .Numeric/.Real on :U numerics and .Real on :D allomorphs
[1dc1f038]
    + Various fixes for the JVM backend [a2499c90][1f223190][f2188e45]
    + Various improvements to produced messages
[8ffbc43b][7f07f68f][34b3356f]
    [de2d8296][1c894e41][d419afe4]
  + Additions:
    + Added windows-1251 (Cyrillic) encoding to the list of possible
encodings
    [c73cb78f][4507a565]
    + Added support for .= to init sigilless vars [8ba3c86e]
    + Added compile time LiteralType error for native vars [e930e253]
    [63a1d25a][30b82b98]
  + Efficiency:
    + Made `$ where Type1|Type2|Type…` typecheck ~8x faster

Swiss Perl Workshop 2018 Call for Perl 6 Keynotes/Talks/Tutorials

2018-02-13 Thread Lee J
Hi Perl 6 users and devs,

We have kicked off the preparation for this year's Swiss Perl Workshop and
have tentative dates of a weekend (Fri/Sat) in September and are looking to
hold the workshop in Bern at GIBB: Gewerblich-Industrielle Berufsschule
Bern:

https://www.gibb.ch/Seiten/default.aspx

https://files.newsnetz.ch/story/2/0/1/20152094/2/topelement.jpg

The venue is an institution for basic and advanced vocational education and
training, and the students attend to undertake apprenticeships. One of this
year's organisers works at the institution and says there will be interest
in the workshop from both students and lecturers at the institution so this
may be a great place to introduce them Perl 6.

If you'd like to propose a keynote, talk, tutorial, or workshop then please
get in touch so we can discuss: s...@perl-workshop.ch

As usual the workshop will be held in English, although we will of course
welcome talks in other languages.

Cheers!
Lee.

Lee A Johnson
https://leejo.github.io


Announce: Rakudo Perl 6 compiler, Release #119 (2018.01)

2018-01-24 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
January 2018 release of Rakudo Perl 6 #119. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2018 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from
<http://rakudo.org/downloads/rakudo/>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<http://rakudo.org/downloads/star/>.

The changes in this release are outlined below:

New in 2018.01:
  + Fixes:
    + Fixed IO::CatHandle.read switching handles too soon [dc800d89]
    + Ensured  can handle flattenable Iterables [1a4df4e1]
    + Made Array.gist limit output to 100 elements [08539c43]
    + Fixed .[count|bool]-only of combinations/permutations [5eed2b00]
    [cda4a4d7][2c27eeaa][d4f53ed5][19604c2d]
    + Made sure subclasses of List create consistent .WHICH [18557da9]
    + Fixed Range.pick/roll in light of degenerate Ranges
[5c228333][55cb8f3d]
    + Fixed Whatever.ACCEPTS with Mu:U [89d85baa]
    + Fixed signatures that had Int when Int:D was meant [3e044dc7]
    + Guarded subbuf against negative ranges [24f4609e]
    + Fixed some export issues [38897d19]
    + Fixed Slip wrapping of quoteword with one word [ad684de3]
    + Fixed ±Inf/NaN Num to Rat conversions [042cb741][c91bcc2a]
    + Fixed USAGE with subsets/where and variables with quotes [27fbd7ab]
    + Fixed .gist dumping too much output in some cases [de21da30][53a85080]
    + Fixed crash in `eqv` with conted Versions [72ee58e2]
    + Fixed issues with smiley-ed coercers
[a177fa99][8dcf9dac][3947a4c1][354a3848]
    + Made sure Rat calculation does not use type objects
[9910b393][9adc58c3]
    + Fixed handling of type objects in Date.new
[1d034df8][dfaa2282][038b1ea7]
    + Fixed CURFS/CURI .perl output [9cf2f998]
    + Made sure hashes are not interpolated in regexes [f719a471]
    + Fixed explosions when hypering over Buf [7ba50d86]
    + Made  more resilient to low-level stuff [99923747][d0be53a1]
    + Fixed .head/.tail to take any Callable [b4007070]
    + Fixed .skip with WhateverCode [d034cb58]
    + Fixed operator chaining with negated operators [ba111cfe][14c2cdb3]
    + Disallowed binding into a List [eed54cae]
    + Fixed `--optimize` flag propagation in EVAL code [e509c1a9]
    + Fixed RatStr .succ/.pred explosion [631875fc]
    + Fixed silent failure when binding to map keys [6a3db334]
    + Fixed R::I::Rotor calling .pull-one too many times [4a82b4b6]
    + Fixed `need` with versions [7537f899][0cdd82a2][0a73f19a][4d5e097a]
    + Fixed the lookup of many core symbols [efdbfeca]
    + Made .range consistently a Str in OutOfRange exceptions [90246e65]
    + Fixed superfluous parsing of ∞ [626991e0]
    + Fixed many POD issues [14c28cae]
    + Various fixes for the JVM backend [4945dc40][4909430c][333efa0b]
    [00b7832a][70c57c3a][1e8c9762]
    + Various improvements to useless use warnings [d30e5b1e][c6b7012a]
    [64803b0a][ef2dc1b8][99da4a5a][00188757][e9c9dc46]
    + Various improvements to other produced messages [a04c6164][548dcf46]
   
[6d65cf4f][51e0aa09][82dbada3][e543c890][0444a2c3][e5b4f37f][900c1b59]
   
[96a3582c][5571d7f7][34160bf0][01ffd0f9][6a6470f9][e91159c5][5f7fdfdd]
   
[f02606ce][cad66b72][79600d69][2dc93ac3][4ec5936c][ad60b947][732a25c3]
    [f8953ee8][ddbf07e8][fa136be2]
  + Additions:
    + Added Str.uniparse as an alias to Str.parse-names [2a8287cf]
    + Added Cool candidate for .is-prime
[f01c50f1][23701966][b2b39bad][893d09ff]
    + Added compile time error for misplaced whenever in v6.d.PREVIEW
[7672e34c]
    [0ec8e088]
  + Removals:
    + Removed deprecation fudge for native type instantiations [e0af68a0]
    + Removed :$CWD param in IO::Path.dir [b3e73b64]
    + Removed :$buffer param in IO::Handle.open [f415d61e]
    + Removed MONKEY BUSINESS env var [ac2e50c8]
    + Removed UInt64 (not to be confused with uint64) [cf154355]
  + Build system:
    + Fetch tags too to avoid potential missing tags [d93f8053]
  + Efficiency:
    + Made adding integers to Rats 22% faster [418fc068]
    + Made Blob.subbuf 1.8x faster [5f48c069]
    + Made `else`-less `if`/`with` blocks 3.4x faster in some cases
[1815c368]
    + Made DateTime creation about 1.6x faster [36d71a39]
    + Made Date.new about 1.6x faster [b7170f83]
    + Made use of faster typechecks (7.5x faster)
[4c9b84f8][8f71b0e0][10cd405f]
    + Made operator chains up to 2.4x faster [b77d8756]
    +

Announce: Rakudo Perl 6 compiler, Release #118 (2017.12)

2017-12-20 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
December 2017 release of Rakudo Perl 6 #118. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2017 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from
<http://rakudo.org/downloads/rakudo/>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<http://rakudo.org/downloads/star/>.

The changes in this release are outlined below:

New in 2017.12:
 + Fixes:
    + Various POD-related fixes [41514235][11d90cac][061c36d6][2cd266fe]
    [8ea7a46f][2c951798]
    + Fixed resolve of IO::Path for Windows [eed733e2]
    + Fixed ∖ op to do Hash→Mix conversion through Sets [eacf9b27]
    + Fixed incorrect attribute name in X::AdHoc.new [3166400d]
    + Fixed Supply.zip() to call `done` when some supply is `done`
[1d0dae86]
    + Fixed Supply.throttle() when the source supply becomes `done`
[c8370f21]
    + Fixed silent failures on invalid `is export` values [1668b4f0]
    + Fixed many cases of enum creation [d9021cf1][754664ed][65301756]
    + Fixed crash when using allomorphs as enum values [fc52143b]
    + Fixed <:Digit> to match digits correctly [0339b0f8]
    + Fixed some Telemetry.EXISTS-KEY issues [f3b1289f][91798547]
    + Fixed gut spillage in pseudopackages [cd24b1c5][a82e0e7d][1c7d15d7]
    + Fixed introspection on Mixins to Code:U objects [e31a414b]
    + Fixed let/temp to be able to take Mu [75229976]
    + Fixed autovivification container issues with `no strict` [e5b49ce3]
    + Fixed shaped array indexing to accept non-Ints [00632edb]
    + Fixed List.new to not create containers [d80df073]
    + Fixed incorrect .count-only/.bool-only implementation
[af9812fa][0e228fab]
    + Made sure each Seq.skip gets a new Seq [854c10c2]
    + Moved attribute settage inside the lock [8df8ce09]
    + Made print/say/put/note handle junctions correctly [07616eff]
    [9de4a60e][8155c4b8][3405001d]
    + Fixed WhateverCode curries losing `use fatal` [31db3acc]
    + Various improvements to produced messages [d85585ea][9fd5042b]
    [c9699ab2][1da698ab]
 + Additions:
    + Implemented TR/// [f6958624][3d2fa915][8b27166f]
    + Implemented .toggle [694f534a][78caeb6b][ca7d0483][e7c0a644]
    + Consistified &[but] and &[does] with non-roles [575d31e2]
    + Added While/Until iterators [2c1a2860]
    + Added proper Supply.Seq method [aa3c2c5b]
 + Efficiency:
    + Made multi-needle split setup cheaper [5929887c]
    + Streamlined INDIRECT_NAME_LOOKUP a bit [76158136]
    + Made &[-]/&[+] with Rationals 30%-50% faster [6c299bf9]
    + Made DIVIDE-NUMBERS 6%-15% faster [78aeaf46]
    + Streamlined Hash.AT-KEY [6601da5c]
    + Streamlined Array.Slip.AT-POS like Hash.AT-KEY [fe8312b7]
    + Streamlined Array.AT-POS for better inlinability [af29a227]
    + Streamlined List.AT-POS a bit [9a2f5325]
    + Made Array.ASSIGN-POS about 1.7x faster [c5afc97e]
    + Made R:It:ReifiedArray 15% to 30% faster [a974de9b]
    + Streamlined Array.iterator.push-until-lazy a bit [ae02bc29]
 + Internal:
    + Abstracted prefix:<temp|let> logic into R:I
[47f23fc6][126d7b55][6fb5c8c8]
    + Implemented Sequence.Numeric [6061f0bc]
    + Various improvements for the JVM backend [0a24efc3][f40c3818]
    [fbf7beca][928ada08][74a13ae1]
    + Added tests for previously resolved issues [20d67a3d][831dab14]
    [1b0be0f6][062c27f3][1101fea1][fed56be2][47552282][ced4af66]
    [d4ad6fa9][eaf609ed][04eb1da6]


The following people contributed to this release:

Zoffix Znet, Elizabeth Mattijsen, Pawel Murias, Alex Chen, Tom Browder,
Christian Bartolomäus, Luca Ferrari, Aleks-Daniel Jakimenko-Aleksejev,
Jan-Olof Hendig, Fernando Correa de Oliveira, Jeremy Studer,
Will "Coke" Coleda, Samantha McVey, Jonathan Worthington, Tim Smith,
Larry Wall, Dmitri Iouchtchenko, Rafael Schipiura, Fernando Correa,
Moritz Lenz, Timo Paulssen, Juan Julián Merelo Guervós, lefth, Brad Gilbert,
Michael D. Stemle, Jr, Daniel Green, Ronald Schmidt

If you would like to contribute or find out more information, visit
<http://perl6.org>, <http://rakudo.org/how-to-help>, ask on the
<perl6-compi...@perl.org> mailing list, or ask on IRC #perl6 on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Perl 6 development: <https://donate.perlfoundation.org/>
(put “Perl 6 Core Development Fund” in th

[perl #132184] [6.d] .skip semantics are inconsistent

2017-12-11 Thread Zoffix Znet via RT
On Fri, 29 Sep 2017 09:07:40 -0700, c...@zoffix.com wrote:
> - Seq.skip mutates the invocant:

No longer. It now consumes the iterator, which aligns the behaviour with 
Any.skip.

Fixed by lizmat++ in https://github.com/rakudo/rakudo/commit/854c10c27e
Tests: https://github.com/perl6/roast/commit/49956451de


[perl #132184] [6.d] .skip semantics are inconsistent

2017-12-11 Thread Zoffix Znet via RT
On Fri, 29 Sep 2017 09:07:40 -0700, c...@zoffix.com wrote:
> - Seq.skip mutates the invocant:

No longer. It now consumes the iterator, which aligns the behaviour with 
Any.skip.

Fixed by lizmat++ in https://github.com/rakudo/rakudo/commit/854c10c27e
Tests: https://github.com/perl6/roast/commit/49956451de


Announce: Rakudo Perl 6 compiler, Release #117 (2017.11)

2017-11-21 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
November 2017 release of Rakudo Perl 6 #117. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2017 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from
<http://rakudo.org/downloads/rakudo/>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<http://rakudo.org/downloads/star/>.

The changes in this release are outlined below:

New in 2017.11:
 + SPECIAL NOTES:
    + Main development branch changed from “nom” to “master” [f40babb8]
 + Fixes:
    + Fixed Lock.protect to no longer leak Proxies [be9e19ef]
    + Fixed R:I:JSON to handle recursive Exceptions [3cba6204]
    + Fixed .perl output of an empty Set/SetHash [af3624d4]
    + Made some attribute defaults throw NYI instead of silently ignoring
    [9f54bc98][0973b307][6dab5aad]
    + Fixed quote lang cache regression [ad16c6fb]
    + Improved stability by always setting up `$*PID` [a1866b7b]
    + Implemented hypered nodality for all methodcall variations [3c4041ea]
    + Fixed combinations with * endpoints [bdc73563]
    + Made Range.sum sensible for -∞/∞ endpoints [5eeb72a9][21efe96f]
    + Made multi sub(:@c is copy) { } work [be1e2879]
    + Ensured CLOSE phasers have correct outer chain [96557571]
    + Fixed segfault on Bag.new.pick(1) [fe1f8632]
    + Improved handling of %b spacing sprintf [b2fbf893]
    + Made .head and .tail only take WhateverCode [5a29a0ce]
    + Moved signal() handling to the timer worker queue [1bc9936a]
    + Fixed default Encoding::alternative-names [2f0da94c]
    + Various improvements to warnings and error reporting
[142c1d65][fff43fd7]
    [c9360203][497e0582][ad7c97df][88d67516]
 + Additions:
    + Channel can now be closed with sub close() [91543fe3][ef84aafc]
    + my %h is (Set|SetHash|Bag|BagHash|Mix|MixHash) now DWIM [1949a2bc]
    [6ac2b15c][aab2b983][b6a4d5b5]
    + Implemented metamethod shorthand syntax [5c96d554]
    + Kernel.cpu-cores returning the number of CPU cores available
[61af87bc]
    + Kernel.cpu-usage exposed basic CPU usage information [c4d373c5]
    + Telemetry module providing an easy interface to system state reporting
   
[cbd4f212][273168d7][3e175c83][7f154fe2][3dfaa2ae][59a59be8][52440486]
   
[b30916f3][b30916f3][f7d21b5d][ae1f0fda][f72ad227][4b4429cc][58249a52]
   
[f51a3efc][8a0eb7fa][bc00894f][e95b02f1][ccbfaaa0][2f963b14][c1867ba1]
   
[8e4d3248][0a809698][824a5dc2][dcf3e28c][0bdda086][a2ae00ed][86d541f4]
   
[474feb09][5e7dfe52][3b4f0c6c][7144dc29][73e1faaa][cf1742dc][91e00e68]
   
[96751ee8][7e00908c][d21c31e1][0dc4a0eb][c2baf95e][e1a1b8d8][b380230d]
   
[fccc7515][1c2c7d84][2f12bea1][4ed91ed6][fea5612c][360eb228][9344d35d]
   
[d5fc6cbb][3e4ef2e0][4d21ad67][0f2f0cd3][22939bc8][77142fdb][ab03b54c]
   
[fc9e7241][948a3fa4][f8e1a5fa][17db03eb][14e2016c][2dcefa1c][345fbf5a]
   
[b80d486c][3e4ccce9][86e9f44a][f87d8ef8][5f4b61b1][e5912337][de961b81]
   
[d6f1077d][ba49b343][1aa83a78][06cbe9c2][246f4101][d6a3a7a1][88a9cb25]
    [9381ffbc]
 + Efficiency:
    + Made .sum on native num arrays 11x faster [b849622e]
    + Made INITTIME a bit faster [e00f705d]
    + Made interpolation of variables into regexes a bit faster [6bca84fa]
    [c93dc9e6][fa8bc549]
    + Made Buf ~ Blob about 7x faster, Blob ~ Blob 1.8x faster [8b47adad]
    + OS thread exhaustion is now handled more gracefully
[fe799a98][57374490]
    [14fbb5e7][6d8ed287]
    + Other more general ThreadPoolScheduler improvements
[e513f19d][6ac53e42]
   
[2cd568f9][6bf58921][6de66df7][6aa150db][09e038cd][a7972a0c][260e4a3a]
   
[a9b8854a][09492179][6959349e][697e4ecf][b386963a][5d0ccf73][bfcc43ec]
    [87e87202][92543962]
    + Minor IterationBuffer improvements [c15e80de]
 + Internal:
    + ThreadPoolScheduler now keeping internal statistics, e.g. for
Telemetry
    [2c84f77e]
    + Thread now keeping internal statistics, e.g. for Telemetry [68b2891d]
    [77048b6a][cb4d8b66]
    + Changed how Int.new gets rid of mixins [6cb7ebfb]
    + Normalized proto bodies [0edd0cc9][102fbd51]
    + Set no_inline when the dispatcher is needed [c1df0b1b][0ff32c7f]
    + Various JIT-related changes [3bd756f5][0a029db6]
    + Repository cleanup [028b7d22][5baede59][825a8b0d][6ec6f1eb]
    + Various improvements for the JVM backend
[ac738b98][b2725c12][4849c733]
    [d6cd0d2f][8b24bf

Announce: Rakudo Perl 6 compiler, Release #116 (2017.10)

2017-10-26 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
October 2017 release of Rakudo Perl 6 #116. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2017 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from
<http://rakudo.org/downloads/rakudo/>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<http://rakudo.org/downloads/star/>.

The changes in this release are outlined below:

New in 2017.10:
 + SPECIAL NOTES:
    + This release includes fixes to || alternation in :ratchet
  mode. Code that was unintentionally relying on buggy behavior
  (backtracking in :ratchet mode) may now produce unwanted
  results (namely will fail to match) [963a0f06]
 + Security:
    + Restricted dynamic lookup metasyntax in rx EVAL [1d63dfd2][2448195d]
 + Deprecations:
    + Deprecated .new on native types [9d9c7f9c][cc6c0558]
    + Deprecated :buffer `open` arg in favor of :out-buffer [f9c10c21]
 + Fixes:
    + Fixed Hash.perl to include Scalar indicators [47d6c66e]
    + Fixed :delete with lazy Arrays [0385b2aa]
    + Fixed sanitization of on-demand Supplies [93a66d75]
    + Fixed duplicate done/quit messages [9e179355]
    + Fixed non-blocking `react { await blah() }` [29863a0b]
    + Fixed issues with Int.new [dff7d9b2][0d2ca0d7][0834036d]
    + Fixed isa method on a subset [cee1be22]
    + Fixed Supply.zip to eager-shift its values [f9400d9a]
    + Fixed two utf8-c8 bugs [963a0f06]
    + Fixed infinite loop in .^roles of a class that does Rational
[0961abe8]
    + Changed uniname to give better strings for non-unique names [9dba498f]
    + Fixed .push-all/.skip-all on SlippyIterators [41896b7b]
    + Fixed and improved `**` regex quantifier [681d6be9][4ca1fc3c]
    + Made cmp-ok to try harder to give useful description [8479a1ba]
    + Made List.ACCEPTS non-fatal for lazy iterables [1b9638e2]
    + Fixed some unspace parsing cases [11070e0f]
    + Fixed  failing to respect :CWD attribute [4906a1de]
    + Fixed Blob.gist to trim its guts to 100 elements [ac8e5f43]
    + Improved .perl and .gist methods on Maps and Hashes [aad8991e]
    [39461368][381c4c3b]
    + Fixed explosion in IO::CatHandle.nl-out [83008443]
    + Fixed .pick and .roll on object hashes [12fcece4]
    + Made cmp-ok take its arguments raw [3684384d]
    + Fixed `is default(Mu)` on attributes [54507ac9]
    + Made Array.List fill holes with Nil [e1351219]
    + Fixed BagHash.grab with large values [975fcf6c]
    + Fixed .tail with large values [43e7b893]
    + Improved .gist of nodal methods [b6982e68][bb1df2cb]
    + Fixed IO::Pipe.close not always returning the Proc [74328278]
    + Fixed handling of type objects in set operators [8a88d149]
    + Fixed location of errors coming from Channel [82a38c29]
    + Fixed lockup when scheduling with degenerate delays
[df01ad97][031f8cf7]
    + Fixed segfault in getlexdyn [4f5fc520][4c370072]
    + Fixed poor error with some slurpies with defaults [a92950fb]
    + Fixed Int.new to properly give a new object [e4a5bb17]
    + Fixed .STORE leaving behind elements on native arrays [a85c8d48]
    + Various async improvements [633a15b8][ef4d16fe][f53d3963]
    [26a9c313][9d903408][0d600a0c][54783920][e0e5e6fa][b16aba01]
    [d8890a82][73aeee6c][2a826238][3deda842][f58ac999][40c2d0cd]
    [c46de00f][e5c17462][6e42b37e][80f883bc][6af44f8d][e70969e3]
    [30462d76][97b11edd]
    + Various fixes and improvements to hyper/race [cc2a0643][2352efe5]
    [d43b3738][dfa230f7][1fdc84fe][cef4806f][ea51d19b][374ee3e2]
    [ad0dd8e7][41729e93][d74ba041][83676112][2580a0a6][cf1673d9]
    [7e9b9633][870eaa31][d37a19ea][da977785][270e7c8a][ee3f0f4f]
    [a042fd92]
    + Various improvements to warnings and error reporting [38186fcd]
    [cf95ce81][66c2d05f][a845ac3d][48a84d6a][bb45791c][279bae08]
    [6542bb80][5747bc71][c7a82d45][fb7abf06][ac97a401][64b001a1]
    [1ea3297b][56eef696][25c87d0d][5d3ebc09][de2b9ff7][084078e1]
    [3acde358][b3bb8c40][e611978f][12774237][33e113a2][9554a97c]
 + Additions:
    + Improved .Capture semantics on all core types [4ba12ff1]
    [bad9fefd][cd5864cf]
    + Added trim* subroutines taking Cool instance [5a19dffa]
    [691f8b7b][e01e5bc3]
    + Added Lock::Async [53dd776c][4a8038c2][85bdd38a][38896402][6170cb9d]
    + Added atomic reference op support on JVM backend [32e4a1de][59c4117f]
    + Added $*USA

Fw: Perl 6: Protecting Intellectual Property for Commercial Code

2017-10-26 Thread Shlomi Fish
Please reply to list if it's a mailing list post - http://shlom.in/reply .


Begin forwarded message:

Date: Thu, 26 Oct 2017 07:43:43 -0700
From: James Ellis Osborne III <jamesel...@twee.se>
To: Shlomi Fish <shlo...@shlomifish.org>
Subject: Re: Perl 6: Protecting Intellectual Property for Commercial Code


As another aside (That's mostly what I got) can I point out the first 72
bytes of the output generated by the ifort.exe FORTRAN compiler as a model
for considering why we should or shouldn't have executable code options
available to the common feller on any platform

On Oct 26, 2017 5:19 AM, "Shlomi Fish" <shlo...@shlomifish.org> wrote:

> On Mon, 23 Oct 2017 10:57:20 -0700
> James Ellis Osborne III <jamesel...@twee.se> wrote:
>  
> > This particular app was .pyd files locked with calls to a C dll.  Source
> > code is reconstructable but for an app of more than a few thousand lines
> > it's highly unlikely anyone is going to go rebuilding it all.
> >
> > If your goal is to defeat all forms of piracy, you're surely out of luck
> > but if your goal is to generate code that cannot be modified in place and
> > has a commercial license then there are certainly options.  My particular
> > model is parallel-mode diffie-hellman.. it's easily extendable to perl 6
> > thanks to native arbitrary precision support but in my opinion it's a
> > hugely different thing to be able to open the file & remove a line of
> > readable source vs JMP or decompile/recompile steps.. obfuscation is
> > unnaceptable for commercial sale for the same reason.
> >  
>
> I see.
>
> --
> -
> Shlomi Fish   http://www.shlomifish.org/
> My Aphorisms - http://www.shlomifish.org/humour.html
>
> Chuck Norris taught God how to create the universe.
> — http://www.shlomifish.org/humour/bits/facts/Chuck-Norris/
>
> Please reply to list if it's a mailing list post - http://shlom.in/reply .
>  


-- 
-
Shlomi Fish   http://www.shlomifish.org/
Beginners Site for the Vim text editor - http://vim.begin-site.org/

The Knights Who Say “Ni” once said “Ni” to Chuck Norris. They are now no longer
The Knights Who Say “Ni”.
— http://www.shlomifish.org/humour/bits/facts/Chuck-Norris/

Please reply to list if it's a mailing list post - http://shlom.in/reply .
As another aside (That's mostly what I got) can I point out the first 72 bytes of the output generated by the ifort.exe FORTRAN compiler as a model for considering why we should or shouldn't have executable code options available to the common feller on any platformOn Oct 26, 2017 5:19 AM, "Shlomi Fish" <shlo...@shlomifish.org> wrote:On Mon, 23 Oct 2017 10:57:20 -0700
James Ellis Osborne III <jamesel...@twee.se> wrote:

> This particular app was .pyd files locked with calls to a C dll.  Source
> code is reconstructable but for an app of more than a few thousand lines
> it's highly unlikely anyone is going to go rebuilding it all.
>
> If your goal is to defeat all forms of piracy, you're surely out of luck
> but if your goal is to generate code that cannot be modified in place and
> has a commercial license then there are certainly options.  My particular
> model is parallel-mode diffie-hellman.. it's easily extendable to perl 6
> thanks to native arbitrary precision support but in my opinion it's a
> hugely different thing to be able to open the file & remove a line of
> readable source vs JMP or decompile/recompile steps.. obfuscation is
> unnaceptable for commercial sale for the same reason.
>

I see.

--
-
Shlomi Fish       http://www.shlomifish.org/
My Aphorisms - http://www.shlomifish.org/humour.html

Chuck Norris taught God how to create the universe.
    — http://www.shlomifish.org/humour/bits/facts/Chuck-Norris/

Please reply to list if it's a mailing list post - http://shlom.in/reply .



Re: Perl 6: Protecting Intellectual Property for Commercial Code

2017-10-26 Thread Shlomi Fish
On Mon, 23 Oct 2017 10:57:20 -0700
James Ellis Osborne III <jamesel...@twee.se> wrote:

> This particular app was .pyd files locked with calls to a C dll.  Source
> code is reconstructable but for an app of more than a few thousand lines
> it's highly unlikely anyone is going to go rebuilding it all.
> 
> If your goal is to defeat all forms of piracy, you're surely out of luck
> but if your goal is to generate code that cannot be modified in place and
> has a commercial license then there are certainly options.  My particular
> model is parallel-mode diffie-hellman.. it's easily extendable to perl 6
> thanks to native arbitrary precision support but in my opinion it's a
> hugely different thing to be able to open the file & remove a line of
> readable source vs JMP or decompile/recompile steps.. obfuscation is
> unnaceptable for commercial sale for the same reason.
> 

I see. 

-- 
-
Shlomi Fish   http://www.shlomifish.org/
My Aphorisms - http://www.shlomifish.org/humour.html

Chuck Norris taught God how to create the universe.
— http://www.shlomifish.org/humour/bits/facts/Chuck-Norris/

Please reply to list if it's a mailing list post - http://shlom.in/reply .


Re: Perl 6: Protecting Intellectual Property for Commercial Code

2017-10-23 Thread Shlomi Fish
Hi James,

On Mon, 23 Oct 2017 07:19:34 -0700
James Ellis Osborne III  wrote:

> Is compilation to bytecode still a todo feature?  I managed to get a
> solution supporting compilation, serial-based locking, & license expiration
> delivered in Python last month for the nuclear industry..  Bytecode
> compilation is a hard requirement though if you don't want someone easily
> ripping out the license check & don't want to spend the effort building
> useability features into the serial calls.
> 

Since Python is a symbolic language, it is relatively easy to reconstruct the
original python source code from the *.pyc files. See
http://shlomif-tech.livejournal.com/39732.html (which was linked in one of my
links).


-- 
-
Shlomi Fish   http://www.shlomifish.org/
http://ccmixter.org/files/destinazione_altrove/49997 - “Paint The Sky”

Joel’s Generalisation: If it happens to you, it happens to everybody.
(Or: It’s never only you.)
— Based on http://www.joelonsoftware.com/news/20020402.html

Please reply to list if it's a mailing list post - http://shlom.in/reply .


Re: Perl 6: Protecting Intellectual Property for Commercial Code

2017-10-23 Thread Parrot Raiser
Frankly, if you're worried about this sort of thing, you have too much
faith in "secret sauces", and not enough in understanding situations
thoroughly. Code is trivial, implementation isn't.

Back in the days of dBase II, I was a contractor for one ministry of
the local government. They asked me to write a little system to do a
particular job   (As much an experiment to see if these new "desktop
computers" were useful tools or just cute toys as for the actual
outcome.) It was clearly applicable to other branches, so I made it
appropriately generalisable from the start.

Some of the other ministries contracted me to adapt the
government-owned code for them.  I had a lot less cleaning up to do
where they said "Please install it for us" than when managers had
hijacked the code and tried to implement it as their own creation.

On 10/23/17, Shlomi Fish <shlo...@shlomifish.org> wrote:
> Hi Mark,
>
> On Sun, 22 Oct 2017 22:37:31 +
> Mark Devine <m...@markdevine.com> wrote:
>
>> Perl 6 Users,
>>
>> [[ Bouncing off Re: who own my code? ]]
>>
>> This is the first of several possible spin-off questions, but here goes…
>>
>> Perl 6 has its public ecosystem, which will drive growth and adoption.
>> Then
>> there’s the commercial side, which would also drive the language from
>> another
>> important angle.  I believe in a balance of public sharing and private
>> enterprise.
>>
>> I am interested in packaging some of my long-term Perl 6
>> projects/scripts/apps/frameworks into some kind of relocatable object
>> form
>> (binary) that cannot be easily altered or trivially reverse engineered.
>> Put
>> another way, I sometimes would prefer not to sell source code to my
>> customers, but rather some form of compiled package that can’t easily be
>> diddled by a SysAdmin.  If I create code for a particular commercial
>> domain
>> over years, then I want to get compensated for it and not have it be
>> diluted
>> with copy-cats one week after I release it.  Certainly some of the
>> generic
>> libraries that I create in the future can be modularized for the Perl 6
>> ecosystem and I’ll push those eventually, but the really specialized
>> domain-specific code that fills a commercial void & that I will commit
>> years
>> to maintaining, I’d like to offer a commercial license, key-protect, sell
>> subscriptions, etc.
>>
>> Again, I’m very interested in contributing to the ecosystem when possible.
>>  I
>> still need to grow past baby/teenager Perl 6, and I’ll get there soon.
>> But
>> after creating something targeted only for customer
>> purchase/subscription,
>> what tools are available in the Perl 6 toolbox?  I saw something for the
>> Java
>> back-end (to .jar), but not much else.
>>
>> Is there a Perl 6 roadmap that might mention compiling Perl 6
>> modules/scripts
>> into something atomic, binary, & relocatable?  Or preferably the
>> capability
>> to compile only specific Perl 6 modules, requiring an existing Perl 6 on
>> the
>> target host?
>>
>
> Please see
> https://github.com/shlomif/Freenode-programming-channel-FAQ/blob/master/FAQ.mdwn#how-do-i-hideobscureencrypt-my-source-code-to-prevent-end-users-from-learning-how-it-works
> .
>
> Regarding "Intellectual Property", see
> https://www.linux.com/news/why-term-intellectual-property-seductive-mirage
> and
> http://ericsink.com/articles/Intellectual_Property.html .
>
> --
> -
> Shlomi Fish   http://www.shlomifish.org/
> Best Introductory Programming Language - http://shlom.in/intro-lang
>
> I’m worser at superlatives.
> And I don’t ever use no double negatives.
> — James at War, “Bad Grammar”:
> http://www.youtube.com/watch?v=Mj6QqCH7g0Q
>
> Please reply to list if it's a mailing list post - http://shlom.in/reply .
>


Re: Perl 6: Protecting Intellectual Property for Commercial Code

2017-10-23 Thread Shlomi Fish
Hi Mark,

On Sun, 22 Oct 2017 22:37:31 +
Mark Devine <m...@markdevine.com> wrote:

> Perl 6 Users,
> 
> [[ Bouncing off Re: who own my code? ]]
> 
> This is the first of several possible spin-off questions, but here goes…
> 
> Perl 6 has its public ecosystem, which will drive growth and adoption.  Then
> there’s the commercial side, which would also drive the language from another
> important angle.  I believe in a balance of public sharing and private
> enterprise.
> 
> I am interested in packaging some of my long-term Perl 6
> projects/scripts/apps/frameworks into some kind of relocatable object form
> (binary) that cannot be easily altered or trivially reverse engineered.  Put
> another way, I sometimes would prefer not to sell source code to my
> customers, but rather some form of compiled package that can’t easily be
> diddled by a SysAdmin.  If I create code for a particular commercial domain
> over years, then I want to get compensated for it and not have it be diluted
> with copy-cats one week after I release it.  Certainly some of the generic
> libraries that I create in the future can be modularized for the Perl 6
> ecosystem and I’ll push those eventually, but the really specialized
> domain-specific code that fills a commercial void & that I will commit years
> to maintaining, I’d like to offer a commercial license, key-protect, sell
> subscriptions, etc.
> 
> Again, I’m very interested in contributing to the ecosystem when possible.  I
> still need to grow past baby/teenager Perl 6, and I’ll get there soon.  But
> after creating something targeted only for customer purchase/subscription,
> what tools are available in the Perl 6 toolbox?  I saw something for the Java
> back-end (to .jar), but not much else.
> 
> Is there a Perl 6 roadmap that might mention compiling Perl 6 modules/scripts
> into something atomic, binary, & relocatable?  Or preferably the capability
> to compile only specific Perl 6 modules, requiring an existing Perl 6 on the
> target host?
> 

Please see
https://github.com/shlomif/Freenode-programming-channel-FAQ/blob/master/FAQ.mdwn#how-do-i-hideobscureencrypt-my-source-code-to-prevent-end-users-from-learning-how-it-works
 .

Regarding "Intellectual Property", see
https://www.linux.com/news/why-term-intellectual-property-seductive-mirage and
http://ericsink.com/articles/Intellectual_Property.html .

-- 
-
Shlomi Fish   http://www.shlomifish.org/
Best Introductory Programming Language - http://shlom.in/intro-lang

I’m worser at superlatives.
And I don’t ever use no double negatives.
— James at War, “Bad Grammar”: http://www.youtube.com/watch?v=Mj6QqCH7g0Q

Please reply to list if it's a mailing list post - http://shlom.in/reply .


Perl 6: Protecting Intellectual Property for Commercial Code

2017-10-22 Thread Mark Devine
Perl 6 Users,

[[ Bouncing off Re: who own my code? ]]

This is the first of several possible spin-off questions, but here goes…

Perl 6 has its public ecosystem, which will drive growth and adoption.  Then 
there’s the commercial side, which would also drive the language from another 
important angle.  I believe in a balance of public sharing and private 
enterprise.

I am interested in packaging some of my long-term Perl 6 
projects/scripts/apps/frameworks into some kind of relocatable object form 
(binary) that cannot be easily altered or trivially reverse engineered.  Put 
another way, I sometimes would prefer not to sell source code to my customers, 
but rather some form of compiled package that can’t easily be diddled by a 
SysAdmin.  If I create code for a particular commercial domain over years, then 
I want to get compensated for it and not have it be diluted with copy-cats one 
week after I release it.  Certainly some of the generic libraries that I create 
in the future can be modularized for the Perl 6 ecosystem and I’ll push those 
eventually, but the really specialized domain-specific code that fills a 
commercial void & that I will commit years to maintaining, I’d like to offer a 
commercial license, key-protect, sell subscriptions, etc.

Again, I’m very interested in contributing to the ecosystem when possible.  I 
still need to grow past baby/teenager Perl 6, and I’ll get there soon.  But 
after creating something targeted only for customer purchase/subscription, what 
tools are available in the Perl 6 toolbox?  I saw something for the Java 
back-end (to .jar), but not much else.

Is there a Perl 6 roadmap that might mention compiling Perl 6 modules/scripts 
into something atomic, binary, & relocatable?  Or preferably the capability to 
compile only specific Perl 6 modules, requiring an existing Perl 6 on the 
target host?

Thanks,

Mark

From: Brandon Allbery [mailto:allber...@gmail.com]
Sent: Sunday, October 22, 2017 16:33
To: vijayvithal jahagirdar <jahagirdar...@gmail.com>
Cc: ToddAndMargo <toddandma...@zoho.com>; perl6-users <perl6-us...@perl.org>
Subject: Re: who own my code?

This is still best discussed elsewhere... isn't there a stackexchange for this 
kind of stuff?

On Sun, Oct 22, 2017 at 4:24 PM, vijayvithal jahagirdar 
<jahagirdar...@gmail.com<mailto:jahagirdar...@gmail.com>> wrote:
Now If I implement this for one customer does the code becomes his IP and I 
cannot implement it for another?

Default is owned by who you are working for. If you want something else, you 
can negotiate it; you want to be clear about it, and for something relatively 
low level like this it should not be a problem in practice. That said, the part 
that requires this is also likely the least portable part: unless they're all 
using the same framework, it's the glue to their site framework that is (a) 
more difficult (b) more likely to be different between sites.

--
brandon s allbery kf8nh   sine nomine associates
allber...@gmail.com<mailto:allber...@gmail.com> 
 ballb...@sinenomine.net<mailto:ballb...@sinenomine.net>
unix, openafs, kerberos, infrastructure, xmonadhttp://sinenomine.net


[perl #132341] [BUG] Pod 6 table handling should ensure table rows have the same number of cells even if they are empty

2017-10-21 Thread via RT
# New Ticket Created by  Tom Browder 
# Please include the string:  [perl #132341]
# in the subject line of all future correspondence about this issue. 
# https://rt.perl.org/Ticket/Display.html?id=132341 >


Consider the following pod 6 tables:

=begin table
a | b | c
m | n | o
x | y
=end table

my $r =  $=pod[0];
is $r.contents.elems, 3;
is $r.contents[0].join(','), 'a,b,c'; # 3 cells
is $r.contents[1].join(','), 'l,m,n'; # 3 cells
is $r.contents[2].join(','), 'x,y';# 2 cells; should change to
"x,y," after a fix for this bug  (3 cells vs 2)

=table
X | O |
   ---+---+---
  | X | O
   ---+---+---
  |   | X

$r = $=pod[1];
is $r.contents.elems, 3;
is $r.contents[0].join(','), 'X,O';   # 2 cells; should change to
"X,O," after a fix for this bug (3 cells vs 2)
is $r.contents[1].join(','), ',X,O';  # 3 cells
is $r.contents[2].join(','), ',,X'; # 3 cells


RE: Perl 6 Object Construction - General Advice

2017-10-05 Thread Mark Devine
Perl 6 (Timo),

In terms of new() uses… I’ve seen a clever use of new() that goes beyond 
turning ‘positionals’ into ‘named’ in 
https://github.com/retupmoca/P6-Net-SMTP/blob/master/lib/Net/SMTP.pm6.  It 
wraps methods for debugging.  Pretty great, imo.

In terms of this thread’s subject…  I am coming from a SysAdmin orientation, 
where I implement large software suites with enough options to choke a pig.  
I’m writing auto-deployment scripts that manage the trickier aspects of 
installation & configuration.  Also some Perl 6 apps supporting the products.

My primary desire is to specify defaults with ‘has’, which I consider concise, 
convenient, easy to operate, and a great place to standardize specifying 
attribute defaults.  Then, while still in OC, have an opportunity to calculate 
better attribute values before returning up the call stack to new() – all 
without having to manage traits & defaults manually.  Many of my classes simply 
want to read a system command/file and provide an interface with accessors.  
new() and its accompanying stack needs to slurp in all of the source 
information, resulting in well-loaded attributes with accessors ready to answer 
questions.  If I can get new() to load up all attributes, then there will be no 
need for a clunky new()->my-more-complete-init() in my classes.  Hundreds of 
classes…

Perl 6 provides a comprehensive simplest-case for Object Construction (OC) when 
only attributes are specified -- defaults & traits are automatically managed.


#!/usr/bin/env perl6



class ITDT {

has $.itdt-path = '/usr/local/ITDT/itdt'; # nice!

has $.media-changer is required;  # nice!

has %!robot = ( :ONE(1), :TWO(2) );   # nice!



method robot{ %!robot; }

}



my ITDT $tape_library_inventory .= new(:itdt-path,

   :media-changer);

say 'itdt-path:= ' ~ $tape_library_inventory.itdt-path;

say 'media-changer = ' ~ $tape_library_inventory.media-changer;

print 'robot = '; dd $tape_library_inventory.robot;



# output:

itdt-path: = /opt/ITDT/itdt

media-changer = /dev/smc0

robot = Hash %!robot = {:ONE(1), :TWO(2)}

If you craft your own BUILD and/or TWEAK to perform more elaborate attribute 
initializations, then you must manage all of that yourself, losing the elegant 
‘has’ conveniences shown above.

I may have missed it.  new(), BUILD(), TWEAK(), !initialize – none seem to 
retain the magic of automatically managed defaults & traits.  Please enlighten 
me if it’s there and I’m not seeing it.

Thanks,

Mark


From: Timo Paulssen [mailto:t...@wakelift.de]
Sent: Sunday, October 1, 2017 16:56
To: perl6-us...@perl.org
Subject: Re: Perl 6 Object Construction - General Advice


I wrote another more in-depth (but potentially less useful to you) mail about 
this further down the thread, but I thought it'd be good to point this out near 
the top:

I think the self.bless(|%args)!initialize idiom is a work-around for submethod 
TWEAK not yet existing when this code was written. TWEAK works in a very 
similar manner, with these differences:

1) Your "self" isn't fully built when TWEAK runs, therefore you can't call 
regular methods on it
2) It will even be executed when a subclass of your class gets constructed, 
whereas there's no simple way to get access to !initialize from a subclass.
3) TWEAK gets passed the named parameters that bless was called with

method new is useful only if you want to take positional parameters for the 
.new — the default new you get from Mu only accepts named arguments and passes 
them on as-is to self.bless. They then get passed to every BUILD and TWEAK in 
the inheritance chain. The named parameters don't have to correspond to 
attribute names, as you can do any private attribute assignment in TWEAK that 
you like.
I hope that helps
  - Timo


RE: Perl 6 Object Construction - General Advice

2017-10-05 Thread Mark Devine
Timo,

Oops.  You're right.  (I was unconditionally sending an argument in my test 
that zeroed it out the attribute that I was watching -- doh!)  Now I can 
confirm that TWEAK is the logical place to further initialize attributes.

I now see the light!

Thanks,

Mark


-Original Message-
From: Timo Paulssen [mailto:t...@wakelift.de] 
Sent: Thursday, October 5, 2017 13:56
To: Mark Devine <m...@markdevine.com>; perl6-us...@perl.org
Subject: Re: Perl 6 Object Construction - General Advice

The main difference between BUILD and TWEAK is that BUILD will replace all 
default and requiredness handling, while TWEAK keeps it intact.
TWEAK gets run after these aspects had their turn, so if you have an "is 
required" attribute that doesn't get a value passed, the BUILDALL process will 
throw the corresponding exception before TWEAK even gets invoked.

Don't forget that with the assignment syntax for attribute defaults you're 
allowed to do calculations, too! You can even refer to other attributes in 
there, as long as you use the $!foo syntax.

hope that helps
  - Timo



Re: Perl 6 Object Construction - General Advice

2017-10-05 Thread Timo Paulssen
The main difference between BUILD and TWEAK is that BUILD will replace
all default and requiredness handling, while TWEAK keeps it intact.
TWEAK gets run after these aspects had their turn, so if you have an "is
required" attribute that doesn't get a value passed, the BUILDALL
process will throw the corresponding exception before TWEAK even gets
invoked.

Don't forget that with the assignment syntax for attribute defaults
you're allowed to do calculations, too! You can even refer to other
attributes in there, as long as you use the $!foo syntax.

hope that helps
  - Timo


[perl #126669] [LHF][LTA] error with "need 6"/"use 6" (no "v")

2017-10-03 Thread Aleks-Daniel Jakimenko-Aleksejev via RT
See
https://github.com/rakudo/rakudo/blob/f946bd35dca39af97983ec95d4da7fdd0416b73d/src/core/Exception.pm#L1025-L1031

It seems that you can add “need” and “use” there (with a good message) and it
will do exactly what was requested.

On 2015-11-17 18:57:53, fecund wrote:
> When Rakudo (MoarVM) 6.b encounters
> need 6.000;
> or
> use 6.000;
>
> it gives an error:
>
> Undeclared routine:
> use (or "need")
>
> I encountered this as a Perl5-ism, where I may say "use 5.022" so that
> ancient Perls won't choke on "v5.22" - can we get one of those awesome
> error messages that says "do you mean 'need v6.0'?" when given the
> above?
>
> Also,
> use "foo";
>
> also gives same LTA "Undeclared routine: use" error, would be nice if
> it told use how to use a module from an interpolated string instead.
>
> thanks!


Re: Perl 6 Object Construction - General Advice

2017-10-01 Thread Daniel Schröer
Am 30.09.2017 19:34 schrieb "Mark Devine" :

My most common OC case:  initialize attributes at OC time from external
input that will be parsed with grammars &/| scrubbed with elaborate
conditional tests.

Just a shot in the dark without fully understanding the above: maybe your
difficulties indicate that you should rethink your design. I believe that
in the common case you should be able to do with the basic standard ways of
object construction. Maybe parsing that input should be someone else's job,
not that of the constructors.


Re: Perl 6 Object Construction - General Advice

2017-10-01 Thread Brandon Allbery
On Sun, Oct 1, 2017 at 4:56 PM, Timo Paulssen  wrote:

> *method new* is useful only if you want to take positional parameters for
> the .new — the default new you get from *Mu* only accepts named arguments
> and passes them on as-is to *self.bless*. They then get passed to every
> *BUILD* and *TWEAK* in the inheritance chain. The named parameters don't
> have to correspond to attribute names, as you can do any private attribute
> assignment in *TWEAK* that you like.
>
And adding, just in case it isn't clear: the problem with positional
parameters to method new is there is no sane way to inherit them from
superclasses or make them usable from subclasses without baking them into
the entire object hierarchy. They make sense only for things like what Java
calls final classes, and even then probably only for atomic value types
(e.g. things like Int where the value is a single 'thing' and wholly
defines the identity of an instance).

-- 
brandon s allbery kf8nh   sine nomine associates
allber...@gmail.com  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonadhttp://sinenomine.net


Re: Perl 6 Object Construction - General Advice

2017-10-01 Thread Timo Paulssen
I wrote another more in-depth (but potentially less useful to you) mail
about this further down the thread, but I thought it'd be good to point
this out near the top:

I think the /self.bless(|%args)!initialize/ idiom is a work-around for
/submethod TWEAK/ not yet existing when this code was written. /TWEAK/
works in a very similar manner, with these differences:

1) Your "/self/" isn't fully built when /TWEAK/ runs, therefore you
can't call regular methods on it
2) It will even be executed when a subclass of your class gets
constructed, whereas there's no simple way to get access to !initialize
from a subclass.
3) TWEAK gets passed the named parameters that bless was called with

/method new/ is useful only if you want to take positional parameters
for the .new — the default new you get from /Mu/ only accepts named
arguments and passes them on as-is to /self.bless/. They then get passed
to every /BUILD/ and /TWEAK/ in the inheritance chain. The named
parameters don't have to correspond to attribute names, as you can do
any private attribute assignment in /TWEAK/ that you like.//

I hope that helps
  - Timo


Re: Perl 6 Object Construction - General Advice

2017-10-01 Thread Timo Paulssen
Here's the internal details of the guts:

BUILDALL has so far been sort of an interpreter for something called the
"buildplan". When a class gets composed (usually what happens
immediately when the parser sees the closing } of the class definition)
all attributes are considered along with their defaults and requiredness
and such and the buildplan is created as a step-by-step list, kind of
like "take named argument 'foo', put it into attribute $!foo" and "take
named argument 'bar' if exists, otherwise run the provided code, then
stash it into $!bar".

Putting a BUILD into your class disables every attribute-related steps.
You will have to do all the defaults and requiredness checks yourself.
TWEAK on the other hand gets put in as the last step of the plan.

The work lizmat just did on BUILDALL was to create an actual piece of
code for every class that does what the interpreter would have done, but
now that the code is actually code rather than a loop with a big switch
statement, the dynamic optimizer can do much smarter things with it, for
example inlining the body of any default value initialization code (like
has $.bar = $!foo * 2).

Maybe that helps clear up things a bit?


Re: Perl 6 Object Construction - General Advice

2017-10-01 Thread Brandon Allbery
On Sun, Oct 1, 2017 at 1:02 PM, yary  wrote:
>
> I hadn't heard of TWEAK, thought that BUILD was for setting private
> attributes and other tasks the object runs to build itself.
>

IIRC having BUILD overrides default values, so if you want to have those
and still adjust things at object initialization time then you need to use
TWEAK.
(But I can't help but think that this means some things still haven't been
quite worked out yet. Although --- I didn't look, but maybe that's what the
recent changes to BUILDALL etc. were about?)

(It occurs to me that BUILD might be a multi, with an autogenerated one
that sets the default values and then 'nextsame's or similar?)

-- 
brandon s allbery kf8nh   sine nomine associates
allber...@gmail.com  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonadhttp://sinenomine.net


Re: Perl 6 Object Construction - General Advice

2017-10-01 Thread yary
I barely write any p6 but my impression was to avoid bless, and stick with
using named arguments for object creation. Using positional parameters
forces creating a "method new ..."

I hadn't heard of TWEAK, thought that BUILD was for setting private
attributes and other tasks the object runs to build itself.


Re: Perl 6 Object Construction - General Advice

2017-09-30 Thread Brian Duggan
On Saturday, September 30, Mark Devine wrote: 
> My most common OC case:  initialize attributes at OC time from external
> input that will be parsed with grammars &/| scrubbed with elaborate
> conditional tests.

I like to use assignment for simple things and TWEAK for
complicated things --

class Foo {
has $.bar = 'something simple';
has $.baz;
submethod TWEAK {
$!baz = call-something-complicated;
}
}

Brian


Perl 6 Object Construction - General Advice

2017-09-30 Thread Mark Devine
Perl 6,

I am preparing to write several classes for some Perl 6 apps I intend to craft 
in support of a prominent backup suite.  In looking at the documentation & some 
of the modules published in the Perl 6 ecosystem, I’m not quite sure that I can 
identify the best idiomatic object construction (OC) approach for my most 
frequent cases that will stand the test of time.  I don’t want to start writing 
too many of these using my baby/teenager-Perl6 skills and then go back and 
refactor ALL of them later with better OC approaches as I learn more.  I’d like 
to have a boilerplate OC construct that accommodates most cases, if it is 
possible to zero in on one.

My most common OC case:  initialize attributes at OC time from external input 
that will be parsed with grammars &/| scrubbed with elaborate conditional tests.

Mu’s new() cannot assign to the class attributes, but BUILD can.  I’ve used 
that construct successfully, but I’m not convinced that will be the best 
approach for the long term.


OC: new() { self.bless() } – BUILD() still confuses me.  (I am hopeful for a 
future Perl 6 book with a 40-page chapter comprehensively detailing the 
responsibilities of each of these mechanisms.)  I’ve read 
https://docs.perl6.org/language/classtut & 
https://docs.perl6.org/language/objects#Object_Construction, but I’m not 
getting it all.

I’ve tried multiple approaches to initializing variables with defaults, 
sometimes failing at compile time when I attempt to do it in the wrong place.  
Other times, as I move things around, I break default assignments (I.e. has 
$.var = ‘/tmp’) that worked magically using Mu’s new().  I am still learning by 
experimentation…

The Perl 6 ecosystem has lots of clever OC constructs, but I’m still not able 
to infer which I could boilerplate into an “80%-of-the-time-go-to” OC.

I just recently encountered this construct in more than one module (I.e. 
https://github.com/sergot/io-socket-ssl/blob/master/lib/IO/Socket/SSL.pm6):



method new(*%args is copy) {

…# fiddle with the %args hash as required, but obviously not 
attributes here

self.bless(|%args)!initialize;

}



method !initialize {

…# directly initialize attributes with conditional logic

self;

}



Is this construct a bona-fide industrial-strength Perl 6 OC idiom that I could 
employ with confidence?  Should I keep looking?Also, in this OC approach, 
I’m not quite seeing how |%args (I.e. with %args = ‘example.com’) ends up 
magically as $!host (I.e. =’example.com’) in initialize().  I’ll need just a 
bit more explanation to understand it.



If anyone can provide more detail on the 
mechanics/expectations/responsibilities/idioms of Perl 6 OC (new() { 
self.bless() } – BUILD() & more), I would appreciate your input.  All educated 
advice is welcome.

Thanks,

Mark


[perl #132179] Don't put Mexico and Texas in opposition in Perl 6 jargon

2017-09-29 Thread Zoffix Znet via RT
On Thu, 28 Sep 2017 13:20:50 -0700, j...@durchholz.org wrote:
> Am 28.09.2017 um 15:44 schrieb brian d foy (via RT):
> > And, that's not bake any other geopolitical oppositions into the
> > language either. The Texas metaphor was a joke about that an American
> > stereotype and you shouldn't go further with it.
> 
> Given that even good-natured humor occasionally gets misunderstood, and 
> that it is readily weaponized, I am proposing to replace "Texas" with 
> "ASCII".
> I recognize it's dull, but better dull than being drawn into quarrels 
> that have nothing to do with Perl. (YMMV.)

I'm +1. It'd also be a clearer term.

I opened a doc Issue for this, since this term is largely used in our docs: 
https://github.com/perl6/doc/issues/1584


[perl #132179] Don't put Mexico and Texas in opposition in Perl 6 jargon

2017-09-29 Thread Zoffix Znet via RT
On Thu, 28 Sep 2017 13:20:50 -0700, j...@durchholz.org wrote:
> Am 28.09.2017 um 15:44 schrieb brian d foy (via RT):
> > And, that's not bake any other geopolitical oppositions into the
> > language either. The Texas metaphor was a joke about that an American
> > stereotype and you shouldn't go further with it.
> 
> Given that even good-natured humor occasionally gets misunderstood, and 
> that it is readily weaponized, I am proposing to replace "Texas" with 
> "ASCII".
> I recognize it's dull, but better dull than being drawn into quarrels 
> that have nothing to do with Perl. (YMMV.)

I'm +1. It'd also be a clearer term.

I opened a doc Issue for this, since this term is largely used in our docs: 
https://github.com/perl6/doc/issues/1584


[perl #132184] [6.d] .skip semantics are inconsistent

2017-09-29 Thread via RT
# New Ticket Created by  Zoffix Znet 
# Please include the string:  [perl #132184]
# in the subject line of all future correspondence about this issue. 
# https://rt.perl.org/Ticket/Display.html?id=132184 >


- Seq.skip mutates the invocant:
$ ./perl6 -e 'my $s := (1, 2, 3).Seq; $ = $s.skip; say $s'
(2 3)

- List.skip does not:
$ ./perl6 -e 'my $s := (1, 2, 3); $ = $s.skip; say $s'
(1 2 3)

And the real pain point is that a cached Seq is basically a list.
Currently, .skip on a Seq crashes. I tried to fix[^1] the crash, but
the fixed version has these inconsistent semantics that `Seq.skip`
will either modify the invocant or not, depending on whether the Seq
is cached.

$ ./perl6 -e 'm: my $s := (1, 2, 3).Seq; $s.cache; $ = $s.skip; say $s'
(1 2 3)
$ ./perl6 -e 'm: my $s := (1, 2, 3).Seq;   $ = $s.skip; say $s'
(2 3)

I don't see .skip in 6.c tests, so I think we still have a chance to
improve it. The question's: how? Any ideas?


[1] https://gist.github.com/zoffixznet/98ee33398ac7979c0adc4a4a88696b85


Re: [perl #132179] Don't put Mexico and Texas in opposition in Perl 6 jargon

2017-09-28 Thread Joachim Durchholz

Am 28.09.2017 um 15:44 schrieb brian d foy (via RT):

And, that's not bake any other geopolitical oppositions into the
language either. The Texas metaphor was a joke about that an American
stereotype and you shouldn't go further with it.


Given that even good-natured humor occasionally gets misunderstood, and 
that it is readily weaponized, I am proposing to replace "Texas" with 
"ASCII".
I recognize it's dull, but better dull than being drawn into quarrels 
that have nothing to do with Perl. (YMMV.)


Re: [perl #132179] Don't put Mexico and Texas in opposition in Perl 6 jargon

2017-09-28 Thread Joachim Durchholz via RT
Am 28.09.2017 um 15:44 schrieb brian d foy (via RT):
> And, that's not bake any other geopolitical oppositions into the
> language either. The Texas metaphor was a joke about that an American
> stereotype and you shouldn't go further with it.

Given that even good-natured humor occasionally gets misunderstood, and 
that it is readily weaponized, I am proposing to replace "Texas" with 
"ASCII".
I recognize it's dull, but better dull than being drawn into quarrels 
that have nothing to do with Perl. (YMMV.)


[perl #132179] Don't put Mexico and Texas in opposition in Perl 6 jargon

2017-09-28 Thread Zoffix Znet via RT
On Thu, 28 Sep 2017 06:44:12 -0700, comdog wrote:
> And, that's not bake any other geopolitical oppositions into the
> language either. The Texas metaphor was a joke about that an American
> stereotype and you shouldn't go further with it.
> 
> https://rt.perl.org/Public/Bug/Display.html?id=132176

Thanks. Removed[^1] the only mention of them in source/docs I could find and 
mentioned this Issue on the dev chat.

[1] https://github.com/rakudo/rakudo/commit/a89add0bf8


[perl #132179] Don't put Mexico and Texas in opposition in Perl 6 jargon

2017-09-28 Thread Zoffix Znet via RT
On Thu, 28 Sep 2017 06:44:12 -0700, comdog wrote:
> And, that's not bake any other geopolitical oppositions into the
> language either. The Texas metaphor was a joke about that an American
> stereotype and you shouldn't go further with it.
> 
> https://rt.perl.org/Public/Bug/Display.html?id=132176

Thanks. Removed[^1] the only mention of them in source/docs I could find and 
mentioned this Issue on the dev chat.

[1] https://github.com/rakudo/rakudo/commit/a89add0bf8


[perl #132179] Don't put Mexico and Texas in opposition in Perl 6 jargon

2017-09-28 Thread brian d foy
# New Ticket Created by  "brian d foy" 
# Please include the string:  [perl #132179]
# in the subject line of all future correspondence about this issue. 
# https://rt.perl.org/Ticket/Display.html?id=132179 >


And, that's not bake any other geopolitical oppositions into the
language either. The Texas metaphor was a joke about that an American
stereotype and you shouldn't go further with it.

https://rt.perl.org/Public/Bug/Display.html?id=132176


Announce: Rakudo Perl 6 compiler, Release #115 (2017.09)

2017-09-17 Thread Aleks-Daniel Jakimenko-Aleksejev
On behalf of the Rakudo development team, I’m very happy to announce the
September 2017 release of Rakudo Perl 6 #115. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2017 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from 
<http://rakudo.org/downloads/rakudo/>.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<http://rakudo.org/downloads/star/>.

The changes in this release are outlined below:

New in 2017.09:
 + Fixes:
    + Fixed NativeCall signature check for unsupported native types [4077842c]
    + Fixed .made called on a Match on which .make was never called [5db5b1db]
    + Fixed flattening of a typed hash [6cec6b72]
    + Fixed iterator on pairs with Mu's [a5014fd0]
    + Fixed Supply.batch with non-int elems and elems == 1 [98f9fffe][7d1ece80]
    + Improved error message on nameless postfix `.::` [5969f21e]
    + Fixed ::("GLOBAL") [1f6a782c]
    + Refined merging of one() junctions [79604a88]
    + Fixed error message with leaking variable name in FailGoal [ed4f6cc9]
    + Implemented missing Instant.Instant [51709e01]
    + Fixed thread safety issues with signal introspection [1f411693]
    + Fixed thread safety issues in the `signal` sub [13b6a33c]
    + Fixed thread safety of "foo{$x}bar" [59454b03]
    + Made Bool.enums consistent with Enumeration.enums [e7a58806]
    + Fixed doubled path issue in IO::Notification.watch-path [2362dfd6]
    + Disabled interactive REPL for non-TTY input [b6a60236]
    + Fix ignoremark and casechange operations of graphemes which begin with
    Unicode Prepend characters [7f526c1e]
    + Suppress line number in X::Package::Stubbed [edac1d68][7ba9b7cd]
    + Fixed race condition in Channel awaiter [b30ac08a]
    + Fixed NYI compilation of NativeCall sigs with optional params [1818de98]
    + Fixed missing deconts in nqp::eqaddr() tests [880b33e2]
    + Fixed Enumeration:D === Enumeration:D [8d938461]
    + Fixed non-blocking await when holding locks [f26d1e24]
    + Fixed non-blocking await-all to respect Slip [a137c0de]
 + Additions:
    + Added support for Str operations with Junctions [753c9a5e][7cd153f4]
    [95a70ca3][0b19baf0][d2f31bb7][e18291e2][8b5d283c]
    + Added support for Unicode 10 [64dd94c2]
    + Added complete Unicode Collation Algorithm implementation [9b42484a]
    [5f335065][ec18efa0]
    + .collate/coll/unicmp operators are no longer experimental
    (Note: $*COLLATION dynamic variable is still experimental) [5f335065]
    + Added Thread.is-initial-thread method [59a2056a]
    + Added output buffering for non-TTYs [44680029][4b02b8aa]
    + Made temp and let on a Failure throw it [80a3255b]
    + Made sure that open files are properly closed on exit [3c9cfdba]
    [97853564][347da8e5][dd8d0d89]
    + Implement pred() and succ() for the Enumeration role [2645a1e9]
    [8d442a52][8df53f34][43e41ec6][55aa7f28][f925c648][69dae1f3][2ad51a0f]
    + Added isa method to SubsetHOW [0704cd97]
 + Build system:
    + Made t/harness* use 6 TEST_JOBS by default [8019c15b]
    + Added --ignore-errors option to Configure.pl [0bc1c877][1da075f9]
    + Fixed `make test` without `make install` first [fb0b3eb5]
    + Made Configure.pl refuse to work without ExtUtils::Command [3f4a9ffa]
    + Fixed non-installed gdb/valgrind runners [4e3f0fca]
 + Efficiency:
    + Knuth-Morris-Pratt string search has been implemented for string
    indexing operations (needles between 2 and 8192 in length) [593fa5f8]
    + 1.5-2x speedup of most string operations involving strands [5ebbc5ba]
    + 2.5x speedup for eq() for comparing two flat strings (1.7-2x for others)
    + 9x speedup when indexing with a needle one grapheme in length [8a215876]
    + Made `Any ~ Str` and `Str ~ Any` about 25% faster [815faa35]
    + Made index and eqat operations 2x faster [5ebbc5ba]
    + Made all(@a), none(@a), one(@a) about 9x faster [51c3d86c]
    + Various improvements to BUILDPLAN and BUILDALLPLAN [7da0c215][0ca5ffa4]
    [760530a5][80e069a4][2574f883][b706b843][963b28d1][532f7092]
    + Made object creation 25% faster in some cases [62fd5093]
 + Internal:
    + Simplified setting up auto-threading [8a0f6ac1]
    + Streamlined Junction .defined, .Bool, .ACCEPTS [e8137b45]
    + Added --no-merge option to t/harness5 to pass through STDERR [4af1d95c]
    [84b40cf5]
    + Various improvements to INTERPOLATE [215a5fa7][ea57c

Re: [perl #130692] [BUG] IO::Socket::Async broken in 6.d.PREVIEW

2017-09-16 Thread Jonathan Stowe
Great, thanks for the update.

On 15 Sep 2017 15:17, "jn...@jnthn.net via RT" <perl6-bugs-follo...@perl.org>
wrote:

> On Wed, 01 Feb 2017 13:11:21 -0800, j...@gellyfish.co.uk wrote:
> > With 6.d.PREVIEW the simplest code for IO::Socket::Async mis-behaves:
> >
> > use v6.d.PREVIEW;
> >
> > react {
> > whenever IO::Socket::Async.listen('localhost', ) -> $conn {
> > whenever $conn.Supply(:bin) -> $buf {
> > await $conn.write: $buf;
> > $conn.close;
> > }
> > }
> > }
> >
> > Gives rise to:
> >
> > Unhandled exception in code scheduled on thread 7
> > Attempt to unlock mutex by thread not holding it
> >
> > After the second connection every time.  I noticed this when testing
> > HTTP::Server::Tiny.
> >
> > This is Rakudo version 2017.01-132-g97359ae built on MoarVM version
> > 2017.01-25-g70d4bd5
>
> Fixed now, and test coverage of this, and the deeper underlying issue, is
> in S17-promise/nonblocking-await.t.
>
>


Re: [perl #130692] [BUG] IO::Socket::Async broken in 6.d.PREVIEW

2017-09-16 Thread j...@gellyfish.co.uk via RT
Great, thanks for the update.

On 15 Sep 2017 15:17, "jn...@jnthn.net via RT" <perl6-bugs-follo...@perl.org>
wrote:

> On Wed, 01 Feb 2017 13:11:21 -0800, j...@gellyfish.co.uk wrote:
> > With 6.d.PREVIEW the simplest code for IO::Socket::Async mis-behaves:
> >
> > use v6.d.PREVIEW;
> >
> > react {
> > whenever IO::Socket::Async.listen('localhost', ) -> $conn {
> > whenever $conn.Supply(:bin) -> $buf {
> > await $conn.write: $buf;
> > $conn.close;
> > }
> > }
> > }
> >
> > Gives rise to:
> >
> > Unhandled exception in code scheduled on thread 7
> > Attempt to unlock mutex by thread not holding it
> >
> > After the second connection every time.  I noticed this when testing
> > HTTP::Server::Tiny.
> >
> > This is Rakudo version 2017.01-132-g97359ae built on MoarVM version
> > 2017.01-25-g70d4bd5
>
> Fixed now, and test coverage of this, and the deeper underlying issue, is
> in S17-promise/nonblocking-await.t.
>
>


[perl #130692] [BUG] IO::Socket::Async broken in 6.d.PREVIEW

2017-09-15 Thread jn...@jnthn.net via RT
On Wed, 01 Feb 2017 13:11:21 -0800, j...@gellyfish.co.uk wrote:
> With 6.d.PREVIEW the simplest code for IO::Socket::Async mis-behaves:
> 
> use v6.d.PREVIEW;
> 
> react {
> whenever IO::Socket::Async.listen('localhost', ) -> $conn {
> whenever $conn.Supply(:bin) -> $buf {
> await $conn.write: $buf;
> $conn.close;
> }
> }
> }
> 
> Gives rise to:
> 
> Unhandled exception in code scheduled on thread 7
> Attempt to unlock mutex by thread not holding it
> 
> After the second connection every time.  I noticed this when testing
> HTTP::Server::Tiny.
> 
> This is Rakudo version 2017.01-132-g97359ae built on MoarVM version
> 2017.01-25-g70d4bd5

Fixed now, and test coverage of this, and the deeper underlying issue, is in 
S17-promise/nonblocking-await.t.


[perl #130692] [BUG] IO::Socket::Async broken in 6.d.PREVIEW

2017-09-15 Thread jn...@jnthn.net via RT
On Wed, 01 Feb 2017 13:11:21 -0800, j...@gellyfish.co.uk wrote:
> With 6.d.PREVIEW the simplest code for IO::Socket::Async mis-behaves:
> 
> use v6.d.PREVIEW;
> 
> react {
> whenever IO::Socket::Async.listen('localhost', ) -> $conn {
> whenever $conn.Supply(:bin) -> $buf {
> await $conn.write: $buf;
> $conn.close;
> }
> }
> }
> 
> Gives rise to:
> 
> Unhandled exception in code scheduled on thread 7
> Attempt to unlock mutex by thread not holding it
> 
> After the second connection every time.  I noticed this when testing
> HTTP::Server::Tiny.
> 
> This is Rakudo version 2017.01-132-g97359ae built on MoarVM version
> 2017.01-25-g70d4bd5

Fixed now, and test coverage of this, and the deeper underlying issue, is in 
S17-promise/nonblocking-await.t.


  1   2   3   4   5   6   7   8   9   10   >