»ö« 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 diakopter on 14 April 2013.
00:18 berekuk left
sorear adu: sure. index and rindex are established names from V6 UNIX string.h and perl 5 00:29
00:30 kurahaupo left 00:37 crab2313 left 01:04 sarella joined 01:07 kurahaupo joined 01:36 FROGGS_ joined
adu sorear: I see 02:02
02:25 xinming joined 02:38 orafu joined 02:51 kurahaupo left 02:59 thou joined 03:03 sarella left 03:29 kurahaupo joined 03:30 crab2313 joined 03:59 thou left 04:08 mikemol joined 04:11 mikemol left 04:13 xinming left 04:14 xinming joined, mikemol joined 04:19 xinming left 04:20 xinming joined 04:24 Psyche^ joined 04:25 xinming left 04:27 xinming joined 04:28 Psyche^ is now known as Patterner 04:32 xinming left 04:33 xinming joined 04:44 xinming left 04:46 xinming joined 04:51 xinming left, xinming joined 04:53 crab2313 left 04:58 xinming left 05:03 xinming joined 05:09 xinming left 05:10 xinming joined 05:11 rindolf joined 05:30 rindolf left, rindolf joined 05:31 plobsing joined
dalek kudo/nom: abcbc47 | pmichaud++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to get QRPA serialization capabilities.
05:42
05:42 rindolf left, rindolf joined 05:44 plobsing left 05:48 rindolf left, rindolf joined 05:49 sqirrel joined 05:50 lizmat joined 05:53 woolfy joined 06:00 rindolf left 06:01 rindolf joined 06:04 fhelmberger joined 06:05 ingy joined 06:10 SamuraiJack joined 06:16 rindolf left 06:17 rindolf joined 06:19 FROGGS_ left 06:22 frdmn joined 06:28 kurahaupo left 06:32 FROGGS_ joined
dalek kudo/nom: 08b6403 | pmichaud++ | src/ (2 files):
Speed up repeated shifts of large lists/arrays by 70%+ .

This commit switches to using QRPAs for most List $!items and ListIter $!rest attributes, and slightly changes the algorithm to more eagerly move "safe" values from a ListIter's $!rest array into its "parent" List.
As a result, repeated shifts like
   @a.shift while @a;
now run significantly faster than previously -- on my system, a 50,000 element array is processed by the above in 2.5 seconds instead of 9.0 seconds (72% improvement).
More improvements are coming; this patch just gets a couple of the current big bottlenecks out of the way.
06:34
06:41 rindolf left
FROGGS_ pmichaud: are the branches nqp/qrpa_experiment and github.com/timo/rakudo/qrpa_experiment worth anything? 06:42
06:42 rindolf joined
FROGGS_ we have seen almost no speed improvement though when running the spectest suite 06:43
(but it didn't get worse though)
06:48 foop joined 06:57 rindolf left 06:58 rindolf joined
pmichaud FROGGS_: I suspect that the commits jnthn and I made alleviate the need for the other branches. 07:04
also, I don't know that the qrpa improvements will significantly speed up the spectests.
afaik, the spectests don't contain a lot of large lists.
for smaller lists, the differences between rpa and qrpa aren't as significant. 07:05
07:06 lizmat left, woolfy left
FROGGS_ k 07:08
pmichaud I probably should've checked to see the impact of the above commits on the spectests, though. I'm also certain they didn't get slower, but they could've gotten a little faster. 07:09
07:10 baest joined
FROGGS_ I guess 'stage parse' is as slow as usual too? 07:12
07:12 FROGGS_ is now known as FROGGS
pmichaud yeah, speeding that up needs some regex engine improvements. 07:13
07:13 rindolf left
pmichaud or some grammar improvements. 07:13
07:14 rindolf joined, lizmat joined
pmichaud that's another place where we know of some possible improvements but just haven't had the right tuits to implement them. 07:14
07:15 woolfy joined
pmichaud anyway, time for sleep here -- bbl 07:16
FROGGS gnight pmichaud
pmichaud: btw: if you could write these ideas down... :o) 07:17
nwc10 good wee-small-hours-of-the-am, Pm 07:21
oh, goodnight Pm
labster good "just barely AM", nwc10 07:23
07:24 arnsholt joined
sorear o/ 07:27
FROGGS hi you all :o) 07:28
moritz \o 07:31
FROGGS o/ 07:33
07:44 foop left 07:48 rindolf left, rindolf joined 07:50 domidumont joined
FROGGS r: say $~MAIN 07:52
camelia rakudo 08b640: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name␤at /tmp/uVgQSJJTzi:1␤------> say $⏏~MAIN␤ expecting any of:␤ argument list␤ prefix or term␤ prefix or meta-prefix␤»
07:55 domidumont left 07:56 domidumont joined 07:58 woolfy left, lizmat left, tgt joined 07:59 SamuraiJack left 08:01 lizmat joined
labster What's the difference between "my Type sub {...}", "my sub (--> Type) {...}", "my sub returns Type {...}", and "my sub of Type { ... }"? 08:03
08:03 berekuk joined 08:04 woolfy joined
lizmat morning #perl6 08:04
FROGGS I hope there is no difference
morning lizmat
lizmat labster: not a lot, if anything?
08:05 tgt left
labster The first two are introduced in S06, the last two in S02 08:06
08:07 kresike joined
FROGGS I think it is just like providing something for everyones taste 08:07
kresike hello all you happy perl6 people
FROGGS hi kresike
kresike FROGGS, o/
labster TIMTOWTDI, I guess.
FROGGS right
r: my $s = my sub of Int { 42 } 08:08
camelia rakudo 08b640: OUTPUT«===SORRY!===␤Missing block␤at /tmp/nms0nKJHSf:1␤------> my $s = my sub of ⏏Int { 42 }␤ expecting any of:␤ scoped declarator␤ new name to be defined␤»
FROGGS r: my $s = my sub returns Int { 42 }
camelia rakudo 08b640: OUTPUT«===SORRY!===␤Missing block␤at /tmp/JprVMRdn35:1␤------> my $s = my sub returns ⏏Int { 42 }␤ expecting any of:␤ scoped declarator␤ new name to be defined␤»
labster r: my $s = my sub name returns Int { 42 }
camelia rakudo 08b640: ( no output )
FROGGS ahh, yeah 08:09
that clashes a bit
r: my $s = my sub name of Int { 42 }
camelia rakudo 08b640: ( no output )
FROGGS okay, I knew the first three are working, but wasn't sure about the last one
08:14 domidumont left 08:15 domidumont joined, lizmat left 08:16 woolfy left
pmichaud perlgeek.de is down? 08:17
FROGGS since friday or so
moritz pmichaud: yes, the hardware is dead-ish :(
labster R.I.P., perlgeek.de server. 08:18
08:18 lizmat joined
pmichaud eek! so we have no logs? 08:18
did they move somewhere? 08:19
moritz colabti.org/irclogger/irclogger_log...2013-04-29 # not mine
08:19 woolfy joined
FROGGS ohh cool 08:20
moritz they even "stole" my CSS (with permission)
pmichaud hardware dead-ish ===> logs from perlgeek.de have been lost?
as in storage unit cratered?
moritz pmichaud: the storage is probably OK, and I have nightly backups of the database 08:22
08:22 Targen joined
lizmat moritz: if there is anything that Dijkmat could do, please let me know 08:23
moritz if it doesn't come up in the next few days, I'll have to look for a replacement VM
sorear can it be rehosted? is the ilogger code lost?
FROGGS moritz: can you put that url in the topic?
moritz sorear: no code lost, and little data (at most a day of logs)
pmichaud I'd be in favor of finding/dedicating resources (e.g. money) to restoring that service. 08:24
FROGGS well, this data can be recovered...
sorear moritz: \o/
pmichaud I use the logs... like, all of the time.
FROGGS me too
08:24 ChanServ sets mode: +o moritz
moritz »ö« 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! ! temporary logs at colabti.org/irclogger/irclogger_log/perl6
FROGGS we have a pretty useful toolchain here, seems like we are used to it now :o) 08:24
moritz I'll investigate how much a separate VM costs 08:25
08:25 moritz sets mode: -o moritz
moritz I happen to work at a hoster, and I think they have a discount for employers 08:25
pmichaud Please do. If you want to investigate putting the service onto my virtual host, we can do that, too.
FROGGS moritz: we maybe even could afford an own root server
pmichaud s/virtual host/virtual private server/ 08:26
I'd even use it as a reason to bump up the memory capacity on my vps
anyway, keep me posted. 08:27
I'm headed back to bed... fortunately Google Cache had the logs I was looking for. :-)
lizmat gnight pmichaud! 08:28
jnthn morning, #perl6 08:31
labster morning, jnthn
FROGGS morning jnthn 08:33
lizmat jnthn++
jnthn yay, pmichaud++ patches \o/ 08:34
nwc10 IIRC at the moment you hacked it so that QRPA serialises as RPA. But Pm gave speedup figures that implied that his QRPAs are staying as QRPAs. When do they get serialised? (ie what previously didn't work with QRPAs?) 08:37
08:37 arnsholt left, crab2313 joined, arnsholt joined
jnthn nwc10: I guess it woulda shown up at any point you serialized a Perl 6 array/list/parcel 08:40
nwc10 doesn't the compiler serialise things?
I fear I'm asking stupid questions here. 08:41
labster Okay, I have IO::Path working on three platforms (unix/posix, win32, and cygwin). It required that most of File::Spec be integrated, to work as a backend. But now that it's there, is the low-level path stuff in IO::Spec something we want to go ahead and add to the spec? Or should the extraneous stuff (like tmpdir) be refactored out of the core?
lizmat seems you're getting warnocked 08:46
moritz labster: what approach looks easier to you? 08:47
lizmat seems to me that this functionality has proven its usefulness in Perl 5 already, so why not add it to the spec? 08:48
FROGGS I'd say +1 even if I'm not entirely objective 08:49
08:50 crab2313 left
lizmat afk& 08:51
FROGGS I mean, Datetime is in core, and so belongs the basics of file IO 08:52
08:53 dakkar joined
nwc10 tempfile and tempdir are really useful things for building and testing. 08:54
moritz aye, there are places in roast where we could really use them, and now we're doing some unsafe ad-hoc stuff instead
nwc10 if the standard implementations of those aren't easier to use than "rolling your own", then some people will roll their own insecure versions
labster Eh, I don't have tempfile yet... Though I wouldn't mind setting $*TMPDIR or something.
08:56 berekuk left
FROGGS labster: github.com/FROGGS/p6-Inline-C/blob.../C.pm#L118 08:57
08:57 JamesTaylor joined
labster FROGGS: github.com/labster/p6-File-Spec-Ca...ase.pm#L49 I'm just as bad. 08:59
FROGGS :o)
does someone like to review/comment on that? gist.github.com/FROGGS/fbb4455f544a35cf265d 09:07
that is about what $~Slang should be
09:10 berekuk joined
labster I'd like to comment, but I fear this is a little beyond me :o) 09:12
FROGGS hmmm 09:13
labster some day, I will learn how to grammar.
FROGGS what do you expect when seeing a slang variable? just the grammar? or grammar + actions?
moritz I guess it needs both to be useful 09:14
09:14 arnsholt left
FROGGS for me the grammar itself is a bit useless without the actions... 09:14
ya..
I guess I test it locally, and if it makes it easier to set a slang, then it is the right way :o) 09:15
labster Yeah, grammar without actions for a slang doesn't seem useful. 09:16
sorear the slang variables are just the grammar. which is useful internally 09:18
09:18 arnsholt joined
sorear defining new operators modifies $~MAIN, which is an exact synonym for %?LANG<MAIN> 09:18
FROGGS hmmm, but if you have no actions for the added operators, it will still dont work, right? 09:19
sorear right. this is something that needs to be resolveds 09:20
FROGGS in rakudo's code, after mixin in stuff, $*ACTIONS is set
sorear sleep&
FROGGS gnight
09:26 tgt joined 09:34 daxim joined
tadzik heh, golang is years behind Perl 6 in terms of module ecosystem :P 09:36
I just added some code of mine to it, consisted of adding a URL to the wiki page 09:37
FROGGS .oO( almost decades O.o )
tadzik to be fair, the module installer is built-in, and is as simple as 'go get github.com/tadzik/reddit.go' or something
nwc10 coooooool. I'm going hack github's DNS and see who I can pwn... 09:38
tadzik I'm soo porting their JSON thing to Perl 6 09:40
it's a bit like XML::Rabbit for P5
jnthn
.oO( Will it have an easter egg? :) )
09:47
FROGGS a bit late ehh? 09:48
:P
09:53 tgt left 10:03 sqirrel left 10:11 domidumont left
dalek p: 1d92734 | jnthn++ | src/vm/parrot/6model/serialization.c:
Invocation protocol serialization.
10:11
10:11 domidumont joined 10:26 ibo22 joined 10:31 cognominal joined
dalek p: 5a3dfd2 | jnthn++ | src/vm/parrot/pmc/sixmodelobject.pmc:
Fix handler case of invocation spec.
10:32
kudo/jvm-support: 86a475e | jnthn++ | / (6 files):
Use VM-independent invocation protocol.

This eliminates a bunch of usages of Parrot v-table stuff in BOOTSTRAP and the MOP. No regressions.
10:40
11:01 test joined
nwc10 the goalposts are moving faster than I can benchmark them. 11:07
jnthn nwc10: Well, these aren't likely to be making much impact. They're mostly re-organizations. 11:08
11:10 immortal joined 11:15 immortal left
dalek Heuristic branch merge: pushed 149 commits to nqp/cont by jnthn 11:38
11:41 ibo22 left 11:47 mmcleric joined
lizmat FROGGS: not much too add wrt gist.github.com/FROGGS/fbb4455f544a35cf265d 11:55
as I'm not grokking that part of Perl 6 enough yet
still waiting for "goto" in Perl 6 so I can write a GWBASIC slang :-)
(as an excercise)
11:57 woosley joined
FROGGS ohh cool 11:59
we should have a proper slang-code-preset at that time 12:00
lizmat still, I don't see how I can do it without having goto work in rakudo 12:02
12:03 birdwindupbird joined
FROGGS ya, that was what I meant by "at that time" 12:05
I believe diakopter volunteered for goto 12:06
12:10 tgt joined 12:11 arnsholt left 12:15 bluescreen10 joined
timotimo pmichaud: nice :) 12:15
12:16 arnsholt joined 12:20 xenoterracide joined 12:21 arnsholt left
diakopter FROGGS: hah. 12:21
12:23 fhelmberger left 12:33 ozmq joined 12:36 saxx joined
FROGGS diakopter: was that wrong? 12:41
my problem is that I have no idea how to GOTO into another branch of an AST
but I guess there are docs about that :/ 12:42
colomon has been burned by Rakudo's for's unlaziness yet again.
FROGGS I usually get burned by my own thinko's :/ 12:43
colomon FROGGS: well, the lazy stream wasn't supposed to be infinite, so you can argue that either way!
daxim isup.me/http://irclog.perlgeek.de/ 12:46
12:49 AMENDEES_ joined
dalek kudo/jvm-support: f19881b | jnthn++ | src/ (31 files):
Eliminate nqp::p6decont for plain nqp::decont.

We'll attach the Rakudo semantics/optimization directly to the type using the new container spec handling.
12:49
kudo/jvm-support: c5b3c05 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Update nqp::setcontspec usages for new protocol.
kudo/jvm-support: c8b1e96 | jnthn++ | src/ (5 files):
Adopt the new container spec model.

This doesn't go quite so far as the last attempt to do this. It does enough to get the cleaner/more extensible API and a small type safety
  (and perhaps minor performance) win, plus will be easier to implement
on the JVM.
jnthn Ah, dammit... 12:50
Branch management fail. 12:51
12:51 arnsholt joined, saxx left
pmichaud colomon: is the unlaziness burn postable? 12:51
12:51 sqirrel joined
jnthn OK, I'm gonna have to have a separate nqp branch to go with the Rakudo jvm-support branch. 12:52
And merge 'em both down the line.
nwc10 jnthn: justinhileman.info/article/git-pretty/
particularly the two questions at the bottom left. :-)
jnthn nwc10: tbh, it's not such a big deal 12:53
nwc10: Just that anyone wanting to build Rakudo's jvm-support branch is gonna have to build a different nqp branch than master, and I'll have to work in a different nqp branch too.
Thing is, the jvm-support branch is really doing:
1) Portability related refactors 12:54
2) Adding JVM build stuff
I'd kinda like to have (1) get good testing, but probably (2) should not land in nom until it actually builds something useful.
nwc10 yes, I see 12:55
sort of feels like it would be easist if (1) keeps getting merged/cherry-picked to nom
and the branch itself gets rebased atop new nom
hence the question in the flowchart about lynch mobs 12:56
12:56 arnsholt left, arnsholt joined 12:57 prammer joined
jnthn nwc10: Yeah, I could easily go split it up 12:57
Well, will see. 12:58
Where we are in a week or so
skype call, bbiab
pmichaud nwc10: oh, that flowchart is wonderful. :-)
justinhileman.info/article/changing-history/ is pretty nice, too. 13:04
I think I'll start pointing to it with pull requests. Many of the pull requests I'm seeing have commits totally unrelated to the topic of the pull request. :-/ 13:05
13:05 census joined 13:12 erkan joined, erkan left, erkan joined 13:14 ozmq left
pmichaud in Rakudo's grammar there are often lines that look like 13:15
$<pod_content> = <pod_textcontent>? 13:16
tadzik that'd be me
pmichaud is there any reason why that wasn't written <pod_content=pod_textcontent>?
or even <pod_content=.pod_textcontent>?
tadzik I may have not known that syntax 2 years ago :)
so: no
[Coke] github.com/rakudo/rakudo/commit/ca...0d627c17c7 seems like a non controversial commit. (though I don't particularly care for 'string' vs. "string").
jnthn back
[Coke] er, github.com/rakudo/rakudo/pull/83
pmichaud [Coke]: I agree... merging. 13:17
dalek kudo/nom: ca574ae | amire80++ | Configure.pl:
A bit of cleanup in Configure.pl

Cleaned up whitespace and changed quotes to make perlcritic a little happier.
13:18
kudo/nom: cf97fb8 | pmichaud++ | Configure.pl:
Merge pull request #83 from amire80/little_Configure.pl_cleanup

A bit of cleanup in Configure.pl
pmichaud tadzik: okay, thans
*thanks
I'll switch them over to be consistent with the others.
given something like 13:19
$<pod_content> = <pod_textcontent>?
do you happen to know if $/<pod_content> and $/<pod_textcontent> are both used in the actions? I.e., is it necessary to capture both?
tadzik my guess is that all those blocks have a uniform interface which expects pod_content to be there 13:20
pmichaud ...but not pod_textcontent?
i.e., I could change it to a non-capturing subrule? 13:21
tadzik I suppose so
I don't remember, sorry :(
the tests will catch it in the worst case
pmichaud okay, thanks.
tadzik I'm 99% sure it can be non-capturing
pmichaud hmm, it appears once in the actions 13:22
(reason I'm asking this is that I'm preparing to migrate to the specced form of ?-quantifier, and want to clean up the grammars a bit first :) 13:23
tadzik this one appearance is parsing textcontent itself, no?
oh, no
[Coke] .tell rurban is github.com/rakudo/rakudo/pull/93 is even up for consideration at this point
moritz but the one occurrence in the action looks save to me
yoleaux [Coke]: I'll pass your message to rurban.
pmichaud github.com/rakudo/rakudo/blob/nom/...s.nqp#L506
tadzik it refers to github.com/rakudo/rakudo/blob/nom/...r.nqp#L496
so the rest of the usages can probably be non-capturing 13:24
pmichaud yeah, that one looks safe.
tadzik and this one is not assigned to pod_content anyway
pmichaud so yes, they can be converted. Excellent, thanks for the quick answers.
jnthn is happy to see pmichaud++ with tuits :)
tadzik pmichaud++ 13:25
pmichaud well, they aren't large tuits, and they're recallable at a moment's notice, which is why I'm going for quick-fixes
dalek kudo/jvm-support: 7c24085 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Only need to do dynop setup on Parrot.
kudo/jvm-support: 7b43987 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
One more pir:: to nqp::.
13:26 Targen left
PerlJam
.oO( Tuit Recall: a new movie about open source development )
13:26
good morning all
13:27 woolfy left 13:30 woolfy joined 13:31 FROGGS left 13:32 plobsing joined 13:35 woosley left 13:46 bamboo joined
rurban Isn't -L. -X. already in? 13:49
yoleaux 13:23Z <[Coke]> rurban: is github.com/rakudo/rakudo/pull/93 is even up for consideration at this point
13:52 tgt left, PacoAir joined
moritz rurban: in nqp, yes. In rakudo, now 13:52
*no
rurban Coke: AFAIK -L. -X. is needed, but I believe it's already used in rakudo. Havn't checked yet. my light is broken
13:53 bamboo is now known as bamboodragonfly
dalek kudo/jvm-support: 9c33ec1 | jnthn++ | src/ (2 files):
Swap a rarely-called dynop for Perl 6 code.
13:55
kudo/jvm-support: 29b5ab0 | jnthn++ | src/ (6 files):
Toss a bunch of dead code.
jnthn What, exactly, is the -L. -X. thing about?
13:56 mangala joined 13:57 thou joined 13:58 plobsing left
rurban we need to put . into the front of the loader path not to conflict with installed extensions 13:59
See github.com/parrot/parrot/issues/368 14:00
jnthn ah
moritz in fact that may explain why rakudo has seem more easily in conflict with installed stuff these last months 14:01
jnthn I ran into such an issue with NQP today too, where ModuleLoader was loaded by the nqp executable from an installed one. 14:03
14:04 PacoAir left 14:05 PacoAir joined
rurban This changed in parrot 4.12.0 14:06
14:10 baest left 14:12 Targen joined 14:15 MrMeek joined 14:17 Targen_ joined 14:18 Targen left 14:20 bamboo joined 14:23 bamboodragonfly left 14:26 FROGGS joined
sergot hi ! o/ 14:31
14:33 xilo joined 14:39 raiph joined
tadzik hello sergot 14:41
cognominal nqp: role A { method a() { c() } }; class B does A { sub c() { say('c')} }; B.new.a; 14:43
camelia nqp: OUTPUT«Could not find sub &c␤current instr.: 'a' pc 31 ((file unknown):163282716) (/tmp/kIQRog8oT1:1)␤»
cognominal r: role A { method a() { c() } }; class B does A { sub c() { say('c')} }; B.new.a;
camelia rakudo cf97fb: OUTPUT«===SORRY!===␤Undeclared routine:␤ c used at line 1␤␤»
14:44 kbenson joined
cognominal is that an expected behaviour? 14:44
n: role A { method a() { c() } }; class B does A { sub c() { say('c')} }; B.new.a;
camelia niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'c' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /home/p…
14:44 frdmn|afk joined 14:45 frdmn|afk left
jnthn cognominal: Sure, sub lookup is lexical 14:45
14:45 frdmn left
cognominal so, the way around is to use a method .c instead of a routine &c 14:46
14:46 snearch joined 14:53 birdwindupbird left 14:54 tgt joined
TimToady thinks that rosettacode.org/wiki/First_class_en...nts#Perl_6 is kinda cheating, insofar as the hashes in question never really achieve the status of symbol tables 14:56
15:03 kaare_ joined 15:06 test left
dalek kudo/jvm-support: 718090b | jnthn++ | src/Perl6/Metamodel/ (2 files):
Add [positional|associative]_delegate support.

Has been in NQP for a while; now there's a use for it in Rakudo also.
15:11
kudo/jvm-support: 40fa39f | jnthn++ | src/Perl6/ (4 files):
Remove Stash's reliance on Parrot v-tables.
grondilu rn: say (my %)<foo><bar> :exists 15:16
camelia niecza v24-37-gf9c8fc2: OUTPUT«False␤»
..rakudo cf97fb: OUTPUT«No such method 'exists' for invocant of type 'Any'␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:1646␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:1627␤ in block at /tmp/HOs2VBVVBW:1␤␤»
15:17 skids joined
timotimo oh, whoops? 15:17
rn: say (my %)<foo>.DUMP
camelia rakudo cf97fb: OUTPUT«Any␤»
..niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Unable to resolve method DUMP in type Any␤ at /tmp/bWu4jDyPPP line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4300 (module-CORE @ 583) ␤ at /home/p…
timotimo er, well ...
kresike bye folks 15:18
15:18 kresike left
grondilu the :exists adverb is not "deep" 15:18
?
(in rakudo that is)
pmichaud until you store something in it, (my %)<foo> isn't a hash.
15:18 domidumont left
pmichaud it's the same as; 15:18
grondilu pmichaud: sure, but it doesn't even exist, anyway. 15:19
pmichaud r: my $a; say $a<bar> :exists;
camelia rakudo cf97fb: OUTPUT«No such method 'exists' for invocant of type 'Any'␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:1646␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:1627␤ in block at /tmp/U6x2t6044W:1␤␤»
pmichaud r: my $a; $a<bar> = 1; say $a<bar> :exists;
FROGGS rn: say (my %)<foo> :exists
camelia rakudo cf97fb: OUTPUT«True␤»
rakudo cf97fb, niecza v24-37-gf9c8fc2: OUTPUT«False␤»
FROGGS -------------------------------^ mine 15:20
timotimo oh, so you can a^H vif^Hvify a hash, but not if you just :exists it?
pmichaud we could .exists an Any, if really wanted to.
(i.e., add :exists to Any)
grondilu well, I have a three entry cache and I tried: 15:21
GACCACGGTT
ACAG
GT
ooops
sorry
15:21 tgt left
pmichaud wipes the dna debris off his monitor. 15:21
skids braces for dna-on-monitor joke deluge 15:22
grondilu so as I was saying:
well, I have a three entry cache and I tried:
return %cache{$string}{$t}{$u} if %cache{$string}{$t}{$u} :exists;
^ how could I write that, then?
pmichaud I wouldn't have an issue with adding method exists(Any:D: ...) { False }
grondilu that would be convenient 15:23
pmichaud or whatever the appropriate method would be.
grondilu well until then I guess I can make a single key by concatenating my three keys :/ 15:24
pmichaud you can always test that $cache{$string}{$t} exists.
and perhaps is a hash
grondilu unlikely
colomon Given %cache{$string}{$t}{$u} :exists, what is the :exists testing? 15:25
grondilu the whole thing?
it would not make any sense otherwise, would it? 15:26
pmichaud I would think it's testing that %cache{$string}{$t} contains a key of $u
FROGGS it should be true if %cache{$string}{$t} is a hash which has a key $u
grondilu yes
(that's what I meant by "the whole thing") 15:27
colomon what if %cache{$string}{$t} does not exist?
FROGGS false
pmichaud that's the problem we're having now.
grondilu then it's false anyway
pmichaud %cache{$string}{$t} comes back as Any, which doesn't have a test for :exists
colomon pmichaud: yeah, that's what I was suspecting. 15:28
FROGGS colomon: thats the same like checking for truthness of %cache{$string}{$t}{$u}
grondilu pmichaud's suggestion on defining :exists for any is interesting.
FROGGS all or nothing
pmichaud wel, the question is really... what should happen with my $a; say $a{'key'} :exists;
*well
colomon oh! I missed that that "exists" was defined on Any. I was thinking Hash.exists(Any), not Any.exists(...)
pmichaud "exists" isn't defined on Any, at the moment. 15:29
I'm suggesting that might be a solution to the current problem.
grondilu r: say Any :exists;
camelia rakudo cf97fb: OUTPUT«===SORRY!===␤You can't adverb that␤at /tmp/iMH7xUWjKR:1␤------> say Any :exists⏏;␤ expecting any of:␤ pair value␤»
pmichaud adverbs go on operators (verbs)
grondilu yeah, sorry
pmichaud r: say Any.exists('key') 15:30
jnthn In this case the :exists goes as a named ot the postcircumfix call it's closest to
camelia rakudo cf97fb: OUTPUT«No such method 'exists' for invocant of type 'Any'␤ in block at /tmp/bkWsN1Wf0a:1␤␤»
jnthn So you also have the option of intercepting it there
pmichaud yes, the postcircumfix could test that the invocant has an exists method
so it could use .exists?( ) instead of .exists
TimToady introspection considered harmful 15:31
dalek kudo/nom: 4ee4f97 | pmichaud++ | src/Perl6/Grammar.nqp:
Cleanup: Switch some $<a>=<b> pod expressions to be the more common <a=.b> .
kudo/nom: b65cc01 | pmichaud++ | src/Perl6/Grammar.nqp:
More cleanup: Change $<attachment>=<.quibble(%*LANG<Q>)> to <attachment=.quibble(%*LANG<Q>)>
jnthn pmichaud: I was more thinking that we have a candidate for a :U invocant the the exists key. 15:32
*and the
pmichaud that's a possibility also.
r: my $a = 1; say $a{'key'} :exists
TimToady I tend to see this as a variant of propagating failure through cascaded methods
camelia rakudo cf97fb: OUTPUT«No such method 'exists' for invocant of type 'Int'␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:1646␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:1627␤ in block at /tmp/CT5Fbe9ZaU:1␤␤»
jnthn Hm, do we need to cover that case? That to me just looks like a program error that I'd like to fail. 15:33
Whereas on a type object it feels more useful :)
grondilu jnthn: then I should not use a several-entries cache?
pmichaud I was just curious about what happens (should happen) on the defined instance case.
r: my $a = 1; say $a{'key'}; 15:34
camelia rakudo cf97fb: OUTPUT«postcircumfix:<{ }> not defined for type Int␤ in method gist at src/gen/CORE.setting:10832␤ in method gist at src/gen/CORE.setting:893␤ in sub say at src/gen/CORE.setting:7808␤ in block at /tmp/jqTiYdSZFa:1␤␤»
TimToady the question that occurs to me is: is :exists smart enough to tell the subscripts that they shouldn't WHENCEify
pmichaud well, none of the solutions proposed would cause whencification
moritz and iirc read-only accesses should never autovivify anyway, right? 15:35
jnthn grondilu: In the case you asked about, iiuc, the :exists is operating on an undefined thing?
pmichaud jnthn: it's operating on an Any, yes.
(the type object)
grondilu here is the full code I was working on when I encountered this issue: paste.siduction.org/20130429153520 15:36
15:36 snearch left
colomon oh, I think I just found an interesting bug/feature. 15:36
dalek kudo/jvm-support: 918475f | jnthn++ | src/ (4 files):
Eliminate another bunch of pir:: in BOOTSTRAP.

Now BOOTSTRAP should be about in shape to try and get it to build with NQP JVM.
15:37
jnthn grondilu: Yes, what I'm proposing-ish is that we make that work they way you want
TimToady sub isbazzy (\x) { x<baz> :exists }; say so isbazzy %hash<foo><bar> 15:38
will that work?
colomon I used qq:to/END/ with indenting that I wanted to go away and a tab in the source file, and the tab switched to spaces when the indenting went away.
15:38 any joined
colomon afk # nom pickup 15:38
15:39 any left
pmichaud TimToady: that would work with either of the solutions suggested thus far, I think. 15:39
and not autovivify %hash<foo>
or %hash<foo><bar>
TimToady sub setbazzy (\x) { x<baz> :exists || x<baz> = 42 }; setbazzy %hash<foo><bar> 15:40
what about that?
pmichaud parens around the = ?
TimToady yeah
shoulda used 'or' instead 15:41
pmichaud would set %hash<foo><bar><baz> to 42 if it didn't already exist.
(vivifying %hash<foo> and %hash<foo><bar> as needed.
r: sub setbazzy (\x) { x<baz> = 42 }; setbazzy %hash<foo><bar>; say %hash.perl
camelia rakudo cf97fb: OUTPUT«===SORRY!===␤Variable '%hash' is not declared␤at /tmp/IIfc6UqOQk:1␤------> x<baz> = 42 }; setbazzy %hash<foo><bar>⏏; say %hash.perl␤ expecting any of:␤ postfix␤»
pmichaud r: sub setbazzy (\x) { x<baz> = 42 }; my %hash; setbazzy %hash<foo><bar>; say %hash.perl
camelia rakudo cf97fb: OUTPUT«("foo" => {"bar" => {"baz" => 42}}).hash␤»
TimToady sub setbazzy (\x) { x<baz> :exists or x<somethingelse> = 42 }; setbazzy %hash<foo><bar> 15:42
can that one autoviv foo and bar?
pmichaud yes.
TimToady how?
does it WHENCE before the call? 15:43
pmichaud r: sub setbazzy (\x) { x.exists('baz') or x<somethingelse> = 42 }; my %hash; setbazzy %hash<foo><bar>; say %hash.perl
camelia rakudo cf97fb: OUTPUT«No such method 'exists' for invocant of type 'Any'␤ in sub setbazzy at /tmp/VVX3cDvbC8:1␤ in block at /tmp/VVX3cDvbC8:1␤␤»
pmichaud it WHENCEs at the point of the assignment.
TimToady but x is presumably already bound to a WHENCE or it can't work 15:44
pmichaud yes, x has a WHENCE
but the WHENCE hasn't been triggered yet.
it gets triggered at the point of the assignment.
TimToady so certainly a
WHENCE make :exists false, at least
Util I would like to take ownership of a Rakudo RT ticket. I have privilege to change tickets, but I am not listed as a possible entry in the Owner drop-down box. 15:45
rt.perl.org/rt3/Ticket/ModifyPeopl...?id=117731
Would someone add me to the list that populates that "Owner:" drop-down, please? My RT ID is "util" (18978). TIA.
pmichaud Util: I'll see if I still have that capability. 15:46
TimToady: well, I'm not sure that the WHENCE does it. I tend to think it falls more along jnthn's suggested "because it's undefined" line
15:46 FROGGS left
TimToady I guess :exists is a known rvalueish context, so can optimize the WHENCES away 15:46
TimToady wonders if an array/hash with a default value ever fails :exists... 15:47
grondilu just used a single entry cache and observed that his code is wrong for other reasons anyway :/
pmichaud jnthn: in some sense, though, it feels to me like there are too many multi candidates for .{ } anyway, though. 15:48
the factorization doesn't look quite right to me... adding :D/:U would just seem to compound it.
jnthn pmichaud: We need to be a bit careful how we factor those. 15:49
pmichaud right, that's kinda my thinking. it feels fragile.
jnthn pmichaud: The way they are now has the property that the multi-dispatch cache can typically do something quite sane with them. 15:50
pmichaud yeah, but seeing things like
multi method postcircumfix:<{ }>(\SELF: Positional \key, :$exists!) is rw {
nqp::iscont(key)
... the iscont test is a smell.
and it's something that may fail when arrays/hashes become containers. 15:51
jnthn suspects that is there to fix a very specific issue
pmichaud that test seems to be trying to detect different forms of slices
jnthn yeah, it's that %h{@a.item} is not %h{@a} iirc 15:52
pmichaud hmmmmmm
anyway, I'll look it over someday.
jnthn tries to remember which of us did that fix :)
pmichaud well, it wasn't me :) 15:53
TimToady we're still planning to unmethodize that, right?
[Coke] Util: added you as a rakudo bugadmin 15:54
pmichaud yes, I believe so.
15:54 Targen_ left, AMENDEES_ left
pmichaud Coke++ 15:54
15:54 Targen joined
jnthn TimToady: I'd still in favor of that. 15:54
*I'm
pmichaud I'm in favor of it also... but we have to fix our dotted postfix notation first
jnthn The multi issue then probably becomes "what can we analyze at compile time"
[Coke] Util++ now you have to close out at least 2 bugs. ;)
TimToady we can probably analyze multi-dim subscripts (.[@a; @b]) at compile time 15:55
[Coke] .seen robrt
yoleaux I haven't seen robrt around.
[Coke] .seen ask
yoleaux I haven't seen ask around.
TimToady .u ⏏ 15:56
yoleaux U+23CF EJECT SYMBOL [So] (⏏)
TimToady is this the same bot?
[Coke] as phenny? no, new one. 15:57
.help
yoleaux [Coke]: I'm yoleaux. Type .commands to see what I can do, or see dpk.io/yoleaux for a quick guide.
TimToady British Indian Ocean Territory, eh? 15:58
[Coke] .suggest Perl 6 is 15:59
yoleaux Perhaps Perl 6 is: ~dead, ~a joke, perl 6 in production, is perl 6 out, perl 6 release, is perl 6 ready, is perl 6 production ready
timotimo perl6 is export. 16:00
huf how about "perl 6 is" in the "i am that i am" sense?
16:00 Demagog joined 16:02 Targen left
Util Coke++ Thanks! Will be closing one bug today for sure. Bug 2... sometime after that :) 16:03
16:03 Demagog left 16:04 tgt joined 16:08 bamboo left, Targen joined 16:15 Targen left, Targen_ joined
dalek p/rak-jvm-support: 8a230e7 | jnthn++ | src/vm/jvm/ (3 files):
Implement some missing capture-related ops.
16:20
16:24 census left
nwc10 rak? 16:26
16:29 FROGGS joined
jnthn rakudo 16:31
trying to same some keystrokes :P
16:32 tarnation_ joined, tarnation_ left 16:39 Chillance joined
dalek p: 66ea32d | pmichaud++ | src/ (4 files):
"Temporarily" convert ?-quantified captures to use **0..1 instead.

This is in preparation for bringing the ?-quantifier in line with S05, such that ? is an "item quantifier" instead of a "list quantifier".
16:42
16:44 tangentstorm joined 16:46 spider-mario joined 17:02 mavcunha joined 17:05 mmcleric left
jnthn Well, that was fun... 17:06
jnthn just discovered that his invokedynamic handling could actually bind the callsite permanently to the "compile-me" thunk, which produced some rather bizzare results 17:07
17:08 tgt left
dalek kudo/nom: a174307 | pmichaud++ | src/Perl6/Grammar.nqp:
"Temporarily" convert ?-quantified captures to use **0..1 instead.

This is in preparation for bringing the ?-quantifier in line with S05, such that ? is an "item quantifier" instead of a "list quantifier".
17:09
pmichaud I need a nap before tackling the next bit... bbl 17:10
jnthn nap well :)
17:10 alester joined
dalek p/rak-jvm-support: 98861e4 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java:
Don't wire callsite to compiler thunks.
17:12
nwc10 in this font nap is confusingly close to nqp. The difference is one descender 17:17
17:18 dakkar left
colomon huh. cursor controls not working in current (well, last week) Rakudo in the REPL? 17:23
jnthn colomon: Normally a sign of having a Parrot that wasn't built with readline support, I guess. 17:24
colomon jnthn: ah, so probably just weirdness on my new linux boxl 17:26
*box
jnthn++
17:35 daxim left 17:37 SmokeMachine joined 18:12 djanatyn left, djanatyn joined
dalek p/rak-jvm-support: 26204e4 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java:
Remove leftover debugging code.
18:16
p/rak-jvm-support: 353a1ef | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (2 files):
Add missing find method logic (MOP fallback).
18:20 Util left, census joined 18:21 Juerd left, pmichaud left, [Coke] joined, masak joined, PerlJam joined, dalek joined, ChanServ sets mode: +v dalek, Util joined, sergot joined 18:22 pmichaud joined, Juerd joined, tadzik joined 18:23 hugme joined, ChanServ sets mode: +v hugme 18:24 test joined, camelia joined 18:25 ChanServ sets mode: +v camelia 18:28 mavcunha left 18:29 mavcunha joined 18:35 supernovus joined 18:38 mavcunha left 18:39 jeffreykegler joined
supernovus If I want to include an array inside another array without being flattened, is there an easier way than this: my @a = 1,2,3; my $a = @a; my @b = $a; 18:42
PerlJam supernovus: my @b = [1,2,3]; # ??? 18:43
18:45 tgt joined
supernovus PerlJam: Now, given I already have @a, @b and @c, and I want an Array of Arrays, if I do my @d = @a, @b, @c; it flattens the original arrays together, which in some cases is the desired behaviour, but in the case I'm working on, it isn't. I tried throwing \ in front, i.e. @d = \@a, \@b, \@c; but that creates parcels, not a "reference" to the original array. If this is an uncommon feature I'll just stick with creating scalars point 18:47
ing at the arrays/hashes to be included in the target array.
jnthn @a.item
$(@a)
18:47 mavcunha joined
jnthn r: my @a = 1,2,3; my @b = 4,5,6; my @c = lol @a, @b; say @c.perl 18:47
camelia rakudo a17430: OUTPUT«===SORRY!===␤Undeclared routine:␤ lol used at line 1. Did you mean '&log'?␤␤»
jnthn r: my @a = 1,2,3; my @b = 4,5,6; my @c = (@a, @b).lol; say @c.perl
camelia rakudo a17430: OUTPUT«Array.new([1, 2, 3], [4, 5, 6])␤»
jnthn That's another way.
(lol = list of list :)) 18:48
supernovus I like the $(@a) method. I had tried $@a and it died with "Invalid hard reference syntax". I figured since @$var works identically to @($var) it would be the same in reverse.
jnthn: Thanks. That worked perfectly. 18:53
I noticed that my SCGI, FastCGI and HTTP::Easy libraries all have a lot of duplication in the code that takes PSGI responses from applications and turns them into the appropriate CGI/HTTP return value, so I'm abstracting it out into a helper library that others can use too. 18:55
18:57 mtk joined
pmichaud I just received a package that was mailed (USPS) to me from Florida, it apparently went to Singapore first before coming here. :-/ 18:57
PerlJam supernovus++ that sounds neat.
pmichaud: the final ingredient was located in Singapore, so it had to go there first. 18:58
18:58 mtk left 18:59 SamuraiJack joined
pmichaud somehow I doubt that. :-) The seller and I had been emailing back-and-forth trying to figure out where might have disappeared to. 18:59
jnthn Shortest route FAIL 19:00
19:00 jeffreykegler left
lizmat thinks it is a metaphore, and therefore glad that it finally arrived ;-) 19:00
19:00 skyheights joined
tadzik pmichaud: aah, that explains why I'm waiting so long for my laptop ;) 19:00
it must be going through tunguska or something 19:01
PerlJam pmichaud: someone at the USPS is using other people's packages to ferry drugs to Singapore
19:01 mtk joined 19:04 japhb_ joined
pmichaud PerlJam: that's possible, given where it came from (Miami) and the size of the package. 19:04
wonder if I should wash the contents carefully :-)
PerlJam pmichaud: what was it? Anything that might have a large chunk of lead in it (like a laptop) ? 19:06
pmichaud LEGOs. 19:08
package photos at plus.google.com/photos/10058333350...v-_zfjHxgE 19:09
supernovus And with some refactoring, the tests didn't need the $(@blah) syntax after all. Ah well, good to know it is available :-) 19:10
dalek p/rak-jvm-support: 05f6229 | jnthn++ | / (11 files):
Update stage0 to latest.

The latest has various performance improvements and thus this should make the build a bit faster.
p/rak-jvm-support: 29aa7b4 | jnthn++ | src/vm/jvm/ (2 files):
Stub remaining container ops.

Still need to do a bunch of the implementation work.
kudo/jvm-support: 047fa09 | jnthn++ | src/Perl6/Metamodel/ (2 files):
Standardize on nqp::hash in MOP.
19:11
kudo/jvm-support: 3e7d60f | jnthn++ | tools/build/Makefile-JVM.in:
Add BOOTSTRAP to the build, now it builds.

This means the big BEGIN block in it also manages to run.
19:13 sqirrel left
dalek : 8f4b93d | (Tobias Leich)++ | lib/Perl6/P5World.pm:
moving get_env to the actions
19:16
: 42e799e | (Tobias Leich)++ | lib/Perl5.pm:
setting $*MAIN, which is the currently active main language
: b8b0b8e | (Tobias Leich)++ | lib/Perl6/P5Actions.pm:
use $V5DEBUG directly
: b37a34a | (Tobias Leich)++ | STATUS.md:
update STATUS after getting eval and quoting to work again
: 5aeef0c | (Tobias Leich)++ | rakudo.patch:
add overridable $*MAIN
19:20 skids left
dalek osystem: 52ca0cb | (Timothy Totten)++ | META.list:
Added PSGI helper library.
19:29
19:33 tgt left
[Coke] Fyi, github.com/rakudo-p5/v5 - I think the right idiom is "beside Perl 6", not "besides Perl 6". 19:42
FROGGS [Coke]: thanks, will fix 19:44
dalek : c1a0049 | (Tobias Leich)++ | README.md:
fix spelling error, [Coke]++
19:46
[Coke] (they're similar, but beside is more "side by side", and besides is more "in place of") 19:47
FROGGS ahh cool, thanks, so 'beside' is what I want :o) 19:48
dalek : 9eac1ba | (Tobias Leich)++ | / (3 files):
fix some issues that were hidden when Perl6::Grammar's tokens were in use
19:51
FROGGS std: use v5; say 1 foreach 1 19:54
camelia std 86b102f: OUTPUT«===SORRY!===␤Confused at /tmp/XgX43dASJW line 1:␤------> use v5; say 1 ⏏foreach 1␤ expecting any of:␤ p5infix␤ p5statement_mod_loop␤ statement modifier␤Parse failed␤FAILED 00:01 52m␤»
FROGGS std: use v5; say 1 for 1
camelia std 86b102f: OUTPUT«ok 00:01 52m␤»
FROGGS ESTDBUG
19:56 tgt joined 20:00 skids joined
masak FROGGS: how so? 20:02
oh, 'foreach' should parse?
FROGGS ya
[Coke] so how soon until we can run p5 inside p6 inside jvm ? ;)
FROGGS my local perl says yes
masak FROGGS++
FROGGS [Coke]: well, not too soon
the progress isnt that good actually 20:03
[Coke] aww. 20:04
well, it certainly looks like progress from over here.
FROGGS ya, example: you can do "require PATH" now, the importing and merging doesnt work well 20:05
that affects all
20:06 rindolf left, bruges joined
FROGGS and, you need %Config and other core stuff to really do something 20:06
and I dont wanna think about all these pragmas :o)
dalek : c40fe64 | (Tobias Leich)++ | / (2 files):
fix statement mod foreach
20:08
stevan_ r: sub id ($x) { $x.perl }; say id([10, 2]) 20:14
camelia rakudo a17430: OUTPUT«[10, 2]␤»
stevan_ wonders why that works
and where I can go to read up on the details of behind it
tadzik stevan_: why don't you expect it to work? 20:15
lizmat that would even work in Perl 5 (almost)
[Coke] $x is a thing. [10,2] is a thing.
stevan_ tadzik: I guess I was thinking @x would be more appropriate
tadzik stevan_: you can always put an array in a scalar container
stevan_ lizmat: yes, but it wouldn't do what I expected :) 20:16
[Coke] r: sub id ($x) { $x.perl } ; say id(10,2);
camelia rakudo a17430: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'id' will never work with argument types (Int, Int) (lines 1, 1)␤ Expected: :($x)␤»
tadzik to prevent it from flattening
arnsholt stevan_: Perl 6 changes the semantics of the sigils
That's the extremely short version
tadzik r: my @a = 1, 2, 3; my $b = @a; say $b.perl
camelia rakudo a17430: OUTPUT«[1, 2, 3]␤»
stevan_ right
hmm
[Coke] r: sub id (*@x) { "array" ~ $x.perl } ; sub id($x) { "scalar" ~ $x.perl } ; say id(10,2); say id([10,2]);
camelia rakudo a17430: OUTPUT«===SORRY!===␤Variable '$x' is not declared␤at /tmp/qyxAwql6lA:1␤------> sub id (*@x) { "array" ~ $x.perl⏏ } ; sub id($x) { "scalar" ~ $x.perl } ;␤ expecting any of:␤ method arguments␤ postfix␤»
[Coke] r: sub id (*@x) { "array" ~ @x.perl } ; sub id($x) { "scalar" ~ $x.perl } ; say id(10,2); say id([10,2]); 20:17
camelia rakudo a17430: OUTPUT«===SORRY!===␤Redeclaration of routine id␤at /tmp/uIUtN4uM4N:1␤------> l } ; sub id($x) { "scalar" ~ $x.perl } ⏏; say id(10,2); say id([10,2]);␤ expecting any of:␤ method arguments␤ postfix␤ statement end␤…
[Coke] r: multi sub id (*@x) { "array" ~ @x.perl } ; multi sub id($x) { "scalar" ~ $x.perl } ; say id(10,2); say id([10,2]);
camelia rakudo a17430: OUTPUT«arrayArray.new(10, 2)␤scalar[10, 2]␤»
20:17 kaare_ left
stevan_ hmm, so you can put anything in a scalar container if you want 20:18
masak including references. and the references sort of fade away from view a bit.
stevan_ is this documented anywhere?
masak I should hope so!
stevan_ does anyone know where :)
masak check S02 is a good guess.
stevan_ ok 20:19
20:19 supernovus left
arnsholt perlcabal.org/syn/S02.html#Sigils is probably a good place to start 20:19
[Coke] stevan_: perlcabal.org/syn/S02.html#Sigils
20:19 tgt left
[Coke] Curse my metal body, I wasn't fast enough. 20:19
20:20 mavcunha left
arnsholt Also perlcabal.org/syn/S02.html#Context 20:20
[Coke] guesses that $<foo> match variable, short for $/{'foo'} should not be under "twigils"
r: my $x = "asfd"; supersede $x = "blah"; say $x; 20:21
camelia rakudo a17430: OUTPUT«===SORRY!===␤supersede scoped variables not yet implemented. Sorry. ␤at /tmp/XDVqPr1wet:1␤------> my $x = "asfd"; supersede $x ⏏= "blah"; say $x;␤ expecting any of:␤ scoped declarator␤ constraint␤Other potential…
FROGGS [Coke]: well, one could think that < is a twigil
20:24 tgt joined, woolfy left
[Coke] wonders why supersede $x = "blah" is preferred over $x = "blah" with no modifier. 20:30
jnthn [Coke]: Who prefers it? :)
20:31 chee is now known as Guest
[Coke] S02 20:32
s/preferred/spec'd/ , even. 20:33
jnthn ah, I can imagine it being spec'd
[Coke] wonders if it maybe overrides readonlyness.
mentioned again in S06 for subs. 20:34
(and S12 for classes)
cognominal discovers marklodato.github.io/visual-git-gui...x-en.html, nice
PerlJam maybe the thing in $x overloads assignment and supersede negates that?
[Coke] Objection, speculative! 20:35
r: my $a = anon sub marine() {1}; $a(1,2,3); 20:36
camelia rakudo a17430: OUTPUT«Too many positional parameters passed; got 3 but expected 0␤ in sub marine at /tmp/7jucb_nJ26:1␤ in block at /tmp/7jucb_nJ26:1␤␤»
[Coke] huh. 20:37
20:37 Guest is now known as chee
[Coke] "who knew that was in there" 20:37
FROGGS *g*
20:40 SmokeMachine left 20:43 SmokeMachine joined
stevan_ r: my @x = 1; 20:46
camelia rakudo a17430: ( no output )
stevan_ r: my @x = 1; say @x.perl
camelia rakudo a17430: OUTPUT«Array.new(1)␤»
dalek p: 54a9a07 | pmichaud++ | / (2 files):
Start adding tests for quantified captures.
stevan_ r: my %x = 1; say %x.perl
camelia rakudo a17430: OUTPUT«Odd number of elements found where hash expected␤ in method STORE at src/gen/CORE.setting:6889␤ in block at /tmp/MTRUnp_l7n:1␤␤»
dmol r: say "hello"
camelia rakudo a17430: OUTPUT«hello␤»
20:48 bluescreen100 joined, bluescreen10 left 20:49 mavcunha joined
masak r: my %x = 1, 42; say %x.perl 20:56
camelia rakudo a17430: OUTPUT«("1" => 42).hash␤»
21:13 mavcunha left
dalek p/rak-jvm-support: 8a6eb77 | jnthn++ | src/QRegex/Cursor.nqp:
Be consistent about highexpect list type.

Caught because NQP JVM is stricter, but the fix saves some boxing.
21:18
p/rak-jvm-support: 65e3eac | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Don't rebless to the same type.
p/rak-jvm-support: 50ed259 | jnthn++ | src/core/NQPRoutine.nqp:
Add a missing .clone() call.
masak .oO( rak shaving ) 21:19
dalek kudo/jvm-support: 56d8271 | jnthn++ | / (2 files):
Add Makefile rule to start working through CORE.

Not in 'all' yet as it, of course, explodes almost instantly.
21:21
21:23 kurahaupo joined 21:25 SamuraiJack left, bluescreen100 left
dalek kudo/nom: 3252c3e | pmichaud++ | src/core/Temporal.pm:
More ?-quantifier preparation... adjust Temporal.pm to use **0..1 instead of ? .
21:26
21:28 PacoAir left 21:29 skids left, test left
pmichaud all: I have a patch ready that will convert the ?-quantifier to no longer return an Array of matches, both nqp and rakudo compile and pass their spectests. Any thoughts about when I should apply the patch (i.e., should we go ahead and do it this release)? 21:29
21:30 SmokeMachine left
jnthn pmichaud: We're quite a way from the next relesae. 21:30
21:30 SmokeMachine joined
jnthn pmichaud: I think there will be ecosystem fallout, and I think there's sufficient time to fix it. 21:31
masak +1
FROGGS ya, there won't be a better time
jnthn We've been warning in the * release announce for ages too.
So, +1 from me. 21:32
pmichaud: Did some spectests need changes?
pmichaud jnthn: no, sadly. 21:33
I've created some tests to add to the nqp/qregex suite that test it, though.
jnthn pmichaud: That's a little surprising.
Though maybe suggestive that the fallout won't be so bad as we expect. 21:34
pmichaud I suspect it's just not tested adequately.
jnthn Yeah
I'd suggest adding a couple of the tests for the qregex suite to spectest so we have at least *some* coverage. 21:35
*from the...
[Coke] jnthn: java.lang.NoClassDefFoundError: org/perl6/nqp/runtime/ThreadContext
(installing nqp/rak-jvm-support)
jnthn [Coke]: How'd you get that?
[Coke]: Did you re-configure before the build?
[Coke] Yes. 21:36
guessing missing dep
jnthn Hm...I'd been careful with those.
Try a clean and re-Configure
I know that error came up for me before I did a makefile tweak earlier
21:37 spider-mario left
[Coke] hurm. ok. yah, I didn't explicitly clean. 21:37
jnthn Hm, but Configure should clean...so it's still odd.
Anyway, just checked I did indeed commit the thing that fixed that same error earlier this evening for me. 21:38
pmichaud I need a break here, so I'll re-check and re-test my patch later tonight and apply it. 21:40
Yes, I suspect it will affect a fair bit of the ecosystem.
The short-term fix is simple enough -- replace any capturing ? with **0..1 21:41
s/fix/workaround/
I also don't yet have it putting Nil in unmatched ? slots... that's going to take a bit more effort.
anyway, i'm afk for a while 21:42
[Coke] pmichaud: once you change what ? does, will you go back to some of the **0..1's and change them back to ?'s ?
jnthn: gist.github.com/coke/5485054 21:43
(updated to show the clean/config commands used) 21:45
21:45 adu joined
pmichaud [Coke]: yes, I'll go change them back to ?'s 21:45
[Coke] pmichaud: cool. 21:46
pmichaud but that involves eliminating a lot of [0]'s, too 21:47
rjbs If I want to zip together n arrays and iterate over the generated tuples, is this the idiomatic way?
for zip(@a, @b, @c).pairs -> $x { say $x.value }
pmichaud for @a Z @b Z @c -> $a, $b, $c { ... } is the one I'm familiar with 21:48
21:48 thundergnat joined
pmichaud I don't think .pairs is quite right there 21:49
jnthn .lol maybe? 21:50
pmichaud .lol might work
masak and zip seems to want zip(@a; @b; @c) -- don't ask me why, but S06 seems pretty consistent on this.
adu jnthn: hey
pmichaud yes, it needs semilists there to be able to subdivide the lists.
I don't know if rakudo supports semilist args yet. 21:51
rjbs Ah, right, Z. I thought zip was infix, earlier, but I see I was confused.
pmichaud r: my @a = 1..3; my @b = <a b c>; my @c = 4,6,8; for (@a Z @b Z @c).lol -> $x { say $x }
camelia rakudo a17430: OUTPUT«ListIter.new()␤»
pmichaud hmmph
r: my @a = 1..3; my @b = <a b c>; my @c = 4,6,8; for (@a Z @b Z @c) -> $x { say $x } 21:52
camelia rakudo a17430: OUTPUT«1␤a␤4␤2␤b␤6␤3␤c␤8␤»
pmichaud r: my @a = 1..3; my @b = <a b c>; my @c = 4,6,8; say (@a Z @b Z @c)
camelia rakudo a17430: OUTPUT«1 a 4 2 b 6 3 c 8␤»
pmichaud r: my @a = 1..3; my @b = <a b c>; my @c = 4,6,8; say (@a Z @b Z @c).perl
camelia rakudo a17430: OUTPUT«((1, "a", 4), (2, "b", 6), (3, "c", 8)).list␤»
pmichaud r: my @a = 1..3; my @b = <a b c>; my @c = 4,6,8; say (@a Z @b Z @c).lol.perl
camelia rakudo a17430: OUTPUT«LoL.new(ListIter.new())␤»
pmichaud r: my @a = 1..3; my @b = <a b c>; my @c = 4,6,8; say (@a Z @b Z @c).lol.eager.perl 21:53
camelia rakudo a17430: OUTPUT«LoL.new(ListIter.new())␤»
pmichaud fail.
Someone needs to fix Lists.
Someone needs to whip pmichaud-- into shape to get that fixed.
TimToady pmichaud++ for self-deprecation :)
pmichaud it's on my (pardon pun) List. 21:54
rjbs |The thing that made the -> $a, $b, $c solution seem off to me was that when I oopsed and said ->$a,$b it didn't go by tuple, but by pairs out of the flattened list.
jnthn [Coke]: What does your current ./nqp contain?
pmichaud actually, -> $a, $b means take values 2-at-a-time
for naturally flattens the parcels
[Coke] exec java -cp .:nqp-runtime.jar:3rdparty/asm/asm-4.1.jar nqp "$@"
jnthn oh.
Yeah, then that explains things. 21:55
[Coke] missing dependency on ./nqp ? ;)
rjbs pmichaud: ...but if I have the count "right" then it will never cause problems?
pmichaud: I can't imagine what it would cause, but I am wary. :)
pmichaud if the # of args matches the number of items in the tuples, it should work out, yes.
adu jnthn: did you get my message about try/catch?
TimToady rjbs: to get the other semantics, you'd use: for stuff.lol -> [$a, $b, *@rest] {...}
[Coke] ah, looks like. 21:56
dalek p/rak-jvm-support: 94fe5fc | jnthn++ | tools/build/Makefile-JVM.in:
Add missing cleanup; [Coke]++ for reporting.
21:56 xilo left
pmichaud okay, I have to fetch dinner for a kid. bbl 21:56
oh, wait
jnthn adu: Yes, and was confused 'cus the try/catch tests pass, as you noticed.
pmichaud while TimToady++ is here....
jnthn adu: Do you have a small test case?
adu yes
nqp: try { nqp::die("hello"); CATCH { say($_); } } 21:57
camelia nqp: OUTPUT«hello␤»
adu nqp-jvm: try { nqp::die("hello"); CATCH { say($_); } }
camelia nqp-jvm: OUTPUT«Exception in thread "main" ␤Exception: java.lang.NoClassDefFoundError thrown from the UncaughtExceptionHandler in thread "main"␤»
jnthn I'm...thinking that nqp-jvm target is not up to date
rjbs r: my @a = <<1 2 3>>; my @b = <<4 5 6>>; my @c = <<7 8 9>>; for (@a Z @b Z @c).lol -> [ $a, $b, *@rest ] { say "$a $b" }
camelia rakudo a17430: OUTPUT«Nominal type check failed for parameter ''; expected Positional but got ListIter instead␤ in block at /tmp/EYaOXcd3Bq:1␤␤»
pmichaud given: 'abcd' ~~ / <alpha>? xyz || ab /
rjbs That error loses me.
pmichaud++ # ever helpful
pmichaud does $/<alpha> exist or no? 21:58
adu let me see if I can convert that to .t style
pmichaud by way of comparison: 'abcd' ~~ / <alpha>? abc / # clearly $/<alpha> is Nil. 21:59
TimToady well, a Nil that is really should generally be indistinguishable from a Nil that is supplied because nothing is there...
masak 'night, #perl6 22:00
FROGGS gnight masak
jnthn adu: If you repalce say($_) with say(nqp::getmessage($_)) it seems to work
pmichaud TimToady: I don't quite follow the meaning of that.
adu interesting 22:01
pmichaud I guess I'm asking about $/<alpha>:exists
TimToady I'm saying it doesn't matter whether there's a slot in there for it, if the non-matching slot would return Nil in either case
I'm fine with it not existing
pmichaud okay, I think I follow that (more) 22:02
jnthn TimToady: So iiuc you can implement this by having Match objects default to producing Nil for any non-existing element?
TimToady I'm also fine with it existing if it defaults to Nil
pmichaud so, in the case of 'abcd' ~~ / <alpha>? abc / it's okay if $/<alpha>:exists is False
TimToady That's consistent with the way matches are supposed to behave as a whole now; either a defined Match or Nil 22:03
pmichaud okay
wfm
jnthn: (which answers your question in the affirmative, I believe)
TimToady n: say 'foo' ~~ /bar/
camelia niecza v24-37-gf9c8fc2: OUTPUT«Nil␤»
jnthn pmichaud: I'm guessing this way is a bit easier too? ;)
adu jnthn: pastie.org/7739957
pmichaud which makes my job much simpler :-)
grondilu How could I do a partial match with a non-literal value? For instance, if $x = "foobar", I'd like to match f, foo, foob, etc. But only using $x, not the litteral "foobar".
[Coke] jnthn++ #nqp unborkage. 22:04
jnthn [Coke]: *phew*
TimToady r: my @a = <1 2 3>; my @b = <4 5 6>; my @c = <7 8 9>; for (@a Z @b Z @c).tree -> [ $a, $b, *@rest ] { say "$a $b" } 22:05
camelia rakudo a17430: OUTPUT«1 4␤2 5␤3 6␤»
TimToady rjbs: that works, though lol should too
dalek : ad07a61 | (Tobias Leich)++ | / (3 files):
strip role-specifica from package_def
pmichaud grondilu: I wonder if some variation of <*...> would work here. 22:06
TimToady in this case .tree is producing what .lol ought to, since the tree is only one deep
adu o wait, that's wrong
[Coke] jnthn: next borkage - can't config rakudo/jvm-support with that installed nqp
pmichaud grondilu: as in, something like <*$x> . However, that's definitely NYI in Rakudo.
[Coke] Unhandled exception: ModuleLoader.class (No such file or directory)
pmichaud I need to go feed a kid, bbl
rjbs TimToady++ # great, thanks!
[Coke] (when trying to run the installed NQP from another directory) 22:07
cognominal nqp: gist.github.com/cognominal/5485184
jnthn [Coke]: You need to make install in the NQP directory
camelia nqp: OUTPUT«Method 'O' not found for invocant of class 'NQPMu'␤current instr.: '' pc 189 ((file unknown):100) (/tmp/OHG_mUMeye:2)␤»
[Coke] jnthn: yes, did that.
grondilu r: my $x = 'foobar'; say "foo" ~~ / <* $x > /;
adu jnthn: pastie.org/7739971
camelia rakudo a17430: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter < (must be quoted to match literally)␤at /tmp/eeYs5xsnPr:1␤------> my $x = 'foobar'; say "foo" ~~ / <⏏* $x > /;␤Unable to parse regex; couldn't find final '/'␤at /tmp/eeYs5xsnPr:1␤--…
jnthn And run the nqp in there
[Coke]: Hmm...
22:07 wolverian left
TimToady n: my $x = 'foobar'; say "foo" ~~ / <* $x > /; 22:08
camelia niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===␤␤Action method assertion:sym<*> not yet implemented at /tmp/TrVskHhCmS line 1:␤------> my $x = 'foobar'; say "foo" ~~ / <* $x ⏏> /;␤␤Unhandled exception: Unable to resolve method oplift in type Any␤ at /ho…
[Coke] jnthn: aye.
wonder if I need to kill the install dir with fire and reinstall.
jnthn omg
[Coke] no love.
jnthn no, I just need to look what I'm doing
[Coke] jnthn: yessss?
ah, whew.
-> commute 22:09
TimToady rakudo on jvm?
[Coke] nothing to see here, TimToady!
adu jnthn: what are you doing?
cognominal what is the problem with this grammar? gist.github.com/cognominal/5485184
22:09 DET15 joined
cognominal oops 22:09
dalek p/rak-jvm-support: 0b4efcf | jnthn++ | tools/build/install-jvm-runner.pl:
Fix make install on non-Windows, hopefully.

  [Coke]++ again.
cognominal a stray space
22:10 DET15 left
cognominal works now 22:10
jnthn adu: Putting arguments in the wrong order in a generated shell script, apparently... :)
adu :)
jnthn adu: I'm guessing that explodes with something like not being able to stringify the exception?
adu jnthn: something like that 22:11
it doesn't for me because I put an extra nqp::getcodename() in stringify, to see if that would help 22:12
for me it says "getcodename can only be used with a CodeRef"
jnthn Yeah, and it's correct ;)
adu lol
jnthn smart_stringfiy is not so smart it turns out... :)
adu I have a general question… where is nqp's main? 22:14
dalek kudo/jvm-support: eb61e56 | jnthn++ | / (3 files):
Stub in a rakudo-runtime.jar build.
kudo/jvm-support: ec3e2e1 | jnthn++ | src/vm/jvm/Perl6/Ops.nqp:
Fix copy-pasto.
jnthn adu: MAIN is in src/NQP/Compiler.nqp 22:15
adu interesting 22:17
dalek p/rak-jvm-support: bfe3fcc | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Make exceptions stringify to message.

Fixes issue discovered by adu++, and means we make it through QRegex and P5Regex tests (though with failures).
22:21
p/rak-jvm-support: 1a8fbc8 | jnthn++ | src/HLL/Grammar.nqp:
Fix FAILGOAL in HLL::Grammar.
22:24
adu oh no, my github name is different than my irc name :( 22:29
FROGGS ya dude
22:30 ozmq joined 22:32 dean__ joined
lue wonders what rak-jvm-support is about 22:39
FROGGS about shaving I've heard 22:42
sorear lue: rak(udo) j(ava) v(irtual) m(achine) support
lue OK. 22:43
jnthn lue: It's a branch where I've got changes that jvm-support branch in Rakudo that is currently being worked on depends on (no, nothing exciting to play with just yet...) 22:44
dalek : 653971c | (Tobias Leich)++ | lib/Perl6/P5Grammar.pm:
silence exception about package def in subscope
: c116edb | (Tobias Leich)++ | / (2 files):
added mro to the pragma-todo-list (which are noops yet)
lue alright, just curious (I thought "rak" might've been some Java technology I'm unfamiliar with) 22:46
22:47 Chillance left
FROGGS .oO( the successor of AJAX? It is so dynamic it can even make coffee! ) 22:48
22:59 skids joined
adu jnthn: it's still broken 23:01
23:01 xilo joined
jnthn adu: What is? 23:06
FROGGS gnight 23:07
23:07 FROGGS left 23:08 dean__ left
jnthn adu: It certainly made some kind of difference here. 23:10
adu maybe I need to make clean 23:13
jnthn adu: Maybe...what are you trying that doesn't work?
adu make test
jnthn Oh, I know *that* explodes. 23:14
I thought you meant the exception stringification thing.
The regex tests get a load further now, though.
adu I thought you added getmesage somewhere 23:15
or .message I see
jnthn No, I fixed it so exceptions automatically stringify to the message. 23:16
23:19 tgt left 23:20 tgt joined 23:22 ozmq left
jnthn Sleep time... 'night 23:22
adu jnthn: can you see what ./nqp -e 'my $ok := "BAD"; try { nqp::die("GOOD"); CATCH { $ok := $_; }; }; say($ok)' gives you?
it's not working for me 23:23
jnthn adu: GOOD
adu hmm, is there anything else other than "make clean" I should be doing?
jnthn adu: Wait, I pushed that fix to origin/rak-jvm-support
Not to origin/master
Maybe it's just that you ain't on that branch? :) 23:24
adu oh, hahaha
thanks 23:26
jnthn OK, really sleep... &
adu should I commit my test case to that branch?
jnthn adu: yes, plesae :)
adu ok
gnight
hmm 23:36
23:48 ozmq joined 23:50 roll joined 23:51 ozmq left 23:55 Vlavv_ left 23:59 ozmq joined