»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:02
saaki joined
00:11
whiteknight left
00:12
whiteknight joined
00:21
jimmy1980 left
|
|||
diakopter | phenny: tell TimToady I'll fix the smartlinks l8r | 00:23 | |
phenny | diakopter: I'll pass that on when TimToady is around. | ||
sorear | o/ diakopter | 00:24 | |
diakopter | hi | ||
sorear | diakopter++ | 00:27 | |
00:27
nbrown left
|
|||
sorear | TimToady: At what point does a sub invocation commit to running LEAVE phasers? | 00:28 | |
00:28
nbrown joined
|
|||
sorear | TimToady: e.g. what if PREconditions fail? what if ENTER dies? what if a return is run before the lexical position of the LEAVE? what if signature binding fails? | 00:28 | |
00:33
tokuhirom left
00:34
tokuhirom joined,
tokuhirom left
00:35
tokuhirom joined
|
|||
diakopter | sorear: does niecza have User-selected Brackets yet | 00:35 | |
I guess that's a STD.pm6 question | 00:37 | ||
std: say #`{{ } and { { { { {{ ... }} }} q<< <<woot>> >> | 00:38 | ||
p6eval | std 516268a: OUTPUT«ok 00:01 119m» | ||
diakopter | niecza: say #`{{ } and { { { { {{ ... }} }} q<< <<woot>> >> | ||
p6eval | niecza v8-29-g695339a: OUTPUT« <<woot>> » | ||
diakopter | wow | ||
00:38
Moukeddar left
|
|||
diakopter | nom: say #`{{ } and { { { { {{ ... }} }} q<< <<woot>> >> | 00:39 | |
p6eval | nom: OUTPUT«Confused at line 1, near "}} q<< <<w"current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)» | ||
00:39
tokuhirom left
|
|||
sorear | niecza: say q<< > > > >> | 00:43 | |
p6eval | niecza v8-29-g695339a: OUTPUT« > > > » | ||
diakopter | I was impressed :) | ||
00:51
lue left
|
|||
diakopter | S02 needs a summarizing paragraph to lead off its discussion of the object/type system | 00:56 | |
dalek | ecs: 57dfe75 | diakopter++ | S02-bits.pod: begin to add more headings to S02, break some more smartlinks, fix future tense |
00:57 | |
01:02
colourspace left
01:03
noganex_ joined
01:07
noganex left
|
|||
diakopter | phenny tell TimToady features++ for eventually promoting/enabling deslushification of Perl 6.0.0 | 01:15 | |
phenny: tell TimToady features++ for eventually promoting/enabling deslushification of Perl 6.0.0 | 01:17 | ||
phenny | diakopter: I'll pass that on when TimToady is around. | ||
sorear | diakopter: I think you mean moritz++ | 01:19 | |
diakopter | yes | 01:20 | |
01:25
donri left
|
|||
dalek | ast: 5e548ff | Coke++ | S02-magicals/env.t: nom fudging |
01:28 | |
kudo/nom: ba234b2 | Coke++ | t/spectest.data: run fudged tests |
01:29 | ||
01:29
whiteknight left
01:30
Gruber joined
01:31
Grrrr left
01:33
ranott left
01:46
Moukeddar joined
|
|||
dalek | ast: 988d3f9 | Coke++ | S03-operators/also.t: nom fudging |
01:47 | |
[Coke] | \o/ no more segfaults in t/spectest.data | ||
dalek | kudo/nom: 8590f22 | Coke++ | t/spectest.data: update failure conditions |
01:48 | |
01:51
Moukeddar left
01:55
jaldhar joined
02:00
woosley joined
02:01
Chillance left
|
|||
dalek | ecs: 3be7a8b | diakopter++ | S02-bits.pod: lots more headings in S02; lots more broken smartlinks; fix typos/grammaros |
02:02 | |
02:28
thundergnat left
|
|||
dalek | atures: c9cfaf9 | diakopter++ | features.json: add 10 more items to features |
02:29 | |
[Coke] | did a clean run of nom vs. master with tools/test_summary : | 03:08 | |
"Synopsis", "pass","fail","todo","skip","plan","spec" | |||
"NOM total", 9025, 21, 388, 959, 10393, 36331 | |||
"MAS total", 19535, 2, 599, 1765, 21901, 33956 | |||
nom: 9025/19535.say | |||
p6eval | nom: OUTPUT«19535» | ||
[Coke] | nom: (9025/19535).say | ||
p6eval | nom: OUTPUT«0.461991297670847» | ||
[Coke] | so my earlier master run was likely against the wrong set of spec tests. | 03:09 | |
(+5 todo passed in nom) | 03:10 | ||
03:10
beekor joined
|
|||
sorear | rakudo: say 2 + #`( hi ) 3 | 03:16 | |
p6eval | rakudo 922500: OUTPUT«5» | ||
sorear | nom: say 2 + #`( hi ) 3 | ||
p6eval | nom: OUTPUT«5» | ||
sorear | nom: say 2 + #`[[ hi ] ] ] ]] 3 | ||
p6eval | nom: OUTPUT«5» | ||
sorear | nom: say 4\ .sqrt | 03:17 | |
p6eval | nom: OUTPUT«2» | ||
dalek | ast: 9e4b2c2 | Coke++ | S32- (2 files): unfudge some passing tests for nom |
03:19 | |
03:22
wolfman2000 left
03:23
Su-Shee_ joined
03:25
Su-Shee left
03:34
mattp_ joined
|
|||
TimToady | sorear: good questions--I'll have to spec the exact sequence of phaserness more fully | 03:37 | |
phenny | TimToady: 00:23Z <diakopter> tell TimToady I'll fix the smartlinks l8r | ||
TimToady: 01:17Z <diakopter> tell TimToady features++ for eventually promoting/enabling deslushification of Perl 6.0.0 | |||
TimToady | couple quick answers though | ||
sub invocation commits to LEAVE phasers between PRE and ENTER | 03:38 | ||
I think PRE and POST have to be officially in the dynamic scope of the call, whether or not they're in the lexical scope | |||
03:38
jaldhar left
|
|||
TimToady | so a PRE failure does not do LEAVE, but ENTER failure does | 03:39 | |
the traits on declarations 'will leave ...' may be more finely tuned not to fire if the declarator in question never ran | |||
LEAVEs run whether or not the flow of control reached them | |||
signature binding is outside of everything, I think, including PRE/POST | 03:40 | ||
though might have to rethink then if sig binding can change an object in BUILD | |||
s/then/that/ | |||
maybe sig binding can happen after PRE | 03:41 | ||
it gets a bit messy with multi dispatch though if you're running a PRE and then decide you didn't dispatch to this one because it failed the sig binding | |||
sorear | by PRE, do you mean the phaser or the submethod? | 03:42 | |
TimToady | I mean the phaser, but might call out to a class-scoped PRE at that point | ||
a phaser would be in lexical scope, but a class-PRE wouldn't | |||
both could be in dynamic scope though | |||
(I think) | 03:43 | ||
it seems to me we haven't actually decided to call this function till the binding succeeds | |||
not sure what to make of $!foo params to BUILD in that case though | |||
sorear | consider 'my $x'. Up until now I had been thinking that the Scalar object is created at ENTER time | ||
TimToady | are you asking whether a PRE can see $x? | 03:44 | |
sorear | however this is problematic with PRE. I wonder if 'lexpad setup' should be before *everything* | ||
03:44
jaldhar joined
|
|||
TimToady | I think of it that way | 03:44 | |
hopefully it can be just allocate a chunk of memory and write 0's to it :) | 03:45 | ||
sorear | TimToady: more to the point, consider sub foo($x = $*BAR) { my $*BAR } | ||
TimToady | otherwise some of the phasers would need guards of some sort | ||
right, the lexpad has to be there before binding, in some sense | 03:46 | ||
sorear | in niecza currently, this will crash, because memory for $*BAR is allocated at ENTER time, which is after sig binding | ||
TimToady | well, that's kinda special | 03:47 | |
not sure we shouldn't just declare that erroneous | |||
sorear | another case that's bitten me is method comb($matcher = /./) { ... } | 03:48 | |
that translates to something like method comb($matcher = $dot) { ENTER my $dot = /./ } according to the subs-are-cloned-once rule | |||
I'm thinking now it should be BEFORE-EVERYTHING not ENTER | 03:49 | ||
TimToady | prolly, if it doesn't impact performance too terribly | ||
it does seem to mean that multis with constraints have to set up lots of lexpads that might be immediately rejected | 03:50 | ||
maybe most of 'em can be optimized though | 03:51 | ||
it's always a bit tricky to define what constitutes the sort of errneously anti-social behavior that an optimizer an assume won't happen | 03:52 | ||
erroneously even | 03:53 | ||
s/an/can/ | |||
we do want this stuff to run fast... | |||
and I'm not above being the doctor that says "Well, don't do that..." | 03:54 | ||
sorear | heh. | ||
TimToady | gah, still haven't managed to backlog from last night--been that kind of day... | 03:55 | |
sorear | funny thing is, as I add more performance hacks and other features to niecza, the set of things declared erroneous is *shrinking* | ||
for instance, there's no longer any significant win to be had by making my $var not CALLER::-accessible | |||
TimToady | well, I would like to think that indicates good design and good implementation, but I'm dubious | ||
sorear | so am I | ||
I'm postponing judgement until I can see more of the finalish design | 03:56 | ||
TimToady | the my $var thing was more for safety | ||
since it's a way to view lexicals outside their lexical scope | |||
which mean it'll almost always be used for cheating | 03:57 | ||
*means | |||
sorear | Oh | ||
TimToady | so it's more of an encapsulation thing than a performance thing | ||
but could be a performance thing if we poke lexicals into registers that can't be viewed by CALLER | 03:58 | ||
I'd like to know that $x can't be modified by foo() | 03:59 | ||
so it's also one of those might-be-an-issue-someday things | 04:00 | ||
sorear | encapsulation is such a slippery thing | 04:04 | |
TimToady | ja | ||
sorear | my 2¢ is that we should provide PadWalker in core so that nobody is tempted to hack it in with XS | ||
TimToady | yes, well, as long as it's documented as a form of cheating, and cheaters usually get caught eventually | 04:05 | |
that's why we have an 'is dynamic' declaration, to tilt it away from the optimizer's cheating toward the callee's cheating :) | |||
but most of the time we want to bias things in favor of the optimizer | 04:06 | ||
so dumb code runs fast | |||
because 90% of code is crud too | 04:07 | ||
diakopter | lola | ||
04:08
kaare_ joined
|
|||
TimToady | diakopter++ for S02 divisions, though ObjAt might be a smidge too detailed for features | 04:08 | |
diakopter | ok | 04:09 | |
TimToady | we almost want a knob to turn the detail up and down somehow | ||
04:09
odoacre joined
|
|||
diakopter | I'll remove ObjAt if it's implemented ;) | 04:09 | |
TimToady | :D | ||
diakopter | nom: say 1.WHICH.WHAT | 04:10 | |
p6eval | nom: OUTPUT«Int()» | ||
diakopter | niecza: say 1.WHICH.WHAT | 04:11 | |
p6eval | niecza v8-29-g695339a: OUTPUT«Unhandled exception: Unable to resolve method WHICH in class Int at /tmp/I9McPDzgsN line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 1983 (CORE C930_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 1984 (CORE module-CORE… | ||
TimToady | I've wondered if we want separate entries for HOW, WHAT, WHICH etc though | ||
maybe down in the MOP section | |||
diakopter | soupnds good | ||
TimToady | ObjAt might be considered a part of WHICH | ||
diakopter | where'd the p come from | 04:12 | |
sorear | WHAT is the kind of thing that you can't even pretend to have a working Perl6 without | ||
04:12
birdwindupbird joined
|
|||
diakopter | niecza: say 1.WHAT | 04:12 | |
p6eval | niecza v8-29-g695339a: OUTPUT«Int()» | ||
sorear | niecza had that pretty much from right when I added objects | ||
diakopter | niecza: say 1.0.WHAT | ||
p6eval | niecza v8-29-g695339a: OUTPUT«Rat()» | ||
sorear | which would have been last August | ||
diakopter | oo was there a birthday | 04:13 | |
sorear | we should think about how inclusive we want the horizontal axis to be | ||
diakopter: yes | |||
TimToady | maybe WHAT is the definition of Basic OO :) | ||
HOW is right up there too | 04:14 | ||
sorear | I think I'm becoming dyslexic, I see tails on those Os :D | ||
dalek | ast: 0836cea | Coke++ | / (3 files): nom fudging |
||
TimToady | just so you're not lysdexic | ||
we can't afford to have you with a broken right hand | |||
diakopter | I didn't realize niecza and nom both support the full set of Bracketing Characters | 04:15 | |
sorear | if we start adding noncompetitive Perl 6 implementations like NQP, alpha, mildew, we could usefully have things like "assignment" in the list | ||
diakopter | I wouldn't add others | ||
sorear | if we're restricting it to competitive implementations, quite a few of the more basic things can go | ||
diakopter | I think they're useful for the code links | 04:16 | |
TimToady | it might give an interesting view of history to know where the red bits are though | ||
optionally... | |||
[Coke] | we can always hide the others by default and let you click to open the others. | 04:17 | |
(same as we can fold sections by default and click to expand) | |||
diakopter | TimToady did you know niecza and nom supported the whole set of bracketing character pairs? I thought it was very difficult because it's such a large set | 04:18 | |
TimToady | they're hardwired into STD | ||
diakopter | oooh | ||
sorear | diakopter: it might be difficult if there wasn't a list pre-prepared by TimToady | ||
diakopter | is that one that rakudo doesn't yet do | 04:19 | |
[Coke] | nom est rakudo. | ||
TimToady | sometime soon I'm gonna steal all the uniprops from P5 and translate them to P6 | ||
as a start on replacing the ICU dependency | 04:20 | ||
it shouldn't be too terrible hard | |||
diakopter | using a computer helps | ||
TimToady | the hard bits are things like making case folding behave according to spec | ||
sorear | that would be awesome | 04:21 | |
[Coke] | You should make tom do it. I hear tom loves unicode. | ||
sorear hopes that uniprop database will be less than 20M or so | |||
TimToady hopes it can be brought in lazily | |||
04:21
satyavvd joined
|
|||
TimToady | as it is in P5 | 04:21 | |
sorear | tripling the download size to allow people to use Linear B in identifiers is a tough pill to swallow | 04:22 | |
dalek | atures: b991b4e | diakopter++ | features.json: unfudge the lexing/parsing items for niecza, says sorear |
||
04:22
envi joined
|
|||
diakopter | argh | 04:22 | |
fail | |||
dalek | atures: f685abc | diakopter++ | features.json: redo last commit |
04:23 | |
kudo/nom: b1faa05 | pmichaud++ | NOMMAP.markdown: Add a "punch list" to NOMMAP. |
|||
diakopter | TimToady: are you ok with the Lexing and Parsing items I added to features | 04:24 | |
TimToady | sorear: a unicode bitmap is at most 24387 bytes | 04:25 | |
and that's likely to be compressible | |||
sorear | nom: say 24387 * 8 | 04:27 | |
p6eval | nom: OUTPUT«195096» | ||
sorear | nom: say (24387 * 8) / 65536 | ||
p6eval | nom: OUTPUT«2.9769287109375» | ||
TimToady | mm might've miscalculated | ||
sorear | oh, you're only counting the used planes? | ||
TimToady | 140k with all planes | ||
sorear | but we don't just have one bitmap | 04:28 | |
perluniprops has like, 500 properties, many of them are strings | |||
I don't know how many of those are derived | |||
TimToady | many are aliases, I think | 04:29 | |
pmichaud | I suspect that StrPos, StrLen could be a single entry in features instead of separate. | ||
diakopter | will do | 04:30 | |
pmichaud | It feels weird to have them as separate entries when we combine so many of the others into single entries | ||
TimToady | maybe they count in with NFG | 04:31 | |
pmichaud | could do it there also | ||
TimToady | though, oddly, with NFG the need for non-integers is reduced | ||
pmichaud | utf8 might go in with the NFG and other entries somewhere. | ||
TimToady | I was thinking of all those as forms of Buf | 04:32 | |
Buf as a role, maybe | 04:33 | ||
diakopter | I'm editing it now; I'll wait for someone to tell me the consensus since I'm bad at sensing those | ||
04:33
[particle]1 joined
|
|||
pmichaud | or just commit and let others come in and edit :) | 04:34 | |
TimToady | that works too | ||
diakopter | then I won't commit | ||
pmichaud | no commit? :-( :-( :-( | ||
diakopter | I had just combined StrPos/Len | 04:35 | |
04:35
[particle] left
|
|||
diakopter | but then that was rescinded | 04:35 | |
pmichaud | it was? | ||
diakopter | or at least tabled because the NFG alternative was suggestsed | 04:36 | |
I couldn't care less where they are; I was just interested in adding the spec links somewhere and have the features at least mentioned/included somewhere | 04:37 | ||
pmichaud | okay. | 04:38 | |
afk, sleep | 04:39 | ||
sorear | I think they're largely independant | 04:42 | |
diakopter | sigh; and I had just combined them all :) | ||
sorear | oh, I'm referring to the features themselves | ||
not to the matrix rows | |||
diakopter | oh | 04:43 | |
dalek | atures: 918b554 | diakopter++ | features.json: combine some rows pmichaud++ |
04:44 | |
diakopter | hopefully it handles multiple spec links | ||
pmichaud | it does. | 04:46 | |
*sigh* 11:45p and it's still 97degF outside. | |||
diakopter | it made me smile a bit to find a few grammaros/typos in S02 | 04:47 | |
sorear thinks masak's geographical location seems very attractive | 04:48 | ||
TimToady | it's pretty nice here | 04:49 | |
diakopter | indeed | ||
TimToady | 66℉ at the moment | ||
moritz | good morning | ||
TimToady | HOW! | ||
diakopter | I cringe at the number of smartlinks I broke | 04:50 | |
TimToady | it's all my fault :) | ||
I have broad shoulders... | 04:51 | ||
diakopter | salta | ||
sorear | hello moritz | ||
moritz | diakopter: don't cringe, fix :-) | 04:52 | |
04:53
[particle]1 left
|
|||
diakopter | maybe I can prod TimToady to smarter Text::SmartLinks | 04:53 | |
since they would all still work if it just looked a bit higher | 04:54 | ||
TimToady suspects he can delegate that, and anything he can delegate, he oughta delegate | |||
on accounta there's lotsa thing he can't delegate | 04:55 | ||
sorear | TimToady: why did you add typeglobs originally? | 04:59 | |
TimToady: also, do you have an aggregate name for perl 1-4? | |||
moritz | "history perl"? | 05:00 | |
oh wait, that includes most of p5 | |||
:-) | |||
sorear | perl 4.012's VM is more similar to that of perl 1.0 than perl 5.0 | 05:01 | |
TimToady | I don't remember, exactly, but it was probably a premature optimization to save space | ||
and no, no name for 1..4 | |||
05:02
drbean left
|
|||
sorear | it amuses me that niecza has grown a structure functionally similar to a typeglob | 05:02 | |
it was added as a performance hack for package-scope variables | 05:03 | ||
looking up the variable every time would be pretty slow, so I have a class with a single field that points to the actual data item | 05:04 | ||
and the compiled code keeps a reference to the indirection boxes | |||
05:10
molaf_ left
05:13
SHODAN joined,
koban joined
|
|||
PerlJam | moritz: perls 1-4 was the implementation to throw away, p5 was the prototype for p6 :) | 05:32 | |
05:47
Mowah joined
05:57
[particle] joined
06:10
masak joined
|
|||
masak | morning, #perl6. | 06:10 | |
moritz | mrning msk | 06:11 | |
masak hands moritz some vowels | |||
moritz likes the latest abstrusegoose.com/ | 06:12 | ||
masak | at least you got to keep 'i', it seems :) | ||
masak reads | |||
heh :) | 06:14 | ||
"uh... Aragorn?" | |||
SHODAN | oo that's nerdy | 06:15 | |
06:15
mattp_ left
|
|||
masak | the mouseover is funny too. | 06:15 | |
std: ObjAt | 06:16 | ||
p6eval | std 516268a: OUTPUT«===SORRY!===Undeclared name: 'ObjAt' used at line 1Check failedFAILED 00:01 118m» | ||
masak | I can't say I care for ObjAt. I find it to be the purest representative of Perl 6 Second Syndrome bloat. | ||
but STD should recognize it, since it's in the spec. :) | |||
06:17
Su-Shee_ is now known as Su-Shee,
REPLeffect joined,
mattp_ joined
|
|||
sorear | o/ masak | 06:19 | |
moritz | wtf is ObjAt? | ||
sorear | masak: what kind of thing do you think [].WHICH should return? | 06:20 | |
moritz | a Str would be fine | 06:21 | |
something of the form TypeName:$memory_address | |||
the spec says | 06:22 | ||
"In the first | |||
place, not all objects are in the same memory space (see the literature | |||
on NUMA, for instance)," | |||
but I don't buy that | |||
even on NUMA architectures, you identifiy in which memory segment an address is | |||
masak | ObjAt should go. | ||
moritz | so you can just add it to the string representation of the pointer, and get a uniq idnetifier | ||
sorear | moritz: returning memory addresses from WHICH is not reasonable on the CLR | 06:24 | |
moritz: technically possible, sure - but with a concurrent moving collector, you have no guarantees whatsoever on how long it will stay constant | 06:25 | ||
so $x.WHICH === $y.WHICH will not DWIM if another thread activates the GC in the middle | |||
06:26
wtw joined
|
|||
diakopter | sorear: how do you propose to provide uniqueness | 06:26 | |
moritz | sorear: well, it doesn't need to be a memory address, just a unique identifier | 06:27 | |
sorear | diakopter: I don't like WHICH at all | ||
I don't propose a solution, I propose the ax | 06:28 | ||
moritz | so how would you implement infix:<===>? | ||
sorear | we need a low-level *binary* address comparison operator | 06:29 | |
masak | we need some way to talk about object identity. | ||
it shouldn't be bloated. | |||
moritz | nom: say 2.WHICH; say (1+1).WHICH | ||
p6eval | nom: OUTPUT«7862220863995840» | 06:30 | |
masak | thing like the above are why Java has .hashCode | ||
moritz | nom: say 1 + 1 === 2 | 06:31 | |
p6eval | nom: OUTPUT«Bool::True» | ||
moritz | curious | ||
dalek | ast: 8c3b0e3 | moritz++ | S03-operators/value_equivalence.t: test === on non-literal values |
06:32 | |
06:41
drbean joined
06:52
mj41 joined
06:54
saaki left
06:57
colorspace left
|
|||
sorear | masak: I'm totally fine with hashCode. | 06:59 | |
masak: TimToady wants a *unique* object identifier. I... don't like this. | |||
it's problematic with threading and with noncontrolled VMs | |||
we *need* a way to get a stable hash-code-like-thing | 07:00 | ||
sorear wonders what flavor of Java masak uses | |||
masak | I'm no longer a heavy user of Java. | 07:05 | |
back when I was, I think I used Sun's, now Oracle's, flavor. | |||
07:10
jaldhar left
07:11
jaldhar joined
|
|||
sorear | .hashCode suggests you used one of the dynamically typed overlays | 07:11 | |
mls_ | morning! | 07:13 | |
perl6: {CATCH {} ; CATCH {}} | |||
p6eval | niecza v8-29-g695339a: OUTPUT«===SORRY!===Action method statement_control:CATCH not yet implemented at /tmp/lnKqbGvdb7 line 1:------> {CATCH {} ⏏; CATCH {}}Action method statement_control:CATCH not yet implemented at /tmp/lnKqbGvdb7 line 1:----… | ||
..pugs: ( no output ) | |||
..rakudo 922500: OUTPUT«Null PMC access in setprop() in main program body at line 22:/tmp/RZdr8KG8zn» | |||
mls_ | std: {CATCH {} ; CATCH {}} | 07:14 | |
p6eval | std 516268a: OUTPUT«ok 00:01 117m» | ||
mls_ | what's the semantics of multiple CATCH blocks? | ||
moritz | I think it ought to complain at compile time | ||
mls_ | yes, me too | 07:15 | |
masak | the spec even says so. | ||
mls_ | If I have a CATCH and a CONTROL block, and the code in the catch block throws a control exception, should it be caught by the control block? | 07:16 | |
CATCH and CONTROL next to each other, of course | |||
masak | S04:1380 | 07:17 | |
mls_ | looking... | ||
masak | (about CATCH and CONTROL being unique, not about your latest question) | ||
moritz | mls_: I don't think it's specced | 07:18 | |
but upon first glance I'd expect the CONTROL not to catch control exceptions from CATCH | |||
(and the other way round) | |||
sorear | I have the same first thought. | 07:22 | |
moritz | reason is that if you throw a control exception from within CATCH, it's probably well intended | 07:24 | |
and not something rogue from an inner scope that you want to intercept | |||
mls_ | ok, I'll implement it that way | 07:25 | |
moritz | ++mls_ | 07:26 | |
mls_ | how should LEAVE phasers be implemented? | ||
seems we need to do our own stack unrolling for them, and not relay on the parrot code | |||
sorry: the not rely part is wrong | 07:27 | ||
moritz | mls_: I think the origiinal plan/vision was to implement a callback facility on the parrot level | ||
mls_: but I don't think anybody ever got around to it, nor that it's trivial | 07:28 | ||
mls_ | we have the continuation stored in the exception, seems we must unroll the stack of the continuation and call the LEAVE blocks we find | 07:29 | |
hmm, and a LEAVE block can also throw an exception... | 07:30 | ||
masak | in my view, DESTROY submethods lose much of their charm and usefulness once you realize that you can't reasonably expect all the attributes to still be defined at that point. | 07:31 | |
moritz | masak: why can't you expect that? | ||
dependent order of destruction exists | |||
masak | not at the end of the program. at least not in Perl 5. | 07:32 | |
mls_ | is the order always undefined or only if there's a cyclic reference? | ||
moritz | when the GC finds an object cycle, it can first call all the DESTROY methods, then collect all the objects | ||
mls_: ah, p5 | |||
sorry | 07:33 | ||
masak: ah, p5 | |||
sorear | in Perl 5, objects are always destroyed in an order that allows DESTROY to see attributes, except during global destruction | 07:34 | |
before END time, cycles are not collected | |||
mls_ | (btw, I want parrot with object refcounting. It helps a lot to know that DESTROY is called right after the last reference is gone) | ||
(think of file descriptors, the LEAVE workaround looks a bit like a hack to me ;) ) | 07:35 | ||
moritz | just .close your file handles when you're done | 07:36 | |
benabik | mls_: refcounts have their issues. Circular object references are never collected, for example. | ||
mls_ | yes, I know. Actually I like pythons model, refcounting and a GC pass to get rid of circular deps. | 07:37 | |
sorear | show me a refcount implementation that avoids cache line ping-pong, then we'll talk | ||
mls_ | Heh. Yes, pure GC has it's advantages, too ;-) | ||
its | 07:38 | ||
moritz | www.modernperlbooks.com/mt/2011/08/...omment-968 # somebody nailed it | ||
sorear | incidentally, perl 5's global destruction algorithm is the kind of thing that could not possibly have been designed while sober. Avoid coming in contact with it if you at all can. | 07:39 | |
tadzik | good morning zebrae | 07:41 | |
sorear | o/ tadzik. | ||
07:41
im2ee joined
|
|||
tadzik | pmichaud: re Pod/To/Text.pm lying around, Test.pm does not really give a good example of where a not-so-core module should live | 07:41 | |
moritz | lib/ wouldn't be bad | 07:43 | |
07:44
im2ee left
|
|||
tadzik | probably | 07:45 | |
or src/lib | 07:46 | ||
masak | mls_: with 'temp' semantics, you can get the effect of "close at end of block" without having to live with the bad parts of refcounting. | 07:49 | |
there's a nice p6l thread from 2003 or so that completely demolishes the idea of using refcounting for Perl 6. | 07:50 | ||
sorear | link? | 07:51 | |
mls_ | yes, but it doesn't work if you want to give somebody else a reference, say a file handle | ||
07:54
saaki joined
|
|||
dalek | ecza: b853ae7 | sorear++ | / (3 files): Use an enumeration for phaser types, not 0 1 2 |
08:00 | |
masak | sorear: I'll try to find it. success not guaranteed. | 08:06 | |
tadzik | does t/spec/S03-operators/assign.rakudo segfault on nom for anyone? | 08:08 | |
08:08
Gruber is now known as Grrrr
|
|||
moritz | yes | 08:09 | |
tadzik | ok | ||
masak | sorear: I think it's this one: groups.google.com/group/perl.perl6....9125?pli=1 | ||
tadzik | survived on gdb :) | ||
[Inferior 1 (process 3223) exited normally] | |||
although it hanged a little when it usually segfaults | |||
moritz | maybe an infinite loop | 08:10 | |
gist.github.com/1124704 # backtrace | 08:12 | ||
runops_fast_core appears three times in the bt | |||
tadzik | how slow is "hello world" on nom for you? It's around 1.5 secs here | 08:14 | |
08:16
daxim joined
|
|||
moritz | 1.2s | 08:16 | |
wow, that's bad. Worse than master, iirc | |||
08:22
[sbp] joined
08:23
Doctor_Pi left,
sbp left
|
|||
tadzik | yeah, istr it was faster | 08:25 | |
moritz | 0.8s on the same machine | 08:26 | |
tadzik | moritz: didn't you break unshift.t plan recently? | 08:29 | |
dalek | atures: bba860d | moritz++ | features.json: add/update three data points |
||
moritz | tadzik: did I? :/ | ||
tadzik | it shows bad plan for me, 55 instead of 43 tests | 08:30 | |
or maybe it dies silently, hrm | |||
t/spec/S32-array/unshift.t (Wstat: 0 Tests: 43 Failed: 0) | 08:31 | ||
moritz | dies loudly here | ||
unshift_pmc() not implemented in class 'Mu' | |||
ruz | is there way to re-use grammar in other grammar? | 08:32 | |
dalek | ecza: f412e46 | sorear++ | / (3 files): Typo fix |
08:33 | |
sorear | ruz: inheritance, :lang(), roles | ||
ruz | sorear: don't think I need inheritance, something like `grammar my { rule datetime { <Module::Grammar::datetime>}...}` | 08:37 | |
sorear | you want :lang(Module::Grammar) <datetime> | 08:41 | |
moritz | is that implemented in niecza? | ||
sorear | <Module::Grammar::datetime> is rarely what you want, since datetime is presumably implemented with calls to subrules, and without :lang they cannot be found | ||
moritz | I'm pretty sure it's NYI in rakudo | ||
ruz | cool | ||
sorear | moritz: yes | ||
moritz | cool :-) | ||
tadzik | nom: class B { sub foo { ::A.new }}; class A {}; # known? | 08:42 | |
p6eval | nom: OUTPUT«Could not locate compile-time value for symbol Acurrent instr.: 'nqp;Perl6;SymbolTable;_block1836' pc 25708 (src/gen/perl6-symboltable.pir:8986) (src/Perl6/SymbolTable.pm:1356)» | ||
sorear | mls_: btw, I'm currently working on LEAVE et al for niecza. | ||
moritz | are classes lexical by default? | ||
tadzik: the correct way is to stub class A { ... } in front, afaict | |||
tadzik | I'm trying to bring back Temporal.pm, and that uses a plenty of those | 08:43 | |
08:43
beekor left
|
|||
tadzik | stub as in a keyword stub? | 08:43 | |
moritz | Temporal.pm also assumes that attributes mixed in from roles are accessible by the class (or the other way round) | ||
tadzik: no, as in 'my class DateTime { ... };' # with literal ... | 08:44 | ||
tadzik | funny, it parsed 'stub'; I think bootstrap uses them | ||
moritz | yep, but better not use it | ||
sorear | moritz: classes are our-scoped by default | 08:45 | |
moritz: I remember this because I complained about it once ;) But I've since come arond. | |||
+u | |||
08:47
wamba joined
|
|||
baest | what is the difference between using my or our for class attributes? According to perlcabal.org/syn/S12.html#Class_attributes they seem to do exactly the same | 08:48 | |
08:48
wamba left
|
|||
tadzik | moritz: re the attributes you mentioned, the way now is to use the accessors, right? | 08:49 | |
moritz doesn't believe in the current spec of class attributes | |||
tadzik: yes | |||
tadzik | okay | ||
sorear | baest: if you use 'our' then the class attribute can also be accessed as a package variable. | ||
moritz | tadzik: iirc the Dateish role only reads them, except in one case that is most likely bogus | ||
baest | sorear: ok, thanks | 08:50 | |
tadzik | yes | 08:51 | |
08:51
ab5tract joined
|
|||
tadzik | moritz: any idea why Date and DateTime use multis for their clone methods? | 08:51 | |
moritz | tadzik: probably no good reason | 08:52 | |
sorear | there's an (imo toxic) meme in this community that multi is always better | ||
moritz | hysteric raisins and all that | ||
sorear: to be honest I don't know enough about the implications of multi vs. single to decide, except in cases where I know that I need multis (because I write several candidates) | 08:53 | ||
sorear | moritz: I look at it through "don't make more work for the runtime than you have to" | ||
moritz | so I typically use whatever the spec says, which is just as bad | ||
08:55
wamba joined
|
|||
tadzik | #niecza and the #rakudo nom branch are good things but can #perl6 become a mainstream langage without a #jvm and a #javascript backend? | 08:56 | |
twitter says | |||
moritz | perl 5 could. | ||
tadzik | risou: re the tweet, neutro is long dead, you probably want to use panda instead | ||
08:58
timbunce joined
|
|||
sorear | today's awesomeness from writing a compiler in Perl 6: if any($*CURLEX<!sub>.children).is_phaser == ::Metamodel::Phaser::CATCH { | 08:58 | |
moritz | \o/ writing in expressive languages is fun | 08:59 | |
tadzik | gosh, did nom slow down recently, or is it just me? | 09:01 | |
settings compilation takes thrice the usual time | |||
moritz | it feels slow, but i haven't measured it | ||
tadzik | mine seems to have hanged, at least memory usage is not growin | 09:02 | |
moritz | tadzik: if I try to put Instant back, will I interfere with your Date/DateTime efforts? | 09:03 | |
tadzik | moritz: Instant uses DateTime, they need to be put back together | ||
moritz | ouch | ||
sorear sleep | |||
dalek | ecza: 2394ae5 | sorear++ | src/niecza: Stub action methods for all phasers |
||
tadzik | I wonder if that circularity is the reason of my hang | ||
sorear: g'night | 09:04 | ||
moritz: I wonder if they shouldn't be put in the same file maybe | |||
moritz | tadzik: Instant only uses DateTime for .Str and .perl | ||
tadzik | that probably doesn't change anything though | ||
oh | |||
moritz | tadzik: so I could reasonably put it back, and just comment out that part for now | ||
tadzik | moritz: I'll can it back since I'm on it now | 09:05 | |
moritz | tadzik: ok | ||
and you'll need to comment out the Duration bits, unless you add them back too | |||
tadzik | thanks | 09:06 | |
so, bringing back the setting, aren't we? :) | |||
moritz | ... and you need tai-utc, of course :-) | 09:07 | |
tadzik | aw snap | ||
moritz | WHY CAN'T TIMES BE F*CKING SIMPLE? | ||
tadzik | if you have that done, feel free to commit it :) | ||
true | |||
I wouldn't mind sun rising on 17. Whatever. Timezones-- | |||
huf | so. yes. | 09:08 | |
moritz | tadzik: trying my hand on Instant + tai-utc now | 09:09 | |
tadzik | I'm make'ing that now | 09:10 | |
but I didn't try it before putting in the setting, tbh | |||
moritz | I'm prepared to throw mine away if yours works | ||
and I'm prepared to add lots of :Ds :-) | |||
tadzik | we're duplicating work. I can take a look at IO::Socket if you're at Temporal stuff | 09:11 | |
moritz | if you prefer | ||
that one also suffers from the shared-attributes-among-roles-and-classes issue | 09:12 | ||
tadzik | easy to fix. Let me finish my make so I'll see what I'm at | ||
* we're at | |||
Method 'specialize' not found for invocant of class 'Perl6::Metamodel::ClassHOW' | 09:13 | ||
moritz | ah, I remember running into this one, and then abandoning my effort :/ | ||
tadzik | oh, I see | ||
how long ago? | 09:14 | ||
moritz | a week, maybe | ||
.specialize is a method on various *RoleHow classes | |||
hm, I made it through the setting compilation | 09:16 | ||
tadzik | oh, nice | ||
I didn't, feel free to commit it if it works | 09:17 | ||
moritz | it passes the first few instant+Duration tests | ||
until it hits the NYI parts | |||
tadzik | ok, I'm on to IO::stuff then | 09:18 | |
dalek | kudo/nom: f998cbb | moritz++ | / (3 files): start to put back tai-utc and Instant (Duration still missing) |
||
tadzik | pmichaud didn't really want IO::Stat back, istr? | 09:19 | |
moritz | dunno | ||
tadzik: ah, Real is still a class in nom | |||
tadzik | oh | 09:20 | |
moritz | tadzik: if you copy 'Instant does Real', you probably get that error | ||
nom: class A does Real { } | |||
tadzik | yeah, presumably | ||
p6eval | nom: OUTPUT«Method 'specialize' not found for invocant of class 'Perl6::Metamodel::ClassHOW'current instr.: 'nqp;Perl6;Metamodel;ClassHOW;_block3124' pc 50091 (src/gen/perl6-metamodel.pir:0) (src/gen/Metamodel.pm:1510)» | ||
tadzik | nom: Buf.new | ||
p6eval | nom: ( no output ) | ||
tadzik | oh, Buf's in? | ||
moritz | it's only stubbed in | ||
tadzik | okay | ||
moritz | no methods in it :( | ||
tadzik | sigh, I need more RAM apparently | 09:21 | |
error:imcc:syntax error, unexpected DOT ('.') | 09:24 | ||
in file '(file unknown)' line 55098156 | |||
have you hated your imcc today? :) | |||
09:25
satyavvd left
|
|||
moritz | not yet today | 09:26 | |
that error message would be so much better if it showed the line in question | |||
jnthn | morning, #perl6 | 09:31 | |
mls_ | jnthn o/ | ||
moritz | \o jnthn | 09:33 | |
09:34
timbunce left
|
|||
dalek | kudo/nom: 802a6ae | moritz++ | / (3 files): start to put Duration back in |
09:39 | |
09:40
timbunce joined
09:41
woosley left
09:46
ranott joined
|
|||
dalek | ast: ffc71bd | moritz++ | S02-builtin_data_types/instants-and-durations.t: fudge instants-and-durations.t for rakudo |
09:49 | |
ast: 1a2d51f | moritz++ | S02-builtin_data_types/instants-and-durations.t: fix typo, moritz-- |
09:55 | ||
tadzik | jnthn: o/ | 09:59 | |
Q:PIR are less than desired in most of the cases, right? | 10:02 | ||
moritz | right | ||
though not always avoidable | |||
tadzik | error:imcc:syntax error, unexpected DOT ('.'). Shame the Q:PIR is empty | 10:03 | |
jnthn | I can't see an empty Q:PIR ending well | ||
tadzik | or even commented out. wtf | ||
jnthn | (or any that doesn't mention %r somewhere and isn't in sink context) | ||
10:04
pernatiy left
|
|||
tadzik | ...do PIR blocks get executed when commented out, by any chance? | 10:04 | |
moritz | not if you remeber to recompile :-) | 10:05 | |
10:07
pernatiy joined
|
|||
tadzik | okay, the error is someplace else, not in PIR code | 10:08 | |
rakudo: for 'C*'.comb(/<[a..zA..Z]>[\d+|'*']?/) -> $unit { say $unit } | 10:11 | ||
p6eval | rakudo 922500: OUTPUT«C*» | ||
dalek | kudo/nom: fa2f005 | moritz++ | / (2 files): be more careful about :D in Instant and Duration Also add Instant.{Str,perl}, run tests. .gist is still missing. |
10:12 | |
jnthn | nom: /<[a..zA..Z]>[\d+|'*']?/ | ||
p6eval | nom: ( no output ) | ||
10:12
[sbp] is now known as sbp
|
|||
jnthn | nom: for 'C*'.comb(/<[a..zA..Z]>[\d+|'*']?/) -> $unit { say $unit } | 10:13 | |
p6eval | nom: OUTPUT«C*» | ||
10:16
agentzh joined
|
|||
tadzik | nom: role { method unpack($a) { $a.comb(/[\d+|'*']?/) } } | 10:17 | |
p6eval | nom: OUTPUT«error:imcc:syntax error, unexpected DOT ('.') in file '(file unknown)' line 32849929error:imcc:syntax error ... somewhere in file '(file unknown)' line 32849977syntax error ... somewhere» | ||
tadzik | that's it | ||
jnthn | nom: /[\d+|'*']?/ | ||
p6eval | nom: ( no output ) | ||
10:17
MayDaniel joined
|
|||
jnthn | nom: sub unpack($a) { $a.comb(/[\d+|'*']?/) } | 10:17 | |
p6eval | nom: ( no output ) | 10:18 | |
jnthn | nom: method unpack($a) { $a.comb(/[\d+|'*']?/) } | ||
p6eval | nom: OUTPUT«Useless declaration of a has-scoped method in mainline» | ||
tadzik | ha ha :) | ||
my method works, iirc | |||
jnthn | nom: class { method unpack($a) { $a.comb(/[\d+|'*']?/) } } | ||
p6eval | nom: ( no output ) | ||
jnthn | nom: role { method unpack($a) { $a.comb(/[\d+|'*']?/) } } | ||
p6eval | nom: OUTPUT«error:imcc:syntax error, unexpected DOT ('.') in file '(file unknown)' line 24457225error:imcc:syntax error ... somewhere in file '(file unknown)' line 24457273syntax error ... somewhere» | ||
jnthn | weirdness. | ||
tadzik | indeed | ||
nom: role { method unpack($a) { $a.comb } | 10:19 | ||
p6eval | nom: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:244)» | ||
tadzik | nom: role { method unpack($a) { $a.comb } } | ||
p6eval | nom: ( no output ) | ||
tadzik | nom: role { method unpack($a) { $a.comb(//) } } | ||
p6eval | nom: OUTPUT«Null regex not allowed at line 1, near ") } }"current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)» | ||
tadzik | nom: role { method unpack($a) { $a.comb(/./) } } | ||
p6eval | nom: ( no output ) | ||
tadzik | nom: role { method unpack($a) { $a.comb(/[.]?/) } } | ||
p6eval | nom: ( no output ) | ||
tadzik | nom: role { method unpack($a) { $a.comb(/[.|.]?/) } } | ||
p6eval | nom: ( no output ) | ||
tadzik | nom: role { method unpack($a) { $a.comb(/[.|'*']?/) } } | 10:20 | |
p6eval | nom: ( no output ) | ||
tadzik | nom: role { method unpack($a) { $a.comb(/[\d|'*']?/) } } | ||
p6eval | nom: OUTPUT«error:imcc:syntax error, unexpected DOT ('.') in file '(file unknown)' line 511error:imcc:syntax error ... somewhere in file '(file unknown)' line 556syntax error ... somewhere» | ||
tadzik | nom: role { method unpack($a) { $a.comb(/[\d]?/) } } | ||
p6eval | nom: OUTPUT«error:imcc:syntax error, unexpected DOT ('.') in file '(file unknown)' line 861error:imcc:syntax error ... somewhere in file '(file unknown)' line 898syntax error ... somewhere» | ||
tadzik | nom: role { method unpack($a) { $a.comb(/\d/) } } | ||
p6eval | nom: OUTPUT«error:imcc:syntax error, unexpected DOT ('.') in file '(file unknown)' line 506error:imcc:syntax error ... somewhere in file '(file unknown)' line 542syntax error ... somewhere» | ||
tadzik | gotcha | ||
or, wtf | |||
moritz | urks, Temporal uses ugly PIR | ||
jnthn | nom: BEGIN { $a.comb(/\d/) } | 10:21 | |
p6eval | nom: OUTPUT«Symbol '$a' not predeclared in <anonymous> (/tmp/TFi60zRYEh:1)current instr.: 'parrot;PCT;HLLCompiler;panic' pc 154 (compilers/pct/src/PCT/HLLCompiler.pir:111)» | ||
jnthn | nom: BEGIN { 'foo'.comb(/\d/) } | ||
p6eval | nom: OUTPUT«error:imcc:syntax error, unexpected DOT ('.') in file '(file unknown)' line 12320715error:imcc:syntax error ... somewhere in file '(file unknown)' line 12320751syntax error ... somewhere» | ||
jnthn | aha | ||
moritz | nom: BEGIN { /\d/ } | 10:22 | |
p6eval | nom: OUTPUT«error:imcc:syntax error, unexpected DOT ('.') in file '(file unknown)' line 510error:imcc:syntax error ... somewhere in file '(file unknown)' line 546syntax error ... somewhere» | ||
moritz | nom: BEGIN /\d/ | ||
p6eval | nom: ( no output ) | ||
10:22
azawawi joined
|
|||
moritz wants a golf prize :-) | 10:22 | ||
azawawi | hi | ||
phenny | azawawi: 03 Aug 14:14Z <uvtc> tell azawawi irclog.perlgeek.de/perl6/2011-08-03#i_4215724 | ||
moritz | nom: BEGIN /./ | ||
p6eval | nom: ( no output ) | ||
tadzik | nom: BEGIN { /\h/ } | ||
p6eval | nom: ( no output ) | ||
tadzik | ep | ||
masak | nom: BEGIN { /\ĥ / } | 10:24 | |
p6eval | nom: OUTPUT«Unrecognized backslash sequence at line 1, near " / }"current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)» | ||
jnthn | huh, the curlies make a difference? wtf... | ||
masak | no, I don't think so. | 10:25 | |
you might've misread the above :P | |||
moritz | nom: BEGIN /\d/ | ||
p6eval | nom: ( no output ) | ||
moritz | nom: BEGIN { /\d/ } | ||
p6eval | nom: OUTPUT«error:imcc:syntax error, unexpected DOT ('.') in file '(file unknown)' line 510error:imcc:syntax error ... somewhere in file '(file unknown)' line 546syntax error ... somewhere» | ||
masak | oh. | 10:26 | |
it was I who didn't read enough backlog. | 10:27 | ||
azawawi | phenny: tell [Coke] LexPerl6.cxx is the Perl 6 syntax highlighter (lexer) for Wx::Scintilla. Once it is stable, it will be submitted to Scintilla for inclusion. Currently scintilla supports Perl 5. Hopefully I will be able to add more Parrot lexers to Scintilla via Wx::Scintilla | ||
phenny | azawawi: I'll pass that on when [Coke] is around. | ||
jnthn | you might've misread the above :P | ||
masak | moritz++ | ||
yep. :) | |||
azawawi | masak++ # excellent blogs | ||
masak | azawawi: oh, thanks! | ||
I have many ideas for more blog posts, but no time to write them. :/ | 10:28 | ||
I should get me a clone masak. | |||
azawawi | :) | 10:29 | |
jnthn | phenny: tell pmichaud from looking at my profiler output, I'd guess that lexotic return stuff put into NQP would be a win. I can probably do it...any reasons not to? | 10:30 | |
phenny | jnthn: I'll pass that on when pmichaud is around. | ||
tadzik | jnthn: the #= on subs segfaults on Rakudo_cont_decontainerize, ran from find_best_candidate(). Is there anything incorrect in multi trait_mod:<is>(Routine:D $docee, Mu:D $doc, :$docs!)? | 10:32 | |
jnthn | tadzik: I wonder how trait arguments generally work out. I'm not sure any of the other traits use those yet. | 10:33 | |
tadzik | nope | 10:34 | |
jnthn | oh, but it works for classes, no? Or does that not go via the trait? | 10:35 | |
tadzik | no, that goes another way | ||
jnthn | ok | ||
tadzik | traits are also used for has-es | ||
jnthn | *nod* | 10:36 | |
tadzik | hmm | ||
nom: say Routine.^parents | 10:37 | ||
p6eval | nom: OUTPUT«Block() Code() Any() Mu()» | ||
dalek | kudo/nom: d43fbb8 | jonathan++ | src/binder/container.c: Optimize decontainerization by hot-pathing Perl 6 scalars. |
||
jnthn | tadzik: $*DOC | ||
tadzik: What's in that? | |||
tadzik | and Mu uses ClassHow, and classHOW already has a method WHY | ||
could that be a problem? | 10:38 | ||
jnthn | huh? | ||
You're confusing meta-space and user-space :) | |||
tadzik | jnthn: the content of a declarator block | ||
set in Grammar.pm | |||
oh, probably :) | |||
I still tend to think of a metaclass as a parent class of a class :) | |||
jnthn | tadzik: oh. No, it's very much not a parent. | 10:39 | |
tadzik: It's more the thing that says what it means to even have parents :) | 10:40 | ||
tadzik | yeah, I know that, it's just how I'm trying to explain it to myself in baby-talk :) | ||
jnthn | tadzik: OK, I'm...confused. | ||
tadzik | what about? | ||
jnthn | How the doc thing could ever be wroking. | 10:41 | |
*working | |||
Also, the use of the name $*DECLARATOR | |||
When it actually holds...a string? | 10:42 | ||
10:42
noganex_ left
|
|||
jnthn | A string of docs, or? | 10:42 | |
tadzik | a string. What was after '#=' | ||
jnthn | Anyway, I see this much: | ||
token comment:sym<#=> { | |||
'#=' \h+ $<attachment>=[\N*] | |||
{ $*DECLARATOR := ~$<attachment> } | |||
} | |||
Then | |||
:my $*DOC := $*DECLARATOR; | |||
{ $*DECLARATOR := '' } | |||
in method_def | |||
tadzik | yes | ||
jnthn | Then later | ||
$*ST.apply_trait('&trait_mod:<is>', $attr, $*DOC, :docs($true)); | |||
tadzik | yes | 10:43 | |
jnthn | First, please rename $*DECLARATOR so it don't confuse me so much ;-) | ||
Something with doc in is fine :) | |||
tadzik | DECLARATOR_BLOCK_CONTENT? :) | ||
jnthn | DECLARATOR_DOCS would do :) | ||
tadzik | okay | ||
jnthn | Second, you're passing a Parrot string to the Perl 6 trait mode. | 10:44 | |
tadzik | oh, hm | ||
jnthn | You need to add_constant('Str', 'str', $*DOC) and pass the result of that. | ||
tadzik | right | ||
mls_ | "proof of concept" patch for exception handling: gist.github.com/1124942 | ||
tadzik | jnthn: as a <compile_time_value>? | 10:45 | |
jnthn | tadzik: Right, just as you do on the line above the trait_mod call :) | 10:46 | |
tadzik | :) | ||
jnthn | tadzik: You get away with it for packages at the moment because ClassHOW is in NQP | 10:47 | |
tadzik | oh, true | ||
jnthn | tadzik: But it'll be a meta-circularity issue. | ||
tadzik | fun | ||
jnthn | (e.g. if somebody writes their own ClassHOW in Perl 6) | ||
oh, oops, I'm meant to be writing a jQuery course today, ain't I... | 10:48 | ||
tadzik | no, carry on :) | 10:49 | |
jQuery's already implemented :P | |||
oh, it works now! | |||
jnthn | \o/ | ||
tadzik | jnthn++ | ||
what would I do without you (: | 10:50 | ||
jnthn | tadzik: If I may make another pesky request, might I suggest the package one goes through the trait_mod too, for consistency? :) | ||
tadzik | oh, I know, there'll be no serialization and I'll have to write PAST by hand :P | ||
jnthn | You can have a :U vs :D distinction (e.g. two candidates) | ||
tadzik | jnthn: that makes sense, yes | ||
10:52
dual left
|
|||
tadzik | hmm | 10:52 | |
jnthn | mls_: Interesting patch. :) | ||
tadzik | do I need a separate trait_mod with Routine:D changed to Attribute:D, or can I make it smarter? | ||
I can leave out that type declaration | 10:53 | ||
jnthn | tadzik: It just does a mixin, yes? | ||
tadzik | yes | ||
jnthn | tadzik: Any reason not just do have one Any:D candidate and one Any:U candidate? | ||
The first one doing the mixin thing, the second doing .HOW.set_docs? | |||
mls_ | Heh, I wonder if pm will love or hate it ;) | ||
tadzik | probably no | ||
mls_ | (forgot a jnthn:) | 10:54 | |
jnthn | tadzik: OK, then I'd go with the two, rather than an explosion of them by type :) | ||
mls_: Not sure. ;-) Still trying to make my mind up on it. It's cunning for sure. | |||
tadzik | foo.HOW is :U, si? | ||
or is it? | |||
nom: say defined Class.HOW | 10:55 | ||
p6eval | nom: OUTPUT«Rebuild in progress» | ||
tadzik | very funny | ||
jnthn | tadzik: You don't get the HOW | ||
tadzik: You get the type object | |||
tadzik: Which, yes, is :U :) | |||
tadzik | a'right | ||
jnthn | We shouldn't be caring if .HOW is :D or :U or not | ||
At best it gives you a hint about whether it's implementing prototype-style or class-style OO ;) | 10:56 | ||
10:56
pernatiy left
|
|||
jnthn | tadzik: Note you call the trait_mod with $*PACKAGE, not $*PACKAGE.HOW. | 10:57 | |
tadzik | I no longer see code. All I see is blondes, brunettes and their smiley faces | ||
yes, that results in it | |||
oh, that makes sense even | |||
jnthn | tadzik: That happens to me sometimes, but then I realize I Alt+Tab'd to the dating site instead of my code editor :P | ||
10:58
azawawi left
|
|||
tadzik | oh. They look like code? | 10:59 | |
. o O ( Acme::Eyedrops ) | 11:00 | ||
daxim | look like man, you know? | ||
tadzik | yeah, I know, we have 5 or 6 on my university | ||
hehe, S26 smartly avoids the example of calling WHY on an attribute. What is the smartest way to get an attribute object of a class? | 11:04 | ||
jnthn | tadzik: .^attributes[0] or so | ||
.^attributes.grep({ .name eq '$!foo' }) for by name | 11:05 | ||
tadzik | :( | ||
jnthn | It's not meant to be too easy :) | 11:06 | |
(Since Attribute has .get_value and .set_value...) | 11:07 | ||
tadzik | yeah, I know | ||
11:08
sftp_ joined
|
|||
tadzik | same way for methods? | 11:09 | |
11:09
sftp left
|
|||
jnthn | Yeah. Though there's also .^find_method('foo') for those. | 11:09 | |
Or .can('foo') for an iterable list of all possible candidates. | 11:10 | ||
By candidates I mean, inherited ones | |||
Not multi candidates. | |||
masak | aren't they sometimes mixed, in the case of a base class proto? | 11:14 | |
jnthn | masak: They're never mixed up any more. | 11:16 | |
That's the result of the whole dispatch thing getting cleaned up. | |||
*dispatcher | |||
The method dispatcher doesn't know anything about multi-dispatch; to it, a proto is just a plain old method. | |||
And it's the proto that holds the candidates. | 11:17 | ||
tadzik | weird bug | 11:20 | |
jnthn | tadzik: oh? :) | ||
tadzik | no, not that :) | 11:22 | |
masak | jnthn: ah, right. | 11:23 | |
tadzik | oh, it's get weirder every time | ||
dalek | kudo/nom: fdacbbc | tadzik++ | / (4 files): Fix .WHY on subroutines. Also rename $*DECLARATOR to $*DECLARATOR_DOCS in Gramar.pm, and unify documenting stuff a bit. |
11:26 | |
tadzik | nom: gist.github.com/1124999 | 11:31 | |
p6eval | nom: OUTPUT«Segmentation fault» | ||
tadzik | not rebuilt yet I guess | ||
nom: say 1 | |||
p6eval | nom: OUTPUT«1» | ||
jnthn | also.t has been turned on in spectest.data, but it mostly fails for me (I pondered whether it'd work yet yesterday, and realized not) | ||
moritz | what's a pink sub panther? | ||
evalbot rebuild nom | 11:32 | ||
p6eval | OK (started asynchronously) | ||
tadzik | moritz: for some reason both say()s say 'pink' | ||
so the action method for marine gets called after panther gets parsed | |||
which I don't really fancy | 11:33 | ||
jnthn | tadzik: Are you sure it's that? | ||
tadzik: Are you sure it's not a role and outer-scope handling bug? | |||
tadzik | no, I can add a few say()s to Actions to be sure | ||
...what? :) | |||
ok, I'll better get sure | |||
moritz | why yes, action methods are immediately called after the construct is parsed | ||
jnthn | $docee does role { method WHY() { $d } } | 11:34 | |
I think that doesn't quite work out | |||
tadzik | oh, could be | ||
jnthn | $docee does role { has $.docs; method set_docs($d) { $!docs = $d } }; | 11:35 | |
moritz made Temporal.pm compile o/ | |||
tadzik | \o/ | ||
jnthn | $docee.set_docs($docs); | ||
docee is cute :P | |||
tadzik | moritz: no no, reread what I said | ||
jnthn | moritz: yay :) | ||
tadzik | the first action method called after the second one is parsed, or so | ||
moritz | oh | ||
tadzik | jnthn: yes, you're probably right | 11:36 | |
moritz | that would be worrisome indeed | ||
tadzik | say()'s don't lie, I hope :) | ||
moritz | .oO( only hexdump doesn't lie ) |
||
tadzik | jnthn: I probably want that to be $!docs, in has, no? | 11:37 | |
jnthn | tadzik: er, yeah | ||
tadzik: Or call it $.WHY :P | 11:38 | ||
tadzik | nonono! :P | ||
oh, wait, mebbe | |||
11:38
pernatiy joined
|
|||
tadzik | I'll pass tests first | 11:38 | |
survey: on not documented sub, better to have .WHY == '', or no .WHY method? | 11:40 | ||
jnthn | I still wonder whether .WHY should end up macro-ish. | ||
moritz | .WHY === Any | ||
jnthn | Yes, should be soemthing undefined | ||
Not just empty string. | |||
tadzik | +1 to that, fine | 11:41 | |
jnthn | Shouldn't be an error though (so no docs shouldn't cause .WHY to die) | ||
(or not be found) | |||
moritz | I must correct myself. I got it to compile outside the setting | 11:46 | |
seems to hang when compiling as part of src/core/ | 11:47 | ||
tadzik | oh, my bug :) | 11:48 | |
let me guess your memory usage... | |||
moritz | YOU BROKE IT!!!! | ||
tadzik | around 400 megs, right? :) | ||
Could not locate compile-time value for symbol &trait_mod:<is> | |||
moritz | 530 virt, 461 RES | ||
tadzik | eek | 11:49 | |
could be | |||
11:50
ranott left,
buubot_backup left
|
|||
tadzik | moritz: is that after restoring the DateTime-Instant circularity? | 11:50 | |
moritz | tadzik: nope | 11:51 | |
tadzik | seems that compiling the setting doesn't like documenting | 11:53 | |
11:54
Alias joined
|
|||
moritz | gist.github.com/1125025 # that's the infinite recursion | 11:55 | |
jnthn | moritz: I could do with seeing the bottom. | 11:56 | |
tadzik: You're going to run into all kinds of circularity issues if you start using #= inside the setting, I fear. | 11:57 | ||
moritz | jnthn: too late... will retrieve it if my next attempt fails the same way | ||
jnthn | ok | ||
tadzik: May be solvable though | 11:58 | ||
tadzik: Is it always just a string? | |||
tadzik | jnthn: I didn't, it gets angry when I remove the if $*DOC clause around the document() thing | 11:59 | |
jnthn: well, for now, yes | |||
but I added unless %*COMPILING<%?OPTIONS><setting> { return; } in the beginning, and it still fails in the setting | 12:00 | ||
12:02
JimmyZ joined
|
|||
jnthn | tadzik: %*COMPILING<%?OPTIONS><setting> doesn't mean you're compiling the setting | 12:03 | |
moritz | erm, yes. Pod in the setting in Temporal.pm | ||
jnthn | tadzik: It means you've explicitly specified the setting the current thing is using. | ||
tadzik | $*SETTING := $*ST.load_setting(%*COMPILING<%?OPTIONS><setting> // 'CORE');, says Grammar.pm | ||
jnthn | (And CORE.setting is compiled with --setting=NULL) | ||
12:03
[particle] left
|
|||
tadzik | so I thought it parser that NULL or so | 12:04 | |
jnthn | If %*COMPILING<%?OPTIONS><setting> contains NULL then you're almost certainly compiling CORE.setting. | ||
tadzik | if %*COMPILING<%?OPTIONS><setting> eq 'NULL' { return; } still doesn't help. Bah | 12:05 | |
wtf | 12:06 | ||
takadonet | morning all | 12:07 | |
12:12
buubot_backup joined
12:14
noganex joined
12:15
odoacre left
|
|||
tadzik | hello takadonet | 12:17 | |
Method 'Bool' not found for invocant of class 'Attribute', wth is that again :/ | |||
moritz | what do you need that for? | 12:18 | |
tadzik | it just happened, when 'make' ing | 12:20 | |
jnthn | nom: class A { has $!b }; A.^attributes.[0].Bool | 12:21 | |
p6eval | nom: ( no output ) | 12:22 | |
jnthn | nom: class A { has $!b }; say A.^attributes.[0].Bool | ||
p6eval | nom: OUTPUT«Bool::True» | ||
jnthn | tadzik: Can only see it being an issue if used too early in the bootstrap. | ||
moritz | Mu has .Bool | ||
oh | 12:25 | ||
tadzik | gist.github.com/1125058 this is the patch | ||
moritz | is it safe to use regexes in the setting? | ||
tadzik | I think it's the roles having attributes in traits.pm | 12:33 | |
jnthn | tadzik: That sounds feasible. Got a stack trace? | ||
tadzik | aye | ||
jnthn: gist.github.com/1125058#comments | 12:34 | ||
jnthn | my $attr := $*PACKAGE.HOW.get_attribute_for_usage($*PACKAGE, $name); | 12:37 | |
12:37
stephanmg joined,
stephanmg left
|
|||
jnthn | if $attr { | 12:37 | |
There, I think...in Actions.pm | |||
moritz | make that if pir::defined($attr) ? | 12:38 | |
jnthn | Worth a try | ||
moritz | jnthn: gist.github.com/1125075 that's the tail from the infinite recursion bt | ||
tadzik | which line is that? | ||
jnthn | Just make sure it doesn't bust undecalred attribute error messages. | ||
tadzik: 929/930 here | |||
tadzik | ok got it | ||
jnthn | tadzik: Inside make_variable_from_parts | ||
moritz | jnthn: seems it doesn't like role composition in the core, in some way? | 12:39 | |
jnthn | moritz: Well, we do it in some places but yeah, there's some circularity issues that one can run in to. | ||
moritz | it's rather late in the setting | ||
tadzik | Method 'defined' not found for invocant of class 'Attribute' | ||
bah | |||
nqp::where != 0? :) | 12:40 | ||
or what is the default | |||
jnthn | that won't work :P | ||
tadzik: You could try repr_defined instead | |||
tadzik | C-thinking :) | ||
jnthn | Checking... | ||
moritz | in the same sub, later on there is | 12:41 | |
elsif (my $attr_alias := $*ST.is_attr_alias($past.name)) { | |||
maybe that too could be a problem? | |||
jnthn | No, don't think that one will be | 12:42 | |
tadzik | pir::repr_defined seems to return an int | ||
jnthn | right | ||
tadzik | or for whatever reason I need an __IP on it | ||
jnthn | I also suspect it won't work | 12:43 | |
tadzik | seems to work | ||
jnthn | yeah, it's only valid on 6model objects | ||
tadzik | the compilation haven't failed yet | ||
jnthn | tadzik: It'll have broken detection of undeclared attributes. | ||
tadzik | oops | ||
pmichaud | jnthn: +1 on lexotic return in NQP | 12:44 | |
phenny | pmichaud: 10:30Z <jnthn> tell pmichaud from looking at my profiler output, I'd guess that lexotic return stuff put into NQP would be a win. I can probably do it...any reasons not to? | ||
jnthn | I'm wondering if get_attribute_for_usage should die | ||
(If the attribute isn't declared) | |||
And we catch that in actions. | |||
Really that meta-method is for the benefit of the compiler so we can define it as we find convenient :) | 12:45 | ||
pmichaud: OK. The handle_types charade shows up fairly high in my profiler output. | 12:46 | ||
tadzik | jnthn: I could probably write the dying part if you decide to do it | 12:48 | |
jnthn | tadzik: OK. Let's try it that way | 12:49 | |
tadzik: You can use pir::exists in the get_attribute_for_usage method to decide whether to die or not. | 12:50 | ||
tadzik | that's what I thought | ||
jnthn | tadzik: Be sure to catch it and do the $/.blah thing in Actions.pm though | ||
tadzik | then fix everything accordingly | ||
jnthn | Otherwise we'll emit a crappy error. | ||
(e.g. without a line) | |||
tadzik | every usage of get_attribute_for_usage | ||
jnthn | I think there's only one. | ||
tadzik | oh, even easier :) | ||
jnthn | tadzik: ah no, two | 12:51 | |
But still, not so bad. | |||
12:51
JimmyZ left
|
|||
tadzik | no CATCH in nqp, no? | 12:55 | |
moritz | nqp has CATCH | ||
tadzik | o | ||
pmichaud | I think features is out of date there. | ||
moritz | nqp: try { pir::die("foo"); CATCH { say($_) } } | 12:56 | |
p6eval | nqp: OUTPUT«foo» | ||
12:56
renormalist joined
|
|||
moritz | p6eval: nqp doesn't appear in the features matrix | 12:56 | |
tadzik | not used in Actions though, maybe there was no reason | ||
pmichaud | oh, "nqp" | ||
nom has CATCH, though? | |||
12:57
bluescreen10 joined
|
|||
moritz | yes, but no access to $! in it | 12:57 | |
pmichaud | nom: try { die("foo"): CATCH { say($_) } } | ||
p6eval | nom: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:244)» | ||
jnthn | Also don't panic inside CATCH | ||
pmichaud | nom: try { die("foo"); CATCH { say($_) } } | ||
p6eval | nom: OUTPUT«Any()» | ||
pmichaud | nom: try { die("foo"); CATCH { say($!) } } | ||
p6eval | nom: OUTPUT«Any()» | ||
pmichaud | hmmmm | ||
jnthn | pmichaud: known | 12:58 | |
pmichaud: $! hasn't been switched to dynamic yet | |||
tadzik | . o O ( when in CATCH, don't panic ) | ||
[Coke] | pointer to what :D means? | ||
phenny | [Coke]: 10:27Z <azawawi> tell [Coke] LexPerl6.cxx is the Perl 6 syntax highlighter (lexer) for Wx::Scintilla. Once it is stable, it will be submitted to Scintilla for inclusion. Currently scintilla supports Perl 5. Hopefully I will be able to add more Parrot lexers to Scintilla via Wx::Scintilla | ||
tadzik | oh, no $/.CURSOR.panic then | ||
moritz | [Coke]: "defined" | ||
jnthn | tadzik: Right. You don't really need CATCH in this case though, just set a "have an attribute" flag in a try | 12:59 | |
moritz | sub f(Int:D $x) accepts only an instance of Int (eg 1, 2, 3), not the type object Int itself | ||
jnthn | And check that. | ||
12:59
JimmyZ joined
|
|||
tadzik | yeah, that's what I did before that | 12:59 | |
jnthn: pff. Seems that pir::exists returns true for an Undef :) | 13:03 | ||
so should I do checking for .isa(Undef) or so? | 13:04 | ||
jnthn | tadzik: huh, what are you ding exists on? | ||
*doing | |||
tadzik | unless pir::exists(%!attribute_lookup, $name) | ||
13:04
sftp_ left
|
|||
jnthn | OK, but that should work. There shouldn't be any undefs in there. | 13:05 | |
tadzik | hmm | ||
jnthn | Must be something else wrong. | ||
tadzik | rechecking | ||
jnthn afk for a bit - store. Then really need to focus on $dayjob for a couple of hours... | |||
dalek | atures: 64e7e3a | pmichaud++ | features.json: Reorder items slightly. |
13:10 | |
atures: cc58864 | pmichaud++ | features.json: Add rakudo status for Lexing and Parsing. |
|||
13:12
SHODAN left,
[particle] joined
|
|||
dalek | atures: 3e6e399 | pmichaud++ | features.json: Overloading operators works in nom. |
13:16 | |
moritz | nom: say get | 13:25 | |
p6eval | nom: OUTPUT«Land der Berge, Land am Strome,» | ||
moritz | nom: say lines[1] | ||
p6eval | nom: OUTPUT«Land der Äcker, Land der Dome,» | ||
dalek | kudo/nom: 87334a8 | moritz++ | LHF.markdown: remove get() and lines() from LHF |
13:27 | |
felher | Hey folks. I just pullend and compiled the current nom-branch (to test jnthn's blog-post). Now everytime i want to 'use' some Example.pm file, i get ""load_bytecode" couldn't find file 'Example.pbc'. What am i doing wrong? | 13:29 | |
moritz | felher: nothing | 13:30 | |
felher: you still have to precompile modules to be able to use them with no | |||
m | |||
nom: say 5.^isa(Int) | 13:31 | ||
p6eval | nom: OUTPUT«1» | ||
tadzik | felher: you need to compile it to pir, that'll be sufficient | ||
13:32
jaldhar left
|
|||
felher | moritz, tadzik. Ty you two. | 13:35 | |
13:37
sftp joined
|
|||
jnthn | perl6 --target=pir LoggedDispatch.pm > LoggedDispatch.pir | 13:37 | |
perl6 example.pl | |||
Or some such. | |||
moritz: S16-filedhandles/io.t got through quite a few of its tests, including passing some master doesn't. It dies but it may be out of date test. | 13:38 | ||
moritz: May be close to fudgeable. | |||
Or passable. | 13:39 | ||
13:39
donri joined
|
|||
moritz | jnthn: will take a look | 13:39 | |
jnthn | getc.t now gets as far as actually wanting &getc also :) | ||
io.t is 90 tests so a nice win :) | |||
tadzik | yay, fixed | 13:43 | |
13:43
ubuntuser joined
|
|||
jnthn | tadzik++ | 13:43 | |
tadzik | one day I'm writing a debugging tool called "wtf", which will warn you every time you declare my $var, and then in the block below do { my $var } again :) | 13:44 | |
masak | doesn't sound too hard to do. | ||
"Wariable Trouble Finder" :P | 13:45 | ||
tadzik | :) | ||
didyoureallymeanthat.pl :) | |||
13:45
ubuntuser left
|
|||
felher | jnthn, yeah, thnx, works like a charm :) | 13:45 | |
dalek | kudo/nom: de6879e | tadzik++ | / (4 files): Fix a bug with a traited .WHY. Don't document stuff when compiling the setting. Also, make AttributeContainer.get_attribute_for_usage throw an exception for a non-existant attribute. |
13:51 | |
tadzik | nom: say Complex.^attributes.grep({ .name eq q[$!re] }).WHAT | 13:57 | |
p6eval | nom: OUTPUT«List()» | ||
tadzik | nom: say Complex.^attributes.grep({ .name eq q[$!re] })[0].WHAT | ||
p6eval | nom: OUTPUT«Segmentation fault» | ||
moritz | nom: say lines("abc\ndef\n") | ||
p6eval | nom: OUTPUT«Too many positional parameters passed; got 2 but expected 1current instr.: 'lines' pc 687213 (src/gen/CORE.setting.pir:181236) (src/gen/CORE.setting:2451)» | ||
moritz | nom: say "abc\ndef\n".lines | ||
p6eval | nom: OUTPUT«abc def» | ||
moritz | io.t assumes that lines($str) is interpreted as open($str).lines | 13:58 | |
jnthn | nom: say Complex.^attributes.grep({ .name eq q[$!re] }).elems | 13:59 | |
p6eval | nom: OUTPUT«Segmentation fault» | ||
jnthn | wtf. :/ | ||
tadzik | Rakudo_cont_decontainerize in find_best_candidate() | ||
moritz | that seems to be a common place to segfault | ||
tadzik | yes | ||
jnthn | Yeah, but it always means something else did something wrong. | ||
tadzik | jnthn: to use Any in traits.pm I'd need some $*ST magic, right? | 14:05 | |
jnthn | No | ||
14:05
PacoLinux joined
|
|||
jnthn | tadzik: What do you want to do with it? | 14:05 | |
tadzik | method set_docs($d) { $!WHY = $d // Any } | ||
jnthn | tadzik: Should be fine. | ||
tadzik | okay | ||
jnthn | tadzik: Any is already stubbed by that point | 14:06 | |
(done in BOOTSTRAP) | |||
tadzik | oh, fine | ||
jnthn | So it's fine to talk about it :) | ||
Using $*ST in traits is a little evil :) | |||
tadzik | *cough* :) | ||
baest | is it possible to match something in a rule and then use that for matching later on in the same rule. Like matching a string and then using the start delimiter to match the end delimiter? | 14:07 | |
moritz | you mean $0, $1 backreferences? | 14:08 | |
mls_ | gist.github.com/1125226 makes the compilation fail if a block has more than one CATCH/CONTROL handler | ||
baest | yes | ||
moritz | nom: say '"foo" things' ~~ /(.).*?$0/ | ||
p6eval | nom: OUTPUT«"foo"» | ||
mls_ | it also doesn't reate an exception handler if there's already a CATCH block | 14:09 | |
baest | moritz: thanks, I tried assigning the variable inside the rule and using that variable later. $0 works better :) | ||
mls_ | pmichaud: do you have time to discuss gist.github.com/1124942 ? | 14:10 | |
14:12
drbean left
|
|||
dalek | ast: e52f458 | moritz++ | S (2 files): fix and fudge io.t |
14:13 | |
14:18
wtw left
|
|||
dalek | kudo/nom: 499c78c | tadzik++ | / (2 files): Implement .WHY for methods, add a segfaulting test for .WHY on attributes |
14:20 | |
tadzik | how do I get a list of Subs in the desired namespace? | 14:25 | |
flussence realises in hindsight that wrapping test_summary.pl wasn't the best way to get test results for 100+ commits... | 14:26 | ||
tadzik | oh, you're running it for each one? | ||
flussence | pretty much, though I've got a script to parse the output instead of manually copying a line as it's intended to be used... | 14:27 | |
still, running all tests sequentially while the rest of my cores sit idle = ouch | 14:28 | ||
14:29
renormalist left
|
|||
dalek | kudo/nom: 8b7bea9 | tadzik++ | / (2 files): .WHY is undefined for not documented things |
14:30 | |
[Coke] | flussence: setup multiple checkouts and run it in || that way? | ||
or we could fix the test summary to use Test::Harness::Archive | 14:31 | ||
14:32
renormalist joined
|
|||
flussence | I think after this is done (it's only a dozen behind HEAD now) I'll just use the normal makefile thing that produces a TAP archive, and parse that somehow. | 14:32 | |
tadzik | moritz: I think the Features Matrix doesn't get updated | 14:36 | |
14:37
JimmyZ left
|
|||
moritz | tadzik: maybe that's because features.json can't be parsed anymore | 14:37 | |
$ perl process.pl features.html | |||
'"' expected, at character offset 33145 (before "}, {\n "item"...") at process.pl line 21, <$_[...]> chunk 1. | |||
tadzik | mebbe | 14:38 | |
I'll fix that | |||
moritz | how very helpful of JSON.pm to emit a character offset for us | 14:39 | |
what about a line number? | |||
tadzik | details :) | ||
14:39
koban left
14:40
noganex left
|
|||
mls_ | afk for a while | 14:40 | |
dalek | atures: 88caa2b | tadzik++ | features.json: Fix JSON syntax errors |
14:42 | |
tadzik | jsonlint.com++ | 14:43 | |
14:43
JimmyZ joined
|
|||
moritz hates it that JSON doesn't allow trailing comma | 14:44 | ||
tadzik | I hate it too | ||
masak | me three. | ||
tadzik | hmm | ||
PerlJam | me fou | ||
er, four | |||
tadzik | cpanm uses an online database of packages, I wonder how fast panda will get if I created something like this | ||
or just adjust panda to already-existing api | 14:45 | ||
moritz: how familiar are you with Actions.pm:declare_variable()? | |||
moritz | tadzik: not very | 14:46 | |
tadzik | I'm looking at .WHY for variables | ||
(whoever needs that) | |||
jnthn | tadzik: I didn't put in variable traits yet, fwiw. | 14:47 | |
tadzik | also, while we're at it, any idea how to get all declared things out of a scope? | ||
jnthn: ok | |||
jnthn | tadzik: (all declared things) runtime or compile time? | ||
tadzik | compile time rather | ||
jnthn | tadzik: I do that somewhere... | ||
jnthn tries to remember | |||
oh | |||
I think compile_in_context does in (in SymbolTable.pm) | 14:48 | ||
$past_block.symtable or some such | |||
What do you need it for, ooc? | |||
tadzik | WHY | ||
ee | |||
my %symbols := $cur_block.symtable(); | |||
some sort of perl6doc, or however we name it. E.g. Get all subroutines in a module | |||
then print their .WHYs | 14:49 | ||
Pod::To::Text is supposed to to that too, I think | |||
jnthn | Hmmmm. | ||
moritz | I'd propose a different path | ||
jnthn | That sounds weird. | ||
moritz | the problem with your approach is that you'll get the order screwed up | 14:50 | |
jnthn | What if they're not exported subs? The doc for them is confusing. | ||
tadzik | hmm, S26 says the .WHYs still get attached to $=POD | ||
and get .WHEREFORE for the objects they're describing | |||
that's what it's for I guess | |||
jnthn | That sounds like a saner path :) | ||
moritz | you should attach all the .WHYs that appear in p6doc output to some container, like $=POD | ||
15:00
noganex joined,
shinobicl joined
|
|||
diakopter | pmichaud: when I tried a user-selected bracket in nom, it didn't work | 15:00 | |
nom: say #`{{ } and { { { { {{ ... }} }} q<< <<woot>> >> | 15:03 | ||
p6eval | nom: OUTPUT«Confused at line 1, near "}} q<< <<w"current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)» | ||
shinobicl | greeting, perl6 | 15:04 | |
tadzik | hello shinobicl | 15:05 | |
15:05
shinobicl left,
shinobicl joined
15:12
MayDaniel left
15:13
MayDaniel joined
15:18
shinobicl left
15:19
PacoLinux left
15:21
PacoLinux joined
15:24
noganex left
15:34
mj41 left
|
|||
dalek | kudo/nom: 8bb3078 | moritz++ | / (3 files): Start to implement minmax, &min etc. run io.t, jnthn++ |
15:36 | |
15:38
birdwindupbird left
15:39
Chillance joined,
daniel-s joined
15:41
agentzh left
15:44
daniel-s left,
daniel-s joined
|
|||
mls_ | back... | 15:45 | |
moritz | welcome back mls_. Not much happened in your absence | 15:46 | |
mls_ | ;) | ||
slackers... | 15:47 | ||
TimToady was sleeping, so yeah, basically... | |||
moritz slacks off to decommute | |||
15:48
daniel-s left,
daniel-s joined
15:49
shinobicl joined
|
|||
shinobicl | rakudo: role DoNotSubstract {} ; our multi infix:<->(Int $n1 where DoNotSubstract, Int $n2 where DoNotSubstract) { say 'Can not substract those 2 numbers' }; our multi infix:<->(Int $n1 where DoNotSubstract, Int $n2) { say 'The 1st parameter has the DoNotSubstractRole!!'; return $n1 - $n2 }; my Int $A; my Int $B; $A = 100; $B= 150; say $A - $B; $A does DoNotSubstract; say $B - $A; $B does DoNotSubstract; say $A - $B; | 15:50 | |
p6eval | rakudo 922500: OUTPUT«-5050Can not substract those 2 numbersBool::True» | ||
TimToady wonders if a class with a DESTROY can mark its attributes as "owned" such that the will not be destroyed before the owner; then we can at least warn if we detect a situation in which there is multiple or loopy ownership | |||
shinobicl | rakudo: role DoNotSubstract {} ; our multi infix:<->(Int $n1 where DoNotSubstract, Int $n2 where DoNotSubstract) { say 'Can not substract those 2 numbers' }; our multi infix:<->(Int $n1 where DoNotSubstract, Int $n2) { say 'The 1st parameter has the DoNotSubstractRole!!'; return $n1 - $n2 }; my Int $A; my Int $B; $A = 100; $B= 150; say $A - $B; $A does DoNotSubstract; say $A - $B; $B does DoNotSubstract; say $A - $B; | ||
p6eval | rakudo 922500: OUTPUT«(timeout)-50The 1st parameter has the DoNotSubstractRole!!The 1st parameter has the DoNotSubstractRole!!The 1st parameter has the DoNotSubstractRole!!The 1st parameter has the DoNotSubstractRole!!The 1st parameter has the DoNotSubstractRole!!The 1st parameter… | ||
pmichaud | nom: say #`{{ { { } }} q{{ {woot} }} | 15:52 | |
p6eval | nom: OUTPUT«Rebuild in progress» | ||
TimToady | .oO(role RauchenVerboten {}) |
||
15:53
daniel-s left,
daniel-s_ joined
|
|||
jnthn | TimToady: The bigger issue is that GCs don't always offer ordered destruction. | 15:53 | |
TimToady: Which if we want to target WhateverVM (tm) is a problem. | |||
TimToady | you can write a global destructor that at least honors a partial ordering, to the extent it's not ambigious | ||
jnthn | TimToady: Just because you can doesn't mean the underlying VM will provide what's needed, unless I'm missing something. | 15:54 | |
15:54
PacoLinux left
|
|||
TimToady | ownership would presumably be built over the VM, not inside it | 15:54 | |
I agree that it's probably too late once the VM starts destructing | |||
jnthn | Ah, you mean something else keeps a reference? | 15:55 | |
We register all the attributes somewhere? | |||
(if the class has a DESTROY, that is...) | |||
TimToady | it's just a start of an idea | ||
jnthn | Seems like a workable one, if messy. | ||
Parrot is one VM that doesn't do ordered destruction. | 15:56 | ||
STables are gonna have to be ref-counted as a result. | |||
15:56
PacoLinux joined
|
|||
jnthn | But that's an easy problem. :) | 15:56 | |
TimToady | would be nice to sneak such a layer in the middle, if we can do it generally | ||
15:56
masak left
15:57
daniel-s__ joined,
daniel-s_ left
|
|||
TimToady | just something to bear in mind as we go along | 15:57 | |
jnthn | *nod* | 15:59 | |
It's not a bad idea. Probably worth spending a few hours prototyping it at some point. | 16:00 | ||
16:01
daniel-s__ left,
_daniel-s__ joined
|
|||
pmichaud | nom: say #`{{ hello }} 'hello' | 16:02 | |
daxim | mail.pm.org/pipermail/moscow-pm/201...10375.html | ||
p6eval | nom: OUTPUT«hello» | ||
pmichaud | diakopter: nom is able to handle custom brackets.... it's the nesting that might be an issue. | ||
benabik | nom: say #'{{ }} }} 'hello' | ||
p6eval | nom: OUTPUT«» | ||
benabik | Odd. | 16:03 | |
TimToady | 'course, in real life, we don't try to bury all our possessions with us when we die anymore, nor do we segfault (much) if just because someone destroyed one of our possessions... | ||
pmichaud | benabik: since those aren't properly closed, the # is reverting to a normal comment I suspect. | ||
std: say #`{{ }} }} 'hello' | |||
p6eval | std 516268a: OUTPUT«===SORRY!===Confused at /tmp/t1wT3oD9wM line 1:------> say #`{{ }} ⏏}} 'hello' expecting any of: argument list statement modifier loopOther potential difficulties: Unsupported use of bare 'say'; in Perl 6 please use .sa… | ||
benabik | Oh, I used ' instead of `. D'oh | ||
pmichaud | oh, that too. (couldn't see the difference from a distance in my current font :) | 16:04 | |
benabik | std: say #` {{ {{ }} }} 'hello' | ||
p6eval | std 516268a: OUTPUT«===SORRY!===Opening bracket is required for #` comment at /tmp/39y2VHNyCi line 1:------> say #`⏏ {{ {{ }} }} 'hello'Parse failedFAILED 00:01 117m» | ||
benabik | std: say #`{{ {{ }} }} 'hello' | ||
p6eval | std 516268a: OUTPUT«ok 00:01 119m» | ||
benabik apparently should not be coding today. | |||
pmichaud | diakopter: feel free to update the matrix accordingly | ||
16:06
_daniel-s__ left,
daniel-s joined
|
|||
jnthn | daxim: heh, that looks terribly like slide 24 of jnthn.net/papers/2011-bjpw-awesome-operators.pdf :) | 16:06 | |
pmichaud | I think | 16:10 | |
sub min(*@args, :&by = { $^a cmp $^b }) { @args.min(&by) } | |||
perhaps should be | |||
sub min(*@args, :&by = &infix:<cmp>) { @args.min(&by) } | |||
16:10
daniel-s left,
daxim left,
daniel-s joined
|
|||
TimToady thinks about &CALLER::infix:<cmp> and wishes for more coffee, or less | 16:13 | ||
16:14
ab5tract left
16:15
JimmyZ left,
daniel-s_ joined,
daniel-s left
16:17
PacoLinux left
16:19
daniel-s__ joined,
daniel-s_ left
16:24
_daniel-s__ joined,
daniel-s__ left
|
|||
[Coke] | pmichaud: that would look even better if there was a short form of &infix:<cmp> | 16:26 | |
(but I do prefer just naming the function, rather than having to write a block | 16:27 | ||
TimToady | perl6: say &[cmp](2,3) | ||
p6eval | pugs: OUTPUT«***  Unexpected "[" expecting "::" at /tmp/8evkZJgsw9 line 1, column 6» | 16:28 | |
..rakudo 922500, niecza v8-32-g2394ae5: OUTPUT«-1» | |||
TimToady | [Coke]: you was sayin'? | ||
16:28
daniel-s joined,
_daniel-s__ left
|
|||
[Coke] | Guess I don't understand the full context of pmichaud's 2 choices, then. | 16:29 | |
Can we temporarily get "nom" added to "perl6" ? | 16:30 | ||
pmichaud | TimToady++ is suggesting that sub min(*@args, :&by = &[cmp]) { ... } is better still | ||
[Coke] | (that would be helpful until we switchover, yes?) | ||
16:30
[particle]1 joined
|
|||
[Coke] | I would have to agree with that, yes. ;) | 16:30 | |
pmichaud | since &[cmp] is a shorter form of &infix:<cmp> | ||
(at least for the 2-argument versions) | 16:31 | ||
I wasn't sure if nom had &[op] yet. | |||
TimToady | nom: say &[cmp](2,3) | ||
p6eval | nom: OUTPUT«-1» | ||
benabik | &[op]? Is that a reference to the reduction form of an operator? | ||
pmichaud | Regardless, avoiding the extra block would be helpful, especially since it gets called multiple times | ||
TimToady | I seem to recall jnthn++ adding it | ||
16:31
[particle] left
|
|||
TimToady | well, depending on how &[op] is implemented, it could add the block back in, but I hope it can work by weeding out the candidate list | 16:32 | |
16:32
daniel-s left,
daniel-s joined
|
|||
TimToady | then the optimizer could spot $^a op $^b and turn it into &[op] | 16:33 | |
jnthn | [Coke]: That's probably going to be within a week. | ||
(the switchover) | 16:34 | ||
pmichaud | we do need to figure out what to call old rakudo then :-) | ||
"ng" is fine. | |||
TimToady | .oO(no good) |
||
jnthn | pmichaud: beta, of course ;) | ||
pmichaud | I prefer that we keep names consistent. | ||
[Coke] | I would find it confusing to call the old thing the new thing, even though it used to be the new thing. | 16:35 | |
jnthn | alpha: say "still here?" | ||
p6eval | alpha : OUTPUT«still here?» | ||
jnthn | :) | ||
pmichaud | yes, but alpha was pretty much always known as 'alpha' | ||
jnthn | True :) | ||
[Coke] | alpha: say &[cmp](2,3) | ||
p6eval | alpha : OUTPUT«say requires an argument at line 10, near " &[cmp](2,"in Main (file src/gen_setting.pm, line 2593)» | ||
jnthn | alpha: say pi | 16:36 | |
p6eval | alpha : OUTPUT«3.14159265358979» | ||
jnthn | alpha: pi = 69; say pi | ||
p6eval | alpha : OUTPUT«3.14159265358979» | ||
jnthn | heh :) | ||
alpha did some cute stuff :) | |||
[Coke] | jnthn: you sure? nom is still only at < 50% of spectest coverage that ng was. | ||
jnthn | [Coke]: Sure but that's not the only measure that matters. | ||
16:37
daniel-s left
|
|||
pmichaud | I suspect we'll switchover within the week, yes. See the punchlist in NOMMAP. | 16:37 | |
16:37
daniel-s joined
|
|||
jnthn | [Coke]: And a bunch of those tests are regex related (which we'll have soon - I hope!) | 16:37 | |
And another bunch are trig related | |||
[Coke] | yah, the trig ones seem like LHF. | ||
too bad I'm so short. | |||
jnthn | ;) | ||
pmichaud: ng is fine. I'll miss "nom" - it's 3 chars less to type than rakudo ;) | 16:38 | ||
heh, alpha and ng are less too :) | 16:39 | ||
mls_ | afk again | 16:40 | |
PerlJam | just call it "r" | ||
;) | |||
or, r0 == alpha, r1 == ng, r2 == nom | |||
16:41
daniel-s_ joined,
daniel-s left
|
|||
moritz | sounds like svn revision numbers :-) | 16:41 | |
pmichaud | I don't mind if "nom" remains also. | 16:42 | |
we're only changing what "rakudo" points to... that doesn't mean we have to eliminate "nom", afaic. | |||
PerlJam | ng: say "what?" | 16:43 | |
bummer :) | |||
benabik | Is nom still going to install itself as perl6? Or is it moving to "rakudo"? | ||
pmichaud | benabik: still haven't decided that yet. | ||
benabik | pmichaud: Fair enough. | ||
TimToady | or unfair enough :P | ||
PerlJam imagines another mental tick in sorear's head with regard to niecza's second-citizenry | 16:44 | ||
TimToady | it ticks in my head too | 16:45 | |
maybe my head is about to asplode | |||
PerlJam | FWIW, I think all of the implementations should install themselves as <some name other than perl6> but have the option to install as "perl6" | ||
16:45
daniel-s_ left
|
|||
PerlJam | (or even "perl" ;-) | 16:45 | |
16:46
daniel-s_ joined
|
|||
TimToady | that option can be "make a symlink" for OSes that can do that... | 16:46 | |
pmichaud | jnthn: gist.github.com/1125603 # known bug, or something I'm doing wrong? | ||
jnthn | pmichaud: That looks bugish. | ||
pmichaud | jnthn: okay. that's a small blocker for hypers, then (I can work around it, of course) | 16:47 | |
jnthn | pmichaud: Can look later today. | 16:48 | |
pmichaud | that second candidate looks very suspicious to me. | ||
moritz | speaking of bugs, dunno of pmichaud++ found this in the backlog some days ago | ||
nom: say ('A'..'Z').list | |||
16:48
[particle]1 is now known as [particle]
|
|||
p6eval | nom: OUTPUT«A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD CE CF CG CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV C… | 16:48 | |
moritz | goes all the way up to YZ | 16:49 | |
jnthn | pmichaud: I suspect that's just Signature.perl not being finished. | ||
multi stuff and signature introspection are both currently high on my tirage list. | 16:50 | ||
16:50
daniel-s__ joined
|
|||
pmichaud | moritz: looking | 16:50 | |
16:50
daniel-s_ left
16:52
aindilis left
|
|||
TimToady | .oO(if I change "Rebuild in progress" to "F*ck you!" maybe someone will fix that sooner... :) |
16:54 | |
16:54
_daniel-s__ joined
16:55
daniel-s__ left
16:57
sivoais joined
|
|||
PerlJam | TimToady: That wouldn't be very perly though. :-) | 16:58 | |
16:59
daniel-s joined,
_daniel-s__ left
|
|||
TimToady is not always very perly... | 16:59 | ||
huf | swearing is unperly? | ||
is there some committee now? | 17:00 | ||
TimToady | yes, the NSC, but don't ask what "NS" stands for :) | 17:01 | |
17:01
beekor joined
|
|||
pmichaud | There is no cabal. | 17:01 | |
moritz | There is no COBOL. | ||
PerlJam | huf: Camelia (the spokesbug for Perl) is always nice ... or she eats you. ;) | ||
huf | PerlJam: unless it's mst correcting someone | ||
in which case it's guaranteed perl + swearing :) | 17:02 | ||
pmichaud | TimToady: maybe it would be quicker to fix the rebuild than to change the message and wait for a fix? ;-) | ||
PerlJam | huf: mst is just tough-love incarnate though. | ||
TimToady | Camelia only requires that you know how to be nice, not that you always be nice | ||
huf | PerlJam: i know that | ||
TimToady: so technically you can be nice to your cat and otherwise communicate in grunts and artery-stabs? | 17:03 | ||
17:03
daniel-s left,
daniel-s_ joined
|
|||
TimToady | there's a bit of a cultural assumption that people will find niceness to be more rewarding than cussedness | 17:03 | |
PerlJam | I'd fix the rebuild if I knew how/where/what/etc. and actually had the proper access. | 17:04 | |
pmichaud | yes, I believe "fix rebuild" has a limited set of players atm. | ||
ah, I see the problem with ranges. | 17:07 | ||
17:08
daniel-s_ left,
daniel-s__ joined
|
|||
PerlJam | pmichaud: lemme guess ... an off-by-one error? | 17:09 | |
17:10
daniel-s__ left
|
|||
TimToady | it's an off-by-* error :) | 17:10 | |
pmichaud | PerlJam: not really.... | ||
nom: say 'z' cmp 'z'.succ | |||
p6eval | nom: OUTPUT«1» | ||
PerlJam | nice | 17:11 | |
pmichaud | perhaps better: | ||
nom: say 'z'.succ cmp 'z' | |||
p6eval | nom: OUTPUT«-1» | ||
TimToady | I think 'a' .. 'z' should first check that it's not a null range and then promote to 'a' ... 'z' | ||
pmichaud | TimToady: you mean when reified or otherwise made into a list? | 17:12 | |
TimToady | yes, .. doesn't do that if it can stay a scalar | ||
pmichaud | how do we determine 'null range' here? | ||
TimToady | 'a' cmp 'z' | 17:13 | |
17:13
pernatiy left
|
|||
pmichaud | so, 'b' .. 'aa' would be a null range? | 17:13 | |
TimToady | yes | ||
if you really mean that, you can always use ... explicitly | |||
pmichaud | so, it's a null range if $.min after $.max | ||
17:14
tokuhirom joined
|
|||
TimToady | promotion of .. to ... is really only a nod to human fallibility | 17:14 | |
yes | |||
ranges are first of all intervals | |||
they can be used as sequences in a tagmemic sense | |||
but that doesn't mean they are sequences | 17:15 | ||
pmichaud | okay, wfm. | ||
17:16
masak joined
|
|||
masak | \o/ | 17:16 | |
TimToady finds that any acronym containing 'f' has some amount of shock value :) | |||
masak | sorear++ # asking interesting questions about phasers | ||
TimToady++ # answering them | 17:17 | ||
do any RC submissions contain PRE or POST yet? are there submissions that would, were they implemented? | 17:18 | ||
tadzik | o/ | ||
TimToady | we don't submit RC entries that don't work very often | ||
17:19
beekor left
|
|||
TimToady | and if we do, we label them as nyi | 17:19 | |
huf | the knights who say | ||
PerlJam | only if the y is silent | ||
huf | then it is. | 17:20 | |
masak read that as 'we don't submit [RC entries that don't work very often]' :P | |||
garden path sentence, I guess. | |||
TimToady | it does not appear that any snippets from RC contain PRE or POST | 17:21 | |
it's garden pathological | |||
^^ linguistic term that is an example of itself | |||
masak | :P | ||
TimToady | syncop, methatesis, apocpe, etc. | 17:22 | |
sbp | .gcs +metatesis +thetamesis | ||
phenny | +metatesis (3,140), +thetamesis (2) | ||
sbp | .gc +methatesis | 17:23 | |
phenny | +methatesis: 404 | ||
masak wonders whether "malamanteau" is another such term | |||
sbp | and my personal favourite: t-fucking-mesis | ||
masak | :D | ||
tadzik | jnthn: having thing like gist.github.com/1125695 is there any way to fetch the <compile_time_value> of something that has already been serialized (probably), being $what? | 17:29 | |
17:30
thou joined
|
|||
jnthn | tadzik: What's in $what? | 17:33 | |
tadzik | jnthn: anything I can attach a .WHY to, that's the thing | 17:34 | |
jnthn | OK. And it was already added to the SC | ||
? | |||
I'm guessing if it's a declarative thing the answer is yes | |||
So it already *is* a compile time value ;-) | |||
tadzik | well, Can only use nqp_get_sc_for_object with a SixModelObject | ||
and it's already in compiling Test.pm | 17:35 | ||
which has no fancy pod iirc | |||
jnthn | OK, you need to work out what $what is when it's going awry, I guess. | 17:36 | |
It should otherwise Just Work. | |||
pmichaud | I've been getting spectest errors for unshift.t ... anyone else seeing those? | 17:38 | |
afk, lunch -- will look at it when I return. | |||
jnthn | pmichaud: yes | 17:40 | |
17:47
envi left
|
|||
tadzik | jnthn: it happens on Sub+{<anon>} | 17:48 | |
(as a start) | |||
jnthn | tadzik: The sub being anonymous affects it? | 17:50 | |
oh, I see...it's a Sub with an anonymous role mixed in | |||
tadzik | jnthn: that's the first thing that gets document()ed, and crashes | ||
jnthn | Hm. Getting something mixed into it shouldn't cause it to lose its SC. | 17:51 | |
Where does it fail? The trait application, or in serialize_object? | |||
tadzik | serialize_object | ||
sub marine {} crashes it as well | 17:52 | ||
masak .oO( it sinks ) | 17:53 | ||
jnthn | tadzik: Are you sure the $what is the problem? | 17:54 | |
:doc([$doc]), | |||
That looks FAR more likely to be. | |||
What's that [...] doing? | |||
tadzik | oh, oh | ||
that's ought to be :content([$doc]) | |||
jnthn | What's that [...] doing? | 17:55 | |
tadzik | and that should be a serialized array | ||
jnthn | Right. | ||
tadzik | creates an array, yes | ||
jnthn | So it's complaining about a RPA not being a 6model object, which is correct :) | ||
tadzik | dang, I'm thinking weird today | ||
thank you | |||
jnthn | huh, I think weird every day :P | ||
17:55
pjcj left
17:56
envi joined
|
|||
tadzik | I love my helper functions :) | 17:58 | |
serialize_array, serialize_object | |||
jnthn | I look forward to rendering them all obsolete :P | 17:59 | |
tadzik | me too :) | 18:00 | |
18:17
pochi left,
aindilis joined
18:18
impious joined,
impious left
18:25
pernatiy joined
|
|||
pmichaud | gist.github.com/1125850 # spectest fails and other notes | 18:27 | |
jnthn | "other notes"? | 18:29 | |
pmichaud: S06-multi/syntax.t runs rully here :S | 18:30 | ||
er, fully | |||
I may not have all latest commits though | |||
Same for inheritance.t. | |||
And no BUILD failure. Hm | 18:31 | ||
pmichaud | gist.github.com/1125859 # syntax.t failure | ||
jnthn | hm, wtf. | 18:32 | |
18:32
tokuhirom left,
PacoLinux joined,
tokuhirom joined
18:34
On96 joined
|
|||
jnthn | Pulled latest, building... | 18:34 | |
pmichaud | bisecting here | ||
On96 is trying to break his last record of 21 minutes and 3 sec of staying without being banned on #perl :-) | 18:36 | ||
18:37
tokuhirom left
|
|||
masak | On96: how's that working out for you? | 18:38 | |
18:40
araujo left
18:42
colomon left
|
|||
On96 | New record! :-) | 18:46 | |
masak | On96: ooc, how does it usually turn out that you're banned? | 18:48 | |
jnthn | pmichaud: Thanks. It fails here too. | ||
pmichaud: Looks like one of tadzik's commits, from the trace. | 18:49 | ||
pmichaud | I'm down to the last test in the bisect... will know shortly. | ||
18:50
noganex joined
|
|||
jnthn | ok | 18:51 | |
pmichaud | huh | ||
git bisect says 8bb3078 is the bad commit. | |||
18:51
mberends joined,
kjeldahl_ joined
|
|||
jnthn | orly? | 18:51 | |
pmichaud | testing now. | ||
jnthn | o/ mberends :) | ||
tadzik | what commit is that? Doesn't appear in my reflog | 18:52 | |
mberends | o/ #perl6 and jnthn | ||
pmichaud | it's the latest commit (by moritz) | ||
tadzik | mberends: hola | ||
18:53
kjeldahl_ left
|
|||
jnthn | tadzik: Two things. One test in inheritance.t does class DirectMu is Mu { }; | 18:53 | |
moritz | "huh". | ||
jnthn | tadzik: But it looks like the type constraint is Any on the trait mods. | ||
tadzik | tofix? | ||
jnthn | tadzik: The other thing is that at the moment we apply to train whether or not there is a doc string, so far as I can see. | ||
tadzik | yes | ||
jnthn | multi trait_mod:<is>(Any:U $docee, Mu:D $doc, :$docs!) { | 18:54 | |
tadzik | we decided to have .WHY whether something's documented or not | ||
oh, :D | |||
jnthn | Should almost certainly be Mu, not Any | ||
tadzik | aye | ||
jnthn | tadzik: Yes but I thought you'd do that by a method in some base class or something, not by mixing in to everything :) | ||
pmichaud | jnthn: obtw, I noticed that infix:<~~> isn't multithreading junctions properly. Not quite sure how to fix it. | ||
tadzik | hmm | ||
jnthn | pmichaud: Should it auto-thread? | ||
pmichaud | Yes. | 18:55 | |
jnthn | nom: say 1 ~~ any(1,2,3) | ||
p6eval | nom: OUTPUT«Bool::True» | ||
jnthn | nom: say all(1, 2) ~~ any(1,2,3) | ||
p6eval | nom: OUTPUT«Bool::False» | ||
pmichaud | S02:3660 | 18:56 | |
jnthn | That one is...wrong, right? :) | ||
pmichaud | nom: say all(1,2) ~~ Int | ||
p6eval | nom: OUTPUT«Bool::False» | ||
pmichaud | I'm certain that one is. | ||
jnthn | OK, that one surely is. | ||
pmichaud | (is wrong) | ||
18:56
molaf joined
|
|||
masak | jnthn: the all, any is likely correct. | 18:56 | |
jnthn: all binds tighter than any. | |||
jnthn | oh | ||
multi method ACCEPTS(Junction:D: Mu \$topic) { | |||
masak: What has binding tightness go to do with this? | 18:57 | ||
masak: oh, wait, I think I see. | |||
masak | :) | ||
it's a bit subtle. | |||
jnthn | gr, I hate thinking | ||
er | |||
masak | :P | ||
jnthn | grr, I hate thinking about these things too much :) | ||
pmichaud: Maybe we can try changing $topic there to Any. | |||
pmichaud | jnthn: that doesn't solve the problem. (more) | 18:58 | |
first, in the case of all(1,2) ~~ Int, the ACCEPTS invocant is Int, not Junction. | |||
jnthn | oh. | ||
masak | essentially, you should never use &all and &any in the same expression unless you understand that &all takes precedence over &any. | ||
pmichaud | second, the spec says that it's infix:<~~> that autothreads | ||
jnthn | pmichaud: Presumably only on the LHS? | ||
pmichaud | (that doesn't mean that .ACCEPTS cannot autothread, but the spec is pretty clear that .ACCEPTS never sees anything "plural") | ||
jnthn | pmichaud: Otherwise we'd never call Junction.ACCEPTS... | ||
pmichaud | I don't think there should be a Junction.ACCEPTS, now that I think about it. | 18:59 | |
jnthn | ah, ok :) | ||
pmichaud | or, if there is, it never gets called by &infix:<~~> | ||
18:59
wamba left
|
|||
On96 | <masak> last time i got banned for playing with Perl internals (without being aware of it)... | 19:00 | |
pmichaud | confirmed that 8bb3078 is the bad commit. | ||
or, it's the first commit where the syntax.t test fails | 19:01 | ||
jnthn | pmichaud: Oh...I was looking at inheritance.t | ||
pmichaud | I'll check inheritance.t also. | ||
jnthn | pmichaud: Maybe they fail for different reasons - I'd been guessing "same one" | ||
[Coke] | how does one play with perl internals on an irc channel? | ||
nom: say "This doesn't count" | 19:02 | ||
p6eval | nom: OUTPUT«This doesn't count» | ||
jnthn | oh. | ||
syntax.t uses max in a test. | |||
masak | On96: if you play with Perl 6 internals, you get karma. :) | 19:03 | |
jnthn | And max as added in that patch isn't a multi | ||
moritz | oh. | ||
jnthn | Which I think exposes a bug. | ||
I think it's not moritz++'s fault actually, I think there may really be a bug in what happens if you declare a multi, and there's an only in the outer. | 19:04 | ||
It *should* do proto auto-gen. | |||
But it looks like it's trying to use the only as a proto, with innevitable disasterous consequences. | |||
19:04
wamba joined,
PacoLinux left
19:05
mj41 joined
|
|||
dalek | atures: 169374f | diakopter++ | features.json: update User-selected Brackets for rakudo |
19:06 | |
19:09
pjcj joined
|
|||
moritz | well, it was my fault not to spectest | 19:13 | |
on a related matter | 19:14 | ||
nom: proto sub a(|$) { * }; sub a() { } | |||
p6eval | nom: OUTPUT«Illegal redeclaration of routine 'a' at line 1, near ""current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)» | ||
moritz | shouldn't that automatically promote a to a multi candidate? | 19:15 | |
jnthn | moritz: known, S06-multi/proto.t is on my current triage list :) | ||
moritz: There's even a comment in actions.pm saying it's todo ;) | |||
19:16
mj41 left
|
|||
jnthn | Got a patch locally that seems to fix the underling issue that broken S06-multi/syntax.t; spectesting it. | 19:17 | |
sorear | good * #perl6 | 19:19 | |
moritz | jnthn: I have a patch that makes min, max and minmax a multi too :-) | ||
jnthn | heh :) | ||
multi win :P | 19:20 | ||
shinobicl | hi | ||
i have another operator related problem.... maybe is the same as the problem with overloading "eqv" | 19:21 | ||
this time it happens with the infix:<-> operator | |||
when i change the operator by something else (i used "xAC") it works. But when i use xAC it works as expected | 19:22 | ||
basically it is the same as this: | |||
masak | shinobicl: yes, that is the same problem. | ||
shinobicl | ah ok :) | ||
masak | shinobicl: want me to find the RT ticket for you? | ||
shinobicl | i just googled it: rakudo.org/tickets/ .. thanks masak | 19:23 | |
masak | well, there's probably one already in there. | 19:25 | |
moritz | jnthn: heh, when I change it to a multi, I get an ambiguous dispatch between the new candidate and the *@args one | ||
jnthn: I guess you'll run into the same trouble with your fix | 19:26 | ||
jnthn | moritz: no, it passes | 19:27 | |
dalek | kudo/nom: 0e7bdd3 | tadzik++ | src/Perl6/ (2 files): Move document() to Pod.pm |
||
jnthn | moritz: Note it hides the only outside, not includes it. | ||
moritz | jnthn: ah, it ignores the previous only() and autogenerates a proto? | ||
ok | |||
masak | shinobicl: hm, no. I can't find any old ticket like that. | 19:28 | |
shinobicl: you might want to consider submitting one. | |||
19:32
KyleHa joined
|
|||
sorear | o/ masak | 19:34 | |
masak | sorear \o | ||
sorear: it's warm here too, though not nearly as bad, I guess. | 19:43 | ||
pmichaud | Yes, inheritance.t fails on 8b7bea9 | ||
jnthn | masak: Just wait a few months. ;) | 19:44 | |
19:44
envi left
|
|||
pmichaud | 106.1degF here now. | 19:45 | |
jnthn | O.O | ||
jnthn thinks he'd melt in that heat :) | |||
TimToady was trying to parse that as a hex number | |||
pmichaud | (41.2degC for others) | ||
Su-Shee | I just looked into this channel window and started sweating. | 19:46 | |
sorear | it's been 30-35 the last couple days here in San Diego | ||
TimToady | I'll bet he's not actually sitting in air that temperature | ||
pmichaud | not at the moment, no. | ||
but outdoor soccer practices are definitely in air that temperature :( | |||
("football" for others :) | 19:47 | ||
Su-Shee enjoys a nice 98% humidity like basically all days of this summer.. watching her papers and books slowly crumble.. | |||
TimToady | "indoor" for others :) | ||
sorear | it's nice to live in a city where you can put off fixing your AC for years | ||
TimToady | we did that | ||
pmichaud | yeah, we just got new AC units earlier this year -- definitely a good move. | ||
TimToady | it was broken for about ten years.... | ||
Su-Shee | sorear: noone even has a an AC here but a couple of offices ;) | 19:48 | |
masak | my apartment could use an AC some days... | ||
jnthn | Same. | ||
huf | yeah! no AC here so i have to sit in this ungodly refreshing 22C hell! | 19:49 | |
Su-Shee | mine too.. but I'm not going to pay the electricity bill for using an AC... | ||
huf | it's unbearably perfect! | ||
sorear | .oO( my house has AC almost constantly, and hasn't had DC ever) |
||
huf | humor harold i see | ||
Su-Shee | sorear: noone in their right mind would ac an apparment of 122m2 unless having too much money to waste on power :) | 19:50 | |
[Coke] | central air! \o/ | ||
Su-Shee | +t | ||
TimToady | my house has AM in the mornings, and FM the rest of the time | ||
huf | you listen to radio? how quaint, gramps :) | 19:51 | |
TimToady | just one gramp, so far | ||
sjohnson | grandpa | 19:55 | |
sjohnson was on the radio this morning | 19:56 | ||
got to play a trivia game. i guess no one else called in cause i called about 5 mins after they announced callers to do so | |||
pmichaud | maybe the phone lines jammed until then :) | ||
sjohnson | :3 | 19:57 | |
pmichaud | that used to be common on radio call-in contests where I lived | ||
sjohnson | ohh interesting | ||
well it would explain it for sure | |||
jnthn did a radio phone-in when he was fairly young once. The host asked me to do a Michael Caine impression, so I did the "You're only supposed to blow the bloody doors off!" one and got a telling off for swearing on live radio. :) | 19:58 | ||
I think I still won some stuff though. :) | 19:59 | ||
sjohnson | nice | 20:00 | |
i won a pair of movie tickets i think | |||
anyone here like fishing? | |||
moritz | sjohnson: colomon sure does | ||
sjohnson | sweet | ||
i'm going fishing tomorrow | |||
colomon's probably a lot better than me :) | 20:01 | ||
Su-Shee | does going to a fish store count? | ||
sjohnson | if you buy tackle, sure ! | ||
Su-Shee was thinking along the lines of smoked salmon.. ;) | 20:02 | ||
sjohnson | yum yum | ||
masak | jnthn: 'bloody' is a swear? I thought it was one of those mild stand-in words... | 20:06 | |
sjohnson | me too | ||
although i got in trouble for saying that in school from an Irish teacher i had | |||
like you thought masak, i thought i was doing people a service by not using a real swear word | |||
but he wasn't too happy | |||
masak | sjohnson: you've learned Irish? :) | 20:07 | |
huf | next you'll tell me "flaming" and "goat-kissing" are also swear words | ||
sjohnson | (=゚ω゚=) | ||
masak | sjohnson: what's that, like an Irish smiley? :P | ||
sjohnson | heh | ||
some sort of fat chubby cheeked smiling cat face i picked up on the rizon irc network | 20:08 | ||
jnthn | masak: It's not that strong. | ||
masak: Probably considered less so now than when I did it. | |||
Generational also I guess. | 20:09 | ||
masak | yeah, usually that way. | ||
TimToady | so's being a grampa... | 20:13 | |
huf | nah, it's always the older gents who are grampas | 20:14 | |
the new generation barely has any! | |||
Su-Shee is looking forward to the rocking chair and veranda part of grandma'ing. ;) | 20:15 | ||
and baking the perfect biscuits, of course. | |||
TimToady | the newest generation usually has the most grampas | ||
masak | a rocking veranda sounds LTA. | ||
TimToady | we got those here in CA | ||
masak | :P | ||
Su-Shee | masak: I see seasickness ahead with a rocking veranda ;) | 20:16 | |
masak realizes that CA needs a lot of AC | |||
huf | i wonder if the analogue is true for washington... | 20:17 | |
Su-Shee | masak: I think we europeans usally consider the rocking veranda in france and combine it with wine.. | ||
masak | <TimToady> .oO(if I change "Rebuild in progress" to "F*ck you!" maybe someone will fix that sooner... :) | 20:18 | |
I say we do it and find out. :) | |||
Su-Shee: sounds like an unfortunate misinterpretation of "wine on the veranda today would rock!" | 20:19 | ||
Su-Shee | masak: only if you spill it due to too heavy rocking.. | ||
TimToady | going out on the veranda is not what they meant by "Rock out!" | 20:20 | |
jnthn | Just drink enough wine until you think the veranda is stationary. | ||
Problem solved. | |||
benabik | Or find a normal veranda and drink enough wine until it's rocking? | ||
TimToady | wouldn't that require a negative amount of wine? | ||
jnthn | I was relying on cancelling effects...maybe it doesn't work that way. :) | 20:21 | |
Su-Shee | does noone have a veranda and drinks wine?! ;) | ||
TimToady | it's usually porches and whisky in this country | 20:22 | |
or stoops and beers | 20:23 | ||
masak | jnthn: it could if the wine-drinking-rocking-effect forms a cyclic group. | ||
TimToady | here in CA it's hot tubs and wine :) | ||
masak | TimToady: do the hot tubs rock? | ||
TimToady | occasionally, or so I'm told | 20:24 | |
I've never lived anywhere with a hot tub | |||
Su-Shee | we here in berlin usally throw rocks.. especially on may 1st... | ||
diakopter | mmm hot subs | ||
TimToady | nuclear? | 20:25 | |
Su-Shee | no, subway in summer probably.. | ||
masak | sit down, you're rocking the hot sub! | ||
diakopter | nuculear | ||
TimToady | you misspelled that misspelling | ||
diakopter | oh :) | 20:26 | |
Su-Shee | masak: haha I just saw someone rocking a submarine with pressing both hands to the sides in my mind ... ;) | ||
masak .oO( King NucuLear ) | |||
Su-Shee | new hotness from william? | ||
masak | William Shakesub. | ||
PerlJam | masak: King "nuke you" Leer? | ||
masak | this could go on all night, I guess. | 20:27 | |
TimToady | .oO("Shaken, not rocked.") |
||
Su-Shee | sold by the merchant of moscow.. | ||
masak .oO( Das Tub ) | 20:28 | ||
Su-Shee throws olives at TimToady | |||
PerlJam | masak: there was a time on #perl long ago when we riffed on "Torkington" for about 6 hours | ||
masak | PerlJam: oh wow. Tork about endurance. | ||
Su-Shee | argh :) | ||
PerlJam | I think it was the occasion of his first (?) child | ||
masak | after which he decided that was also the last child... | 20:29 | |
Su-Shee | after which he never told any channel on irc again ;) | ||
masak | fork( ington ) | ||
Su-Shee | oh boy.. :) | 20:30 | |
PerlJam | well ... I haven't seen him on IRC in a while, but it could be that I just haven't been paying close enough attention. :) | ||
Su-Shee | PerlJam: what have you done.. :) | ||
TimToady | My! Isn't hacking nice outside today? | ||
TX excepted | |||
masak | TimToady: too hot outside :P | ||
jnthn | too hot inside too | 20:31 | |
rain tomorrow :) | |||
diakopter | jnthn: too hot indoors and inwindows too? | ||
masak | PerlJam: after he got his first child, I bet he was the Tork of the Town... | ||
tadzik | I've been outside the entire day, now I'm not sure if I havn an allergy, or a cold | 20:32 | |
diakopter | Nanu Nanu | ||
PerlJam | tadzik: you're dying! (slowly like the rest of us) | ||
tadzik | probably, yes :( | 20:33 | |
masak | I dunno, some of us could be highlanders. | ||
or so I've heard. | |||
diakopter | Scotland? | ||
masak suspects sjohnson's Irish teacher might have been a highlander | 20:34 | ||
hearing 'bloody' in class gets old after a few centuries... | 20:35 | ||
speaking of which, and just to bring this discussion back on topic... | 20:36 | ||
...aren't you glad we didn't end up with this RFC in Perl 6? dev.perl.org/perl6/rfc/9.html | |||
:) | |||
20:37
On96 left
|
|||
masak | under Issues: "This RFC could do with a better title." :D | 20:39 | |
20:41
timbunce left
20:45
Fried_ left
20:47
skangas left,
timbunce joined
|
|||
masak | 'night, #perl6 | 20:48 | |
20:48
masak left
20:53
ranott joined
21:03
bluescreen10 left
21:04
mj41 joined
|
|||
dalek | kudo/nom: 45eeaac | jonathan++ | src/Perl6/Actions.pm: Ensure we generate a proto if the thing in the outer scope is an only. |
21:13 | |
diakopter | thinking of adding to features: Perl5 mode by default :) | 21:25 | |
sorear | go ahead | 21:26 | |
21:26
dorlamm joined
|
|||
diakopter | heh heh | 21:26 | |
jnthn | Doesn't it only have to do that if installed as "perl"? :) | ||
diakopter | oh yeah | 21:27 | |
21:27
mj41 left
|
|||
diakopter | actually | 21:28 | |
21:28
MayDaniel left
|
|||
diakopter | "The standard Perl 6 grammar will include the ability to parse a well-behaved subset of Perl 5 on its own ..." maybe the item should be "run STD's well-defined Perl5 subset" | 21:29 | |
21:30
colorspace joined
|
|||
sorear | diakopter: what does that mean? | 21:34 | |
S04:1521 is dubious | 21:37 | ||
21:37
kaare_ left
|
|||
sorear | it's the only place in the specs that talks about calling a function and providing it with an initial topic | 21:38 | |
I have half a mind to think that it should be a positional parameter, and half to think it should not be provided at all | 21:39 | ||
input? | |||
diakopter | sorear: that quote is from A)1 | ||
S01 | |||
sorear | diakopter: I am wondering what you mean by "STD's well defined Perl5 subset" | ||
diakopter: do you mean STD_P5? | |||
diakopter | I meant whatever "well-behaved subset of Perl 5" in the S01 quote meant | 21:40 | |
21:40
KyleHa left
|
|||
diakopter | how did I miss Mono being dropped by Novell/Attachmate | 21:40 | |
21:42
skangas joined
21:43
Mowah left
|
|||
sorear | diakopter: count yourself lucky | 21:44 | |
21:45
Psyche^ joined
|
|||
diakopter | seems they lost their whole build/test systems and bug database, which are (were) enormous assets | 21:45 | |
21:48
Patterner left,
Psyche^ is now known as Patterner
|
|||
sorear | novell is still hosting the bugs for the time being | 21:48 | |
diakopter | oh whew | ||
sorear | I'm not sure what you mean by the former; there's still a Makefile on github and it still has "all" and "check" targets | ||
well, a Makefile.{am,in} | |||
diakopter | I meant hardware systems | 21:49 | |
sorear | ah | ||
it'll be interesting to see what happens in the coming months | |||
diakopter | not just the hardware, all the time it took to set them up | ||
sorear | now that they're relying on MonoTouch and MonoDroid to keep food on the table, I think there will be a shift of priorities | 21:50 | |
21:50
y3llow_ joined,
pothos_ joined
|
|||
diakopter | away from linux/windows? | 21:50 | |
sorear | I'm not sure exactly what form the fist will take | 21:51 | |
s/fist/shift/ | |||
21:52
pothos left,
y3llow left
21:53
y3llow_ is now known as y3llow,
pothos_ is now known as pothos
21:57
colorspace left
22:02
PacoLinux joined
22:07
pochi joined,
PacoLinux left
|
|||
dalek | kudo/nom: 3823e80 | pmichaud++ | src/core/Range.pm: Fix 'a'..'z' (and other Str-based Ranges) by delegating to |
22:07 | |
22:07
PacoLinux joined
22:11
timbunce left
|
|||
dalek | ecza: e99a973 | sorear++ | src/niecza: Refactor phaser action methods and generate $_-binding signatures were needed |
22:17 | |
22:18
timbunce joined
22:26
timbunce left
|
|||
jnthn | TimToady: Where does EXPORTALL actually live these days? | 22:27 | |
What is it a method on? | |||
S11 seems...confused. :) | 22:28 | ||
It looks like a method on...the package itself. Apart from modules and packages don't really have methods, or support declaration of them at least | 22:29 | ||
We find EXPORT by looking in the lexpad of the UNIT being loaded. | 22:30 | ||
I'm wondering if EXPORTALL is really an &EXPORTALL there. | |||
sorear | Foo::Bar::.EXPORTALL | 22:31 | |
it's a call on the Stash | |||
jnthn | Oh, you think it's on Stash? | ||
Hm | |||
So how do I override it? | |||
sorear | probably it has to work something like EXPORTHOW | 22:32 | |
jnthn | And how does that fit in with the fact that EXPORT is lexical these days? | ||
Right, EXPORTHOW is also lexical. | |||
And found via UNIT of the thing we're loading. | |||
sorear | maybe it should really be a call on Foo::Bar.HOW.EXPORTALL | ||
jnthn | That's quite workable. | 22:33 | |
But I'm still not fully convinced (more) | |||
Thing is that use Foo::Bar; doesn't find its EXPORT any more through the package system, but instead just through UNIT of the loaded module. | |||
It'd feel odd to say "well, the name matching up matters for EXPORTALL, but not really for EXPORT". It's an awkward assymetry. | 22:34 | ||
S11 feels like it's half way towards embracing a lexical view of the world, but hasn't quite let go of it's package-centric one in places yet. :) | |||
The exporting parts, at least. | |||
(Also, EXPORTHOW ain't spec yet, and I'm vaguely hoping for better.) | 22:35 | ||
(It occurs to me that %*HOW<class> = ... in EXPORTALL could potentially do it...) | |||
22:43
drbean joined
22:52
rdesfo joined
22:53
dorlamm left
22:59
dorlamm joined
23:05
ab5tract joined
23:12
leprevost joined
23:19
whiteknight joined
23:26
wamba left
|
|||
jnthn | sleep & | 23:28 | |
dalek | kudo/nom: c8eb6c4 | jonathan++ | src/binder/multidispatch.c: Sort multi-dispatch fixes, to deal with a bug noted by pmichaud++. |
23:29 | |
23:29
PacoLinux__ joined
23:30
PacoLinux left
23:31
PacoLinux__ left,
PacoLinux joined
23:32
tokuhirom joined
23:35
leprevost left
23:41
molaf_ joined
23:44
sftp left,
scottp left,
jasonmay joined,
scottp joined,
sftp joined,
molaf left,
nsh left
23:45
nsh joined
23:47
daemon left
23:48
daemon_ joined
|