»ö« 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. |
|||
hoelzro | I thought I had the algorithm wrong for a good 30 minutes before I figured it out =/ | 00:00 | |
jnthn | hoelzro: It doesn't have to be an assignment to @!values. Declare a my @x; there and assign to it and you get the same. | ||
hoelzro: I'm wondering if we've a $*LEFTSIGIL leak or something. | |||
hoelzro | I suspected $*LEFTSIGIL | 00:01 | |
but didn't know what I was doing =P | |||
00:01
mtk joined
|
|||
hoelzro tries some moar prints | 00:01 | ||
colomon | pdcawley: wonder if anyone else is building it with 10.9. | 00:03 | |
colomon is very slow to upgrade … only upgraded from 10.6 to 10.8 back in July. | |||
00:05
xenoterracide left
|
|||
pdcawley | colomon: any docs anywhere on smoking the perl6 build? | 00:05 | |
colomon | pdcawley: on different build platforms? I don't think we've got anything like that set up yet. | ||
pdcawley | Hmm... I'm _so_ unlikely to step up to that particular plate :) | 00:06 | |
00:06
xenoterracide joined
|
|||
moritz | though 'make spectest' would form a good base for that | 00:06 | |
jnthn | Time for some rest...'night o/ | 00:07 | |
pdcawley | g'night mate. | ||
00:07
cognominal joined
|
|||
colomon | pdcawley: I've got a p6 module smoker, but so far it only tests on Parrot Rakudo on my Linux box. | 00:07 | |
japhb | o/ jnthn | ||
Is anyone around that can check out why feather.perl6.nl:3000/projects.json is timing out? | 00:09 | ||
00:10
thou joined
00:12
dayangkun left
00:14
cognominal left
00:15
zakharyas left
|
|||
[Coke] | (smoking the perl6 build) yes, we do that daily. You could run my stuff ad hoc if you wanted. | 00:15 | |
[Coke] hurls github.com/coke/perl6-roast-data | 00:16 | ||
(that tests rakudo-j, rakudo-p, niecza, and pugs every day) | |||
er. we have no smoke server yet though. )we have the parrot one, but no one uses it.) | |||
that's another of my backburner projects. | |||
liz - I think we had mixbag for a day. | 00:20 | ||
TimToady was in a renaming frenzy. | |||
TimToady foams a little at the mouth. | 00:23 | ||
hoelzro goes to bed too | 00:24 | ||
colomon | TimToady: can you quickly explain how STD handles parsing regexes? I'm trying to sort out what Niecza is doing... | ||
itz_ | how long does the moar "please wait stage" take? I'm sure its just going to core dump :) | 00:25 | |
TimToady | colomon: easy peasy, just look at the P5 that code turns into :) | 00:27 | |
00:29
kivutar left
|
|||
TimToady | colomon: the important thing with respect to :s is that quantified_atom determined all the sigspace, in cahoots with sigmaybe | 00:30 | |
and all the constructs that enable sigspace set $*SIGOK so sigmaybe knows whether to treat the space as significant | 00:31 | ||
*determines | |||
colomon | and those are all new / modified with the new sigspace rules, right? | 00:32 | |
TimToady | plus anything else I said back when Mouq++ was fixing rakudo | ||
so you could check out Mouq's changes and see what he did | 00:33 | ||
or wait till he gets back online and ask him :) | 00:34 | ||
the complicated bit is that the sigspace attaches at a different place in the AST, if I recall | 00:40 | ||
00:42
ajr_ left
00:45
preflex left,
preflex_ joined,
ChanServ sets mode: +v preflex_
00:46
preflex_ is now known as preflex
|
|||
BenGoldberg | So I was reading the irc log, and came across S32/Containers ... | 00:50 | |
Specifically perlcabal.org/syn/S32/Containers.html#grab | |||
And I'm curious as to why only QuantHash has a .grab method, and not any other container | 00:51 | ||
TimToady | QuantHash is a role | 00:54 | |
r: say SetHash ~~ QuantHash | |||
camelia | rakudo-parrot de5c8f, rakudo-jvm de5c8f: OUTPUT«True» | ||
TimToady | r: say Set ~~ QuantHash | 00:55 | |
camelia | rakudo-parrot de5c8f, rakudo-jvm de5c8f: OUTPUT«True» | ||
TimToady | hmm, that seems wrong | ||
sets are immutable, so .grab makes no sense | |||
r: my $s = set(<a b c>); say $s.grab | 00:56 | ||
camelia | rakudo-parrot de5c8f: OUTPUT«Cannot call 'grab' on an immutable 'Set' in method grab at gen/parrot/CORE.setting:15300 in block at /tmp/j7jTJDNa3r:1 in any at /tmp/j7jTJDNa3r:1 in any at gen/parrot/stage2/NQPHLL.nqp:1146 in any eval at gen/parrot/stage2/NQPHLL.…» | ||
..rakudo-jvm de5c8f: OUTPUT«Cannot call 'grab' on an immutable 'Set' in block at /tmp/309gmtPfNA:1 in any eval at gen/jvm/stage2/NQPHLL.nqp:1086 in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292 in any command_eval at gen/jvm/stage2/NQPHLL.nqp:1196 in any command…» | |||
TimToady | anyway, Set shouldn't do QuantHash in my book | 00:57 | |
(or Bag, or Mix) | |||
so rakudobug on reporting Set ~~ QuantHash as true | 00:58 | ||
00:58
pmurias left
|
|||
TimToady | on the compiling jvm, I've often run into the OOM that piers hit, but recompiling with the same command immediately generally works! | 00:59 | |
dunno why that happens, unless jvm is keeping some state around from run to run | 01:00 | ||
(this is openjdk) | |||
01:01
xenoterracide left
|
|||
TimToady | maybe it's jvm keeping process around after they've 'exited' somehow | 01:01 | |
pdcawley | TimToady: Weird. | 01:04 | |
Sooner I can get off JVM and onto Moar, the better, methinks. | |||
01:06
emma_ is now known as emma
01:09
jnap left
01:15
xenoterracide joined
01:19
pdcawley left
01:26
Entonian joined
01:28
skyheights joined
01:29
skyheights left,
jlaire left
|
|||
BenGoldberg | Why isn't there an Array.grab method? | 01:30 | |
01:32
xenoterracide left
01:36
TimK1 left,
xenoterracide joined
01:39
jnap joined
|
|||
lue | BenGoldberg: because Array.pick and Array.roll should do the job already :) . | 01:40 | |
01:42
xenoterracide left
01:43
thou left
01:44
jnap left
01:47
Entonian left,
xenoterracide joined
01:59
jeffreykegler left
|
|||
timotimo | lue: except grab is supposed to remove the item at the same time as returning it, no? | 01:59 | |
02:07
lizmat left
02:09
aindilis` left,
aindilis joined
|
|||
lue | timotimo: .pick acts as though you're removing items already. Arrays are immutable, AFAIK, so .grab really doesn't provide anything Array.pick doesn't already do. | 02:13 | |
TimToady | removing items from an Array is not generally what you want to do, either | ||
you should probably be using a SetHash in that case | 02:14 | ||
lue | Array.grab would only serve as a useful synonym for too-liberally type-constrained variables. :) | ||
TimToady | well, if you did implement Array.grab, you'd probably want it to do a splice, not a delete | 02:17 | |
lue | I meant that as in method grab(<params>) { self.pick(<params>) } | 02:18 | |
colomon | lue: Arrays are mutable. | 02:20 | |
lue | oh? | ||
r: say ++(Array.new(1,2,3)[1]); | |||
TimToady | mapping .grab to .pick is always wrong | ||
camelia | rakudo-parrot de5c8f, rakudo-jvm de5c8f: OUTPUT«3» | ||
lue | r: say (++Array.new(1,2,3)[1]).perl; | ||
camelia | rakudo-parrot de5c8f, rakudo-jvm de5c8f: OUTPUT«3» | ||
TimToady | pick is "without replacement", but the array itself is not modified | 02:21 | |
grab always modifies whatever you're grabbing from | |||
it's not polite that way :) | |||
lue would then contest that changing the size of an Array via randomly removing certain numbers is perhaps not the best idea. I'm with TimToady on that being a more SetHashy thing. | 02:22 | ||
s/numbers/elements/ | 02:23 | ||
colomon just timed his ISO 10303-21 test suite, and it's 4x faster under jakudo. | 02:27 | ||
shaves 75% off the timing, I mean. | 02:28 | ||
also, having perl-j available for easy testing is really nice. | 02:36 | ||
02:37
kaare_ joined
02:48
filly left
02:50
jnap joined
02:57
filly joined,
jnap left
03:05
hummeleBop1 left
03:08
jeff_s1 left
03:19
segomos left,
segomos joined
|
|||
diakopter | forwarded something to p6-l | 03:23 | |
colomon | p6-l? | 03:25 | |
r: say (32 < * < 128)(1000) | 03:26 | ||
camelia | rakudo-parrot de5c8f, rakudo-jvm de5c8f: OUTPUT«True» | ||
colomon | rakudobug | ||
timotimo | known :( | 03:27 | |
colomon | no need to call you-know-who, then. timotimo++ | 03:28 | |
colomon mourns his beautiful code which …. no, I can do this. | 03:29 | ||
actually looks better this way. | |||
03:42
atroxaper joined
03:46
xinming_ joined
03:49
xinming left
|
|||
diakopter | p | 03:51 | |
colomon: perl6-language? | |||
you know, on that thing we used before github, email | 03:52 | ||
colomon | diakopter: that was more along the lines of "why would a sensible person send something to perl6-language?" | ||
diakopter | heh oh | 03:54 | |
colomon | I've come to associate it strongly with endless pointless chatter. :) | ||
diakopter | take a look at what I sebt | 03:56 | |
sent | |||
colomon | diakopter++ # hopefully that's safe | 03:57 | |
diakopter | what's safe? | 03:58 | |
colomon | your message | ||
people won't start arguing about the color of the benchmarks, or something like that. | |||
bikeshedding, that's the term. | 04:01 | ||
04:20
atroxaper left,
atroxaper joined
04:21
preflex_ joined,
ChanServ sets mode: +v preflex_
04:22
preflex left,
preflex_ is now known as preflex
04:26
atroxaper left
04:27
atroxaper joined
04:32
BenGoldberg left
04:49
Entonian joined
05:01
adu joined
05:05
atroxaper left
05:09
raiph left
05:16
atroxaper joined
05:18
thou joined
05:20
araujo left,
itz joined
05:21
Entonian left
|
|||
diakopter | well, you could build it entirely out of paint. | 05:37 | |
or paint thinner it into nothing. | |||
05:40
Entonian joined
05:46
Entonian left
05:52
atroxaper left
06:08
rurban1 joined
06:12
rurban2 joined
06:13
rurban1 left
06:15
SamuraiJack_ joined
06:19
rindolf joined
06:22
rurban2 left
06:27
SamuraiJack_ left
06:30
SamuraiJack joined
06:38
SamuraiJack left,
rurban1 joined
06:39
SamuraiJack joined
06:50
zakharyas joined
06:52
rurban1 left
07:06
darutoko joined
|
|||
[Coke] | diakopter: wow, if that was on a weekend, I'd make the drive. | 07:08 | |
07:11
zakharyas left
07:19
quester joined
07:23
rindolf left
|
|||
dalek | rl6-roast-data: 2d5a20e | coke++ | / (5 files): today (automated commit) |
07:38 | |
FROGGS | japhb: I am working on that: irclog.perlgeek.de/perl6/2013-12-06#i_7967667 | 07:45 | |
07:52
SamuraiJack_ joined
07:53
lizmat joined
07:56
SamuraiJack left
07:57
adu left,
adu_ joined,
adu_ is now known as adu
|
|||
moritz | m\orning | 07:59 | |
07:59
sqirrel joined
|
|||
FROGGS | morning mo/ritz | 07:59 | |
preflex: tell pdcawley that your problem seems to be that java's classpath environment variable is set, can you unset it and try again? | 08:02 | ||
preflex | Consider it noted. | 08:03 | |
08:03
adu left
|
|||
FROGGS | lee_: same for you | 08:03 | |
jnthn: rakudo-p's stage parse dropped from ~124s to ~117s # jnthn++ | 08:10 | ||
moritz thought the optimizations where jvm only? | 08:12 | ||
oh, there's the "Optimize QAST node creation" commit in nqp | 08:13 | ||
FROGGS | yeah, must be that then... | ||
I mean, I didn't make a proper benchmark | 08:14 | ||
moritz | and a commit not use slurpies in the accessors of the QAST nodes | ||
FROGGS | both are likely to save seconds | 08:15 | |
08:16
quester left,
xenoterracide left,
quester joined
08:17
quester is now known as Guest62135
08:18
sqirrel left
|
|||
Guest62135 | help set | 08:24 | |
08:25
Guest62135 left
08:26
xenoterracide joined
|
|||
FROGGS | I have an idea about installing several modules that provide a binary that has the same name as the other modules | 08:30 | |
when installing it a wrapper is created with that file name, that would execute the binary of the "best" module [more] | |||
like a "use Foo" would need/import the best module | |||
and then the wrapper would provide options like --auth, --name and --ver, that does the lookup if you want to execute an older binary or a dev version | 08:31 | ||
08:36
quester_ joined,
quester_ left,
quester_ joined,
genehack_ is now known as genehack
|
|||
FROGGS | moritz: what is your opinion on that? | 08:36 | |
08:37
quester_ left
|
|||
FROGGS | it would even work with development modules, since their bin folder should be in path first (and the user is responsible for that) | 08:37 | |
08:39
lizmat left
|
|||
FROGGS | and btw, I am thinking about creating a wrapper that defaults to `perl6`, and a wrapper-p for perl6-p, and a wrapper-j for perl6-j | 08:41 | |
so, panda-j would work then in theory | |||
08:51
quester__ joined,
quester__ left,
quester__ joined
09:06
quester__ is now known as quester
09:08
FROGGS left,
quester left
09:14
lizmat joined
|
|||
lizmat | FROGGS: isn't that the responsability of CompUnitRepo.candidates ? | 09:22 | |
09:23
PacoAir joined
|
|||
lizmat | and morning #perl6! | 09:23 | |
09:28
FROGGS joined
|
|||
FROGGS | lizmat: the wrapper would ask the CompUnitRepos for candidates, as for "use Foo", yes | 09:29 | |
lizmat | so I'm not sure you would need a wrapper ? | 09:31 | |
FROGGS | lizmat: I am talking about installed scripts | ||
how will that work without a wrapper? | |||
say you have installed version 1 of panda and version 2 of panda in home | 09:32 | ||
both provide a panda executable | 09:33 | ||
lizmat | that would be 2 CompUnitRepo objects, no? | ||
FROGGS | no | ||
home is a CompUnitRepo | |||
lizmat | one for the installed version, and one for home? | ||
FROGGS | err, I meant that both are installed in home | 09:34 | |
so, when you execute `panda`, you should clearly execute the binary from version 2 | |||
but what if you want to execute `panda` from version one? | 09:35 | ||
you are unable to do so | |||
(without a wrapper) | |||
lizmat | I'm unsure whether it should be possible at all to have this situation | 09:36 | |
FROGGS | why? | 09:37 | |
lizmat | assuming a CompUnitRepo maintains a database of sorts in the directory for which it is responsible | ||
FROGGS | yes | ||
lizmat | how would both panda 1 and panda 2 be installed in there without either two databases clashing | 09:38 | |
or the one database knowing about both of them | |||
FROGGS | you have a single bin folder per CompUnitRepo | ||
lizmat | perhaps | ||
that's the responsibiliuty of the CompUnitRepo | 09:39 | ||
FROGGS | so, if you install several versions of panda to the same CompUnitRepo, then you would be in that situation, no? | ||
lizmat | whether or not that uses a bin dir, is entirely up to the implementation of that CompUnitRepo | ||
FROGGS | you need a bin dir to execute scripts | ||
there is no other way | |||
lizmat | hmmm | 09:40 | |
so we're extending "use" and "need" now to qx() ? | |||
FROGGS | you need somewhere a folder that contains a thing called "panda" to run panda | ||
no | |||
it is about executing script from your shell | |||
09:40
SevenWolf left
|
|||
FROGGS | you don't run panda from a use statement | 09:41 | |
it is a command line tool | |||
lizmat | ok, I misunderstood your original statement | ||
09:41
woolfy joined
|
|||
FROGGS | good | 09:41 | |
:o) | |||
lizmat | .oO( must wake up first, get more tea ) |
||
FROGGS | so the problem is: | ||
you type "panda" or "perl6-debug" into your shell, and press enter | 09:42 | ||
it looks up a binary in you PATH | |||
and then, this script is from a specific version of its distro | |||
it will usually do a "use" of a module of its distro | 09:43 | ||
which might even be the wrong one for that script version | |||
lizmat | hmmm... I guess this touches on the more general issues of non-source files associated with a distribution | ||
FROGGS | true, but binaries are a thing on its own | 09:44 | |
locating files you might load from within your module is another problem | |||
FROGGS .oO( File::ShareDir ) | |||
btw, when doing "panda --ver=1", I'd propose that all use-statements within that panda script that use modules from its dist will get the :ver(1) passed implicitly | 09:49 | ||
lizmat | TimToady: re irclog.perlgeek.de/perl6/2013-12-07#i_7969313 : there is no QuantHash role implemented just yet | 09:50 | |
because of the attribute visibility issue with roles, I didn't start with refactoring all of the Set/Bag/Mix stuff to the role structure as specced just yet | 09:51 | ||
09:54
Piers_ joined
09:55
cognominal joined
09:57
Rotwang joined,
kivutar joined
|
|||
lizmat saved a conversation with jnthn of about 6 weeks ago | 10:12 | ||
gist.github.com/lizmat/7839326/raw...tfile1.txt | |||
and is going to look at it while at the patch -p1 | 10:13 | ||
10:15
rindolf joined
|
|||
FROGGS | nice | 10:17 | |
rindolf | Hi all. | 10:18 | |
FROGGS: hi. | |||
FROGGS | hi rindolf | ||
rindolf | FROGGS: there's a pull request for the SDL_manual. | ||
FROGGS | rindolf: PR applied, thanks for reporting :o) | 10:20 | |
rindolf | FROGGS: OK. | ||
FROGGS: you're welcome. | |||
FROGGS: and thanks for applying it. | |||
FROGGS | sure | ||
:o) | |||
10:23
Piers_ left
10:24
araujo joined
10:26
Timbus left
10:28
sivoais left
10:29
Rotwang left,
sivoais joined,
Timbus joined
|
|||
jnthn | morning o/ | 10:34 | |
10:34
Piers_ joined
|
|||
diakopter | mawrnig | 10:34 | |
lizmat | jnthn, diakopter: good *! | 10:36 | |
jnthn: re "At the moment, when we see a $!foo, we immediately ask the class, "do you know of a $!foo"?" | |||
I'm having trouble locating where that is done | |||
do you have a pointer :-) | 10:37 | ||
jnthn | Well, it'll be some code-path from variable... | ||
lizmat | check_variable perhaps ? | 10:38 | |
10:40
szabgab joined
|
|||
jnthn | No | 10:40 | |
szabgab | hi everyone, | ||
FROGGS | don't you see the location when you run that code with --ll-exception? | ||
szabgab: hi | |||
szabgab | I wonder if someone could give me a hand with a Grammar | ||
FROGGS | sure | 10:41 | |
jnthn | lizmat: In make_variable_from_parts | ||
szabgab | github.com/szabgab/perl6-xml-sax | ||
I have that stupid XML parser | |||
jnthn | lizmat: In the elsif $twigil eq '!' { ... } branch | ||
szabgab | it passed its test in february - the last time I checked | ||
but now, with * 2013.11 it fails | |||
lizmat | jnthn: thanks! | 10:42 | |
szabgab | of course if there is a good XML parser in Perl 6 , then I can start using that instead of mine ... | ||
hi lizmat , long time not seen! | |||
lizmat | hi szabgab, see you at FOSDEM? :-) | ||
szabgab | unlikely :( | 10:43 | |
lizmat | well, you are responsible for woolfy and me having gone there for the past 4 years! | ||
so you should come every now and then as well :-) | 10:44 | ||
jnthn | lizmat: Specifically, it's the call to get_attribute_meta_object that actually throws | 10:46 | |
lizmat | I just found that, using FROGGS++ suggestion: called from Sub 'get_attribute_meta_object' pc 14738 (src/gen/perl6-actions.pir:5834) (src/Perl6/Actions.nqp:1776) | ||
szabgab | lizmat: I know, and I am really sorry | 10:47 | |
FROGGS | szabgab: I'll check | ||
szabgab | FROGGS: thanks! | ||
lizmat | don't! although exhausting, it's always been fun! | ||
szabgab | lizmat: I am really sorry I cant' come :( | 10:48 | |
lizmat | ah, ok | ||
:-) | |||
we too :-( | |||
FROGGS | perl6-xml-sax$ PERL6LIB=lib prove -e perl6 t | ||
t/xml.t .. 1/39 Left over string: '<chapter id="12" name="perl" ></chapter>' | |||
szabgab: is that what you get? | |||
szabgab | yes | ||
this is the first test case with attributes | 10:49 | ||
so I think the problem in the grammar is somewhere matching attr | |||
the grammar does not match that string | 10:50 | ||
FROGGS | szabgab: gimme a few minutes | 10:51 | |
rindolf | szabgab: hi. | ||
jnthn | FROGGS: Mebbe sigspace changes... | 10:52 | |
szabgab | hi rindolf | ||
FROGGS | that is possible | ||
github.com/szabgab/perl6-xml-sax/b...mar.pm#L13 | 10:53 | ||
maybe that should be a rule? | |||
10:54
thou left
|
|||
jnthn | Well, but does it rely on backtracking semantics? | 10:54 | |
But yeah, it's an issue 'cus | |||
\< <element> <attr>* \/\> } | |||
And then | |||
rule attr { [<name>\=\"<value>\"] } | |||
Will no longer match whitespace at the start | 10:55 | ||
Alternatively, turning token element { \w+ } into a rule may be the quickest fix (to match whitespace after the element name) | |||
Oh...but that may screw up the actions :) | |||
FROGGS | szabgab: I changed all regexes to "rule", and now it fails four tests only | 10:56 | |
szabgab | I guess it would be hard to find out what changes were made to the regex engine that make this fail now. | 10:58 | |
and if those changes were intentional ? | |||
FROGGS | no too hard | ||
szabgab | the question if it is important to know | 10:59 | |
FROGGS | after an hour or two of bisecting you should know | ||
szabgab | :) | ||
FROGGS | and I bet these changes where intentional :o) | ||
raydiak | :w | ||
FROGGS | szabgab: after dinner I'll have a fix | ||
szabgab | then it ok | ||
raydiak | erm | ||
FROGGS | err lunch | 11:00 | |
szabgab | FROGGS: appreciate | ||
but if there is working XML parser, I could use that too | |||
FROGGS | dunno, is there? | 11:01 | |
jnthn | btw, from a performance perspective it's best to avoid regex in grammars.... | 11:06 | |
diakopter | heh. | 11:07 | |
szabgab | I also tried to switch all the regexes to rules | 11:10 | |
it seems the test failures are now all about leaving out the spaces | |||
from the text | 11:11 | ||
11:11
Piers_ left
|
|||
szabgab | Expected: ' before ' # Received: 'before ' | 11:11 | |
11:12
denis_boyun joined
|
|||
lizmat | jnthn: what is the significance of "$past.unshift(QAST::Var.new( :name('self'), :scope('lexical') ));" in "make_variable_from_parts" ? | 11:15 | |
is that creating self ? | |||
so, if we have multiiple $!vars, we would get multiple "self"s? | |||
jnthn | lizmat: When you look up an attribute, you need two children. | 11:18 | |
The object to do the lookup against, and then the class the attribute lives in. | |||
lizmat | ah, ok | ||
jnthn | That unshift is doing the first of those. | 11:19 | |
11:19
denis_boyun left
|
|||
jnthn | A QAST::Var is only declaring anything if there's also a :decl(...) in it. | 11:19 | |
Otherwise it's just a lookup | |||
lizmat | gotcha | ||
11:21
spider-mario joined
|
|||
lizmat | so how would I hang something off of $*PACKAGE ? | 11:22 | |
jnthn: because that's where I would to need to hang the hash of arrays of from, right ? | |||
create another hash with $*PACKAGE as the key ? | 11:23 | ||
jnthn | No | ||
Just declare a my %*ATTR_USAGES; or so in package_def, right where my $*PACKAGE is declared. | 11:24 | ||
Then you'll automatically get the right behavior if one package is nested inside another. | |||
lizmat | gotcha | 11:25 | |
jnthn | github.com/rakudo/rakudo/blob/nom/....nqp#L1896 is where I mean, just to be clear | ||
Though the comment is full of it...should say type object, not meta-object :) | |||
lizmat | will fix | 11:26 | |
jnthn | Hm, my apartment is darker than usual 'cus snow has covered the skylights :) | 11:28 | |
11:29
xinming_ left
|
|||
lizmat | so, if I understand you correctly, we would need to keep the $past around for each occurrence, as well as $/ for error reporting, right ? | 11:29 | |
so that we can fix up the $past when we compose the class? | 11:30 | ||
11:31
xinming joined
|
|||
FROGGS | szabgab: you've got a PR | 11:31 | |
jnthn | Yeah, though if you do $past.node($/) then you just can keep the $past around :) | ||
And then just do .node if you need to look it up. | |||
lizmat | ah, gotcha again | 11:32 | |
11:33
szabgab left
11:35
szabgab joined
|
|||
lizmat | jnthn: github.com/rakudo/rakudo/blob/nom/....nqp#L3689 contains a call to get_attribute_meta_object | 11:36 | |
but apparently it is not interested in the side effect | |||
only to throw if it doesn't exist | |||
this implies there is nothing to fix up | 11:37 | ||
so, should I just remove the test? | |||
jnthn | lizmat: Well, it's *only* interested in the side-effect. :) | ||
lizmat | (as I intend to resolve *all* $!private at compose time) | ||
jnthn: duh, must wake up some more | 11:38 | ||
so, get_attribute_meta_object will never throw | |||
jnthn | Well, today it does throw | ||
That's why it calls it. | |||
lizmat | package_def will throw later | 11:39 | |
jnthn | It's for the method foo($!bar) { } case. | ||
Right, but you need to make sure that happens. | |||
szabgab | FROGGS: thanks! | ||
colomon | jnthn++ # Stage parse : 84.557 | ||
lizmat | but there is no $past there to fix up? | ||
jnthn | Right, we could well just create a QAST::Var there with an appropriate name and $/. It'll be throw-away, but good enough for detecting the error. | 11:40 | |
lizmat | ok | ||
jnthn | So I'd just turn that line into a %*ATTR_USAGES{$name}.push(QAST::Var.new( :node($/) )) or so | ||
(Won't be quite that simple as no auto-viv in NQP. Maybe factor that out into an add_attr_to_check sub...) | 11:41 | ||
lizmat | ok | 11:42 | |
FROGGS | colomon: what backend is that? | 11:45 | |
11:46
tgt joined
|
|||
colomon | FROGGS: parrot | 11:46 | |
FROGGS | wow, nice machine :o) | ||
colomon | FROGGS: it's been routinely 90 for the last month or two, and was 100 for much of the summer | 11:47 | |
jnthn | Wow, indeed. What's it do JVM in? :) | ||
colomon | give me a mine... | ||
minuget | |||
minute | |||
two early | |||
jnthn hands colomon a mine and runs away | |||
colomon | silver or gold? | 11:48 | |
jnthn | Oh, I thought you meant the explosive kind | ||
My bad P | |||
:P | |||
colomon | compiling now. | 11:49 | |
11:51
markov left
11:53
Baggio left
11:54
szabgab left
11:59
SamuraiJack_ left
|
|||
lizmat | jnthn: if I understand this correctly, I should do the check *after* the pkg_compose, but before the create_code_object, right ? | 12:17 | |
jnthn | lizmat: Certainly after pkg_compose | ||
Where is the crate_code_object you're thinking about? | 12:18 | ||
lizmat | Actions, 1914 | ||
well, in my version, a few lines less in yours, I guess | |||
jnthn | lizmat: I think you may want to do it outside of that if/else | 12:19 | |
e.g. put it above the # Document | |||
lizmat | also for a role? | ||
jnthn | Sure, we need to check attribute declarations in roles too... | ||
lizmat | ah, duh | ||
ok | |||
jnthn | That's why I'm suggesting putting out outside of the if/else | 12:20 | |
Note that both branches call compose. | |||
lizmat | ok | 12:21 | |
do we have .kv in nqp ? | 12:22 | ||
jnthn | No | 12:23 | |
Just do for %hash { ... } | |||
And then you can do $_.key and $_.value | |||
lizmat | yeah, found that meme in the code :-) | 12:33 | |
12:34
markov joined
|
|||
lizmat | jnthn: Stage start : 0.000 | 12:39 | |
Error while compiling op p6decontrv: No scope specified or locatable in the symbol table for '$!WHY' | |||
jnthn: the diff so far: gist.github.com/lizmat/7840724 | 12:40 | ||
jnthn | yeah, I can see what's up | 12:41 | |
You can't move as much as you have | 12:42 | ||
These: | |||
- my $attr := get_attribute_meta_object($/, $past.name()); | |||
- $past.returns($attr.type); | |||
Are correctly moved, and should be. | |||
But the other lines... | |||
- $past.scope('attribute'); | |||
- $past.unshift(instantiated_type(['$?CLASS'], $/)); | |||
lizmat | need to be at the original location | 12:43 |