»ö« 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 1␤Check failed␤FAILED 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«78622208␤63995840␤» 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 A␤current 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 32849929␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 32849977␤syntax 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 24457225␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 24457273␤syntax 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 1␤current 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 511␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 556␤syntax 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 861␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 898␤syntax 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 506␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 542␤syntax 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 12320715␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 12320751␤syntax error ... somewhere␤»
jnthn aha
moritz nom: BEGIN { /\d/ } 10:22
p6eval nom: OUTPUT«error:imcc:syntax error, unexpected DOT ('.')␤ in file '(file unknown)' line 510␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 546␤syntax 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 510␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 546␤syntax 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 1␤current 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 1␤current 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«-50␤50␤Can not substract those 2 numbers␤Bool::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)-50␤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 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 loop␤Other 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 failed␤FAILED 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