»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
avuserow timotimo: I'm trying to fix that... so far finishing a test of the modules to see how painful they are. looks promising so far 00:03
also it looks like rakudo.org doesn't mention any releases beyond April's R*. Does the Rakudo compiler release typically get mentioned there? 00:04
timotimo no 00:06
at some point a decision was made to announce the rakudo compiler releases only to the perl6.compiler mailing list as to not confuse outsiders 00:07
avuserow that makes sense
I don't think I have a commitbit for rakudo. Can I just fork the rakudo/star repo and send PRs? 00:09
timotimo hm, there was a CLA needed for one of the repos, i forgot which 00:11
was that NQP?
avuserow I think rakudo
timotimo i think it was nqp because that used to be a part of parrot or something like that?
but yeah, pull requests also work fine
avuserow okay cool. I'll start down that path now and think about handling the CLA in the future 00:13
avuserow please review my star announcement draft: github.com/avuserow/star/blob/mast...2014.07.md 00:43
I'm not planning on doing the release proper for another day or two so it's okay to give me feedback tomorrow
(I realize many people have probably just left for the evening, but that's typical of timezones) 00:45
timotimo did you look at all rakudo releases between 04 and this one to collect the changes?
usually the list of changes is a subset of the things that have actually changed
avuserow oh, no I did not 00:46
I will do that, and filter out some of the less exciting changes then
avuserow did we want to add any modules to R* this time around? 00:48
the 2014.05 changelog mentions v5 will soon be available as a part of R* 00:49
timotimo if i recall correctly, froggs still has to pick up a lot of pieces to make v5 work on rakudo again after he switched it from being implemented in nqp to being implemented in perl6 00:54
dalek ast/S26-WHY: 74bb756 | (Rob Hoelz)++ | S26-TODO:
Notes notes notes
03:20
ast/S26-WHY: 97a1482 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
More leading doc parameter tests
sergot morning o/ 06:29
xiaomiao btw - nqp seems to fail building 3rdparty/dyncall with newer gcc on linux 06:52
the fix I've found is to hammer out a few of the gcc warnings-as-errors
very fragile ...
FROGGS__ xiaomiao: what gcc are we talking about? 07:14
xiaomiao FROGGS__: 4.8+ I think, 4.9 goes boom
xiaomiao sed -i -e 's/-Werror=missing-prototypes//' Makefile 07:14
xiaomiao sed -i -e 's/-Werror=missing-declarations//' Makefile 07:15
sed -i -e 's/-Werror=strict-prototypes//' Makefile
^^ minimal dirty hackfix as those bits don't work anymore
Ven o/, #perl6 and beyond. 07:17
FROGGS__ hi Ven
xiaomiao: that sounds like this is about nqp@parrot... I'm sure we find a better way than using sed :o) 07:18
xiaomiao FROGGS__: the default cflags are too optimistic, I just carved away enough to make it compile
not a "clean" fix by any means, but at least it doesn't fail :D
Ven m: my $a = "FooBar"; say $a ~~ tr/A..Z/a..z/; 07:29
camelia rakudo-moar 97882c: OUTPUT«StrDistance.new(before => "FooBar", after => "foobar")␤»
Ven Does this "just" takes the A..Z's index and get that same index on a..z ? 07:30
FROGGS__ Ven: yes 07:34
Ven dascool. Powerful :-)
FROGGS__ and I also love it how it gistifies... 07:34
psch++ # right? 07:35
Ven think so :-)
Ven uh, so even perl 5 has a "use overload"? Can I find a feature that perl 5 doesn't actually have ? (bad idea to ask this on #perl6, I guess) 07:47
psch hi #perl6 08:14
Ven: perl5 doesn't do 1:n transliteration, for example 08:15
m: my $a = 'abc'.trans: ['a', 'b', 'c'] => ['a23', 'b23', 'c23']; $a.say
camelia rakudo-moar 97882c: OUTPUT«a23b23c23␤»
psch (tr/// in neither does that, fwiw) 08:16
psch that's the only thing i can recall off-hand though, and only because i've been near it recently 08:16
Ven m: multi sub infix:<%> (Us $us, Them $them) is deep { mymod($us,$them) } 08:35
camelia rakudo-moar 97882c: OUTPUT«===SORRY!=== Error while compiling /tmp/Za1m9lu31j␤Invalid typename 'Us' in parameter declaration.␤at /tmp/Za1m9lu31j:1␤------> multi sub infix:<%> (Us⏏ $us, Them $them) is deep { mymod($us,$t␤»
Ven m: multi sub infix:<%> (Int $us, Int $them) is deep { 1
camelia rakudo-moar 97882c: OUTPUT«===SORRY!=== Error while compiling /tmp/tBs6ZJoP1Z␤Unable to parse expression in block; couldn't find final '}' ␤at /tmp/tBs6ZJoP1Z:1␤------> fix:<%> (Int $us, Int $them) is deep { 1⏏<EOL>␤ expecting any of…»
Ven I guess `is deep` is NYI 08:38
nwc10 FROGGS__: what happened to your nqp/charrange branch? 08:42
FROGGS__ nwc10: got merged 08:43
nwc10 OK, I can't see dalek reporting that it was deleted
merged as 1 commit?
FROGGS__ nwc10: dalek does not show that 08:43
as one commit, aye
well, squished into one 08:44
masak antenoon, #perl6 08:59
sergot masak: o/ 09:37
dalek p: 5027534 | (Tobias Leich)++ | tools/build/MOAR_REVISION:
bump moar rev for char name aliases
11:45
kudo/nom: 8649121 | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp/moar rev for char name aliases
dalek ast: 7bf2927 | (Tobias Leich)++ | S05-mass/named-chars.t:
RT #122353 fudge LF,FF,CR,NEL tests for parrot/jvm only
11:48
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122353
dalek kudo-star-daily: d6be400 | coke++ | log/ (14 files):
today (automated commit)
12:17
dalek p: 908d8a0 | (Tobias Leich)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
[jvm] add char name lookup aliases (LF,FF,CR and NEL)
12:33
kudo/nom: e56d94d | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp/jvm rev for char name aliases
ast: 2c677bc | (Tobias Leich)++ | S05-mass/named-chars.t:
RT #122353 unfudge LF,FF,CR,NEL tests for jvm
12:38
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122353
dalek ast/S26-WHY: e7f0ef2 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
Stop skipping WHEREFORE tests
12:53
ast/S26-WHY: f0a296a | (Rob Hoelz)++ | S26-documentation/why-leading.t:
Fix a bad test
cognominal SOP? 13:26
oops 13:27
jimmyz > my $thread = Thread.start: { print 'hello'; } helloThread.new(app_lifetime => Bool::False, name => "<anon>") > $thread.run Unhandled exception: Cannot invoke null object 14:03
hoelzro morning #perl6 14:04
hoelzro does lib/Test.pm have its own tests somewhere? 14:07
ChoHag If I have a sub which can callsame, how can I define an anonymous sub within that sub which uses the same callsame? 14:38
Because there is an inner scope around the callsame call, I get the error: callsame is not in the dynamic scope of a dispatcher
masak m: multi foo { say "outer" }; { multi foo { say "inner"; callsame }; foo } 14:39
camelia rakudo-moar e56d94: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:()␤:()␤ in sub foo at /tmp/OwPehmegbc:1␤ in block at /tmp/OwPehmegbc:1␤␤»
masak hrm.
ChoHag sub oldattempt { val = callsame } --> sub newattempt { my $fn = sub { val = callsame }; $fn.() }
masak m: multi foo($) { say "outer" }; { multi foo(Int) { say "inner"; callsame }; foo(5) }
camelia rakudo-moar e56d94: OUTPUT«inner␤outer␤» 14:40
masak m: multi foo($) { say "outer" }; { multi foo(Int) { say "inner"; my &b = -> { callsame }; &b() }; foo(5) }
camelia rakudo-moar e56d94: OUTPUT«inner␤outer␤»
masak ChoHag: there you go.
m: multi foo($) { say "outer" }; { multi foo(Int) { say "inner"; return -> { callsame } }; my &b = foo(5); &b() }
camelia rakudo-moar e56d94: OUTPUT«inner␤callsame is not in the dynamic scope of a dispatcher␤ in block at src/gen/m-CORE.setting:632␤ in block at /tmp/dR_cmebgnM:1␤ in block at /tmp/dR_cmebgnM:1␤␤» 14:41
masak seems that `callsame` doesn't "bind" the way return does, though. 14:41
pity -- I could see some uses of it doing so.
ChoHag Woo. Bug squashed. 14:54
Now to work out why the next bug makes moar chew up all my cores.
ChoHag Also: Fuck the OOM killer. 14:56
dalek p: f1b098f | (Tobias Leich)++ | / (2 files):
RT #122341 [moar,jvm] handle all line separators
14:58
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122341
dalek kudo/nom: 0f73b73 | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp/{jvm,moar} rev for line sep fixes
14:59
masak wonders whether to point out that ChoHag's use of strong language outs him strongly as a fiver among sixers... :) 15:14
hoelzro I feel similarly about the OOM killer =) 15:15
masak that's orthogonal. 15:16
hoelzro to strong language? 15:18
is the strong language present to make up for the weak type system? =P
dalek ast: efcdc6b | (Tobias Leich)++ | S02-lexical-conventions/unicode.t:
RT #122341 add/fudge unicode linesep tests for parrot only
15:19
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122341
masak m: role FuckThe[::T] {}; class OomKiller {}; say FuckThe[OomKiller]
camelia rakudo-moar e56d94: OUTPUT«(FuckThe[OomKiller])␤»
masak Perl 6 can be as strongly typed/worded as you want. :) 15:20
ChoHag masak: Not even that. I'm a programmer of any language and administrator of any system. My vocabulary is 33% expletives.
hoelzro haha
masak ChoHag: I was very careful in my wording above so you wouldn't immediately peg me as some kind of puritan. but it is unusual in here. 15:21
my observation was more descriptive than prescriptive.
ChoHag I don't give a shit :) 15:22
masak ;)
ChoHag Nobody has complained, or even come close.
masak *nod*
ChoHag They did in some other channels, so I left.
So if y'all decide you don't want me ... 15:23
masak fwiw, I can't recall that *ever* happening in here.
ChoHag Perl is too pragmatic.
masak (the channel saying "we don't want you")
ChoHag Life can't be fixed, you just have to roll with it.
masak agreed. 15:24
and strong language is language, and Perl is all about language.
masak .oO( the race to publish the FUCK phaser in the ecosystem ) 15:25
FROGGS__ >.<
psch "use Vulgar;" - because what perl5 had as "use English" is semi-backed-in by now 15:25
*baked
FUCK { } could be UNDO there i guess? :) 15:26
ChoHag FUCKIT 15:26
Or should FUCKIT be a try { ... } CATCH { True; }? 15:27
FROGGS__ I could imagine having a 'damn' token that does a 'exit 1'
but that would be just another BF then :o)
or was it LOLCODE?
masak since CPAN has Lingua::Perligata, I wouldn't mind Perl 6 having a mode for programming in Girl Genius jägerkin language. :) 15:28
masak .oO( DEM! ) 15:28
hoelzro in Perl 5, one can assign to $? in an END block to alter a program's exit status. Is there an analogous construct in Perl 6? 16:15
masak hoelzro: `exit($status);` 16:16
masak hm, `END exit(5)` hangs locally. 16:17
m: END exit(5)
hoelzro masak: that's what I tried, and also discovered =)
camelia rakudo-moar e56d94: OUTPUT«(timeout)»
masak r: END exit(5)
camelia rakudo-{parrot,moar} e56d94: OUTPUT«(timeout)» 16:18
..rakudo-jvm e56d94: OUTPUT«(timeout)Unhandled exception: java.lang.StackOverflowError␤ in (/tmp/tmpfile:1)␤ in (/tmp/tmpfile:1)␤ in infix:<!=> (gen/jvm/CORE.setting:692)␤ in infix:<!=> (gen/jvm/CORE.setting:7677)␤ in isNaN (gen/jvm/CORE.setting:7600)␤ in ACCEPTS (…»
masak submits rakudobug
hoelzro r: END say(1); END say (2) 16:27
camelia rakudo-{parrot,jvm,moar} e56d94: OUTPUT«2␤1␤» 16:27
hoelzro r: END die(1); END say (2)
camelia rakudo-jvm e56d94: OUTPUT«2␤===SORRY!===␤1␤2␤Unhandled exception: 1␤ in print_exception (gen/jvm/CORE.setting:11488)␤ in <anon> (gen/jvm/CORE.setting:11529)␤ in (gen/jvm/main.nqp:48)␤ in (gen/jvm/main.nqp)␤ in throw (gen/jvm/CORE.setting:11349)␤ in die (g…»
..rakudo-moar e56d94: OUTPUT«2␤===SORRY!===␤1␤2␤Unhandled exception: 1␤ at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:print_exception:4294967295)␤ from src/gen/m-CORE.setting:11588 (/home/p6eval/rakudo-inst-2/languages/perl6/run…»
..rakudo-parrot e56d94: OUTPUT«2␤===SORRY!===␤1␤2␤1␤current instr.: 'print_exception' pc 139840 (src/gen/p-CORE.setting.pir:59520) (gen/parrot/CORE.setting:11483)␤called from Sub 'throw' pc 428662 (src/gen/p-CORE.setting.pir:178677) (gen/parrot/CORE.setting:11339)␤called…»
hoelzro r: END say(1); END die(2)
camelia rakudo-moar e56d94: OUTPUT«===SORRY!===␤2␤Unhandled exception: 2␤ at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:print_exception:4294967295)␤ from src/gen/m-CORE.setting:11588 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/COR…»
..rakudo-parrot e56d94: OUTPUT«===SORRY!===␤2␤2␤current instr.: 'print_exception' pc 139840 (src/gen/p-CORE.setting.pir:59520) (gen/parrot/CORE.setting:11483)␤called from Sub 'throw' pc 428662 (src/gen/p-CORE.setting.pir:178677) (gen/parrot/CORE.setting:11339)␤called from Su…»
..rakudo-jvm e56d94: OUTPUT«===SORRY!===␤2␤Unhandled exception: 2␤ in print_exception (gen/jvm/CORE.setting:11488)␤ in <anon> (gen/jvm/CORE.setting:11529)␤ in (gen/jvm/main.nqp:48)␤ in (gen/jvm/main.nqp)␤ in throw (gen/jvm/CORE.setting:11349)␤ in die (gen/jvm/C…»
hoelzro hmm 16:28
masak in Perl 5, all END blocks run.
though Perl 5 says "END failed--call queue aborted", and I don't really know what that means since it keeps running END blocks. 16:29
food &
PerlJam masak: did you perlbug it? ;)
lizmat r: my @a := nqp::hllize(nqp::getcurhllsym("@END_PHASERS")); say @a.WHAT 16:54
camelia rakudo-{parrot,jvm,moar} e56d94: OUTPUT«(Parcel)␤»
lizmat If this would be an Array, we could unshift from it in sub exit() 16:55
dalek rl6-roast-data: b0f122b | coke++ | / (5 files):
today (automated commit)
16:56
[Coke] rakudo.parrot clean; failures in moar & jvm.
lizmat r: my @a := nqp::hllize(nqp::getcurhllsym("@END_PHASERS")); while @a.shift -> $end { $end() } 16:58
camelia rakudo-{parrot,jvm,moar} e56d94: OUTPUT«No such method 'shift' for invocant of type 'Parcel'␤ in block at /tmp/tmpfile:1␤␤»
lizmat FWIW, I think it is useful to be able to push/unshift blocks to the END_PHASERS programmatically 16:59
hoelzro lizmat: I had the same thought 17:08
[Coke] FROGGS__: on RT #122341 - why do you have \x85 and \x{2028} ? (wondering why we need the braces on the second one.)
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122341
[Coke] (for the parrot fix) 17:09
vendethiel lizmat: what's the use case ?
lizmat being able to load a module that writes out statistics by adding an END block to be executed after all other END blocks have finished 17:10
in perl 5 I've used this to be able to run code *after* global destruction (by forking in the END block :-) 17:11
loading a module with an END block would make it execute first, rather than last 17:12
vendethiel looks like perl stuff alright :p
hoelzro lizmat: do you know what the steps would be to make END_PHASERS not a Parcel? 17:16
FROGGS__ [Coke]: \x{2028} was just an attempt to fix the bug, becaue I thought \x might only gobble perhaps two digits...
lizmat hoelzro: no, that's why I posted it here, in the hopes that FROGGS__ or jnthn or moritz would have some insight 17:17
FROGGS__ m: my @a = nqp::hllize(nqp::getcurhllsym("@END_PHASERS")); say @a.WHAT 17:18
camelia rakudo-moar e56d94: OUTPUT«(Array)␤»
lizmat FROGGS__: but makes a copy: calling exit() again in an END block would then get the same original list 17:19
which is what the bug is that masak rakudobugged 17:20
breakfast&
FROGGS__ m: say nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu).WHAT # WHAT about that? 17:21
camelia rakudo-moar e56d94: OUTPUT«(Array)␤»
masak PerlJam: not at all convinced it's a Perl 5 bug. I just don't understand the warning/error message. 17:29
PerlJam: but I did submit the rakudobug.
psch m: say nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu).WHAT
camelia rakudo-moar e56d94: OUTPUT«(Array)␤»
psch ererr
m: my @a := nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu).WHAT; @a.push: { say "foo" } 17:30
camelia rakudo-moar e56d94: OUTPUT«Cannot bind attributes in a type object␤ in method STORE at src/gen/m-CORE.setting:8865␤ in method push at src/gen/m-CORE.setting:1586␤ in block at /tmp/n5jqRBam4Q:1␤␤»
FROGGS__ psch: remove the .WHAT
psch FROGGS__: the 'Mu' should be something else to push to it?
m: my @a := nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu); @a.push: { say "foo" }
camelia ( no output )
psch duhs :)
FROGGS__ psch: the last argument is whether it flattens or not, its a flag 17:31
psch FROGGS__: the REPL gives me "Cannot call method 'push' on a null object" 17:32
is that a REPL thing? no @END_PHASERS?
FROGGS__ m: my @a := nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu); @a.push: { say "foo" }; say @a
camelia rakudo-moar e56d94: OUTPUT«-> () { #`(Block|53006288) ... } -> ($_? is parcel) { #`(Block|140060623053864) ... }␤»
[Coke] FROGGS++
FROGGS__ m: my @a := nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu); @a.push: { say "foo" }; say +@a 17:33
camelia rakudo-moar e56d94: OUTPUT«2␤»
FROGGS__ m: my @a := nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu); say +@a
camelia rakudo-moar e56d94: OUTPUT«1␤»
FROGGS__ it seems to work...
psch: I guess that's a repl bug
there are quite a few repl bugs actually :o(
psch fwiw, a file that only binds @END_PHASERS and pushes { say "foo" } into it doesn't say "foo" either 17:34
that's probably not the same issue as the REPL not creating an object properly
FROGGS m: my @a := nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu); @a.push: { say "foo" }; exit 0 17:35
camelia ( no output )
FROGGS m: my @a := nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu); @a.push: -> { say "foo" }; exit 0
camelia ( no output )
psch m: my @a := nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu); END { say "foo" }; say +@a; 17:37
camelia rakudo-moar e56d94: OUTPUT«2␤»
psch m: my @a := nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu); END { say "foo" }; say +@a; exit 0
camelia rakudo-moar e56d94: OUTPUT«2␤»
FROGGS m: nqp::bindcurhllsym('@END_PHASERS', -> { say "foo" }); exit 0
camelia rakudo-moar e56d94: OUTPUT«foo␤»
FROGGS perhaps we have to rebind it?
FROGGS m: use Perl6::World:from<NQP>; nqp::bindcurhllsym('@END_PHASERS', nqp::gethllsym('nqp', 'nqplist')({ say "foo" })) 17:39
camelia rakudo-moar e56d94: OUTPUT«foo␤»
FROGGS we can also mix in a role that states that a phaser was already run 17:42
timotimo m: END (state $) = exit(4); say "foobar"; END say "goodbye"; 17:47
camelia rakudo-moar e56d94: OUTPUT«===SORRY!=== Error while compiling /tmp/CzVlhrOtEV␤Unsupported use of $) variable; in Perl 6 please use $*EGID␤at /tmp/CzVlhrOtEV:1␤------> END (state $)⏏ = exit(4); say "foobar"; END say "goodb␤»
timotimo m: END (state $ ) = exit(4); say "foobar"; END say "goodbye";
camelia rakudo-moar e56d94: OUTPUT«(timeout)foobar␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye␤goodbye…»
psch m: use Perl6::World:from<NQP>; my @a := nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu); END { say "foo" }; say +@a; @a[0] -> { say "bar" }; nqp::bindcurhllsym('@END_PHASERS', nqp::gethllsym('nqp', 'nqplist')(@a)); exit 0
camelia rakudo-moar e56d94: OUTPUT«===SORRY!=== Error while compiling /tmp/bKGFROXxTf␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?)␤at /tmp/bKGFROXxTf:1␤------> Mu); END { say "foo" }; say +@a; @a[0] ⏏…» 17:48
psch m: use Perl6::World:from<NQP>; my @a := nqp::p6list(nqp::getcurhllsym("@END_PHASERS"), Array, Mu); END { say "foo" }; say +@a; @a[0] = -> { say "bar" }; nqp::bindcurhllsym('@END_PHASERS', nqp::gethllsym('nqp', 'nqplist')(@a)); exit 0
camelia rakudo-moar e56d94: OUTPUT«2␤bar␤»
psch set phasers to uhm 17:49
or maybe huh
in any case, i don't know if that should be easier 17:50
lizmat is testing a patch to fix exit within exit or END
psch or less fiddly, rather
i'm leaning towards "probably not" 17:51
lizmat $ 6 'END { exit(42) }'
$ echo $?
42
hoelzro lizmat++ 17:52
lizmat: what about die()? 17:53
do (should?) the other phasers get run?
lizmat there were two places where the END_PHASERS we're being run: on in Exception, and one in sub exit() 17:54
I've covered those two places 17:55
FROGGS lizmat: MAIN also runs these phasers
hoelzro lizmat: I mean what if an END block die()s
dalek kudo/nom: 043cc03 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Fix for #122355
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122355
FROGGS # Run any END blocks before exiting.
for nqp::gethllsym('perl6', '@END_PHASERS') {
$result := $_();
lizmat I've placed the END block handling in a global sub called &THE_END 17:56
this is run in two places: an END block is removed before it is being run
so any END block will only run once
whichever way you decide to die / exit in an END block 17:57
hoelzro lizmat: wouldn't die()ing from an END block cause a later running phaser to not run at all?
lizmat when an END block is being run, all other phasers have already run 17:58
it's the last one (hence the name: END :-)
hoelzro sorry, I mean to say another END block
ex. if I do END say(1); END die(2); END say(3)
psch m: END say 1; END die 2; END say 3 17:59
camelia rakudo-moar e56d94: OUTPUT«3␤===SORRY!===␤2␤3␤Unhandled exception: 2␤ at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:print_exception:4294967295)␤ from src/gen/m-CORE.setting:11588 (/home/p6eval/rakudo-inst-2/languages/perl6/run…»
hoelzro I'm wondering if the END block with 'say 1' should run or not
lizmat r: END die(2) 18:00
camelia rakudo-moar e56d94: OUTPUT«===SORRY!===␤2␤Unhandled exception: 2␤ at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:print_exception:4294967295)␤ from src/gen/m-CORE.setting:11588 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/COR…»
..rakudo-jvm e56d94: OUTPUT«===SORRY!===␤2␤Unhandled exception: 2␤ in print_exception (gen/jvm/CORE.setting:11488)␤ in <anon> (gen/jvm/CORE.setting:11529)␤ in (gen/jvm/main.nqp:48)␤ in (gen/jvm/main.nqp)␤ in throw (gen/jvm/CORE.setting:11349)␤ in die (gen/jvm/C…»
..rakudo-parrot e56d94: OUTPUT«===SORRY!===␤2␤2␤current instr.: 'print_exception' pc 139840 (src/gen/p-CORE.setting.pir:59520) (gen/parrot/CORE.setting:11483)␤called from Sub 'throw' pc 428662 (src/gen/p-CORE.setting.pir:178677) (gen/parrot/CORE.setting:11339)␤called from Su…»
lizmat seems we have a problem with die in an END block anyways :-( 18:01
m: END exit(42)
timotimo can we do things like next, last, redo in END blocks? :) 18:02
camelia rakudo-moar e56d94: OUTPUT«(timeout)»
timotimo as they are probably run by a loop a dynamic frame outside
lizmat hoelzro: my patch only fixes 'END exit 42' 18:03
m: END next 18:06
camelia rakudo-moar e56d94: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: Null, cs = 0)␤Unhandled exception: Cannot invoke this object (REPR: Null, cs = 0)␤ at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:print_exception:4294967295)␤ …»
lizmat m: END next; 1
camelia rakudo-moar e56d94: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: Null, cs = 0)␤Unhandled exception: Cannot invoke this object (REPR: Null, cs = 0)␤ at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:print_exception:4294967295)␤ …»
hoelzro lizmat: good for now =) 18:07
lizmat $ 6 'END say(1); END exit(42); END say(3)' # still something spooky going on 18:09
3
hoelzro interesting 18:20
lizmat looks like somewhere in the bowels, something is executing the END phasers before THE_END() starts... 18:34
need to go now, errands and oscon& 18:35
hoelzro lizmat: have fun! 18:38
vendethiel masak: a take on assert github.com/manastech/crystal/issue...t-49621834 19:05
masak vendethiel: nice. 19:14
vendethiel: .stringify is what I fixed the other day -- spelled .Str in Perl 6.
vendethiel masak++: yeah, I saw it =). Makes macros much more useful
masak vendethiel: I want us to have .inspect too -- thinking of calling it .eval, because I think that's what it does, only from an AST, not from a Str. 19:15
oh, I guess it's .EVAL these days :(
vendethiel you must mean EVIL
masak I'm mostly weary of all the voodoo-mystical fearmongering around EVAL. 19:16
then again, I've grown mostly weary of Crockford's insistence on staying off JavaScript's "bad parts", too.
ventica does JavaScript have any good parts?? 19:17
masak oh, it does.
but it's a much thinner book ;)
vendethiel is mostly weary of crockford
that's one bad guy I don't want to be associated with, eh.
Well, when I get asked "when is eval a good solution", I usually answer "if you're asking, it's not one." 19:18
masak *nod*
masak Crockford is very hit-and-miss. I consider json.org/ to be an obvious hit, and dec64.com/ to be a (less obvious) miss. 19:19
vendethiel masak: my main gripe with him is that he thinks he's so superior he can insult anybody and get away with it. Usually doesn't go well with me :-) 19:22
well, not saying he didn't do anything correct though. Json is cool, indeed.
masak yes, his public image has a hefty mix of superiority mixed into it.
I can endure it as long as he's right about stuff ;) 19:23
masak but some of his pet peeves are... weird. like his distaste for ++ and -- 19:23
vendethiel I can't. I want people to stop acting like jerks just because (they think) they're right. It also happens soooo effin' muuuuch in the FP community 19:24
and it's really limitating it, up to the point where, when somebody links to scalaz, people answer "yea but these guys are morons". Too bad
masak :/
vendethiel (not picking on scalaz' guys especially, it's just one example that I see happen very often)
and they're not wrong. They truly are bigots, they insult other people, and they don't use to give ways for others to improve. Which doesn't mean what they're doing isn't great -- it is. But I really fix you need to fix your behavior 19:25
"I'll say it again, one more time: Respect is not, never was, never will, an option."
(fp joke not intended, btw :P)
vendethiel Well, whatever. We'll see how it goes. WRT macros, they're still a tiny bit limitated ATM in perl 6 19:27
I was trying to do one thing last time to no avail, don't know where I've put it. Something from racket or whatnot 19:28
.oO( I'll have one masak, thanks. I need to work on some macros )
19:29
dalek ast: 512b47f | (David Warring [email@hidden.address] | integration/advent2009-day23.t:
reduced scope of rakudo fudge. added tests
19:55
[Coke] note that fudges don't have to start the line. (I've seen both styles in roast) 19:56
dwarring ok 19:58
dalek ast: dc1d29b | (David Warring [email@hidden.address] | integration/advent2009-day23.t:
indent fudge directive
20:04
psch github.com/rakudo/rakudo/pull/293 # RT #122349 20:05
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122349
psch spectest looks cleans from here
clean* 20:06
(i've mistakenly chased that down to HLL::Grammar and back...)
dwarring [Coke]: you can add intetegration/advent2009-day24.t to spectest.data 20:07
dwarring it now contains tests 20:07
masak dwarring++ 20:09
dalek kudo/nom: d940f0c | (Pepe Schwarz)++ | src/Perl6/Grammar.nqp:
Don't parse <sigil> <rxstopper> as a variable in the search pattern for s///.

This fixes RT #122349.
20:17
kudo/nom: e40ffeb | (Tobias Leich)++ | src/Perl6/Grammar.nqp:
Merge pull request #293 from peschwa/rt122349

Don't parse <sigil> <rxstopper> as a variable in the search pattern for s///.
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122349
psch FROGGS: you want to do the tests this time? :) 20:21
FROGGS psch: do I have to? :o) 20:23
Ven so, do I explain scoping or modules first :D 20:32
Ven starts with scoping, right after subs
hoelzro I've noticed in my S26 work that Test.pm is rather rudimentary. Is that to keep a core test library small, or due to lack of time to make it better? 20:34
dalek ast: 8a43069 | (Pepe Schwarz)++ | S05-substitution/subst.t:
Add test for RT #122349
20:35
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122349
Ven m: { our sub a { 5 } }; a 20:38
camelia rakudo-moar 043cc0: OUTPUT«===SORRY!=== Error while compiling /tmp/3g3F86Hw4a␤Undeclared routine:␤ a used at line 1␤␤»
Ven m: class A { sub foo { 5 } }; say A::foo; # our sub is default, it is 20:39
camelia rakudo-moar 043cc0: OUTPUT«Could not find symbol '&foo'␤ in method <anon> at src/gen/m-CORE.setting:12876␤ in any find_method_fallback at src/gen/m-Metamodel.nqp:2604␤ in any find_method at src/gen/m-Metamodel.nqp:934␤ in block at /tmp/DNHxAfpyJt:1␤␤»
Ven m: class A { our sub a { 5 } } #???
camelia ( no output )
Ven I'm getting "cannot find method is_composed" locally
sergot night o/ 20:40
FROGGS Ven: in the repl?
Ven FROGGS: yep
FROGGS Ven: seems to be a repl bug 20:41
Ven where are declarators described in the specs ? 20:41
FROGGS I do not use the repl, I use camelia...
I dunno 20:42
Ven s03
TimToady coredump on the 6th line: gist.github.com/anonymous/0873fd7dd630a9deb6f2 20:43
TimToady (attempting to find the 6th line of output, that is) 20:44
(on moarvm, works on jvm) 20:45
FROGGS ohh, again a coredump that is related to flip... 20:46
TimToady yes, it does appear to be the flip 20:46
Ven "Perl 6 has another scoping ..." <- what is the term ? variant ? mode ? 20:47
TimToady has another kind of scope?
Ven that works, thanks
I was going to write "from lisp", but I think lexical scope is also from lisp ...
ab5tract hey all 20:49
FROGGS TimToady: yeah, an object in MoarVM is just garbage
hi ab5tract
ab5tract i've just re-compiled rakudo after a while
FROGGS TimToady: that is a nice script to debug that flip problem
ab5tract pretty cool, compiling perl to multiple backends
:) 20:50
FROGGS :o)
yeah...
ab5tract and moarvm startup is quick!
FROGGS and it runs moar and moar quickly
TimToady it's about 4 times faster the current entry for rosettacode.org/wiki/Find_palindrom...ses#Perl_6
ab5tract indeed, the Thread Apocalypse is upon us... 20:51
must feel pretty good :)
FROGGS it's also getting a JIT this summer, besides other awesome optimizations
TimToady doesn't feel all that good about the thread apocalypse since his firefox is chewing up more than 100% of a cpu just sitting there :/
FROGGS TimToady: but it looks cute while sitting there, really 20:52
FROGGS I have like 50+ tabs open, and many pages reload theirself 20:53
ab5tract maybe it's just having trouble keeping it's promises? 20:54
brrt .tell jnthn is this normal? i suspect it's part of inlining: gist.github.com/bdw/e5b606499aa6435f7e72 20:55
yoleaux brrt: I'll pass your message to jnthn.
ab5tract more precisely though, i mean to congratulate everyone here on perl 6 (and anyone else who deserves it who isn't). i've been lurking around the project since forever, and it's really great to see the foundations being laid on synopsis 17 21:02
TimToady has now updated the entry, since it does work under jvm, if not under moarvm 21:03
ab5tract if/when you are ever in Amsterdam, i owe you a %favorite<drink> 21:04
masak m: say ($_ ** 17 + 9) gcd (($_ + 1) ** 17 + 9) for 0..* 21:05
camelia rakudo-moar 043cc0: OUTPUT«(timeout)1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1…» 21:06
masak just learned that that formula keeps repeating 1 until $_ == 8424432925592889329288197322308900672459420460792433
(which is kind of hilarious if you think about it)
math.stackexchange.com/questions/11...ually-fail
TimToady you've overflowed one of the universes registers 21:07
masak clearly.
TimToady *universe's
either that, or someone flubbed the powers of 17 tables somewhere
masak proceeds to discover that tchrist++ writes great answers on english.stackexchange.com, too 21:12
Ven TimToady: we were wondering yesterday ... Why both package and module ?
(somebody suggested for perl 5 similarity) 21:13
masak
Ven the six model is class, role, module, ? 21:14
TimToady package is just a global(ish) location for variables that can be used by other things like modules
masak TimToady: we also talked about indirect method calls, and whether you had somehow given up on them as a feature.
TimToady modules imply exportation, packages don't 21:15
I haven't given up on them
std: print $*OUT: 1,2,3
camelia std 0f2049c: OUTPUT«ok 00:01 125m␤»
masak \o/
and /o\
masak :P 21:15
Ven TimToady: modules imply exportation ? 21:16
s10 is pretty vague about this, tbh
TimToady S10 is not about modules :P 21:17
Ven true, it's about packages :)
so, S11 is about modules, and s10 about packages, right ?
TimToady modules can behave as packages, just as classes can behave as modules 21:18
Ven I got to go for now, but I'll love to know where I have to look for in the syns to find more about that :)
TimToady but there could be other things that have packages that are neither modules nor classes 21:19
maybe roles fall in that category
dalek kudo/nom: 333bce4 | coke++ | t/spectest.data:
run this test file

  dwarring++
TimToady p6: role Foo { our $x = 42; }; say Foo::<$x> 21:20
Ven TimToady: so packages are the "lowest denominator"?
TimToady yeah
camelia rakudo-jvm 043cc0: OUTPUT«(timeout)»
..rakudo-{parrot,moar} 043cc0, niecza v24-109-g48a8de3: OUTPUT«(Any)␤»
Ven if they're indeed useful, it seems pretty sad to me you're not allowed to `package Foo;`.
TimToady hmm, arguably our should initialize at INIT time regardless of the role genericity 21:20
Ven well, I still don't really get what's the diff. between package VS module (semantically)
FROGGS TimToady: there is already an RT ticket for that 21:21
TimToady okay
masak m: package Foo; 21:43
camelia rakudo-moar 043cc0: OUTPUT«===SORRY!=== Error while compiling /tmp/biRqo37e8E␤This appears to be Perl 5 code. If you intended it to be Perl 6 code, please use a Perl 6 style package block like "package Foo { ... }", or "module Foo; ...".␤at /tmp/biRqo37e8E:1␤…»
masak m: say 42; package Foo;
camelia rakudo-moar 043cc0: OUTPUT«===SORRY!=== Error while compiling /tmp/A_kRDyuDL8␤This appears to be Perl 5 code. If you intended it to be Perl 6 code, please use a Perl 6 style package block like "package Foo { ... }", or "module Foo; ...".␤at /tmp/A_kRDyuDL8:1␤…»
TimToady std: say 42; package Foo; 21:44
camelia std 0f2049c: OUTPUT«===SORRY!===␤Semicolon form of package definition indicates a Perl 5 module; unfortunately,␤ STD doesn't know how to parse Perl 5 code yet at /tmp/M9VbrIM5iQ line 1:␤------> say 42; package Foo⏏;␤ expecting any o…»
TimToady hmm
that seems like a semi-obsolescent message 21:45
masak semi-submits rakudobug
TimToady of course, that whole heuristic will break when P5 adds module or class keywords...
masak oh, or is STD the obsolescent one?
TimToady well, v5 is based on STD's STD_P5 21:46
so on some level, STD does know how ot parse P5... 21:47
but I'm sure it's much more rudimentary than v5 these days
TimToady well, STD is getting pretty close to obsolete it's own self these days 21:48
masak in some sense, that's cause for rejoicing.
TimToady indeed 21:49
masak Perl 6 implementations are now so far advanced that the cheating employed by STD doesn't inform things as much anymore.
TimToady except where they cheat wrong :)
masak .oO( err, and err, and err; but less, and less, and less ) 21:51
TimToady alas, that strategy does not preclude hitting local minima
masak nor ever converging on a zero error rate. 21:52
TimToady well, even knuth had to cap the size of his payouts :)
masak even "local minima" presupposes that tradeoffs always have a right choice ;) 21:53
japhb
.oO( local saddle point )
21:54
TimToady just ask the dinosaurs
japhb Become chickens?
masak clearly the dinosaurs didn't invest enough effort in asteroid defense 21:55
TimToady the only way to succeed is to provide a large enough gene pool that most of the ways to fail != all the ways to fail
japhb wonders which bird genera are closest to their "classic dinosaur" roots
.oO( Dinosaur Classic (tm), now with Real Sugar! )
21:56
TimToady some of the dinosaurs survived the changing fitness function
masak japhb: the Dodo. oops. :P
japhb masak: :-D
TimToady a a book I'm reading (or "reading", since it's on CDs to rest my eyes), they have pet regenerated dodos. 21:57
not to be confused with regenerated pet dodos
masak sounds like a nice book. 21:58
japhb suddenly realizes that after asking his current music service to play Up On Cripple Creek, it has now decided to play all songs in its library with the words "Cripple Creek" in the title. It's a longer list than I expected.
masak japhb: so one might rightfully say you're "up Cripple Creek with no paddle" :P 21:59
masak ponders whether his doubtful mastery of English idiom is funny, or merely confusing 22:00
TimToady
.oO(Surely being down the creek without a paddle would be a bigger problem...)
22:01
masak for some reason in that idiom, people are always up the creek. 22:02
japhb masak: Well, you got half a smirk from use of the idiom at all, but then I got confused as I tried to figure out what the paddle represented. :-) 22:03
TimToady just don't get sent up the river
(to Sing Sing, presumably) 22:04
masak better than being sold down the river.
japhb On of the idiom sources I came across said that being sent up the river was part of the start of the idiom, based on a naval hospital where the patients were kept as prisoners so as not to desert while being treated. 22:06
*One of
[Coke] wait, are you streaming these songs? 22:07
TimToady nap &
masak [Coke]: :P
japhb [Coke]: Are you talking to me? 22:14
And, FWIW: :-P 22:15
[Coke] c'mon, that was GOLD!
:) 22:16
carlin on OpenBSD the slurp() on a directory test in S32-io/slurp.t doesn't pass, because slurp() on a directory doesn't die on OpenBSD... for some reason
psch is #82108 actually decided as "Str but Bool is ok for s///"? because that's what i've implemented now. i think i should've asked for clarification first... :) 22:17
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=82108
masak carlin: please submit a rakudobug with what you just said.
psch i don't think a similar approach as for tr/// makes much sense here, unless a "BoolyStr" class makes sense, which i don't think it does
carlin masak: okie dokie
[Coke] carlin: please include which VM you're using (in case it's relevant) 22:18
timotimo o/ 22:22
glad to hear TimToady is well enough to see core dumps again
masak 'night, #perl6 22:26
psch night masak, hi timotimo o/ 22:28
timotimo hi psch 22:40
carlin m: say $*PERL.DISTROnames 22:43
camelia rakudo-moar 333bce: OUTPUT«macosx linux mswin32␤»
carlin BSD users are people too! 22:43
japhb carlin: Sometimes I wonder if "Perl 6 is production ready" really means "Rakudo contains all the hacks and workarounds that perl5 needs to run on just about anything with a >=32-bit CPU" to some people. ;-) 23:00
japhb remembers the old TPJ cover with Configure running on a typewriter ... 23:01
timotimo m) 23:02
japhb Found it: www.flickr.com/photos/bjepson/139075091/ 23:04
timotimo is that a regular typewriter or an ancient-looking teletype? 23:07
japhb A classic Underwood typewriter. 23:08
perl5 was (justifiably) famous for being able to compile on stuff you would never believe could possibly support it. 23:09
And Jon Orwant has a good sense of humor. :-)
timotimo ah, ok
back then it wasn't toasters that are the canonical example? :) 23:10
japhb I remember after having gone through some of the old ports, being actually surprised that someone hadn't ported it to a 16-bit CPU just for the glory of the hack. It had been ported to DOS, though. 23:11
japhb And Amiga, and ... 23:11