Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-08-04

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo