»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
jnthn wknight8111: Very odd. It seems that Rakudo's Exception class both inherited from *and* had a Parrot Exception as an attribute. I'm...really not sure why. 00:00
wknight8111 awesome
jnthn wknight8111: The spectests may be about to tell me why now i've stopped inheirting from it. Turns out it gets rid of those warnings though.
erm
not warnings
the prints I put in to say we hit the freeze/thaw path.
It may be that we need it to be subclassing Parrot's Exception class for Parrot to believe its throwable or somethng. 00:01
spectesting now. We'll see.
sorear: I'm not the best person to ask, but see S02 for a mention of them. But it's a bit breif.
TimToady: Are slangs detailed elsewhere any more than they are in S02? 00:02
Mmm...weißbier. 00:04
fridim Hi. What did happen to show such a decrease in the rakudo project status ? 00:08
TimToady progress
00:08 synth joined
jnthn fridim: We merged a branch that resulted in a *lot* of important improvements, but also caused some regressions. 00:09
fridim oh ok
00:09 hanekomu_ left
TimToady like lazy lists 00:09
jnthn fridim: We're busily hunting them down and dealing with them.
fridim cool
00:09 ShaneC1 joined
sorear that was nqp-rx, right? 00:10
TimToady rakudo: (1..* Z~ 'a'..*).batch(20).say
p6eval rakudo 53ace9: OUTPUT«1a2b3c4d5e6f7g8h9i10j11k12l13m14n15o16p17q18r19s20t␤»
jnthn sorear: We switched to using nqp-rx and the new regex engine as part of the big re-working, yes.
sorear: Also built the grammar up again to be much closer to STD.
sorear joined the project last week and is not up to speed on history
jnthn sorear: Before, we had no protoregexes and STD and Rakudo's grammar were...really very different...in places. 00:11
00:11 ShaneC left
jnthn sorear: The other very big change was much less visible, but the metamodel stuff got a complete overhaul too. 00:11
TimToady jnthn: most of the docs on slangs are in how STD does sublanguages :)
jnthn TimToady: :-)
sorear Oooh metamodel stuff, that's *important* 00:12
00:12 fglock left
sorear What exactly is a protoregex? 00:12
colomon jnthn: I haven't reworked the grammar for Xop and Zop yet, just working on getting the implementation more solid. Testing now, will push soon unless someone beats me to it. :)
TimToady sorear: in short, a set of regex alternatives that are named rather than being listed by |
jnthn colomon: I've got one local patch I'm testing now but I can hold of pushing. Or you can ignore testing it. It's a one-liner.
TimToady sorear: and hence, extensible via derivation across many related languages 00:13
so you can just match <infix> and it will give you all rules that start infix:sym<op> 00:14
and that set of rules doesn't all have to be defined in the same grammar
sorear mmm 00:15
TimToady STD uses this heavily, even internally, to generate quoting languages, regex languages, and such
jnthn TimToady: class Foo { has $.x is rw }; my $y = Foo.new; $x.y = 42; # works, think we all agree on this 00:16
TimToady: class Foo { has $.x is rw }; my $y = Foo.new; $x.y(42); # should this also work?
colomon jnthn: if you don't think it's a big deal, I can certainly push without testing if your one-liner is in the way. :)
sorear is it possible to do stuff like Devel::Declare in the p6 grammar system?
colomon is making pudding
jnthn I've not seen anything in the spec that says it should.
sorear import a module to get new keywords?
jnthn And want to toss the bogus spectests we'd had todo'd for ages on it... 00:17
TimToady sorear: that's certainly possible
here's STD's definition of double quotes: 00:18
token quote:sym<" "> { '"' <nibble($¢.cursor_fresh( %*LANG<Q> ).tweak(:qq).unbalanced('"'))> '"' }
it actually derives two new languages just in that one line
tweak(:qq) adds in all the double-quote escapes
unbalance('"') derives a language in which " is a stopper 00:19
00:19 cdarroch left
lue O.o 00:19
TimToady it would be that easy to add your own quotes in a derived grammar 00:20
sorear Is :sym<" "> semantically important, or just a name?
TimToady minimally, it's just a name, but we reuse the symbol if the rule matches <sym>
and it's also available for constructing an eventual operator function, such as infix:<+>, which is parsed by infix:sym<+> 00:21
basically, every time you say something like 'sub postfix:<!>" you're deriving a new sublanguage with a new postfix: rule 00:22
snarkyboojum wonders what is the easiest way to get started reading and understanding STD.pm :)
TimToady I dunno, I still don't entirely understand it myself... :) 00:23
snarkyboojum heh :)
colomon snarkyboojum: if you figure it out, let me know. :)
snarkyboojum I was thinking it'd be handy to learn Perl 6 first heh
sorear What does my $*FOO; even mean? 00:25
TimToady a dynamically scoped variable 00:26
kinda like local in Perl 5
only better
sorear is it truly global?
what's the difference between my $*GOAL ::= $STOP; and temp $*GOAL ::= $STOP; ? 00:27
TimToady (actually, the p5 translation of STD.pm uses local)
snarkyboojum an annotated STD.pm a la lion's commentary would rock :)
lue how's about mine? :) 00:28
snarkyboojum lue: you've annotated STD.pm? :) 00:29
jnthn alpha: my %h = a => 1, b => 2; say %h.elems
rakudo: my %h = a => 1, b => 2; say %h.elems
TimToady sorear: in real P6, $*FOO is a lexical, and when you access it, it looks up the dynamic call stack to find the innermost def
p6eval alpha 30e0ed: ( no output )
rakudo 53ace9: OUTPUT«Method 'elems' not found for invocant of class ''␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
TimToady my $*GOAL ::= $STOP is (in theory) setting a readonly lexical that can be seen by callees as $*GOAL 00:30
you should not see an initializer on temp $*GOAL because the intent is to initialize to the outer value 00:31
er, the caller value
lue snarky: no, but I could :)
TimToady sorear: the advantage of using lexicals over globals is that they're automatically thread-local if declared inside a thread's lexical scope 00:32
this will be important for scalable multithreading 00:33
the main thing to understand about the OOness of STD is that tokens and rules are really just methods 00:34
snarkyboojum lue: excellent :)
TimToady they just happen to be methods on some derivative of Cursor, which manages parsing
and the current derivative happens to be the sublanguage you're currently parsing
so it's really easy to write a method that returns a language derived from the current language 00:36
jnthn TimToady: Heh. My first cut of user defined operators is, I'm afraid, very wrong and evil.
(Monkey patches the current grammar, rather than deriving new...)
TimToady: Do you essentially have to rebless the current cursor? 00:37
TimToady that's a possible optimization, of course
but optimizations are cheating, after all
jnthn Well, I did it because it's easy rather than for speed.
TimToady typically return a new Cursor, since Cursors are (in theory) immutable
I do rebless in a few places where I know I can cheat :)
colomon jnthn: pushed 00:39
TimToady actually, no I don't
I just poke the current .pos if I know I can get away with it...
jnthn colomon: Cool 00:40
TimToady mainly when we're in a ratcheting situation
gotta go cook nom (delayed St Pat's fare)
&
colomon corned beef?
dalek kudo: 53c2dde | (Solomon Foster)++ | src/builtins/Code.pir:
Fix .assuming, as per jnthn++.
00:41
kudo: a5720bb | (Solomon Foster)++ | src/Perl6/Actions.pm:
Actually create Xop as a function instead of just using it as syntactic sugar for .crosswith.
kudo: a0064d2 | (Solomon Foster)++ | src/Perl6/Actions.pm:
Port the new proper take on Xop to Zop as well.
kudo: e252983 | (Solomon Foster)++ | (2 files):
Merge branch 'master' of [email@hidden.address]
kudo: 50392a2 | (Solomon Foster)++ | src/ (3 files):
Merge branch 'master' of [email@hidden.address]

Seems we don't need our Exception class to inherit from Parrot's Exception (we has-a Parrot Exception anyway...). This avoids us hitting the freeze/thaw default code-path, which occasionally segfaults, so may help improve stability too.
00:43 REPLeffect left
jnthn colomon: Nice. 00:46
colomon: Pulled and running with my (small) patches. 00:49
pugssvn r30131 | jnthn++ | [t/spec] Re-fudgings and other tweaks to S12-attributes/instance.t; toss two tests I've long considered bogus anyway. 00:51
jnthn colomon: Got two S12 tests I can re-enable.
colomon: Between them it's just short of 150 extra we'll run, and > 100 passing.
whoa! 00:56
# S05-mass/stdrules.t
All 183 in there pass!
colomon \o/ 00:57
lue \o/ jnthn++++++
00:57 wknight8111 left 00:59 quietfanatic joined
jnthn Well, that's close to 300 tests won back today then. :-) 00:59
snarkyboojum wowsers - v. impressive
jnthn Current reclaim stats: 01:00
(this is number of tests by spec that we've still got commented out)
S02: 18
S03: 22
S04: 11
S05: 31
S06: 13
S09: 1
S10: 1
S11: 4 01:01
S12: 28
S13: 1
S14: 8
S16: 4
S28: 1
S29: 1
S32: 22
integration: 12
01:01 ggoebel joined
colomon did you try reduce.t? 01:02
jnthn oh, good point
I tried some S03 reduce-metaop
But fail
colomon I'll take a look. 01:03
jnthn no...
Well, the parsing is done
So in theory the rest is...not so bad.
I'm not sure what the function form of the \ version is either
colomon jnthn: I propose it should just be a :arg to reduce. 01:04
jnthn wfm
:triangle ? :-)
# S32-container/zip.t # maybe this one will be not so hard to make pass later too 01:05
01:05 huf_ is now known as huf
colomon hmmm. 01:05
:steps ? 01:06
:stages ?
jnthn oh
reduce { $^a + $^b }, 0, @array
What on earth is the 0?
colomon reduce is *@values, so it could be the first in the array. 01:07
jnthn oh, I didn't has it that way 01:08
colomon that might have been the complication that kept me from doing sub reduce.
:)
jnthn Well, I only *really* wanted it for [+] for now anyway ;-) 01:13
colomon ;)
TimToady it's supposed to call infix:<+>() if there are no args
which should return 0
colomon right.
lue rakudo: say [+] 1,3,4 01:15
p6eval rakudo 53ace9: OUTPUT«8␤»
lue :O It works!
colomon lue: did you not believe jnthn? :)
lue no, but I would think p6eval'd be behind :)
(where have I been? :) ) 01:16
sorear What is ::STD::P6?
jnthn rakudo: my $x = [=>] 1, 2, 3; say $x.WHAT
p6eval rakudo 53ace9: OUTPUT«Pair()␤»
jnthn rakudo: my $x = [=>] 1, 2, 3; say $x.key
p6eval rakudo 53ace9: OUTPUT«1 2␤»
TimToady basically, it should really just be calling infix:<+>(|$parcel) repeatedly and infix:<+>($prev,|$parcel) if previous didn't bind all args
jnthn ...d'oh.
TimToady s/repeatedly//
colomon .reduce is still a bit short of full [op] specs.
sorear needs to get up to speed on | and parcels 01:17
jnthn spec is still a bit short of iterator instead of capture calls
*on
;-)
TimToady but it's that partial binding thing again, if we want to be most general
01:17 ggoebel left
jnthn TimToady: Yes. I'm still in need of a detailed spec. :-) 01:17
TimToady: At the moemnt I just don't have something concrete enough to try and implement. 01:18
(Or to get a grip of how hard it'll be to do.)
colomon there's also the left vs right distinction, I'm assuming you don't have that yet?
jnthn colomon: Yeah 01:19
colomon: Well, maybe ti's that reduce needs to check the associativity?
colomon jnthn: is there a sensible way to translate a str to another str in Actions.pm?
jnthn: hey, can reduce do that?
lue rakudo: [@] my var1, var2; say @var1.WHAT 01:20
p6eval rakudo 53ace9: OUTPUT«Confused at line 11, near "[@] my var"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
colomon I mean, is there a .assoc or something like that?
lue Aw. Why didn't it work :)
pugssvn r30132 | jnthn++ | [t/spec] Little more fudge tweaks.
jnthn colomon: I'd guess we need there to be
Probably set on the proto. 01:21
colomon it's :assoc in the grammar. 01:22
jnthn I do kinda wonder if Multi wants to essentially have a "has $.proto handles *" for trait fallback
TimToady lue: it didn't work because @ isn't an infix 01:23
jnthn colomon: (str to another str) Sorry, I didn't understand.
colomon: Specificly?
colomon I'm looking at prefix_infix code again.
lue alpha: say [+] 1,2,3 01:24
TimToady you mean infix_prefix?
colomon sorry infix_prefix_meta_operator in Actions.pm
snarkyboojum rakudo: my $s = Set.new(1..10); my $u = Set.new(2..8); say $u ⊆ $s 01:25
colomon we ought to be able to switch all of those over to the Xop / Zop model.
lue rakudo: multi sub infix:<jnthn>($a,$b){say "$a and $b";}; say "Oh why hello ",([jnthn] 1,2)
colomon but to do that, we need to be able to map from the metaop name to the function that implements it.
snarkyboojum rakudo: my $s = Set.new(1..10); my $u = Set.new(2..8); say $u.subsetorequal($s)
colomon so X => 'crosswith', Z => 'zipwith', etc. 01:26
TimToady maybe p6eval is bogged down with recompile
p6eval alpha 30e0ed: ( no output )
lue erm, p6eval is not responding :/
p6eval rakudo 53ace9: ( no output )
rakudo 53ace9: OUTPUT«Could not find non-existent sub &infix:<jnthn>␤current instr.: '' pc -1 ((unknown file):-1)␤»
rakudo 53ace9: OUTPUT«1␤»
kudo: a31d523 | jonathan++ | t/spectest.data:
Turn S12-attributes/instance.t and S12-methods/chaining.t back on.
kudo: 2d2b2d5 | jonathan++ | src/core/EnumMap.pm:
Implement Hash.elems.
kudo: 3cb83c3 | jonathan++ | t/spectest.data:
Turn S05-mass/stdrules.t back on; all 183 pass.
jnthn colomon: Could always build a hash.
snarkyboojum rakudo: my $s = Set.new(1..10); my $u = Set.new(2..8); say $u ⊆ $s
sorear TimToady: Is there documentation on Cursors?
snarkyboojum oh well.. wanted to try out the funky set comparison operators e.g. ⊆ 01:28
p6eval rakudo 53ace9: ( no output )
snarkyboojum rakudo my $s = Set.new(1..10); my $u = Set.new(2..8); say $u.subsetorequal($s)
lue A great idea for the official P6 module! 01:29
TimToady sorear: not much, you'd get more out of reading Cursor.pmc (warning, grotty p5 code)
sorear mm
snarkyboojum rakudo: my $s = Set.new(1..10); my $u = Set.new(2..8); say $u.subsetorequal($s)
TimToady there are some mentions in S05
lue ...if symbols like ⊆ aren't defined by default :)
p6eval rakudo 53ace9: ( no output )
snarkyboojum check out src/core/Set.pm :) masak++
lue froody 01:30
snarkyboojum rakudo: my $s = Set.new(1..6); my $u = Set.new(4..8); say $s.intersection($u).perl 01:31
rakudo: my $s = Set.new(1..6); my $u = Set.new(4..8); ($s ∩ $u).perl.say 01:32
p6eval rakudo 53ace9: OUTPUT«Set.new(4, 5, 6)␤»
rakudo 53ace9: OUTPUT«Confused at line 11, near "($s \u2229 $u)."␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
colomon recompiles ... so .... slow... 01:33
lue I would love to help in fixing the memory leak, but that's #parrot 's problem :) 01:34
jnthn I think this may be a UTF8 problem. :-/ 01:36
colomon jnthn: isn't there already utf8 in things like «<=» ? 01:37
01:38 justatheory left
spinclad
.oO(but <= is 7bit... 6bit even)
01:39
sorear French quotes are in ISO-8859-1, the 8 bit subset of Unicode
lue alpha: multi sub infix:<∩>($a,$b){$a+$b;}; say 3 ∩ 4
p6eval alpha 30e0ed: OUTPUT«7␤»
colomon sorear: ah. 01:40
sorear ISO-8859-1 is targetted at Western Europe
it has all the frills you need for French, Spanish, German, (English), etc
but not Greek etc
lue would that be a R* or Parrot problem then? (hard to tell, seeing as it works fine outside of the compiled source) 01:41
01:42 hugme left 01:43 justatheory joined
sorear I've heard lots of FUD about Unicode support in Parrot 01:43
I'd be interested in knowing how much is true
lue rakudo: say "\u1923 \u0142 \u0221 \u0314 \u0607" # just curious 01:44
p6eval rakudo 53ace9: OUTPUT«\u1923 \u0142 \u0221 \u0314 \u0607␤»
lue oh! :( 01:45
colomon rakudo: say "\u[1923]" 01:47
p6eval rakudo 53ace9: ( no output )
jnthn OK, sleep is wanted
01:47 envi^home joined
colomon night! 01:47
lue sleep is given o/
jnthn night o/
lue rakudo: say "\x[1923,0142,0221,0314,0607]" # just curious 01:48
p6eval rakudo 53ace9: OUTPUT«ᤣłȡ̔؇␤»
lue is that a BACKWARDS cube root?
rakudo: say "\x0314" 01:49
p6eval rakudo 53ace9: OUTPUT«̔␤»
lue rakudo: say "\x0221"
p6eval rakudo 53ace9: OUTPUT«ȡ␤»
lue rakudo: say "\x0607"
p6eval rakudo 53ace9: OUTPUT«؇␤»
lue rakudo: say "\x[0605,0606,0607,0608,0609]" 01:50
p6eval rakudo 53ace9: OUTPUT«؅؆؇؈؉␤»
sorear vim thinks Cursor.pmc is C code, stupid Parrot not picking unique file extensions 01:51
lue .u ؇
phenny U+0607 (No name found)
sorear mumbles at a screenfull of xFFFD
lue why can't they be .bolton files for PASM .notlob for PIR? :) 01:52
sorear: sorry :)
.u FFFD 01:54
phenny U+FFFD REPLACEMENT CHARACTER (�)
02:00 PZt joined 02:04 am0c left
dalek kudo: a6e9e13 | (Solomon Foster)++ | src/Perl6/Actions.pm:
Mark that the reduce operator has been generated.
02:12
lue is currently planning out a proposal to Wikimedia for a "Wikiguide" project. 02:21
snarkyboojum what does something like: %r = box $I0 do? 02:25
TimToady boxes up an integer as an object 02:26
snarkyboojum box $I0 creates a PMC from an integer right... 02:27
TimToady: what's the %r do in PIR?
colomon return value, isn't it? 02:28
snarkyboojum ah!
colomon: cheers
TimToady: cheers
colomon snarkyboojum: mind you, I'm pretty weak with PIR. :)
snarkyboojum %r must be something to do with Q:PIR though? 02:30
colomon I think there's some subtlety there I don't get, because there's also a return in PIR. 02:31
snarkyboojum: I suspect you're right about that.
snarkyboojum my goodness the "change this line, build, wait for failure" iteration is long eh? :) 02:32
02:32 ShaneC1 left
colomon for sure. 02:32
snarkyboojum not good for newbies like myself 02:33
colomon it's really getting annoying.
snarkyboojum plenty of time to read documentation while waiting I guess
colomon: did it always take this long, or has it become appreciably longer?
colomon I'm watching "Republic of Doyle" with my wife and a friend of ours. Good times. :)
It's a new thing, jnthn and I have been complaining about it all day. 02:34
snarkyboojum I see.. let's hope it suddenly disappears through some flash of brilliance :) 02:35
colomon I guess I can test jnthn's theory on the source of the problem on my quadcore downstairs without interrupting development here... 02:37
snarkyboojum would be cool if stage 0 compiler could use both cores when compiling core.pm -> core.pir 02:38
or perhaps it does...
I think it does :)
lue snarky: I detect several Level 3 brilliance flashes near Proxima Centauri. They should be here soon...
snarkyboojum lue: about 4 light years away? :) 02:40
lue It's faster than light. Won't take that long 02:42
sorear can't wait for stage 0 to be deleaked
lue It's called blocking the draft, and their aren't enough guys in the neighboring #parrot room to block it :) 02:45
There are barely enough people here on #perl6 to block this room's draft, let alone another's! 02:46
s/draft/drafts/
Teratogen .pir? 02:49
snarkyboojum Teratogen: Parrot Intermediate Representation - an assembly language for the Parrot VM 02:51
Teratogen thanks
I collect file extensions =)
and mime types
snarkyboojum then add .pasm, pir, pbc as well :) 02:52
oh and .pmc :)
lue PIR is slightly higher level than assembler. PASM is parrot's assembler :) 02:53
snarkyboojum they're both assembly languages of sorts - PIR is just a higher level assembly language :) 02:54
spinclad snarkyboojum: %r becomes a $Pn register which is used as the value of the Q:PIR block. it's not stric 02:55
Teratogen ok thanks
snarkyboojum spinclad: ah ok - cheers, so effectively the return value of the Q:PIR block? 02:56
lue there should be the .timtowtdi file (P6 related, of course, but no idea what it should contain)
02:56 jaldhar joined
spinclad *strictly a return as the Q:PIR block is inserted inline. 02:56
snarkyboojum okydoke
fridim (perl6.org is down)
spinclad a 'return' op within the Q:PIR block would return from the including sub. 02:57
snarkyboojum spinclad: cool - I think I even understand that! :)
lue aw, perl6.org is down :( (I am now thinking of creating a new protocol for the internet: SubEtha-Net Protocol) 02:59
.oO( senp://search:h2g2;term:"perl6"; )
03:00
sorear Teratogen: remember to add pmc twice - Perl6 uses it for two quite unrelated files 03:06
Teratogen ok
colomon phenny: tell jnthn You're quite right. Compile time 5m38.086s current code, 3m1.791s with the Set.pm commit reverted. 03:10
phenny colomon: I'll pass that on when jnthn is around.
lue phenny: tell jnthn Read colomon's message. It's critical [ :P ] 03:12
phenny lue: I'll pass that on when jnthn is around.
sorear =[- 0 03:13
spinclad phenny: tell phenny to tell jnthn if we all tell phenny to tell you it must be important, no? 03:18
phenny Hey, I'm not as stupid as Monty you know!
spinclad :)
lue :O Monty Python is not stupid! 03:20
phenny: tell phenny it's work is appreciated
phenny Hey, I'm not as stupid as Monty you know!
spinclad Monty Haul, maybe? 03:21
lue phenny: tell lue this is getting ridiculous 03:22
phenny You can tell yourself that.
lue :D 03:23
spinclad phenny: tell me i'm pretty
phenny Hey, I'm not as stupid as Monty you know!
spinclad :( 03:24
lue phenny: Monty is not stupid!
phenny: tell Link to save the world
phenny lue: I'll pass that on when Link is around.
spinclad *sob* phenny thinks i'm ugly! i bet hugme wouldn't say that! 03:25
lue that's enough abuse. :)
hugme: hug hugme
it's gone again! :(
spinclad *sob* and hugme isn't even *around*! 03:26
spinclad breaks down completely
lue phenny: tell hugme he is needed badly
phenny lue: I'll pass that on when hugme is around.
lue lessee... any other bots we can use? 03:27
buubot: plugins
buubot lue: add_paste arg be bels cache_check compose conf conf_dump core define echo eval factoids farns geoip google head help host_lookup imdb its jbe jbels join karma karma_modify more nick_lookup oeis part pastebin plugins quote reload_plugins restart rss rss_title rt save_config sc2 seen shorten show_paste spell tell tfw topic unicode weather
lue buubot: google buubot 03:28
buubot lue: www.perlmonks.org/?node_id=731727 - meow for buubot Dec 20, 2008 ... only meant for a buubot to 'eval: ', due to the wonderful things it stuffs into $_. To be honest, the join bit was a happy accident: ...
lue hey! buubot has a karma plugin! 03:29
03:30 justatheory left
sorear buubot: karma TimToady 03:34
buubot sorear: TimToady has karma of 169
lue buubot: karma jnthn 03:36
buubot lue: jnthn has karma of 649
lue jnthn++ (for all the great work he does) 03:37
buubot: karma jnthn
buubot lue: jnthn has karma of 650
lue :O It does keep track!
(still)
buubot: karma lue
buubot lue: lue has karma of 22
lue :)
sorear buubot: karma sorear 03:40
buubot sorear: sorear has karma of 4
snarkyboojum buubot: karma pmichaud
buubot snarkyboojum: pmichaud has karma of 879
lue I would experiment more with the karma system, but that seems unethical 03:41
buubot: karma phenny
buubot lue: phenny has karma of 14
lue buubot: karma buubot
buubot lue: buubot has karma of 2
sorear buubot: karma buu
buubot sorear: buu has karma of 151
03:42 petdance joined
colomon phenny: tell jnthn help? I rewrote the Actions for !op and Rop, and now it seems like != is parsing as ! =, which is causing all kinds of trouble. What I don't understand is how this is different than what I had before in terms of grammar... 03:47
phenny colomon: I'll pass that on when jnthn is around.
03:49 araujo joined
spinclad colomon: LTM fail? (since nqp doesn't fully LTM yet,) reorder some new alternatives? 03:49
does it seem to parse as ![=], [!]=, or two tokens? 03:50
[!]= doesn't make much sense, as ! isn't infix, but still 03:51
03:52 araujo left 03:53 araujo joined
TimToady certainly != should beat a meta ! 03:54
spinclad (the [!=] parse should be best match in a proper LTM, like STD i presume: same length as the other compounds but a specific match)
TimToady: you beat me 03:55
TimToady STD doesn't look past the metaop
so ! is the longest token for a metaop
the old rakudo model was generating tokens of the whole thing, so maybe something is hanging on there 03:56
spinclad (so in !> why does it choose the metaop over bare !? that bare ! is prefix, so not seen?) 03:58
03:58 snarkyboojum left
TimToady there is no bare ! infix 03:58
spinclad right, i just worked that out
TimToady and for something like X vs Xop, it's order based 03:59
well, it was, though now we require a \S after meta X
so it always checks the meta op first now 04:00
regardless of order 04:01
(in STD)
spinclad ok, i had been thinking meta[op] was parsed as a single token for LTM purposes, even if a compound token. i sit corrected.
TimToady used to be, but that doesn't scale
and doesn't allow recursive meta tokens 04:02
since LTM requires DFAable
sorear why does LTM require DFA? 04:03
TimToady theoretical efficiency
spinclad (well, my model had LTM chasing the recursion, but just as well not, as TimToady knows better than i.)
TimToady and maps well onto humans ideas of words 04:04
or morphemes
lue I normally enjoy theoretical things, but La Deklaroj de Nocioj Asocio (me) hasn't looked over it :) 04:05
TimToady we do have the concept of metatokens that exclude spaces though, but they're composed of tokens 04:06
spinclad hm. i know of a fair number of languages where 'word' and 'morpheme' seem to be recursive notions
prefix + stem -> stem, stem + suffix -> stem 04:08
but those would be compounds of tokens then, if not lexicalized 04:10
the productive internal sandhi rules (that derive regular inflection, like 'worked' and 'vaxes', not 'broken' and 'vaxen') would apply to these compounds to produce the surface word forms. 04:18
it would be an interesting stretch to do this naturally in a Perl 6 grammar. 04:20
04:20 am0c joined 04:21 justatheory joined 04:36 meppel joined 04:37 eternaleye joined 05:00 petdance left 05:23 p6eval left 05:26 p6eval joined 05:27 justatheory left 05:34 justatheory joined 05:41 Exodist left 05:45 justatheory left 05:50 Chillance left 05:52 MAK_ joined
lue hello? (it's been over an hour since the last comment...) 05:57
MAK_ Hi
lue hello o/
MAK_ Just joined and finding where to start with Perl6... Jnthn asked to read moritz's perl5 to 6 blog posts 05:58
How in-depth will be the book which Perl6 hackers are writing currently 05:59
05:59 Exodist joined
MAK_ Will it be like taking a feature of P6 and showing how to use it in an example, and then covering all the features? 06:00
As a suggestion it will be good if they also explained extremness of what is possible with perl 6 06:01
06:02 Exodist left, Exodist joined
MAK_ The 'extent' of what is possible is Perl5 really keeps perl programmers always motivated to use it 06:03
lue I cannot help you there, mainly because it's almost time to sleep :D 06:09
goodnight o/
TimToady it's at perlgeek.de/en/article/5-to-6
unfortunately perl6.org is down at the moment
but I still have old page up here :)
o/
MAK_ TimToady : Thanks :) 06:12
The usual way of learning a language is to proceed thinking everything's right, manuals are all available 06:13
And its all done
In perl6 the cycle of learn-unlearn-learn is so steep
Its real fun :)
06:14 IllvilJa joined
MAK_ After some time, reading the spec and compiler code seem to be the 'current' way of being good at perl 6 06:15
TimToady so far, and just absorbing things by osmosis here
but books are in progress 06:16
06:16 aesop joined
MAK_ In a way thats good, that helps to be a better programmer ... its good to know what magic happen inside your language compiler. Especially in case of perl... 06:16
TimToady well, the main difference between what you have to go through and what we went through over the years is you hopefully don't have to go down all the same blind alleys we did :) 06:18
MAK_ People who write these compilers and interpreters are really great, they are like 'First among equals' among all great programmers
TimToady yeah, a lot of those folks hang out here :) 06:19
06:20 agentzh joined
meppel but not awake at some places on the world 06:21
TimToady not too many Perl hackers on Tahiti :) 06:22
MAK_ TimToady: How was it even possible for you to write Perl5 in say 3 years? 06:23
TimToady I was smarter back then. :)
and also stupider... 06:24
but mostly by adding only a few minimal things, like OO
in retrospect, perhaps a bit too minimal
MAK_ I meant it was only you then and you managed it in 3 years, and with all of it ... it has almost taken a decade for 6 06:26
TimToady 6 is much more ambitious, and fixing everything that went wrong in 1..5
sorear perl 5 was never supposed to be perfect
TimToady though it doesn't look like it, p5 actually evolved from p4
there were intermediate forms that executed some instructions in the p4 engine and some in the p5 engine 06:27
sorear if Perl 6 had never backed out of bad ideas, we'd be done in 2 years
TimToady I guess the compiler was entirely new
sorear goes and tries to find a copy of the p4 engine
MAK_ What must one learn/do get into these kind of 'great things' ,,, Is it talent, hard work , or is it just some of us too good for this kind of a job? 06:30
sorear great things? 06:32
MAK_ Perl 6 is really great
TimToady mostly it's a willingness to look at all the pain that P5 programmers were having, and willing to take lots and lots of little steps to do something about most of those pains 06:33
only with better grammar :)
"a long obedience in the same direction" 06:34
meppel people who just work can do such things. and i wont, because im a lazy victim of wealth, but i try
TimToady a willlingness to search the design space exhaustively so other people don't have to
I spent most of this morning deciding not to change two metaoperators :) 06:35
MAK_ :)
sorear and the prioritization is very painful 06:37
jhuni rosettacode.org/wiki/Category:Perl_6
^^ that link is also nice for learning perl6 06:38
has perl5 code too
TimToady rakudo: say ('*' Xx 1..5) X~ "\n" 06:39
MAK_ Abstraction is the most helpfull at the same time most destructive to a programmers mind
sorear just got out of listening to cpan:NOTHINGMUCH complaining about how "make sure type inference is actually implementable" was not given sufficient priority and how most of Rakudo/Parrot will have to be thrown out in two years because it's going to prove incompatible and there's no point in contributing now 06:40
yech.
p6eval rakudo a6e9e1: OUTPUT«No applicable candidates found to dispatch to for 'crosswith'. Available candidates are:␤:(&op, Iterable $a-iterable, Iterable $b-iterable)␤␤current instr.: 'perl6;Code;assuming_helper' pc 12744 (src/builtins/Str.pir:38)␤»
TimToady I see languages that make type inference central, and these same languages tend to useful only to geniuses who can second guess the inferencer. 06:46
as an optmization to cut down the number of multi candidates, it's fine though 06:49
sorear his argument is that there is no evidence type inference can be made to work "well enough", and nobody did adequate prototyping 8 years ago when throwing out large portions of Parrot was still an option, and no working type inference means no usably fast MMD 06:54
if you care 06:55
TimToady he's welcome to work on pugs :) 06:57
spinclad i'm sure complete type inference at compile time will not be possible, so at least traces of type data must remain at runtime (unlike in ML). i don't see this as a problem. the *more* type inference must be left for runtime, the less benefit and the worse for us, though. 07:02
TimToady hotspot optimizers can run pretty darn fast these days
anyway, I'd rather approach it from the end that allows mere mortals to understand the language; we've already got plenty of the other sort of language 07:05
sorear what is compile time? 07:09
spinclad i might try to argue that a simply-typed program is more easily understood than one where it's hard to predict the types (and easier on a hotspot analyzer too), even though understanding *that* it's well-typed is still hard.
sorear I mean, in the context of Perl 6
static type analysis of a language like C is easy, the syntax just sits there 07:10
Perl 6... you've got evals (which the entire module system is based on), and BEGIN (which the entire object system is based on)
spinclad sorear: i suppose it might be the time when you try to infer a plan to run, before actually running 07:11
sorear spinclad: the point of BEGIN is that there is no such thing as "before actually running"
TimToady I would point out that STD uses nothing like BEGIN yet 07:12
sorear your code is being run as soon as the first line is parsed, assuming you start your files with a use
spinclad i somewhat disagree. the point of BEGIN is that some parts of the text have to run before you can begin really thinking about other parts 07:13
but for each piece of text, you can still plan first before running
TimToady BEGIN and eval are safety valves for when you can't do something by standard means. part of the p6 design is to reduce the dependency on BEGIN and eval
sorear you can talk about compile times for Perl... but they're chopped into bits so small they hardly matter 07:14
hmm
does use still carry the full weight of BEGIN?
TimToady no
it does, in theory, run the expressions that calculate its arguments, but STD just fakes that bit currently for static lists 07:15
07:16 qiuhw joined
TimToady there are a few test files that STD can't parse currently because it doesn't run anything at compile time 07:16
but more than 99% of the .t files can be parsed statically 07:17
the only place it does anything like that is when you define a new operator, and which point it writes a bit of Moose code to derive the new grammar in P5 terms and evals that in Cursor.pmc 07:18
07:19 qiuhw left
jhuni what does the φ character do? 07:21
sorear .u φ
phenny U+03C6 GREEK SMALL LETTER PHI (φ)
TimToady it doesn't do anything unless you put it somewhere meaningful; Perl 6 certainly does not give it any special meaning 07:22
where did you see it?
jhuni rosettacode.org/wiki/Fibonacci_sequence#Perl_6
sorear φ has a meaning in Perl5; it's part of an identifier
it is, after all, a lowercase letter 07:23
*Perl6
hmm I don't think I've seen the 'constant' form
anyways, phi is the mathematical symbol for the golden ratio 07:24
TimToady sure, you can use it like any other letter
rakudo: constant LUE = 42; say LUE
maybe p6eval is tired 07:25
jhuni sorear: yeah it looks like it is being used as the golden ratio =/
the syntax looks baffling though
constant φ1 = 1 / do constant φ = (1 + sqrt 5)/2; 07:26
TimToady I think the do should be unnecessary 07:27
07:27 p6eval left
TimToady someone is thinking you can only have a declarator as a statement, I guess 07:27
spinclad in mathematical tradition it's the 'golden ratio', as in the constant φ just above
TimToady most of the rosetta p6 is a bit odd 07:28
07:28 p6eval joined
spinclad (oop, too late. sorear++) 07:28
TimToady std: constant φ1 = 1 / do constant φ = (1 + sqrt 5)/2;
server is probably overloaded 07:29
p6eval std 30132: OUTPUT«ok 00:01 108m␤»
TimToady std: constant φ1 = 1 / constant φ = (1 + sqrt 5)/2;
p6eval std 30132: ( no output )
TimToady std: constant φ1 = 1 / constant φ = (1 + sqrt 5)/2;
p6eval std 30132: ( no output ) 07:30
TimToady works fine locally
spinclad it looks like that's defining φ and 1/φ
which are good things to define
(the do is turning a statement into a value?) 07:31
TimToady rakudo: constant π = pi; say π 07:32
p6eval rakudo a6e9e1: OUTPUT«Could not find non-existent sub &π␤current instr.: '_block14' pc 29 (EVAL_1:0)␤» 07:33
TimToady alpha: constant π = pi; say π
p6eval alpha 30e0ed: ( no output ) 07:34
TimToady spinclad: yes
which is useful for things that are statement controls, like 'do given' 07:35
words in the category of 'do' are called statement prefixes
also 'try', 'gather', 'sink', etc 07:36
you'll be seeing a lot more 'gather for' than 'do for', probably
07:39 MAK_ left
TimToady most of the phasers are also statement prefixes, syntactically 07:41
std: BEGIN say 42; 07:42
server is obviously tired
come to think of it, so am I
zzz &
spinclad in this case is constant x an expression now, and the do a fossil, or ... something else ? /me disremembers... (/me too) 07:43
sweet dreams
p6eval std 30132: ( no output ) 07:44
TimToady all declarators are expressions now in the sense of returning whatever was declared at compile time as a value at run time 07:45
07:45 rhr joined
TimToady only statement_control words are required to occur at the beginning of a sentence, er, statement 07:46
and the inside of () etc is a statement too
really zzz &
spinclad so should we really capitalize them? 07:47
:)
07:50 fridim left 07:51 fridim joined 08:02 rhr left 08:04 rhr joined 08:07 snarkyboojum joined, simcop2387 joined 08:13 dual left 08:18 meppel left 08:19 molaf joined 08:20 molaf left
colomon phenny: tell jnthn The instance.t test for has $.c = $.a + $.b; (line 451ish) is dying on my system. Can't see how this is related to my latest patch, so I pushed the patch anyway. 08:38
phenny colomon: I'll pass that on when jnthn is around.
xinming What is the function name bound to ++ in perl?
colomon succ, I think? 08:39
xinming colomon: In which synopsis/
?
colomon errr, no that's not quite right.
rakudo: my $a = 4; say $a.succ; say $a;
xinming colomon: IIRC, succ is correct.
pugs: my $a = 4; $a.succ; say $a; 08:40
colomon I don't think .succ changes the object it is called on, it just returns its successor.
> my $a = 4; say $a.succ; say $a;
5
4
I think p6eval is having issues at the moment. :(
xinming > my $a = 4; say $a++; say $a; 08:41
p6eval rakudo a6e9e1: ( no output )
pugs: OUTPUT«*** No such method in class Int: "&succ"␤ at /tmp/8SMxSyESwL line 1, column 12-19␤»
colomon I'm not sure there is a function that does the full activity of ++
dalek kudo: 1c5de1c | (Solomon Foster)++ | src/core/metaops.pm:
Create helper crosswith and zipwith functions that call .list on their arguments, so that single scalar arguments can be promoted to Iterables and work with the normal crosswith / zipwith functions.
colomon other than maybe &prefix:<++>, if it exists.
back to bed.... 08:42
xinming my $a = 4; $a .= ++; say $a;
colomon: good bed. :-)
08:43 eternaleye left 08:44 eternaleye joined 08:49 iblechbot joined 09:23 rv2733 joined 09:36 vamped joined
vamped hi all - any one alive tonight? 09:38
09:41 iblechbot left
vamped ok, well, no. I'll ask a question and read later if any back-logger wants to answer it. 09:41
Why does Bool::False stringify to 1 ? It seems logical to me that is would stringify to "True". I'm confused. 09:42
rakudo: my $x = True; say $x;
p6eval rakudo 1c5de1: OUTPUT«1␤»
sorear vamped: I'd like to know about your magic IRC system 09:43
vamped lol. yesterday. well ...
sorear it's like you're continuously tailing the backlog and only connect when you want to speak
some unholy IRC/microblog gateway using Accept-Bytes, RSS, and a connection pool? 09:44
vamped I logged in to try out a command in a private window. While I was there I saw the question from the irc log. 09:45
Are you spying on me? :-) 09:46
sorear No
You just act weird and I'd like to steal some of your tools
vamped What is weird? I'm often reading the backlog via web browser. And I use irssi to log in. 09:48
sorear I thought you might have some ... *interesting* system
based on what you did yesterday
I was wrong.
vamped you mean logging in, and answering a question that was asked before I logged in? I'm experimenting with the time-traveling debugger :D 09:49
09:51 payload joined 10:07 Juerd joined
Juerd feather0 has a problem with LVM: lvs and other lv-commands don't respond anymore. 10:08
This has several effects, including that no backups have been made for the past week or so.
I want to reboot feather0 to see if that solves anything. Are there any strong objections to doing this immediately? 10:09
I might use the opportunity to attempt a Xen upgrade
(Rebooting feather0 means that all other feather* will be shut down) 10:10
vamped suppose now is probably about the least active time 10:11
10:11 dual joined 10:18 fridim left 10:32 Su-Shee joined
Juerd Okay, here it goes then 10:37
10:47 dalek left, dukeleto left, Juerd left, pugssvn left 10:58 M_o_C joined 11:10 jhuni left 11:20 TiMBuS joined 11:30 mauror joined 11:34 pmurias joined, agentzh left
colomon is pugscode on feather, then? my chreck-in just failed... 11:40
moritz_ colomon: it is 11:41
11:41 iblechbot joined
colomon no big deal, I just have to remember to check in the changes later. 11:41
moritz_ same here 11:42
colomon seems like there have been a lot of exciting developments in rakudo in the last two days!
moritz_ aye 11:43
vamped btw Juerd had to take down feather0 11:44
11:48 am0c left 12:02 clintongormley joined 12:07 Juerd joined
Juerd The updates for feather0 are not going too well. 12:07
It had ancient versions of everything, and even had the Debian SSL vulnerability. 12:08
12:18 pmurias left
moritz_ ouch 12:23
Juerd: anything I could help you with? 12:24
otoh I'm not familiar with LVM 12:26
12:28 payload1 joined, payload left
Juerd moritz_: The LVM issue has been resolved 12:30
moritz_ great 12:31
Juerd Now it's just fighting the differences between the ancient versions of everything, and the modern ones
And trying to remember what the tricks were
12:36 mauror left
colomon does phenny run on feather? 12:44
moritz_ seems not 12:45
Juerd Anything that's still running, is definitely not running on feather :) 12:50
I hate grub.
grub1's documentation was incomplete, grub2's documentation is even worse 12:51
There's no useful documentation that comes with the package, and the official documentation is a wiki.
It's tutorialish, and I can't find reference documentation for the configuration file. For example, every entry has a "search" line. What does it do? What does it mean? What parameters can it take? I'm back to trial and error. 12:52
12:54 vamped left 12:58 wknight8111 joined 13:11 mberends joined 13:16 xomas left 13:23 jnthn joined
jnthn oh hai 13:23
phenny jnthn: 03:10Z <colomon> tell jnthn You're quite right. Compile time 5m38.086s current code, 3m1.791s with the Set.pm commit reverted.
jnthn: 03:12Z <lue> tell jnthn Read colomon's message. It's critical [ :P ]
jnthn: 03:47Z <colomon> tell jnthn help? I rewrote the Actions for !op and Rop, and now it seems like != is parsing as ! =, which is causing all kinds of trouble. What I don't understand is how this is different than what I had before in terms of grammar...
jnthn: 08:38Z <colomon> tell jnthn The instance.t test for has $.c = $.a + $.b; (line 451ish) is dying on my system. Can't see how this is related to my latest patch, so I pushed the patch anyway.
mberends hey jnthn 13:24
jnthn Systemet has Slovak beer today \o/
mberends: How's things?
mberends nice, back in .nl for a couple of weeks. top priority is now proto 13:25
jnthn got screen and irssi running on his own server for now, while feather is still having her updates. :-)
mberends: Cool!
jnthn looks forward to progress on proto
mberends: Let me know what Rakudo missingness or bugs you run into. 13:26
mberends jnthn: is your own server located in Lund?
jnthn colomon: I think I know why $.c = $.a + $.b explodes - will try and fix soon.
mberends: No, it's the one that hosts jnthn.net and so forth, and lives somewhere in Germany.
mberends jnthn: yes I intend to nag about any Rakudo todo's right here 13:27
moritz_ speaking of Rakudo todos: BEGIN not working is rather ugly, because it means you can't manipulate @*INC before loading modules 13:28
unless you resort to eval
jnthn moritz_: yeah, it stops us running a bunch of tests.
mberends moritz_: proto will work around that by using the existing directories predefined in @*INC
jnthn moritz_: I meant to fix it yesterday...but accidentally did reduction meta-ops instead.
moritz_ OH NOEZ :-) 13:29
13:29 moritz_ sets mode: +ooo jnthn mberends Juerd
jnthn These things happen. ;-) 13:29
moritz_ mberends: that's easy for proto, because ~/.perl6/lib was explicitly added for proto & co
jnthn OK, I need to have some nom before anything else. :-)
moritz_ erm, easy-ish
mberends moritz_: I understand. it's not ok for the general case. 13:30
jnthn Making BEGIN sort of work in a "get us tests back" is easy. Making BEGIN work a little bit more is a little trickier. Making BEGIN really really really work is very hard. :-)
13:31 justatheory joined
moritz_ akshually I'm not too concerned about tests; more about getting my modules running again :-) 13:31
which mostly just modify @*INC, and do nothing else at compile time 13:32
mberends moritz_: can you get by with `export PERL6LIB=$HOME/lib` or so? 13:33
moritz_ mberends: I'll try that
moritz_ tries JSON::Tiny 13:34
13:35 masak joined
masak oh hai, #perl6 13:35
phenny masak: 19 Mar 14:58Z <mathw> tell masak I'm disappointed that wasn't named enums
jnthn lolitsmasak
masak sorry about the unicode slowdown :/
jnthn masak: It's OK, not your fault.
masak has someone gotten the unicode ops to work in the evalbot? 13:36
otherwise, we might as well scrap them for now...
moritz_ rakudo: say 'ö'
rakudo: say 'ö'.chars
p6eval rakudo 0bb373: OUTPUT«ö␤» 13:37
rakudo 0bb373: OUTPUT«1␤»
Juerd expects a plural named method to return a list :(
moritz_ why shouldn't Unicode ops work in p6eval?
colomon masak: Set.pm has devastated the compile speed of Rakudo. (see backlog) 13:38
colomon is off to get junk out of the house...
masak rakudo: say 1..3 ∪ 2..5
colomon: yes, I saw that. hence the 'sorry!' :(
p6eval rakudo 0bb373: OUTPUT«Confused at line 11, near "say 1..3 \u222a"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤» 13:39
masak moritz_: I don't know, why shouldn't it?
13:39 ruoso joined
masak why doesn't it? 13:39
13:40 justatheory left
moritz_ because it doesn't like the same locally either? 13:40
masak doesn't understand that answer
moritz_ locally the line you tried on p6eval doesn't work either 13:41
why should it work on p6eval?
let's ask differently: what makes you think that p6eval is to blame, and not rakudo?
masak I guess I'm not complaining about p6eval, really.
moritz_ ok
then I parsed you wrongly :-)
masak I'm wondering why, after I defined that infix operator, it doesn't work? 13:42
this question is part of a line of questioning that might eventually lead to me removing the unicode operators from Set.pm. 13:43
jnthn Do any of them work?
masak but I just want to get the facts first.
moritz_ if I define infix:<∪> in an ordinary perl 6 source file, I have no problems with it.
rakudo: sub infix:<∪>(@a, @b) { @a, @b };
jnthn ah, no, they won't
p6eval rakudo 0bb373: ( no output )
moritz_ rakudo: sub infix:<∪>(@a, @b) { @a, @b }; say (1, 2, 3) ∪ (2, 3, 4, 5)
p6eval rakudo 0bb373: OUTPUT«1232345␤» 13:44
jnthn masak: For now (see operators.pm) operators should be marked as "our"
masak: our multi ...
masak jnthn: ok. fixing.
13:44 abra joined
jnthn masak: We don't really have the whole lexical thing with settings straightened out yet. 13:44
moritz_ rakudo: say chr(:16('FE')) 13:48
p6eval rakudo 0bb373: OUTPUT«Confused at line 11, near "say chr(:1"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
13:49 dalek joined, abra left 13:51 Juerd left, Juerd joined
jnthn Juerd++ 14:00
Juerd :)
masak \o/ Juerd++ 14:01
moritz_ perl6.org seems to be back, not sure yet about pugs svn 14:03
yes, works but slow
14:05 fridim joined
moritz_ somehow we have a huge load average, but no CPU usage 14:07
Juerd Let's see
Must be the backup that's running 14:08
moritz_ that would explain a lot
Wolfman2000 *yawn* ...how did the bug get named Camelia anyway?
Juerd Normally the level 0 (full) backup is done much earlier on Saturday. 14:09
masak Wolfman2000: the Camel is named 'Amelia'.
TimToady Wolfman2000: you would have to ask her parents
Wolfman2000 TimToady: I don't even know who her parents are. 14:10
The website seems to indicate a sister, but that's it.
14:10 fridim left
Juerd Hm, something's wrong though 14:11
The backup's going at 2 MB/s
moritz_ and that's... too fast? or too slow? 14:12
Juerd But I don't want to cancel it. It's the first backup in two weeks
Wolfman2000 too slow I think moritz_
Juerd That's too slow
We'll have to deal with the lack of IO bandwidth for now. I want this backup to finish.
14:12 smash_ joined
smash_ hello everyone 14:13
moritz_ heads to town, and will re-run his 'git svn dcommit' when he's back, if it fails...
Juerd NB: anything you do on feather's filesystem will only make it worse :P
This might not be a good time to build stuff 14:14
14:16 dalek left
Juerd That's no reason to ping timeout though! 14:16
Wolfman2000 So how has Perl 6 been evolving lately? 14:17
I'm a bit out of the loop
TimToady added a Z metaoperator to go with X 14:18
since people keep asking for zipwith
Wolfman2000 Tiems like this I forgot what X did.
TimToady cross
Wolfman2000 ...right, cross multiply
matrix math
TimToady or cross anything else
rakudo: say ('*' Xx 1..5) X~ "\n" 14:19
p6eval rakudo 0bb373: OUTPUT«Cannot resume dead coroutine.␤current instr.: 'perl6;GatherIterator;get' pc 427377 (src/gen/core.pir:67628)␤»
TimToady oops :)
rakudo: say ('*',() Xx 1..5) X~ "\n",()
p6eval rakudo 0bb373: OUTPUT«Cannot resume dead coroutine.␤current instr.: 'perl6;GatherIterator;get' pc 427377 (src/gen/core.pir:67628)␤»
TimToady alpha: say ('*',() Xx 1..5) X~ "\n",() 14:20
p6eval alpha 30e0ed: OUTPUT«*␤**␤***␤****␤*****␤␤»
TimToady (the example from rosettacode)
alpha: say ('*' Xx 1..5) X~ "\n"
p6eval alpha 30e0ed: OUTPUT«*␤**␤***␤****␤*****␤␤»
Wolfman2000 alpha's the new bot? 14:21
TimToady rakudo: say ('a'..* Z~ 1..*).batch(26).perl
p6eval rakudo 0bb373: OUTPUT«("a1", "b2", "c3", "d4", "e5", "f6", "g7", "h8", "i9", "j10", "k11", "l12", "m13", "n14", "o15", "p16", "q17", "r18", "s19", "t20", "u21", "v22", "w23", "x24", "y25", "z26")␤»
TimToady alpha is the old Jan release
we are still recovering from the ng merge, which is new master 14:22
but as you see above, supports laziness now
either of the ..* ranges would have blown up old rakudo
Wolfman2000 without going into infinite hell. I think the batch() sub helps with that.
arnsholt rakudo: say ('a'..*).batch(27).perl
p6eval rakudo 0bb373: OUTPUT«Method 'batch' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
Wolfman2000 rakudo: say ('a'..* Z~ 1..*).perl 14:23
p6eval rakudo 0bb373: OUTPUT«GatherIterator.new()␤»
TimToady that's leakage that we'll probably plug
it will eventually probably just say List
masak for one welcomes our new ng master 14:24
TimToady it's cleaner in several ways
masak yes, please. List.
Wolfman2000 been awhile masak
TimToady and yes, I was one of the people who voted for switching even with the regressions :)
masak Wolfman2000: yo sup
masak effectively hasn't switched yet 14:25
Wolfman2000 life has been crazy so far...no longer capable of being a high school teacher, I'm falling back into my computer science ways. First...I have to improve my C++ skills to at least be competent enough to program in it. I believe my future in grad school will require it.
TimToady the dead coroutine seems to be a new failure mode
Wolfman2000 Does Perl 6 at least compile on...well, lesser machines better now? Could I compile on a VM with 512 MB ram without it hanging up? 14:27
TimToady rakudo: say ('a'..* X~ ^9).batch(26).perl
jnthn TimToady: It's the first time I've seen it.
masak anybody seen this before? www.amazon.de/o/ASIN/3827329442/ama...um=twitter 14:28
p6eval rakudo 0bb373: ( no output )
TimToady it seems to be from a change that happened in the last 6 hours
14:28 dalek joined
TimToady Wolfman2000: last I heard, parrotfolk were still chasing down the bug that causes excessive memory consumption in the compiler 14:28
but I haven't backlogged yet
Wolfman2000 so I basically have to hope my feather account is still good 14:29
Juerd Why would it not be?
jnthn masak: Nein.
Wolfman2000 Juerd: inactive for quite some time
jnthn masak: The cover is surreal.
Juerd Wolfman2000: feather accounts don't expire
They should, perhaps.
Wolfman2000 :P
masak jnthn: have you heard about the author before? 14:30
14:30 [synth] left, synth left, synth joined
jnthn masak: No 14:30
masak grows curious 14:31
TimToady rakudo: 1..10 X~ 'a'
rakudo: 1..10 X~ 'a'
14:31 [synth] joined
p6eval rakudo 0bb373: ( no output ) 14:31
masak moritz_, lichtkind, Su-Shee: have *you* heard about Alvar Freude before?
jnthn Einstieg in Perl 6 => Starting in Perl 6? 14:32
Juerd Einstieg => Entry 14:33
masak "Fall into the well of Perl 6 knowledge" :P
Juerd I've met Alvar at a GPW if I recall correctly. 14:34
masak oh, ok.
arnsholt Nice metaphor masak. Perl 6 is the language you cannot escape ^^
masak arnsholt: not unless your escape velocity is large enough from the beginning, I guess. 14:35
14:36 stuart02 joined
masak got a tip from a twitterer. twitter.com/arafatkamaal/status/10774419044 14:37
it's a good one, yes? including the Advent posts with the Rakudo Star distro.
it's not my call, but I kinda like the notion. 14:38
jnthn Interesting diea.
*idea
bbkr rakudo: grammar X {}; X.new.^methods
14:38 M_o_C left
p6eval rakudo 0bb373: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;ClassHOW;WHAT' pc 4874 (src/metamodel/ClassHOW.pir:640)␤» 14:38
bbkr bug?
masak yes. 14:39
but .^methods has been doing a lot of that lately.
bbkr already known?
masak not just for grammars.
bbkr ok, thanks.
arnsholt masak: I like the idea. Maybe include them as POD as well, with one post per file?
masak bbkr: poke jnthn until he solves it :P
jnthn :-P
masak arnsholt: aye. sounds good. 14:40
moritz_++ # closing a lot of tickets 14:41
rakudo: say 1..3 ∪ 2..5
p6eval rakudo 0bb373: OUTPUT«Confused at line 11, near "say 1..3 \u222a"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak so how come after I added 'our' to all the multi infix ops, the above still doesn't work? :/
jnthn masak: Locally or on p6eval? 14:42
TimToady anywhere 14:43
masak jnthn: it works on neither.
jnthn ah.
masak rakudo: say Set.new(1,2,3).union([2..5]).perl
that works.
p6eval rakudo 0bb373: OUTPUT«Set.new(1, 2, 3, 4, 5)␤»
jnthn masak: Oh. I think I know why. 14:44
masak (again) :)
jnthn But it's not something in your code this time.
masak rawr!
jnthn Something in the user defined ops stuff.
Well, I did finish that patch up at 3am. :-P
bbkr rakudo: grammar CSV { has Str $.sep }; say CSV.new(sep => ",").sep
p6eval rakudo 0bb373: OUTPUT«Any()␤» 14:45
bbkr hmm, why "Any()" ?
masak bbkr: it's the new 'undef'
jnthn masak: Yes, but shoulda been Str.
masak o.O
jnthn erm, shoulda been "," actually
masak: Typed attribute.
masak submits rakudobug
jnthn rakudo: my $tr $x; say $x
p6eval rakudo 0bb373: OUTPUT«Confused at line 11, near "my $tr $x;"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
jnthn rakudo: my Str $x; say $x 14:46
TimToady masak: there's a note about reverting Set in the backlog
p6eval rakudo 0bb373: OUTPUT«Str()␤»
masak TimToady: haven't finished backlogging yet. thanks, will check.
jnthn hides to work on BEGIN for a little bit.
masak rakudo: class A { has Str $.b }; say A.new().b.WHAT 14:47
p6eval rakudo 0bb373: OUTPUT«Any()␤»
14:47 dalek left 14:50 dalek joined
masak colomon: uniq may well use a Hash underneath -- though not optimal, that's still better than using a Hash attr, which coerces all the set members to Str. 14:52
TimToady: not finding anything about reverting, just notes about the slowdown.
oh! there are the time comparisons, of course, testing with and without Set.pm. 14:53
I'm happy about leaving out the unicode ops for Set.pm, either for now or forever.
maybe they belong in a module. 14:54
Juerd use ☃;
masak *especially* if they don't work and the fault isn't in my code. :P
Juerd: :P
14:55 stuart02 left
jnthn rakudo: my $x = BEGIN { 3 }; say $x; 15:03
p6eval rakudo 0bb373: OUTPUT«error:imcc:syntax error, unexpected ')' (')')␤ in file 'EVAL_1' line 73␤No applicable candidates found to dispatch to for '&infix:<=>'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
jnthn Wow!
15:03 drbean left
masak perks up 15:03
jnthn :-)
masak: Am hacking on BEGIN at the moment. :-) 15:04
15:04 drbean joined
jnthn Was curious what happened if you tried that though. 15:04
masak jnthn: yes. that's the *only* reason I'm hesitating.
jnthn Got an idea that should get us good enough BEGIN.
Or at least, more functional than in alpha.
masak so, you're saying this'll be fixed today...?
jnthn Well
masak :)
TimToady masak: I possibly misread irclog.perlgeek.de/perl6/2010-03-20#i_2127357 as referring to the repo
jnthn I'm just compiling the patch I wrote as a first cut at the moment.
But I highly doubt I'll have got it right first time. 15:05
masak TimToady: ok. I'm seriously considering removing the unicode ops anyway, because their only function right now is to slow down the build. :)
15:07 dalek left
TimToady well, and we do have a mild policy toward Latin-1 still 15:07
so they probably don't belong in the setting
Wolfman2000 I thought we already moved to UTF-8. :( 15:08
TimToady they're fine with 'use Set'
'course the mathematicians will claim that sets are fundamental :
:)
and S02 does mention Set... 15:09
and I would certainly like to see the day come when Unicode ops are acceptable to most people 15:10
Wolfman2000 Then why not start now?
masak I wouldn't complain if the unicode ops were a pragma away. but I'm ready to fight for them not being further away than that :P
masak removes them for now
15:10 wknight8111 left, mj41 joined
TimToady a pragma that turns on all optional unicode ops in various modules would be kinda cool 15:11
masak aye.
jnthn TimToady: Guess it's something the importer could help with, maybe...
TimToady just need a different verb: 'abuse Set'
pwn Set 15:12
masak rakudo: [1,2,3] (|) [2,3,4] 15:13
p6eval rakudo 0bb373: OUTPUT«Confused at line 11, near "[1,2,3] (|"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak there's still way too much confusion... :(
TimToady std: [1,2,3] (|) [2,3,4]
p6eval std 30137: OUTPUT«===SORRY!===␤Confused at /tmp/1WTuzEJUWE line 1:␤------> [1,2,3] ⏏(|) [2,3,4]␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤FAILED 00:01 109m␤»
masak TimToady: yes, but I defined a few Set operators in src/core/Set.pm... 15:14
TimToady well, we are reserving () for Texas set ops
masak ...which is what I defined them to do. 15:15
only with a bit of coercion for Arrays and Hashes.
um, Positional and Associative, I mean.
TimToady what precedence?
masak good question. default, I guess. 15:16
TimToady can argue them anywhere from arithmetic to list infix
if list infix, then 1,2,3 (|) 2,3,4
masak aye.
that does kinda make sense. 15:17
TimToady gotta run off for a bit
bbl &
15:17 meppl joined 15:18 MAK_ joined, dalek joined
jnthn masak: The problem is that the parser tweaks aren't persisted. 15:20
MAK_ Joined the discussion a bit late
I think we must go with the pdf
masak MAK_: no reason we can't do both. 15:21
jnthn: ok. so eventually someone'll fix that and it'll work?
MAK_ Hmmm ... yeah in a way pdf is a lil better because of all the decoration, font magic and colorfull stuff that goes along with it 15:22
masak MAK_: true. then again, some people like to read POD. 15:23
MAK_ Actually had a small chat with TimToady today in the morning
For most new comers like me, the only way to be good perl 6 curently is to start with some brisk reading and then ... 15:24
... read the compiler source for more information
masak I agree to the extent that it's not always easy to find accurate and up-to-date information. 15:25
jnthn masak: Eventually
;-)
MAK_ That isn't too good considering all that bad PR we have currently
masak but I was a newcomer two years ago, and I didn't have to read compiler source to write a wiki engine.
jnthn masak: Given that I wasn't convinced I'd be able to figure how to do user defined ops at all quickly, doing something that worked at all in the space of an evening wasn't bad progress. :-) 15:26
masak MAK_: there's some point at which 'bad PR' just begins to feel like a fact of life, something which you'll have to live with and work in spite of.
MAK_ But then, All programmers are not 'masak' :)
masak jnthn: I understand. kudos.
MAK_: oh, I'm not claiming to be special in any way. :) just very persistent. 15:27
MAK_: unlike jnthn's operators :P
MAK_ masak: Bad PR is ok, unless it becomes an existential threat :)
This weak had a chat with a group of friends and told them all about Perl6 15:28
masak MAK_: overall, I think the PR coming through Twitter has turned from 'abysmal' to 'bad' in a year or so. give us one more year. :)
MAK_ After explaining all the features they went to the internet did some searching... and ask the penultimate question of the 'release date' 15:29
No amount of explaining from my end did the job
masak Perl 6 was released in 2005. 15:30
the implementation was called Pugs.
MAK_ how will you convince them? according to most of them a release means a executable, a manual and some libraries
with a release number :) 15:31
masak Pugs had all of those.
it had numerous releases.
Juerd For some values of manual...
masak sure.
15:31 drakej joined
masak the point still stands. 15:31
jnthn manual as in your have to work hard at it?
;-)
masak no, it came with a Manuel, a waiter from Barcelona. 15:32
jnthn Oh! That guy. He brought me a donkey with my toast.
MAK_ people who feel passionately about perl understand this argument, but not all... unfortunately such people are in majority
Coming to the original discussion, about the book 15:34
Today morning I came with another idea
One way for the book is to demonstrate a feature with an example and then show all features that way 15:35
Another point is it must also be shown the 'extent' of what all is possible
Most choose a language and see how its different from others? Will it give me something new? 15:37
What is possible using this which is not possible with my existing one?
Wolfman2000 MAK_: defining subtypes with strict conditions? 15:38
I don't recall the syntax, but I believe you can make an Even subtype of Int that forces all numbers to be divisible by 2. 15:39
MAK_ If we explain the usual the if-else, exceptions and normal stuff which the already know! They have no compelling reason to like perl 6
15:40 am0c joined
MAK_ Wolfman2000: yes something similar, but more giving them a direction in which they explore more along with the current ones 15:40
Hmmm ... its like those 'Thinking in Java' kind of books 15:42
15:44 synth left, [synth] left, synth joined, [synth] joined
masak rakudo: subset Even of Int where { $_ !% 2 }; my Even $a = 4; say $a; $a = 5; say $a 15:48
p6eval rakudo 6b14e9: OUTPUT«4␤Type check failed for assignment␤current instr.: '&die' pc 16935 (src/builtins/Junction.pir:399)␤»
MAK_ Demonstrating how we are different may also to some extent explain why we are late :-) 15:49
jnthn We're late? :-)
masak isn't late
MAK_ Actually we are not late, but are percieved as late. But then what is the difference between both? 15:50
jnthn woo, BEGIN and modifying @*INC seems to work :-) 15:51
masak MAK_: the difference is that we can do a lot to change the actual state of affairs, not much to change all manner of perceptions people have.
MAK_ That is exactly my point and the book can be used to send that message 15:52
masak aye. just as the Advent Calendar sent a clear message in December. 15:53
MAK_ Showing all the magic what perl 6 can do, can send a good message and hopefully attract good PR 15:54
Its like Micheal schumacher showing the actual use of Ferari 15:55
masak another thing that would send a good message is actual working Perl 6 applications. 15:58
MAK_ I think the basic problem is the spec-implementation matching people do, if only the implementation and its documentation were to be exposed they will more than happy 16:01
And will also accept the release with any amount of bugs
masak 'the release'?
the one in 2005?
lue buubot: karma masak 16:02
buubot lue: masak has karma of 373
MAK_ 'the release' of 2005 had a word like 'development release' some where in middle of release announcement... and that appears like an oxymoron 16:03
masak 'development' is not the opposite of 'release'.
MAK_ In theory is yes, but 'development' is the same as 'not good for production' and that more less is the opposite of a 'production release' 16:04
again we may understand but most do not
I explained my friends how python managed to make a modest revision in EIGHT years 16:06
masak MAK_: here's the release announcement for Pugs 6.0.0. it does not contain the word 'development'. www.mail-archive.com/perl6-compiler...00160.html
lue anyone interested in programming ought to know the meaning of "development release" :) 16:07
MAK_ is that perl 6.0 or pugs 6.0? 16:09
:) I think there's a difference
masak it's Pugs 6.0.0. it was a release of a Perl 6 implementation.
MAK_ complete perl 6 implementation? 16:10
masak not nearly.
all I'm saying is, in the manner of the "No True Scotsman" fallacy, as soon as I convince people that Perl 6 actually *has* releases, and has had them for five years now, people start talking about completeness instead of releases. 16:11
jnthn Not True Scotsman would confuse the two! 16:12
They'd be too busy drinking whisky.
MAK_ so again we can go on speaking, but as you suggested we can forget all that and tell the world here is Perl 6, implementation name Raudo, here's the docs, here's CPAN and perl monks
lue Rakudo has releases. P6 evolves. (that's how I see it) 16:13
masak I'm not suggesting we should forget or try to conceal the way things are. by and large, things are very bad. we're greatly understaffed.
we need more people.
we get that through attracting interested developers.
we do that through being interesting.
Perl 6 is interesting. it's just a matter of telling people in a way that attracts them.
MAK_ masak can you tell me how many contribute to the perl 5 interpreter and how many to CPAN? If there is difference then why? 16:14
lue "Use it, and you'll go to....HEAVEN! (haaa-lelujah! haaa-lelujah!)"
jnthn Finally!
> say BEGIN { say "omg BEGIN!"; 42 }; INIT { say "oh man, great INIT!" };
omg BEGIN!
oh man, great INIT!
42
masak MAK_: are you referring to the difference in compiler skills needed for the two?
MAK_ exactly thats my point 16:15
lue jnthn++ \o/
masak MAK_: if so, I agree whole-heartedly and immediately.
MAK_: also, I hope I haven't said anything to the contrary so far.
16:15 hercynium joined
masak MAK_: we need both kinds, especially the CPAN kind. 16:15
jnthn mberends: BEGIN with modifying @*INC also works as well as the above; I've tried BEGIN then a use shortly after it and it looked in the folder suggested. :-)
MAK_ You feel understaffed but I feel underqualified
16:15 rv2733 left
masak MAK_: aye. and many people would, rightly or no. 16:16
MAK_: I've felt that way for a long time, and still do at times. :)
jnthn MAK_: There's lots of ways to help with Perl 6 besides compiler guts. :-)
MAK_ Before coming #perl6 I thought of like 10 times
lue masak, MAK_: so do I, and I've contributed! :D
MAK_ that i may something stupid 16:17
*say something stupid*
masak I accidentally something stupid. many times.
jnthn accidentally the whole stupid.
masak :)
moritz_ masak: re Alvar Freude, yes, heard of him, talked to him
masak moritz_: ok, cool. I'm curious about the book. 16:18
lue Oh don't worry about. We here at #python accept anybody!
D'oh!
MAK_ In short, So the book is very important... as important R* itself
moritz_ masak: which book? sorry, I'm out of context
masak lue-- # too accepting :)
MAK_ Please dont release R* without the book
else we will be back to square one
masak moritz_: www.amazon.de/o/ASIN/3827329442/ama...um=twitter
lue It was an accident! :) 16:19
masak lue: you accidentally #python? :P
lue I'm sorry for saying something stupid! *sob* [ :) ]
MAK_ Is that in german?
moritz_ MAK_: it is
masak moritz_: because I'd sure like how to develop robust, lasting and efficient code in Perl 6 :P
moritz_ masak: oh, didn't know about that one
masak s/like/like to know/ 16:20
jnthn masak: Me too...does it have a chapter on writing compilers too? :-)
masak jnthn: there's a CD... :)
jnthn oooh!
MAK_ Please add that one...
CD = compiler development ??? :)
masak :) 16:21
lue CD = Corrupt Demeanor :) 16:23
masak MAK_: my usual conclusion from broodings over how to get people to pay more attention (and attention of the right kind) to Perl 6, is that I'd better write more Perl 6 code, to smoke out more Rakudo bugs, encourage spec development in weak areas, and find new ways to express oneself with Perl 6. 16:25
lue As soon as I can (and feel like it), I'd love to start coding a P6 NES emulator to prove the laziness of P6 :) 16:26
For many graphical applications, you don't need extra modules. If you want Qt, just import the C/C++ Qt libraries! \o/
MAK_ masak: how did you learn the language without the documentation?
masak lue: I think you'd soon find that there are too many instructions in your time units. :(
moritz_ MAK_: most of us read example code, the synopsis, #perl6 discussions etc 16:27
masak er, the other way around.
moritz_ differences to Perl 5 and so on
masak too many time units in your instructions.
MAK_ @moritz_: how much time did it take you to do all that?
masak MAK_: long ago, I started with the Apocalypses. then I read the Synopses. (they were largely incomprehensible). then I started coding. that really helped.
MAK_: you can start coding today. it really helps. 16:28
lue ...my time units?
MAK_ I guess it has taken you years to get where you are
masak lue: what I want to say is that I think Rakudo is too slow for that. :(
moritz_ MAK_: I started with Perl 6 in Feb 2007, if that's your question
masak lue: mberends++ found that Rakudo was too slow for his Pod emitter.
moritz_ MAK_: there's no point in time when you can say "now I know Perl 6" 16:29
masak MAK_: I got involved in 2005, and really involved in 2008.
lue exactly why I can't. :(
dalek kudo: 6c8737c | moritz++ | src/Perl6/Grammar.pm:
parse postcircumfixes with the ~ generator, inspired by betterworld++
masak MAK_: so, yes, it's taken me years. much of what we're doing with tutorials and the book is to shorten that time for other people.
MAK_ :) the role of book is so much here 16:30
masak MAK_: but documentation/tutorials quickly grow stale, and they're a lot more work than they might first seem to create.
lue When all of Rakudo is in P6, does it really need to be a part of Parrot? I know that's what it is based on, but I've never liked virtual machines.
MAK_ You are gifting your 5 years to people
moritz_ lue: it needs to run on something. That something is parrot right now 16:31
lue: of course you can write a machine code emitter if you're a masochist
mj41 rakudo: say "hezky česky";
p6eval rakudo e759b5: OUTPUT«hezky česky␤»
lue I know. Hopefully though, there's a day when it doesn't have to. I've never had a good time with virtual machines.
ever.
MAK_ How big would the book be? say in pages? 16:32
lue a machine code emitter would compile the P6 to actual machine code for the computer, as opposed to parrot bytecode, right?
jnthn huh wtf...
eval_lives_ok q[BEGIN {class Level1::Level2::Level3 {};}; class Level1::Level2 {};], 'RT 62898'; 16:33
How is that not going to die from a class redeclaration error?
oh, wait
I see it
sorry
16:33 skim joined
jnthn can't read today :-) 16:33
masak MAK_: it's a bit too early to know how big the book will be. I doubt it'll exceed 300 pages. :)
mj41 rakudo: say "hezky česky";
p6eval rakudo e759b5: OUTPUT«hezky česky␤»
mj41 rakudo: say „hezky česky“;
p6eval rakudo e759b5: OUTPUT«Confused at line 11, near "say \u201ehezky"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
MAK_ You can all of Perl 6 and what is possible with in 300? 16:34
skim mj41: :D
lue A good book on P6 would (obviously) be 6 pages long :)
masak MAK_: I don't know all of Perl 6. neither will the book try to explain all of Perl 6.
Juerd Or 36, or 216...
masak :)
MAK_ 6 pages long table of contents? 16:35
:)
masak std: my @array = 1, 2, 3; say @array.min:{ $^a <=> $^b } 16:38
p6eval std 30138: OUTPUT«ok 00:01 109m␤» 16:39
masak rakudo: my @array = 1, 2, 3; say @array.min:{ $^a <=> $^b }
p6eval rakudo e759b5: OUTPUT«Method 'min:{ $^a <=> $^b }' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak seems it's parsing the block as part of the method name.
lue rakudo: loop(my $i=0;$i<=10;$i++){say 6**$i;}; #possible # of pages
p6eval rakudo e759b5: OUTPUT«Whitespace required after 'loop' at line 11, near "(my $i=0;$"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
lue rakudo: loop (my $i=0;$i<=10;$i++){say 6**$i;}; #possible # of pages
p6eval rakudo e759b5: OUTPUT«1␤6␤36␤216␤1296␤7776␤46656␤279936␤1679616␤10077696␤60466176␤»
jnthn masak: heh
masak lue: bareword followed by opening paren is almost always a function call in Perl 6.
lue: the exception (that I know of) being routine declarations. 16:40
MAK_ Good night all
masak MAK_: 'night
moritz_ :foo('bar') is also not a sub call :-)
MAK_ Its getting late in the night... need to go to sleep
moritz_ good night
masak jnthn: it's not a new bug. I'm going through the April List.
moritz_: but I don't consider that a bareword.
16:40 MAK_ left
moritz_ colomon: can I bribe you to port the :16($hex_number) notation from alpha to master? 16:42
colomon with what? ;)
moritz_ colomon: that's a good question... want to visit the Bardentreffen in Nürnberg? Open Air music festival - I could offer you accomodation in reasonable close distance 16:43
masak rakudo: say for 1..3
p6eval rakudo e759b5: OUTPUT«␤␤␤» 16:44
masak submits rakudobug
moritz_ 30. July to 1. August
masak std: say for 1..3
p6eval std 30138: OUTPUT«Potential difficulties:␤ Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/iXsDyQx6Hc line 1:␤------> say⏏ for 1..3␤ok 00:01 106m␤»
colomon moritz_: A kind offer, but my long distance traveling is going to be sadly limited for a while until my bank account regenerates post-move.
A virtual cider or single malt would be fine. 16:45
Of course, that's assuming I can figure out how to do it. Does it parse yet in master?
moritz_ colomon: then a virtual $beverage-of-your-choice, with the option of a real one if we ever meet in person
jnthn masak: I hope you expected that to fail to compile :-)
moritz_ rakudo: say :16(10)
p6eval rakudo e759b5: OUTPUT«Confused at line 11, near "say :16(10"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak jnthn: no, why?
moritz_ alpha: say :16(10)
p6eval alpha 30e0ed: OUTPUT«16␤» 16:46
jnthn masak: oh, std only says it's a "potential difficulty" :-/
It used to be an error.
:-/
masak it used to, yes.
moritz_ alpha: my $x = 20; say :16($x)
masak I suspect moritz_'s lobbying helped :)
p6eval alpha 30e0ed: OUTPUT«32␤»
jnthn BEGIN patch pushed.
Not everything, but more than alpha could handle.
masak \o/ 16:47
dalek kudo: 7ccf148 | jonathan++ | src/ (3 files):
Start to get BEGIN more functional again. This should make it at least a bit more functional than alpha's one; it does run during the compile (like alpha) and will get run at the start of pre-compiled modules loading too (but has stuff to prevent dupe runs in parse + load). Notably, it also handles keeping computed values around, so my $x = BEGIN { 42 } also works.
jnthn rakudo: say @array.min:{ $^a <=> $^b }
p6eval rakudo e759b5: OUTPUT«Symbol '@array' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
jnthn rakudo: my @array = 4,1,3; say @array.min:{ $^a <=> $^b } 16:48
p6eval rakudo e759b5: OUTPUT«Method 'min:{ $^a <=> $^b }' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
jnthn rakudo: my @array = 4,1,3; say @array.min: { $^a <=> $^b }
p6eval rakudo e759b5: OUTPUT«1␤»
16:48 Garry4758 joined
jnthn ...oh. 16:48
erm
masak: I...am not sure that's totally wrong. 16:49
masak: Though I'm also surprised.
masak: It's parsing different, but we're matching up with STD also on what we parse there.
token methodop { 16:50
[
| <longname>
And longname is
token longname { <name> <colonpair>*
}
masak ok.
maybe reality changed since that bug.
jnthn So...is :{ ... } a valid colonpair...
masak no.
jnthn Ye 16:51
s
| <circumfix>
See token colonpair.
masak S02:3286
jnthn :-/
16:51 Garry4758 left
jnthn I'm looking at STD. :-) :-) 16:51
masak then we have a contradiction.
CLANG CLANG CLANG contradiction in the canon! all aboard!
jnthn Hmm 16:52
yes, it appears we may.
:{ .say } adverbial block 16:53
Wonder if we're meant to go digging into the longname to find that.
lue TimToady supercedes all! Go with STD. 16:54
jnthn figures he'll wait on a ruling :-)
lue TimToady supercedes all! Go with the spec.
jnthn Rather than guessing a fix.
lue ...wait
AH! A contradiction from the top! All run for cover! /o\
colomon rakudo: say (1..5) X~ 'a' 16:55
p6eval rakudo 6c8737: OUTPUT«1a2a3a4a5a␤»
colomon moritz_: how does "parse postcircumfixes with the ~ generator" work? does ~ somehow generate a matched pair? 16:57
masak rakudo: say (1..5) ~~ 'a'
p6eval rakudo 6c8737: OUTPUT«0␤» 16:58
masak rakudo: say (1..5) Z~ 'a'
p6eval rakudo 6c8737: OUTPUT«1a␤»
moritz_ colomon: '(' ~ ')' foo is roughly the same as '(' foo ')', but gives a better error message when the ')' is not found
colomon moritz_: sweet
or rather, sweet!!! 16:59
masak std: $a = my $a
p6eval std 30139: OUTPUT«===SORRY!===␤Variable $a is not predeclared at /tmp/lMgqbF2E41 line 1:␤------> $a⏏ = my $a␤ expecting any of:␤ POST␤ postfix␤ postfix_prefix_meta_operator␤FAILED 00:01 107m␤»
masak std: my $a = $_ given $a 17:00
p6eval std 30139: OUTPUT«ok 00:01 106m␤»
masak I'm surprised-ish that that last one succeeds.
colomon moritz_: do you have a test file for :16(FEED)?
(etc)?
moritz_ colomon: looking...
colomon thanks. 17:01
jnthn colomon: radix.t covers a load of those, I think 17:02
# S02-literals/radix.t
moritz_ aye, S02-literals/radix.t
lue TimToady: We hath found a contradiction! We need your help! (official plea) 17:03
masak rakudo: sub foo($bar:) {}; foo(42) 17:04
p6eval rakudo 6c8737: OUTPUT«Lexical 'self' not found␤current instr.: 'foo' pc 180 (EVAL_1:77)␤»
masak jnthn: ^
jnthn masak: Heh. Looks like that invocant_ok thingy needs porting from STD. :-) 17:05
17:05 smash_ left
masak lue: 'hath' is 3rd person singular, 'we' is a 1st person plural pronoun, and would take 'have' or 'haven' or some such. 17:06
lue I hath to disagree. :) 17:07
masak gives up :) 17:08
std: loop (my $a = 1, my $b = 2; $a < 5; $a++, $b++) { say "$a $b" }
p6eval std 30139: OUTPUT«ok 00:01 107m␤»
masak rakudo: loop (my $a = 1, my $b = 2; $a < 5; $a++, $b++) { say "$a $b" }
p6eval rakudo 6c8737: OUTPUT«Undefined value shifted from empty array␤current instr.: 'perl6;Perl6Exception;throw' pc 14490 (src/builtins/Seq.pir:77)␤»
jnthn masak: May partly be precedence biting you. 17:10
We don't parse item assignment properly yet.
masak good point. 17:11
jnthn Still a weird error
But I bet the prec is primarily why it doesn't do what you want.
masak well, all problems with precedence can be solved with another layer of parentheses... :)
rakudo: loop ((my $a = 1), (my $b = 2); $a < 5; $a++, $b++) { say "$a $b" }
p6eval rakudo 6c8737: OUTPUT«1 2␤2 3␤3 4␤4 5␤»
masak \o/
jnthn++
rakudo: say "abc" ~~ m ☃.(.).☄ 17:14
p6eval rakudo 6c8737: OUTPUT«Confused at line 11, near "say \"abc\" "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak \o/ 17:15
for once, Rakudo and I are confused at the same thing! :)
masak closes the infamous snowman/comet rakudobug :)
pmichaud++
jnthn hehe! 17:17
lue what are those funky symbols, masak?
jnthn That was a good one.
lue .u ☃
phenny U+2603 SNOWMAN (☃)
lue .u ☄ 17:18
phenny U+2604 COMET (☄)
jnthn
.oO( unisnowed )
masak lue: once upon a time, you could delimit a regex with a snowman and a comet.
lue: (it was a bug. a really strange one.)
arnsholt Fun ^^
jnthn I'm almost sad it's fixed. :-)
masak jnthn: as soon as it's possible, you'll have your 'use Snowman::Comet;' :) 17:19
lue why didn't you leave it then? It would've been a cool easter egg (and 42 knows easter eggs are needed)
masak lue: it worked for the wrong reasons.
lue: we tried preserving old crap in the compiler for old times' sake. it's called Perl 5. :P 17:20
lue Can it work for the right reasons then?
masak lue: as I said above. module.
17:20 afields-f49f joined
jnthn colomon: I might be able to sneak in parsing hyperops today 17:20
colomon jnthn: dude!!!!! 17:21
jnthn colomon: Once they're parsing, I guess that's much of the hard work done.
lue another one for the official P6 module (someone needs to keep track of these features soon)
jnthn Sort of
colomon absolutely.
jnthn :-)
Do we already have a &hyper that I can assume?
colomon if you can make them parse, I'm pretty sure I can do the rest.
lue jnthn: your practice of deep magic is honorable.
masak lue: more Acme:: than official, I'd say.
colomon we do not have a &hyper as far as I know.
jnthn ok
colomon is still looking at radix numbers... 17:22
masak std: say [+]
p6eval std 30139: OUTPUT«ok 00:01 106m␤»
lue pah! The official P6 module is for the stuff we as developers couldn't implement in the interpreter itself for various reasons.
masak rakudo: say [+]
p6eval rakudo 7ccf14: OUTPUT«Confused at line 11, near "say [+]"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak lue: er. no.
jnthn masak: Ah. *that's* what the stuffs at the end of the reduce parsing that I didn't actually understand do. 17:23
lue "The official P6 module" is just a codename (just like TARDIS :) ) for the module I'm writing. 17:24
(it ought to have a different codename, in hindsight...) 17:25
arnsholt How did you -find- the snowman comet bug? 17:27
Doesn't look like something you'd stumble upon =)
lue Unicode has dark magic. Don't doubt its ability to show up. :)
.u 5829 17:28
phenny U+5829 CJK UNIFIED IDEOGRAPH-5829 (堩)
17:28 meppl left
lue .u 1024 17:28
phenny U+1024 MYANMAR LETTER II (ဤ)
lue .u 384
phenny U+3840 CJK UNIFIED IDEOGRAPH-3840 (㡀)
lue .u 0384
phenny U+0384 GREEK TONOS (΄)
17:29 cls_bsd left
colomon huh. looks like my grammar changes have broken ::Positional ? 17:29
jnthn :-/
colomon the parsing thereof, I mean.
Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 695
$x.notdef || ($x.does(::Positional) && $x == 0) 17:30
is the line
jnthn That'd be some spooky action at a distance...
colomon well, rad number does look for ':'
jnthn Ah
Yeah, hmm. :-/
colomon ':' $<radix> = [\d+] <.unsp>?
{} # don't recurse in lexer
could that somehow parse :: ? 17:31
17:31 afields-f49f left
jnthn I don't think so. 17:31
colomon: can you nopaste me the whole grammar diff? 17:32
colomon gist.github.com/338783 17:33
masak jnthn: even simpler: 17:34
rakudo: [+] 17:35
p6eval rakudo 7ccf14: OUTPUT«Confused at line 11, near "[+]"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
jnthn masak: Right. It wants a term. 17:37
(after the thingy)
masak erroneously.
lue rakudo: say [+] 1
p6eval rakudo 7ccf14: OUTPUT«1␤»
masak rakudo: say 1 [+] 2, 3, 4
colomon rakudo: my @a; say [+] @a
p6eval rakudo 7ccf14: OUTPUT«Confused at line 11, near "say 1 [+] "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
rakudo 7ccf14: ( no output )
masak also, the infix form should work.
std: say 1 [+] 2, 3, 4
p6eval std 30140: OUTPUT«ok 00:01 108m␤»
lue std: [+] 17:38
colomon masak: huh?
p6eval std 30140: OUTPUT«ok 00:01 105m␤»
masak colomon: there's an infix form.
jnthn huh?
masak colomon: it's nice when you don't want e.g. 0 as the default for addition.
17:38 am0c left
masak std: my @values; my $default; say $default [+] @values 17:39
p6eval std 30140: OUTPUT«ok 00:01 106m␤»
colomon so you can say something like 54 [+] @... right.
well that's cool.
masak I know!
jnthn I'm not sure that's parsed by prefix_circumfix_meta_operator:reduce though.
masak why not?
colomon because it's a prefix
masak oh. duh. :P 17:40
colomon | :dba('bracketed infix') '[' ~ ']' <infix=.infixish(1)> { $<O> = $<infix><O>; $<sym> = $<infix><sym>; }
is a rule in infixish. bet that's it. 17:41
masak rakudo: sub foo { 1;; }; say foo
p6eval rakudo 7ccf14: OUTPUT«1␤»
jnthn colomon: Yes, that looks like it.
masak: hah! I fixed that one. :-P 17:42
masak :)
jnthn: can I close rt.perl.org/rt3/Ticket/Display.html?id=61732 ?
jnthn: seems to me it possibly describes two different bugs.
jnthn masak: maybe yeah
dunno...if all the cases in that ticket work then I guess yes 17:43
But yes, it's covering more than one thing.
masak rakudo: my @a = "foo", "foot"; if @a[all(0,1)] ~~ /^ foo/ { say "OH MY!" }
p6eval rakudo 7ccf14: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
masak another new failure mode...
jnthn colomon: I'm kinda confused by why your grammar addition breaks parsing of ::Foo style things. 17:44
colomon jnthn: me too.
bkeeler Morning folks
colomon Seems like every other time I play with the grammar, bizarre things happen. 17:45
bkeeler: morning!
jnthn morning, bkeeler!
bkeeler jnthn: I see you pung me
jnthn bkeeler: pung you I did
masak rakudo: say ++e
p6eval rakudo 7ccf14: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 16965 (src/builtins/Junction.pir:399)␤»
masak \o/
rakudo: constant $x = 1; $x += 2; say $x 17:46
jnthn bkeeler: Is there another part to getting /$foo/ working than the Regex-Compiler.pir patch?
bkeeler: e.g. is there a Rakudo change too?
p6eval rakudo 7ccf14: OUTPUT«Symbol '$x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
bkeeler Aye, there's a rakudo change
masak ah. 'constant' NYI.
jnthn bkeeler: Is that pushed somewhere?
bkeeler I think so
There's more to do on that front anyway 17:47
Did you merge the Regex change?
masak rakudo: sub foo() { return class { method Str() { return "OH HAI" }; method Num() { return 42 } } }; say ~foo; say +foo
jnthn bkeeler: No, I kinda wanted to test the whole lot first, to make sure I was doing the right thing. :-)
p6eval rakudo 7ccf14: OUTPUT«Invalid namespace key in set_pmc_keyed␤current instr.: 'perl6;ClassHOW;new' pc 3749 (src/metamodel/ClassHOW.pir:27)␤»
jnthn masak: no anon classes yet.
masak whoa. :/
bkeeler Fair enough. The Regex change seems harmless by itself though 17:48
jnthn masak: I'm not sure they worked in alpha either... :-P
masak jnthn: locally, that one gives a Parrot backtrace.
jnthn: no, that's from an RT ticket. :)
bkeeler It's the sort of change where if it was going to break something, nothing would work
jnthn bkeeler: Yeah, but it needs integrating into Parrot, and then a Parrot revision bump for Rakudo, so it's an annoying one to do twice. :-) 17:49
bkeeler jnthn: true
masak rakudo: my $r = 1..9; $r.pop; say $r.perl
p6eval rakudo 7ccf14: OUTPUT«Method 'pop' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
jnthn bkeeler: Also, having looked at it, it did occur to me that a possible simpler patch for it is just...
- .local int litlen 17:50
+ .local string litlen if litconst goto litlen_const litlen = '$I10'
- ops.'push_pirop'('length', '$I10', lpost)
masak closes #67142
jnthn + ops.'push_pirop'('length', litlen, lpost)
oh, paste fejl
bkeeler: gist.github.com/338795
17:50 drakej left
bkeeler jnthn: Did you try that? 17:51
jnthn Yeah, and it *looked* like it was doing the right thing.
bkeeler: That's why I wanted the other half of the patch. To confirm. 17:52
masak++ # closing rakudobugs!
.oO( or is it just to prepare room for more? :-) )
17:53
masak :P
lue masak: how big is the server where rakudobugs are stored?
masak rakudo: { &^c("$^a, $^b") }.("morning", "perl6ers", &say)
p6eval rakudo 7ccf14: OUTPUT«Not enough positional parameters passed; got 3 but expected 4␤current instr.: '_block46' pc 315 (EVAL_1:131)␤»
masak jnthn: help me with this one :) 4?
lue: I don't know, I've never seen it. 17:54
bkeeler jnthn: OK, I'll see if I can get what I have pushed, one sec
masak rakudo: { &^c("$^a, $^b") }.("morning", "perl6ers", &say, "crazy bogus argument")
p6eval rakudo 7ccf14: OUTPUT«Nominal type check failed for parameter '&c'; expected Callable but got Str instead␤current instr.: '_block46' pc 322 (EVAL_1:133)␤»
masak rakudo: { &^c("$^a, $^b") }.("morning", "perl6ers", &say, &say) 17:55
p6eval rakudo 7ccf14: OUTPUT«morning, say␤»
masak submits rakudobug
colomon weird one, masak++
jnthn masak: erm....
jnthn stares at the bug, horrified
masak dances the rakudobug mambo
colomon is that related to the masochism tango? 17:56
bkeeler jnthn: It's in my var_in_regex branch. Don't push it to master though, it needs more work yet
jnthn Or the masakism one?
masak colomon: yes, but even more to the masakism tango. :)
17:56 nihiliad left
bkeeler lol 17:56
jnthn oh wow, a Parrot segfault. :-/ 17:59
wow...circular GC marking => stack overflow... 18:00
lue SEGFAULT? An errno 11? AAH! 18:01
jnthn has...no clue whatsoever...what he's done to evoke this one. 18:02
But it happens during GC. :-|
lue what's the code, what's the code? (segfaults make me nervous)
what does GC stand for? 18:03
jnthn Garbage Collection
lue Ah... *twitch*
jnthn Yes, indeed.
masak it's the lowest of the collection types.
even worse than a hash.
jnthn lol
lue the twitch was a result of errno 11 18:04
*twitch*
masak I've been going through use.perl.org/~masak/journal/39597 today, closing RT tickets and adding updates where possible. kudos to all the people who have helped close the tickets so far, and added tests to the spectest suite! colomon++ jnthn++ pmichaud++ moritz_++ several-others++ 18:05
lue stop giving karma to several-others until he exists! :) 18:06
buubot: karma several-others
buubot lue: several-others has karma of
masak ...the zen slice! :)
jnthn lo
l
lue is waiting for next week's episode of buubot. He hates cliffhangers.
jnthn lue: Don't watch the Italian Job... 18:07
;-)
18:07 pmurias joined
japhb jnthn, well, at least not the original ... 18:07
jnthn japhb: I didn't hear much positive about the re-make and never got to watch it myself.
lue doo doo doo doo doo. (I want to fix something, nothing much else to do :) )
bkeeler The remake sucked ass 18:08
japhb I actually preferred the remake ... but I hated the whole era of "thieves can never win" that for me ruined the original Ocean's 11 as well.
Those I've asked in the previous generation preferred the original Italian Job as well -- perhaps it's just a matter of when you grew up. 18:09
arnsholt gives hacking nqp-rx a second whack 18:10
jnthn colomon: I'm going to go nom shopping, and then maybe look at the hyper parsing. 18:11
colomon \o/
jnthn colomon: I think I spotted last night the thingy in STD that I missed last time.
colomon I've turned off the rad number changes and am turning them back on one by one to see which one makes things break.
jnthn also wants to start dusting off his Russian a bit today too
colomon: +1. That really is the best way sometimes.
Laborious as it is.
bkeeler Who's to say they didn't win in the original? We don't know how the cliffhanger turned out
colomon and it is adding | <rad_number> to numish FTW 18:12
or FTL, I suppose.
japhb bkeeler, Yes, unlike Ocean's 11, the money isn't completely gone.
jnthn colomon: Oh, that's when it gets fail-y?
colomon yes 18:13
jnthn colomon: OK, does a simplified <rad_number> definition show it up?
japhb But I think in the case of I.J. the director was trying to give them a slim chance when the censors clearly wanted the thieves to have to choose money or living.
jnthn That may be the next thing to try
18:13 uniejo joined
bkeeler jnthn: Well, your version of the patch doesn't break anything for me, so I say go with it 18:14
colomon jnthn: already am using a fairly simplified version of it.
jnthn colomon: Ah. :-(
bkeeler: Cool...it seemed like a more minimal change that would deal with the same bug.
bkeeler++ for trakcing that one down! 18:15
colomon: OK...I'll try and help after I return from The Nom Shop.
lue masak: take me to your domain! I want to fix something.
arnsholt Win! The code compiles ^^
masak lue: I'm about to leave, but finding something to do is as simple as going to rt.perl.org/rt3/ and triaging rakudobugs. 18:16
bkeeler Well, I have people coming over to brew beer in a bit, but hopefully I'll have time to get the var-in-regex patch finalized tomorrow 18:17
lue thank you for taking me to your domain!
masak anytime.
lue triaging is the art of masak. It is where you decide what is important, right? 18:19
masak lue: yes. in this case, deciding if tickets still describe valid bugs.
lue: especially among the old tickets, there are already-fixed ones still sitting around. 18:20
lue: it's an easy job; usually, you just have to re-run the code snippet in there and determine if the error still persists.
18:31 iblechbot left, M_o_C joined
lue how doth I find P6 bugs? 18:35
(in the RT that is) 18:36
colomon hopes masak++ can answer that one, because RT is a mystery to him... 18:38
masak over time I've learned how to search RT.
not sure I'm able to explain it :)
lue: is something called 'Advanced Search' available to you among the menu items? 18:39
lue yes
masak good.
lue I found some, but I can't filter out the resolved ones :) 18:40
masak lue: usually, when I'm looking for something particular, I enter a keyword and then refine the search with Advanced Search.
lue: you can search for only new/open ones. that'll filter out the resulved ones.
lue where do I select that? This search interface is giving me a headache :) 18:41
masak aye, it's obviously made by a programmer.
just hang in there. that's my best piece of advice. 18:42
lue gah! How do I filter? Nothing is clear! /o\
*big inhale* ooooooooh.... found it
masak :) 18:43
lue (geez, that could've been clearer)
masak the RT Advanced Search is 'functionally complete' in that it actually provides a way to build arbitrarily nested search queries. it's just not made for humans, that's all. 18:45
lue rakudo: // 18:46
p6eval rakudo 7ccf14: OUTPUT«Null regex not allowed at line 11, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
lue that one's fixed! 18:47
masak lue++
lue eh... now to find the close button (please tell me it's not under the 'cake' menu :) )
masak you can close a ticket under 'Basics'.
or by replying to it. 18:48
by the way, the RT term for resolve/close is 'resolve' :)
lue I pressed the 'Comment' button.
masak that's fine too.
I'm not too clear on what the difference is between 'Reply' and 'Comment', actually. 18:49
lue Comment, apparently, doesn't message the requestors
dalek kudo: 3075a5f | jonathan++ | src/ (3 files):
Various missing item and hash contextualization bits.
18:50 rv2733 joined
lue I suppose that only matters for critical bugs. 18:50
colomon jnthn: I got the parsing sorted by adding <!before '::'> at the beginning of rad_number. 18:51
lue masak: I got this:
* Message recorded
* Ticket 57770: Permission Denied
still open :/
18:52 envi^home left
masak lue: hm. someone needs to grant you more Powar. 18:52
I can close this one for you, but I need to leave very soon.
lue masak: You can't gives me teh powar? 18:53
jnthn colomon: nice!
masak lue: not that I'm aware, no. :/
lue: I don't know who can. maybe pmichaud.
lue Ah well, I guess that ends my RT bug triaging for now. :)
colomon now I just have to figure out how to do something with what is parsed. ;)
jnthn colomon: I suspect we may be wroking around a lack of true LTM.
:-) 18:54
colomon my perception is that compile time is still obnoxiously long, as well. :\
jnthn It still sucks, yes. :(
colomon I hope that doesn't mean we're over-taxing the parser or something.
masak lue: great start, though. :) I closed that one for you. 18:56
18:58 Psyche^ joined 19:01 masak left 19:02 Patterner left, Psyche^ is now known as Patterner
lue goodbye, masak. o/ 19:02
TimToady std: :16(FEED) 19:04
p6eval std 30140: OUTPUT«Undeclared name:␤ 'FEED' used at line 1␤ok 00:01 107m␤»
colomon jnthn: I just pasted radcalc from old math.pir into new Num.pir. Is there a reason that wouldn't be findable? it seemed to compile okay, but when I tried calling it I got the classic "could not find non-existent.." message. 19:05
lue TimToady! You hath come to resolve this fatal contradiction!
jnthn colomon: Check it didn't get shoved into the Num namespace unintentionally? 19:08
colomon jnthn: how would I do that?
jnthn colomon: Look in Num.pir to see if there's .namespace directives
colomon ooo, indeed there is. 19:09
jnthn colomon: Or above the .sub line of yours, just add
.namespace []
colomon compiling...
TimToady it's not really a contradiction; you have to have a space before an adverb if it could be confused as the end of an identifier
note that :16(FEED) should fail 19:10
:16() is a function that takes a string
jnthn TimToady: So is Rakudo essentially doing the Right Thing by trying to canonicalize it as part of the name?
Or should it fail some semantic check?
19:10 wknight8111 joined
TimToady yes, unless we change it so that extended names can't be extended with :{}, which is tempting 19:10
since it would enable .grep:{} and such 19:11
bkeeler What's up with t/spec/S04-statements/for.t? Regression?
mberends jnthn++: nice work on BEGIN 19:12
TimToady names are typically extended with :ver<1.2.3> and such, which really means :ver['1.2.3'], not :ver{'1,2,3'}
mberends alpha: say :16<FEED> 19:13
p6eval alpha 30e0ed: OUTPUT«65261␤»
mberends alpha: say :16(FEED)
p6eval alpha 30e0ed: OUTPUT«Could not find non-existent sub FEED␤in Main (file src/gen_setting.pm, line 324)␤» 19:14
jnthn TimToady: I'd be tempted to do that too. 19:15
lue afk 19:16
TimToady rakudo: say BEGIN 42;
p6eval rakudo 7ccf14: OUTPUT«42␤»
TimToady \o/
colomon jnthn: still no luck
added the radcalc declaration at the end of gist.github.com/338783 19:17
TimToady: I fixed your example from last night, at least as much as it can be at the moment:
TimToady and we already restrict adverbial delims on regex modifiers to only use parens 19:18
colomon rakudo: say ('*' Xx 1..5).join("\n");
p6eval rakudo 7ccf14: OUTPUT«*␤**␤***␤****␤*****␤»
colomon on the other hand
TimToady still broken on nesting?
colomon rakudo : say ('*' Xx 1..5) X~ "\n"
it fails because gather / take doesn't work right yet. 19:19
rakudo: say ('*' Xx 1..5) X~ "\n"
p6eval rakudo 7ccf14: OUTPUT«Cannot resume dead coroutine.␤current instr.: 'perl6;GatherIterator;get' pc 421734 (src/gen/core.pir:65403)␤»
colomon rakudo: say ('*' Xx 1..5) Z~ "\n"
p6eval rakudo 7ccf14: OUTPUT«*␤␤»
colomon rakudo: say ('*' Xx 1..5) Z~ ("\n" xx 5)
p6eval rakudo 7ccf14: OUTPUT«*␤**␤***␤****␤*****␤␤»
jnthn colomon: +# { make radcalc($<radix> 19:20
You commented out the #?
colomon: It may want an & on the start of the sub name.
.sub '&radcalc'
colomon that part is actually commented out in STD
I've just been trying to call radcalc directory from REPL
jnthn oh
if you want to call it from the repl you certainly need an & on the start. :-)
colomon compiling... 19:21
do you think that commented out line can work in Grammar.pm? If so, it seems like it would be mighty handy...
jnthn colomon: I don't immediately see why not..the only thing it's doing is saving you an action method though 19:22
And you may need one anyway for the circumfix cases
Well, will..
colomon Those cases I do have commented out still. :)
jnthn OK :-) 19:23
I don't akshually know what they're for. ;-)
We may want to consider putting it in the actions, just because it's going to be the only "make" that's not in there. OTOH, there may be special reasons for doing this one in the grammar that I'm missing. 19:24
colomon jnthn: :16($a), for instance. 19:25
> say radcalc(16,"FEED") 19:26
65261
jnthn :-)
Heh. A p6l thread suggesting we do a release like Rakudo *. ;-) 19:27
arnsholt How clever ^^
colomon jnthn: are you talking about "Versioned Dependencies"? 19:28
jnthn Yes :-) 19:30
"Rakudo could...have more end-user focussed releases every 3 months"... :-) 19:31
colomon and here I thought they were just trying to add another layer of maximum madness to Rakudo...
jnthn Oh, they are. 19:34
They'll fail too.
:-)
It's too early to try and do "emulation semantics" style stuff. 19:36
Maybe if we had a team like 10 times the size of the current one we'd have resources for such things. :-/
colomon doesn't think he'll ever understand p6l... 19:37
mberends gave up trying 19:38
jnthn Yeah, there's...quite a disconnect...between p6l and current Perl 6 implementation reality, I'm afraid. 19:43
colomon kind of thinks you could s/current Perl 6 implementation//
> say :16<FEED> 19:44
radix out of range (2-36)
progress! ;)
19:45 ShaneC joined
jnthn colomon: heh :-) 19:46
19:49 iblechbot joined
colomon so if I have my $radix := $<radix>.ast; 19:52
how do i get $radix as an Int?
can I just say +$radix or something like that?
19:55 rv2733 left 19:56 M_o_C left, M_o_C joined 20:01 JimmyHoff joined
jnthn colomon: Did make radcalc(...) line set the AST? 20:02
(sorry, was away nomming :-)) 20:03
colomon I've still been skipping the make radcalc line, because I don't understand how it can work. Think it is worth trying?
method rad_number($/) { 20:04
my $radix := $<radix>.ast;
my $intpart := $<intpart>.ast; # skip other parts for brevity in paste...
make PAST::Op.new( :name('&radcalc'), :pasttype('call'),
$radix + 0, $intpart, $fracpart, $base, $exp); }
With + 0 added, I got 20:05
> say :16<FEED>
Multiple Dispatch: No suitable candidate found for 'add_int', with signature 'PIP->P'
jnthn colomon: Oh, you probably don't need to .ast that 20:06
$<radix> = [\d+] 20:07
It's jsut a match object
colomon I was just trying to imitate dec_number. Cargo cult programming...
Does the same go for strings?
jnthn my $radix := +($<radix>.Str); # perhaps
20:07 molaf joined
jnthn That is, extract the matched string 20:07
And then numify it 20:08
colomon word
compiling...
20:14 pmurias left
colomon > say :16<FEED> 20:15
65261
lue Anybody out there who can give me the ability to close bugs ("resolve" them) on rt.perl.org/rt3 ? 20:17
jnthn colomon: yay! 20:19
colomon this feels like it has been ridiculously hard.
I've only handled one of the three possible cases, and just that felt about as hard as getting one of the metaops to work. 20:20
jnthn colomon: I'm not sure how many of them alpha handled, fwiw. 20:22
colomon: I'm pretty sure it wasn't complete.
colomon there definitely are skips in the test file
jnthn wonders what the won-back test haul will be 20:26
20:27 molaf left
colomon don't quote me on this, but I'm guessing about 150 tests. 20:27
20:27 Chillance joined 20:28 fda314925 left
lue qq{colomon} :) 20:28
20:32 M_o_C left
jnthn colomon: woo :-) 20:36
colomon it's still failing on the tougher tests for that form, I'm currently trying again (compiling...)
sorear almost 48 hours and only one bite on the RFC
I guess that means it's perfect
or maybe the list is dead 20:37
jnthn sorear: ;-)
sorear: I dunno, if you suggest something bad enough then someone often pops up to shoot it down. :-)
sorear: Anyway, I'd push now for it to be applied. 20:38
afk for ~ half an hour. 20:39
colomon jnthn: I keep on running into things that don't seem to be defined in Grammar.pm? like <integer> and <decint>? 20:42
lue
.oO(when will TimToady/pmichaud/someone else appear so I can triage rakudobugs at the rt.perl.org?)
20:43
sorear jnthn: How would I do this? 20:51
moritz_ colomon: those might be defined in nqp-rx 20:52
colomon moritz_: ah.
so, I've got :16<FEED> working for you.
more complicated versions, not so much yet.
moritz_ colomon++
there's also a runtime version 20:53
colomon (not yet checked in, however)
moritz_ alpha: my $x = 12; say :16($x)
colomon yes, :16()
p6eval alpha 30e0ed: OUTPUT«18␤»
colomon I just tried turning on the parsing for it.
moritz_ is the thing that's called under the hood defined somewhere?
lue rakudo: say :16<DEADBEEF>
p6eval rakudo 3075a5: OUTPUT«Confused at line 11, near "say :16<DE"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
colomon there is radcalc, but that doesn't do the parsing 20:54
lue rakudo: say :16(DEADBEEF)
p6eval rakudo 3075a5: OUTPUT«Confused at line 11, near "say :16(DE"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
moritz_ alpha: say :16<DEADBEEF>
colomon (that's also not yet checked in)
p6eval alpha 30e0ed: OUTPUT«3735928559␤»
lue figured :)
colomon > say :16<DEAD_BEEF> 20:55
3735928559
moritz_ rakudo: say :10<F0> # should not be allowed
p6eval rakudo 3075a5: OUTPUT«Confused at line 11, near "say :10<F0"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤» 20:56
colomon > say :10<F0>
150
moritz_ alpha: say :10<F0> # should not be allowed
p6eval alpha 30e0ed: OUTPUT«150␤»
colomon that's what happens when you port the algorithm from alpha. ;)
moritz_ should be just one more check 20:57
lue alpha: say :8<17> # should be 25
p6eval alpha 30e0ed: OUTPUT«15␤»
lue nope, I did the math wrong :)
alpha: say :2<42> 20:58
p6eval alpha 30e0ed: OUTPUT«10␤»
colomon moritz_: that's what they always say...
moritz_ wonders if there's a way to abort a spectest run and still get a summary of the tests written so far
colomon: I know :-) 20:59
lue alpha: say :2<31> #I predict the result will be... 10
p6eval alpha 30e0ed: OUTPUT«7␤»
colomon woah, it seems like every time I blink, eight spectest files have been updated...
lue It must take a while for you to blink :D 21:00
moritz_ lue: never play lottery
lue alpha: say :2<41> #prediction: 9 21:01
p6eval alpha 30e0ed: OUTPUT«9␤»
lue alpha: say :2<198> #prediction: 19 21:02
p6eval alpha 30e0ed: OUTPUT«30␤»
lue what an interesting algorithm :)
moritz_ rakudo: say 2 * 2**2 + 9 * 2**1 + 8 * 2**0 21:03
p6eval rakudo 3075a5: OUTPUT«34␤»
colomon rakudo: say 1 * 2**2 + 9 * 2**1 + 8 * 2**0 21:04
p6eval rakudo 3075a5: OUTPUT«30␤»
moritz_ can't type anymore 21:05
colomon moritz_: I think I may leave checking on illegal digits as an exercise for lue. ;)
moritz_ ok :-) 21:07
lue OK, just push your code! 21:08
colomon I need to spectest it yet (about to start that). 21:11
But checking on illegal digits should be a nice little piece of PIR programming, right down your alley. :)
lue you programmed :[number]<> in PIR? 21:13
21:14 uniejo left
colomon no, I stole the PIR from alpha. 21:14
moritz_ gets a failure in t/spec/S04-statements/for.t 21:15
is that new?
21:15 Su-Shee left
colomon someone mentioned it earlier this afternoon. 21:15
mberends just got it too 21:16
and I was troubleshooting a for $fh.lines { when / ... / } at the time... 21:17
spooky bugs at a distance 21:18
jnthn back
lue
.oO(ah, mberends makes me think of snowman/comet)
hi jnthn o/
jnthn sorear: Ask somebody on #parrot if they'd be able to commit it, since nobody disagreed with it on list. 21:19
colomon: Maybe we lag behind STD in those places?
(for.t) Hmm. I see it too. :-/ 21:20
mathw hey 21:21
colomon jnthn: in integer and decint? I think moritz_++ is right that they must be coming from NQP
jnthn oh hai mathw
colomon at least, they do seem to work, I just don't know how.
jnthn colomon: Well, HLL::Grammar probably 21:22
moritz_ at least in the NQP-rx code there is a token decint defined
jnthn colomon: Which both NQP grammar and Rakudo grammar inherit from
It has the common bits.
Including EXPR
moritz_ src/HLL/Grammar.pm lines 48 and following
good news: rakudo doesn't seem to leak much memory any more 21:24
there are some tests in range.t where rakudo loops
colomon Any clue on how to use integer in Actions.pm, then? That's my current issue with the straightforward :16 implementation.
moritz_ and in the auld days it would run out of memory pretty soon 21:25
colomon Trying .Str on the radint match failed...
moritz_ colomon: write an integer rule in Rakudo
and override the default
colomon numish has
if $<integer> { make PAST::Val.new( :value($<integer>.ast) ); }
jnthn colomon: How did it fail? 21:26
colomon: That should make you an integer PAST::Var node, yes 21:27
*PAST::Val
But depends if that's what you need. :-)
colomon can I then pass that into &radcalc using PAST::Op.new?
moritz_ and S12-attributes/instance.t sometimes files
if $<integer> # what about passing 0? 21:28
colomon > say :16<dead_beef*16**8>
Method 'ast' not found for invocant of class 'ResizablePMCArray'
> :16<dead_beef*16**8>
Method 'Str' not found for invocant of class 'ResizablePMCArray'
jnthn colomon: Oh. Is <integer> quantified? 21:29
colomon That was my attempt to called .Str on the $<base> which is a radint (which is an integer)
moritz_ $<integer>[0] ?
jnthn colomon: What moritz said if it has a quantifier.
Which sounds like it's the case.
colomon jnthn: I fear I don't... [ '*' <base=.radint> '**' <exp=.radint> ]?
jnthn colomon: It's quantified 21:30
I guess
Because it's inside the [ ... ]?
So $<base>[0].Str
mberends rakudo: given "abc#def" { when / \w+ \# \w+ / { say "two words ok" } } 21:31
p6eval rakudo 3075a5: OUTPUT«two words ok␤»
mberends rakudo: given "abc#def" { when / \w+ '#' \w+ / { say "two words ok" } }
p6eval rakudo 3075a5: OUTPUT«two words ok␤»
mberends hmm, locally the second one eggsplodes 21:32
moritz_ std: /\w+ \# \w+ /
p6eval std 30142: OUTPUT«===SORRY!===␤No unspace allowed in regex (for literal please quote with single quotes) at /tmp/EDxz0ojmcv line 1:␤------> /\w+ \⏏# \w+ /␤FAILED 00:01 108m␤»
jnthn :-/
mberends: In what way does it omlette?
mberends jnthn: Unable to parse blockoid, couldn't find final '}' at line 1 21:33
21:33 meppl joined
jnthn > given "abc#def" { when / \w+ '#' \w+ / { say "two words ok" } } 21:35
two words ok
mberends better rebuild Rakudo locally before whining 21:36
jnthn ;-)
m6locks hmm some optimization has been done because i can build rakudo and listen to itunes and my system is not slowing down to death 21:37
jnthn \o/
m6locks :)
jnthn music++
lue buubot: karma music 21:38
buubot lue: music has karma of 0
jnthn hadn't contemplated how annoying it would be if Rakudo compilation made his music skip
21:38 iblechbot left
colomon just choose a nice selection in the middle of the Peter Horan section in his iTunes... 21:38
jnthn colomon: Attemtping hyper ops parsing...
colomon \o/
lue jnthn WAIT! I got to go get the popcorn! 21:39
jnthn tries to find that Really Important <!before ..> he noticed in STD...
lue Give us a live screencast of your computer screen!
colomon gack, *chose
> say :16<DEAD*16**3> 21:40
233492480
mberends colomon: oooh! 21:41
jnthn wow!
21:41 uniejo joined
mathw \o/ 21:41
lue \o/ 21:42
colomon I think decimal points probably still don't work, they don't appear to have worked in alpha either?
alpha: say :16<D.D>
p6eval alpha 30e0ed: OUTPUT«13␤»
moritz_ Juerd: when I try to log in on feather3, I get "PTY allocation request failed on channel 0"
lue Only in pugs, colomon
colomon btw, pushed.
lue pugs: say :16<D.D>
p6eval pugs: OUTPUT«13.8125␤»
moritz_ Juerd: the internetz suggests mkdir /dev/pts; mount /dev/pts
colomon lue: feel free to pull and hack on radcalc. It's in Num.pir.
moritz_ Juerd: but I can't run that because I can't log in :( 21:43
lue got it!
jnthn moritz_: Aww!
21:44 uniejo left
jnthn colomon: yowser, the infixish action method is rather long! 21:44
colomon btw, lue, radcalc is trying to calculate the decimal part and failing. You might take a look at that as well. ;)
dalek kudo: 52ea36c | (Solomon Foster)++ | src/ (3 files):
First stab at supporting :16<DEADBEEF> style numbers.
21:45
kudo: acc0fce | (Solomon Foster)++ | src/Perl6/Actions.pm:
Make base and exp work in rad_number action.
jnthn colomon: It looks like the X and Z only differ in the sub they call.
21:45 payload1 left
jnthn colomon: Which turn looks very much like the code for the reduce op. 21:45
colomon jnthn: yes.
jnthn colomon: Any objections if I try and factor it out a bit?
lue I'm going to compile now, and then start hacking away.
colomon remember me talking about using a hash in Actions.pm yesterday?
that was why.
jnthn colomon: Ah, ok
lue (I'm glad I'm ssh-ing to another computer :D) 21:46
colomon actually, I've got code here which turns all the Rop, !op, Xop, and Zop to the same code (modulo function name) in Actions.pm
jnthn I was thinking of just writing a sub we call like gen_metaop($base_op, '&crosswith', ...) or some such
colomon but somehow it breaks !=
jnthn colomon: ah, OK
colomon: Anyway, want to get the hyper in a bit more first...
colomon: You think the dwimness would work as adverbs? 21:47
colomon that is to say, I've almost got it refactored into something much nicer... but I'm having a few issues. :)
jnthn OK :-)
mberends is it necessary to wait for apt-get to finish updating gcc before starting 'perl Configure.pl --gen-parrot' ? ;)
jnthn If you already have a factoring of it, then I'll not worry for now.
mberends: Of course not, what could possible go wrong? ;-)
mberends what indeed 21:48
21:48 hanekomu_ joined 21:49 _sri joined
lue No. GCC has been known to work with only one C (but it takes longer) :) 21:52
21:52 _sri left
moritz_ Juerd: never mind, found a way (involving ssh feather3 '/bin/bash -i', sudo -s and other evil techniques :) 21:53
21:53 _sri joined
jnthn grrr...countries that make me get a visa... <grumble> 21:54
21:54 pugssvn joined, pugssvn left 21:55 pugssvn joined
pugssvn r30141 | moritz++ | [t/spec] test for contextual @ and & variables 21:55
r30142 | moritz++ | [t/spec] some unfudges for rakudo
r30143 | moritz++ | [STD.pm] awesomify error message about \# in regexes
21:55 aesop left
moritz_ sorry that only the last few revisions get reported 21:55
jnthn moritz_++ 21:56
21:56 abra joined
lue colomon: why limit yourself at 36? IPv6 can be encode in base 85. 21:59
Although, You'd have to consult with mathematicians on what to do above base 36...
21:59 aesop joined
mberends lue: colomon++ is a mathematician, and most probably talks to himself :) 22:00
22:03 justatheory joined
moritz_ nopaste.snit.ch/20017 22:06
it's a regex, and I have no idea why it does not match
lue rakudo: say Q:PIR{16,"16D","4",1} 22:07
p6eval rakudo 3075a5: OUTPUT«error:imcc:syntax error, unexpected INTC ('16')␤ in file 'EVAL_1' line 64␤␤»
lue how do you run PIR code directly from P6 22:08
moritz_ lue: like you did
lue: except that 16,"16D","4",1 is not valid PIR code
lue I wish to run a specific function (&radcalc) 22:09
moritz_ alpha: Q:PIR{ 'radcalc'() } 22:10
jnthn lue: you can just call that from Perl 6 :-0
p6eval alpha 30e0ed: OUTPUT«too few positional arguments: 0 passed, 1 (or more) expected␤in Main (file <unknown>, line <unknown>)␤»
jnthn radcalc(...)
moritz_ alpha: Q:PIR{ 'radcalc'(1) }
p6eval alpha 30e0ed: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤in Main (file <unknown>, line <unknown>)␤»
moritz_ alpha: Q:PIR{ 'radcalc'(1, 2) }
p6eval alpha 30e0ed: OUTPUT«radix out of range (2-36)␤in Main (file <unknown>, line <unknown>)␤»
moritz_ alpha: Q:PIR{ 'radcalc'(2, 2) }
p6eval alpha 30e0ed: ( no output )
jnthn rakudo: radcalc(1,2)
p6eval rakudo 3075a5: OUTPUT«Could not find non-existent sub &radcalc␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ apha: radcalc(2, 3)
jnthn Maybe evalbot is behind
moritz_ alpha: radcalc(2, 3)
jnthn I think colomon++ just comitted that
p6eval alpha 30e0ed: ( no output )
moritz_ alpha: say radcalc(2, 3) 22:11
p6eval alpha 30e0ed: OUTPUT«3␤»
moritz_ alpha: say radcalc(2, '11')
p6eval alpha 30e0ed: OUTPUT«3␤»
moritz_ jnthn: have you looked at my nopaste? any idea why it fails? 22:12
lue colomon: did you copy this straight from alpha?
jnthn moritz_: I think I forgot/missed that?
moritz_ jnthn: nopaste.snit.ch/20017
jnthn looking
moritz_ rakudo: say 't' ~~ /<-[\t]>/ 22:14
p6eval rakudo 3075a5: OUTPUT«␤»
moritz_ it doesn't parse \t in char classes, it seems :(
jnthn rakudo: say "foo" ~~ /<-["\\\t\n]>+/
m6locks hmm t/spec/S04-statements/for.rakudo Failed test: 49
p6eval rakudo 3075a5: OUTPUT«foo␤»
moritz_ rakudo: say 'foo' ~~ /<-[\t]>/
rakudo: say 'foo' ~~ /<-[\t]>+/
p6eval rakudo 3075a5: OUTPUT«f␤» 22:15
rakudo 3075a5: OUTPUT«foo␤»
moritz_ rakudo: say 'foto' ~~ /<-[\t]>+/
p6eval rakudo 3075a5: OUTPUT«fo␤»
moritz_ bangs head against wall
jnthn Er. :-/
lue is looking at this (radcalc), trying to figure out .HOW it converts things... 22:16
sorear lue: I can do parrot hacking screencasts...
lue did you read the backlogs? I got a little excited over jnthn's hyperop parsing 22:17
:)
sorear yes 22:18
but I can't do rakudo hacking 22:19
not enough RAM
Parrot builds in a minute and 50MiB
lue heh, same here. I'm ssh-ing for that. 22:21
that being rakudo
colomon lue: yes 22:22
sorry, was nomming
lue yes, you did copy it from alpha?
colomon yes, I copied it from alpha
I am a plagiarist!
lue OK. (I'm guilty of that aswell!) 22:23
What were those guys thinking?
22:24 meppl left 22:25 nihiliad joined
lue How the heck did they insert something called magnitude? It'd be like me coding imaginary numbers and π into the multi sub infix:<+> function! 22:25
(as far as I can tell)
colomon that's the second half of
rakudo: say :16<DEAD*16**2> 22:26
p6eval rakudo acc0fc: OUTPUT«14593280␤»
colomon 16**2 is magnitude
lue aaah
never had to deal with magnitude. Ever. :) 22:27
rakudo: say :16<A>; say :16<A*16**2>
p6eval rakudo acc0fc: OUTPUT«10␤2560␤»
colomon I'm not really sure why you'd want it, particular when it should be the same as
rakudo: say :16<DEAD> * 16 ** 2
p6eval rakudo acc0fc: OUTPUT«14593280␤»
colomon but it's in STD 22:28
lue rakudo: say :16<A>; say :16<A*16**2>; say :16<A> * 16 ** 2
p6eval rakudo acc0fc: OUTPUT«10␤2560␤2560␤»
moritz_ colomon: maybe it's an artifact back from the days where some compound numbers like 1+2i where parsed as a single term
lue rakudo: say :16<A+3i>
p6eval rakudo acc0fc: OUTPUT«Malformed radix number at line 11, near "<A+3i>"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
lue rakudo: say :16<A*-1**(1/2)> 22:29
p6eval rakudo acc0fc: OUTPUT«Malformed radix number at line 11, near "<A*-1**(1/"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
lue rakudo: say :16<A>*-1**(1/2)
p6eval rakudo acc0fc: OUTPUT«-10␤»
lue rakudo: my $a=3+6i; say :16<$a> 22:30
colomon moritz_: since those days were only like a month ago, I don't doubt you are right. :)
p6eval rakudo acc0fc: OUTPUT«Malformed radix number at line 11, near "<$a>"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
lue magnitude seems pretty uneccessary. I just go ahead and delete it...
*POOM!*
22:31 hanekomu_ left
lue rakudo: say :16<A*sqrt(-1)> 22:31
p6eval rakudo acc0fc: OUTPUT«Malformed radix number at line 11, near "<A*sqrt(-1"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
lue rakudo: say :16<A>*sqrt(-1) 22:32
p6eval rakudo acc0fc: OUTPUT«NaN␤»
jnthn Looks like I'm going to Russia next month to talk about Perl 6 and Rakudo. \o/
22:32 meppl joined
lue hoorah \o/ (i guess...) :) 22:32
jnthn Provided I can get a visa... :-/
colomon \o/
jnthn Well, they've let me in (and out!) twice before. :-)
jnthn needs to dust off his awful Russian
Besides a few flirty comments, I've not actually spoken it for...youch...over a year. 22:33
colomon: hyper parsing coming along..."just" struggling on the transparency. 22:36
colomon transparency in dependency, or something else?
jnthn >>+<< is meant to have the precedence of +, >>*<< os meant to have the precednece of *, etc
It's not quite a copy-paste from STD. :-/
*is 22:37
colomon right, we need that for Rop and !op too.
22:37 abra left
jnthn Yeah, thus I'll be pleased to fathom it here. 22:37
ooh, it's beer o'clock1
mberends it was cider o'clock long ago on .nl, now nearing sleep o'clock 22:39
colomon cider o'clock here in Michigan.
pugssvn r30144 | colomon++ | [t/spec] Fudge radix.t so it works in Rakudo.
colomon lue: you can use S02-literals/radix.t to test any changes you make. :)
moritz_ gives :16($foo) a shot 22:40
jnthn mberends: .jnthn is a couple of hours off .nl
colomon go moritz_++ go! 22:41
moritz_ it's the first time I greate A PAST::anything, so keep your fingers crossed...
22:41 skim left
jnthn Ich hab ein bier von unchenn! 22:41
colomon radix.t can be turned on now, but I've got to run to fetch future nom.
jnthn Or...or aus Munchen...
moritz_ parsing it is easy, just needed to remove a # sign from the gramar 22:42
did you mean: München? :-)
jnthn Yes, that one
:-)
moritz_: Which preposition did I want? :-)
<- never actually learned German, just makes it up and usually fails 22:43
moritz_ "aus München" is correct
but you would say "trinke", not "hab" :-) (at least that's what I think you do...) 22:44
lue is fully prepared to completely overhaul &radcalc, and take a marker to the spec and cross out "magnitude" (convince me the marker is not needed, and I'll stop.) 22:45
jnthn moritz_: Ah, was going for "I have a ", but yes, "I'm drinking a" is better :-) 22:46
ooh, it's not a bad beer at all :-)
lue: Does keeping magnitude in tormet you? 22:47
lue if it's unneccessary, then yes.
jnthn Perl 6 is designed to torment those implementing it. ;-)
(for the sake of those using it... :-)) 22:48
lue the thing is, you can easily apply this so-called 'magnitude' outside of the conversion.
moritz_ let's just wait for TimToady's decree... if he says it's really superfluous, then I'm all for scraping it
lue It's unnecessary bunches of coding! 22:49
rakudo: say :16<16D>*2**16; say :16<16D*2**16>
p6eval rakudo acc0fc: OUTPUT«23920640␤23920640␤»
jnthn It does look like it could easily enough to away.
It's not that the magnitude is meant to be parsed in base 16 too, is it? 22:50
oh, wait
colomon spec says magnitude can be in other bases. 22:51
jnthn ah, ok
colomon buuuut.... so can external stuff, too.
jnthn colomon: oh ouch...guess what?
colomon: Actually setting the $<O> seems to work.
colomon rakudo: say :16<16D>*:16<4> **:3<2>
p6eval rakudo acc0fc: OUTPUT«5840␤»
moritz_ :16<AE*:16<EF>**3> or what?
colomon no freaking way!
22:51 jhuni joined
jnthn colomon: It explodes...inside the operator precedence parser. O_O 22:51
...I never valued my sanity anyway. 22:52
jnthn goes the explore.
colomon moritz_: yes, that's how I read the regexes.
nom fetching for real this time...
22:53 Garry4758 joined
lue the spec has yet to convince me it NEEDS to allow it within the conversion :) 22:53
22:54 xomas joined, xomas left, xomas joined
moritz_ colomon: S02 actually has an example for that 22:54
lue I'm going to redo &radcalc anyway, the magnitude just needs to be added afterwards :)
moritz_ :2«1.1*:2<10>**:2<10>» 6
moritz_ stupid 22:55
mis-spelling type names of PAST::Foo things give nasty errors
22:56 Garry4758 left
lue Ought to get some noms aswell. After that, I'm-a gonna start on rewriting &radcalc. 23:02
moritz_ finds it more appealing to do stuff than to announce doing it all over again 23:03
23:06 baest_ joined 23:07 doublec_ joined 23:09 literal_ joined, MOAR-f00li5h joined, Lorn_ joined
moritz_ in Perl6::Actions, what does $<capture>.ast return? a PAST::something object? 23:09
jnthn moritz_: Usually, yes.
moritz_: What you get from .ast is what capture's action method set using "make" 23:10
So you can check by looking at the action method for "capture"
23:11 yahooooo7 joined
moritz_ so if "capture" is well-behaved I can use the result of $<capture>.ast as an argument for a PAST::Op call? 23:11
seems I can \o/
jnthn Yes.
moritz_ can haz a patch for :16($thing) 23:12
just needs to spectest
jnthn \o/
23:13 hanekomu_ joined, clintongormley left, TiMBuS left, silug left, allbery_b left, tylerni7 left, yahooooo left, doublec left, Lorn left, hanekomu left, f00li5h left, literal left, revdiablo left, baest left, mdxi left
mberends splits to bed. 'nite all o/ 23:14
jnthn night o/
23:15 mberends left
pugssvn r30145 | moritz++ | [t/spec] enable a few radix tests for rakudo 23:15
23:15 alester left
dalek kudo: 1cf0766 | moritz++ | (3 files):
handle :16($thing) style numbers
23:18
pugssvn r30146 | moritz++ | [t/spec] more unfudges in radix.t
23:20 lichtkind joined
lichtkind ruoso: great 23:23
23:23 clintongormley joined, allbery_b joined, TiMBuS joined 23:25 masonk joined, masonk left
lue moritz_: it's called getting distracted :) 23:25
did you just fix using variables in :16 ? 23:26
rakudo: my $a="2A"; say :16<$a>
p6eval rakudo acc0fc: OUTPUT«Malformed radix number at line 11, near "<$a>"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
23:27 justatheory left
sorear jnthn: I think I want to kill return_value_helper. 23:30
TimToady internal magnitude is not superfluous if you with the user to be able supply it, as in :16($*IN.get) 23:31
moritz_: ^^ 23:32
23:32 justatheory joined
TimToady it's one of those place we're trying to avoid forcing use of eval() 23:32
lue ah. Thanks TimToady! 23:33
ruoso TimToady, have you seen the versioned dependencies thread?
lue TimToady: can you give me the ability to close rakudobugs at rt.perl.org?
TimToady ruoso: no
lue: no, I don't know how myself 23:34
I'm very negative today :)
lue Ah well. (so who CAN give those permissions to me?)
jnthn lue: I can't. :-( 23:35
moritz_ may know
lue And of course, he (seemingly) left :)
jnthn Oh. D'oh.
23:38 mberends joined
jnthn mberends: Short sleep! 23:38
mberends jnthn: a bug was bugging me ;) 23:39
rakudo: "foo:" ~~ / (\S+) ':' / and say "matched $0" # steals the :
p6eval rakudo acc0fc: ( no output )
mberends er, locally says "matched foo:" 23:40
colomon moritz_++
sorear no output!
colomon but why didn't you reactivate the :16[ ] form, too? I bet your action works for it already...
mberends rakudo: "foo:" ~~ / <-,:]>+ ':' / and say "matched $0" # steals the : 23:41
p6eval rakudo acc0fc: OUTPUT«Confused at line 11, near "\"foo:\" ~~ "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
mberends rakudo: "foo:" ~~ / <-[:]>+ ':' / and say "matched $0"
p6eval rakudo acc0fc: OUTPUT«matched Any()␤»
mberends rakudo: "foo:" ~~ / <-[:]>+ ':' / and say "matched " ~ $0
p6eval rakudo acc0fc: OUTPUT«matched Any()␤»
23:42 synth left, [synth] left 23:43 [synth] joined, synth joined
lue can't see why the fraction keeps getting chopped away... 23:44
rakudo: say :16<16D.4>
p6eval rakudo acc0fc: OUTPUT«365␤»
lue rakudo: say radcalc(16,'16D','4',1)
p6eval rakudo acc0fc: OUTPUT«365␤»
23:45 justatheory left, justatheory joined
lue rakudo: say :16<.4> 23:46
p6eval rakudo acc0fc: OUTPUT«Malformed radix number at line 11, near "<.4>"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
lue rakudo: say :16<0.4>
p6eval rakudo acc0fc: OUTPUT«0␤»
23:49 justatheory left 23:50 M_o_C joined 23:57 justatheory joined