»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by diakopter on 25 January 2010. |
|||
00:00
Chillance left
00:05
Khisanth joined
00:08
drbean joined,
patspam joined
00:09
colomon left
00:23
lichtkind left
00:26
colomon joined
00:36
p6eval left
00:37
p6eval joined
|
|||
diakopter | oh | 00:37 | |
oops. | |||
I broke p6eval. it's fixed now. | |||
pmichaud: p6eval fixed | |||
rakudo: say .say | 00:38 | ||
p6eval | rakudo 6d4078: OUTPUT«Mu()1» | ||
diakopter | rakudo: say say | 00:39 | |
p6eval | rakudo 6d4078: OUTPUT«1» | ||
diakopter | rakudo: say.say | ||
p6eval | rakudo 6d4078: OUTPUT«1» | ||
diakopter | std: say.say | ||
p6eval | std 29727: OUTPUT«Potential difficulties: Unsupported use of bare 'say'; in Perl 6 please use .say if you want to say $_, or use an explicit argument at /tmp/oFRomtswGF line 1:------> say⏏.sayok 00:01 107m» | ||
jnthn | Heh, need to put that check back in. :-) | 00:41 | |
diakopter++ # fixing up p6eval | |||
00:42
xomas left
|
|||
jnthn | Oh, I see it's just a warning rather than an error though. | 00:42 | |
diakopter | jnthn: you're awake late | 00:47 | |
jnthn | diakopter: I got sick a couple of days ago, and it messed up my sleep schedule. :-/ | 00:48 | |
Thus I unplannedly slept until 2ish today...and despite knowing I should be heading to sleep now am annoyingly untired. | 00:49 | ||
00:51
meppl left,
drbean left
00:55
snarkyboojum joined
|
|||
colomon | jnthn: you definitely should not be less tired than I am, time-zone-wise. | 01:02 | |
This minmax.t is more trouble than it is worth. :() | 01:07 | ||
*:) | |||
rakudo: say abs "-10" | 01:13 | ||
p6eval | rakudo 6d4078: OUTPUT«Method 'Num' not found for invocant of class 'Perl6Str'current instr.: 'perl6;Any;abs' pc 251814 (src/gen/core.pir:16824)» | ||
01:22
maerline joined,
maerline left,
maerline joined,
maerline left
01:23
shockwave joined,
jaldhar left
|
|||
shockwave | Is Rakudo implemented in Parrot's PIR language? | 01:23 | |
01:23
jaldhar joined
|
|||
colomon | shockwave: yes | 01:27 | |
Well, mostly there's an additional layer in there, called NQP (Not Quite Perl). | |||
jnthn | shockwave: A chunk of it is written directly in PIR, however large parts are not - writing an entire compiler in an assembly language would be a frurstrating exercise. :-) | 01:29 | |
Rakudo is a mixture of NQP (a subset of Perl 6, including an implementation of Perl 6 regexes, which we use for parsing), Perl 6 itself (we compile a first stage, and use it to compile a bunch of the built-in classes and functions) along with some PIR and C that implement primitives and act as "glue" between the rest and the VM. | 01:30 | ||
colomon | jnthn: Just got "A method named 'min' already exists in class 'Range'. It may have been supplied by a role." | 01:32 | |
jnthn | Oh? | ||
Curious. | |||
colomon | It's actually supplied by "has $.min". I had thought I could use multi to get another min method as well. | ||
? | |||
jnthn | No, 'fraid not. | ||
But you shouldn't have to. | 01:33 | ||
colomon | Here's the test in question: | ||
jnthn | If you write a method min() { ... } then the $.min should not bother generating a method automatically. | ||
shockwave | Thanks for the answer, guys. | ||
colomon | (-10..10).min: { abs $^a <=> abs $^b }) | ||
jnthn | shockwave: Welcome. :-) | ||
01:33
shockwave left
|
|||
jnthn | rakudo: (-10..10).min: { abs $^a <=> abs $^b }) | 01:34 | |
p6eval | rakudo 6d4078: OUTPUT«Confused at line 11, near ")"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
colomon | oh, so my min method should override the auto-generated min method from has $.min ? | ||
jnthn | rakudo: ((-10..10).min: { abs $^a <=> abs $^b }).say | ||
p6eval | rakudo 6d4078: OUTPUT«too many positional arguments: 2 passed, 1 expectedcurrent instr.: 'perl6;Attribute;accessor_helper_ro' pc 3204 (src/gen/Attribute.pir:400)» | ||
jnthn | colomon: It should cause a min method not to be auto-generated, akshually. | ||
colomon: If it's trying to generate both, that's a bug. | 01:35 | ||
colomon | seems like we have a bug, then. | ||
:) | |||
jnthn | Yeah, sounds like it. | ||
jnthn is sure he wrote the code that checked there was no method declared already... :-/ | |||
colomon: File an RT and/or bug me tomorrow. I'm gonna go sleep in a moment. | |||
And don't fancy twiddling with the metamodel at 2:30am. :-) | 01:36 | ||
colomon | okay. good night! | ||
jnthn | night o/ | ||
01:42
_jaldhar joined
01:43
jaldhar left
|
|||
dalek | kudo/master: 5383a13 | (Solomon Foster)++ | src/core/Any-list.pm: Protos for sub versions of min and max. |
01:47 | |
kudo/master: 542bfa5 | (Solomon Foster)++ | src/core/Str.pm: Cheat version of Str.Num. |
|||
kudo/master: ee93de4 | (Solomon Foster)++ | src/core/Any-num.pm: We were getting an infinite loop in Any.abs, I think possibly because .Num was returning a float instead of a Num. Work around that by calling the pir abs function directly on the value returned from self.Num. |
|||
colomon | jnthn: still awake? | 01:50 | |
01:52
mssm left
01:53
jferrero left
01:58
nihiliad joined
|
|||
pugs_svn | r29728 | colomon++ | [t/spec] Skip tests which test for things which are not spec'd and (IMO) not likely to be spec'd the way the tests currently are set up. | 02:05 | |
02:14
z3ndrag0n joined
02:20
patspam left
02:27
drbean joined,
colomon left
02:28
colomon joined
|
|||
colomon | rakudo: sin(asin(0.5)) | 02:33 | |
dalek | kudo/master: 2eb5f98 | (Solomon Foster)++ | src/core/Any-list.pm: Add simple-minded version of uniq. |
||
p6eval | rakudo ee93de: OUTPUT«too many positional arguments: 2 passed, 1 expectedcurrent instr.: 'sin' pc 222680 (src/gen/core.pir:4909)» | ||
02:33
z3ndrag0n left,
z3ndrag0n_ joined
|
|||
colomon | rakudo: 0.5.asin.sin | 02:35 | |
p6eval | rakudo ee93de: ( no output ) | ||
02:35
z3ndrag0n_ left
|
|||
colomon | rakudo: 0.5.asin('degrees').sin('degrees') | 02:36 | |
p6eval | rakudo ee93de: ( no output ) | ||
02:37
z3ndrag0n joined
|
|||
colomon | rakudo: sin(asin(0.5, 'degrees'), 'degrees'); | 02:38 | |
p6eval | rakudo ee93de: ( no output ) | ||
02:41
nihiliad left
|
|||
dalek | kudo/master: 07e96ba | (Solomon Foster)++ | t/spectest.data: Turn on uniq.t. |
02:44 | |
02:46
arlinius joined
02:52
z3ndrag0n left
02:54
tjc joined
02:59
nihiliad joined
|
|||
s1n | continuing the conversation from earlier about @/$ flattening... | 02:59 | |
the last example i posted (my @b = <a b c>; say $b;) does not compute with me | 03:00 | ||
why would @b and $b be any different? i thought we got rid of context | |||
03:01
dukeleto joined
|
|||
dukeleto | howdy | 03:01 | |
pugs_svn | r29729 | colomon++ | [t/spec] Refudge power.t a tad. | 03:02 | |
colomon | rakudo: say pi.WHAT | 03:03 | |
p6eval | rakudo 07e96b: OUTPUT«Num()» | 03:04 | |
colomon | rakudo: say i.WHAT | ||
p6eval | rakudo 07e96b: OUTPUT«Could not find non-existent sub &icurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
colomon | rakudo: say e.WHAT | ||
p6eval | rakudo 07e96b: OUTPUT«Num()» | ||
03:05
nihiliad left,
snarkyboojum left
03:07
tjc left
|
|||
dalek | kudo/master: 3d02e7c | (Solomon Foster)++ | src/core/Complex.pm: More Complex versions of infix:<**>. |
03:07 | |
kudo/master: cf0cfea | (Solomon Foster)++ | t/spectest.data: Turn on power.t. |
|||
pugs_svn | r29730 | colomon++ | [t/spec] Move capitalize tests from uc.t to capitalize.t. | 03:17 | |
03:20
nihiliad joined
|
|||
pugs_svn | r29731 | colomon++ | [t/spec] Unfudge test that now passes. | 03:23 | |
03:24
nihiliad left
|
|||
pugs_svn | r29732 | colomon++ | [t/spec] Fudge todo tests. | 03:25 | |
colomon | jnthn, pmichaud: looking at subst with a Code replacement -- if I have a Match object, how do I evaluate the Code with the Match object as $/ ? | 03:33 | |
03:33
LionMadeOfLions joined
|
|||
colomon | Trying to figure out how I can code s:g/(\w+)/{ucfirst $1}/ (from the spec) up with what we've got now.... | 03:33 | |
03:34
snarkyboojum joined
|
|||
colomon | afk # bedtime | 03:34 | |
dalek | kudo/master: 70667a0 | (Solomon Foster)++ | t/spectest.data: Turn on lc.t, uc.t, and e.t. |
03:36 | |
03:47
drbean left
03:49
ihrd joined
03:54
gfx joined
04:00
quester joined
04:10
synth left
04:13
synth joined,
ihrd left
04:24
ihrd joined
04:26
ihrd left
|
|||
lue | ...hello? | 04:37 | |
04:38
wolf2k_ubuntu left,
justatheory left
|
|||
lue | hello... hellooo? | 04:48 | |
echo echo echo | 05:12 | ||
diakopter | hi | 05:14 | |
sjohnson | i /op diakopter colomon | 05:20 | |
05:20
sjohnson sets mode: +oo diakopter colomon
|
|||
sjohnson | oops | 05:20 | |
05:25
cjk101010 joined
05:26
patspam joined
05:38
vamped joined
05:40
athenot left
06:03
k23z__ left
06:32
am0c joined,
k23z__ joined
06:33
scp1 joined
|
|||
scp1 | :) | 06:33 | |
06:48
mberends joined
|
|||
mberends | colomon++ # 4051 (24.7% of 16418) pass, 0 fail | 06:52 | |
06:59
vamped left
07:03
uniejo joined
07:06
kaare joined,
kaare is now known as Guest36069
07:07
Su-Shee joined
|
|||
Su-Shee | good morning | 07:08 | |
07:08
quester left
07:14
rgrau left
|
|||
scp1 | morning | 07:20 | |
07:27
viklund joined
07:28
k23z__ left
07:59
iblechbot joined
08:11
clausi joined
08:14
gfx left
08:17
meppl joined
08:18
mssm joined
|
|||
mathw | Morning | 08:24 | |
08:28
masak joined
|
|||
masak | good morning, #perl6! | 08:28 | |
diakopter | masak: MORN | 08:29 | |
masak | :) | ||
diakopter | rakudo: my byte $a | 08:30 | |
p6eval | rakudo 70667a: OUTPUT«Malformed my at line 11, near "byte $a"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
diakopter | rakudo: my Byte $a | ||
p6eval | rakudo 70667a: OUTPUT«In "my" declaration, typename Byte must be predeclared (or marked as declarative with :: prefix) at line 11, near " $a"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
08:30
k23z__ joined
|
|||
diakopter | masak: rakudo recognizes only uppercase identifiers as typenames? | 08:31 | |
masak | diakopter: I just arrived. I don't even understand the question :) | ||
diakopter | rakudo: my ::byte $a | 08:32 | |
p6eval | rakudo 70667a: OUTPUT«Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
diakopter | rakudo: my ::Byte $a | ||
p6eval | rakudo 70667a: OUTPUT«Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak | diakopter: but 'byte' has never worked in Rakudo so far, so why should it now? | ||
diakopter | I'm referring to the parser. | ||
masak | I think I can rakudobug those. | ||
diakopter | it gave different results for Byte vs byte | ||
masak | rakudo: my ::a $a | ||
p6eval | rakudo 70667a: OUTPUT«Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
diakopter | it didn't recognize my byte $a | ||
masak | diakopter: yes. I don't know why. | ||
diakopter: I'm not familiar with the quirks of this new thing they replaced alpha with :) | 08:33 | ||
yet. | |||
masak submits rakuodbug | |||
mathw | Everything suddenly livens up when masak appears! | 08:34 | |
Saluton! | |||
diakopter snivels | |||
(sorry, I read "livens" and thought "I should snivel") | 08:35 | ||
masak | hugme: hug diakopter | ||
hugme hugs diakopter; masak++ | |||
masak | hm -- people get karma for hugging now? :) | 08:36 | |
I thought hugging was its own reward. | |||
08:37
diakopter sets mode: +v hugme
|
|||
mathw hugs masak | 08:39 | ||
masak | \o/ | ||
08:39
p6eval left
08:40
p6eval joined
|
|||
diakopter | rakudo: $*me = 3; say $*me.WHAT | 08:41 | |
p6eval | rakudo 70667a: OUTPUT«Cannot assign to readonly valuecurrent instr.: '&infix:<=>' pc 15648 (src/builtins/Junction.pir:169)» | ||
diakopter | o | ||
Junction.pir ? | 08:42 | ||
08:42
Schwern joined
|
|||
diakopter | zomg | 08:42 | |
curiouser and curiouser | |||
masak | Junction.pir might simply be the last file loaded into Rakudo. | 08:44 | |
rakudo: my $*x | |||
p6eval | rakudo 70667a: ( no output ) | ||
masak | rakudo: my $*x = 42 | ||
p6eval | rakudo 70667a: ( no output ) | ||
masak | rakudo: my $*x = 42; say $*x.WHAT | 08:45 | |
p6eval | rakudo 70667a: OUTPUT«Int()» | ||
masak | rakudo: $*x = 42; say $*x.WHAT | ||
p6eval | rakudo 70667a: OUTPUT«Cannot assign to readonly valuecurrent instr.: '&infix:<=>' pc 15648 (src/builtins/Junction.pir:169)» | ||
masak submits rakudobug | |||
rakudo: $*x = 42 | 08:47 | ||
p6eval | rakudo 70667a: OUTPUT«Cannot assign to readonly valuecurrent instr.: '&infix:<=>' pc 15648 (src/builtins/Junction.pir:169)» | ||
diakopter | rakudo: say $*me.WHAT | 08:49 | |
p6eval | rakudo 70667a: OUTPUT«Failure()» | ||
diakopter | masak: pinch me, I must be dreaming. | 08:50 | |
masak | diakopter: how so? | 08:51 | |
diakopter | rakudo: say 1.*WHAT | ||
p6eval | rakudo 70667a: OUTPUT«get_iter() not implemented in class 'Sub'current instr.: '!dispatch_.*' pc 530 (src/glue/dispatch.pir:167)» | ||
diakopter | rakudo: say 1*.WHAT | ||
p6eval | rakudo 70667a: OUTPUT«Use of type object as valuecurrent instr.: 'perl6;Perl6Exception;throw' pc 13865 (src/builtins/Seq.pir:28)» | ||
masak | o.O | 08:52 | |
stop producing weird things! :) | |||
I can't keep up. | |||
diakopter | I don't know what those are supposed to mean, but I think pmichaudry and TimToadstool and jnthnthnthn mentioned iterators at least once in the past few weeks. ;) | 08:53 | |
masak | ISTR that too :) | ||
diakopter | std: say 1 * .WHAT | ||
p6eval | std 29732: OUTPUT«ok 00:01 106m» | ||
masak | diakopter: by the way, what's with the name-calling? is it your way of expressing affection? :P | 08:54 | |
diakopter | rakudo: say * * .WHAT | ||
p6eval | rakudo 70667a: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» | ||
masak | I believe sjohnson has attempted the same at times, with varying results. | 08:55 | |
diakopter | oh, just, I didn't meant to namecall; just... warping names. probably I shouldn't. | ||
masak | up to you, I guess. | ||
diakopter won't | |||
masak | now, about that 1.*WHAT thing... | 08:56 | |
rakudo: say 42.WHAT | |||
p6eval | rakudo 70667a: OUTPUT«Int()» | ||
masak | rakudo: say 42.?WHAT | ||
p6eval | rakudo 70667a: OUTPUT«Int()» | ||
masak | rakudo: say 42.+WHAT | ||
p6eval | rakudo 70667a: OUTPUT«get_iter() not implemented in class 'Sub'current instr.: '!dispatch_.*' pc 530 (src/glue/dispatch.pir:167)» | ||
moritz_ | good morning | ||
masak | moritz_: o/ | ||
moritz_ | rakudo: say 42.*WHAT | 08:57 | |
p6eval | rakudo 70667a: OUTPUT«get_iter() not implemented in class 'Sub'current instr.: '!dispatch_.*' pc 530 (src/glue/dispatch.pir:167)» | ||
masak | ok, so it's the "call all methods" thing. | ||
diakopter | moritz_: rakudo swapped to new git clone on p6eval, and "use Safe" emulation tweaked a bit. | ||
masak | it's broken. | ||
what's interesting is that .? isn't broken. :) | |||
I think it should be, if correctly implemented. | |||
moritz_ | diakopter: did you also remove ng: from p6eval? | 08:59 | |
diakopter | no, but I disabled its cron | ||
oh, and removed its parrot (oops!) | 09:00 | ||
hee | |||
ng: oops | |||
p6eval | ng 33bf19: OUTPUT«Could not find non-existent sub &oopscurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
diakopter | oh | ||
maybe not | |||
hmm, I wonder whose parrot I stole | |||
rakudo: trahend | 09:01 | ||
p6eval | rakudo 70667a: OUTPUT«Could not find non-existent sub &trahendcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
diakopter | rakudo: &trahend | ||
p6eval | rakudo 70667a: OUTPUT«Symbol '&trahend' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)» | ||
pugs_svn | r29733 | moritz++ | disable ng: target | ||
moritz_ forgot [evalbot] in the commit message | |||
masak | moritz_: quick! do a force push with the correct commit! :) | 09:03 | |
diakopter | rakudo: say &1 | 09:09 | |
p6eval | rakudo 70667a: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''current instr.: '!postcircumfix:<[ ]>' pc 10607 (src/builtins/Iterator.pir:25)» | ||
frettled | That one was slightly less than awesome. | ||
diakopter | </sarcasm><sarcasm> | 09:10 | |
moritz_ | rakudo: say "at least some things work" | ||
p6eval | rakudo 70667a: OUTPUT«at least some things work» | ||
frettled | diakopter: What, new sarcasm in the coming? :D | ||
diakopter | :U | ||
masak submits rakudobug | 09:11 | ||
diakopter happy to have figured out my sprixelbug | |||
09:11
frettled sets mode: +o masak
|
|||
diakopter | celebrating with rakudofuzzing | 09:11 | |
frettled | The masakbot needs op. | ||
masak | frettled: classical rookie mistake :P | 09:12 | |
masak does the Mickey-Mouse-Sorcerer's-Apprentice thing with the waves | |||
mwhahaha haa! | 09:13 | ||
frettled edges away nervously. | |||
diakopter | rakudo: say |0 | ||
p6eval | rakudo 70667a: OUTPUT«Could not find non-existent sub &prefix:<|>current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak | speaking of that, I really like the face of Smith when he has consumed the Oracle. it's madness and euphoria combined, somehow. | 09:14 | |
the kind that only an unstoppable virus suddenly endowed with omniscience can muster. | |||
moritz_ | evalbot control restart | ||
09:14
p6eval left,
p6eval joined
09:15
nbrown left
|
|||
diakopter | rakudo: say (4|0).WHAT | 09:15 | |
p6eval | rakudo 70667a: OUTPUT«Junction()» | ||
diakopter | rakudo: say (4|0) | ||
p6eval | rakudo 70667a: ( no output ) | ||
09:15
nbrown joined
|
|||
diakopter | rakudo: say 00.WHAT | 09:16 | |
p6eval | rakudo 70667a: OUTPUT«Int()» | ||
diakopter | std: say 00.WHAT | ||
p6eval | std 29732: OUTPUT«Potential difficulties: Leading 0 does not indicate octal in Perl 6 at /tmp/qodLVZOrkv line 1:------> say 00⏏.WHATok 00:01 105m» | ||
frettled | masak: www.acc.umu.se/~maswan/AgentElrond/ | 09:17 | |
diakopter | rakudo: say 0..WHAT | ||
p6eval | rakudo 70667a: OUTPUT«Not enough positional parameters passed; got 0 but expected 1current instr.: 'WHAT' pc 216565 (src/gen/core.pir:0)» | ||
mathw | I'm not sure I like that 'helpful' warning | ||
diakopter | masak: see the last ^ | 09:18 | |
mathw | 'Redundant leading 0 in numeric literal' might be more fun :) | ||
masak | frettled: heh :) | ||
masak submits rakudobug for 0..WHAT | 09:19 | ||
diakopter: what's happening there? how does it parse? | |||
frettled | masak: it's the wrong text, but the right concept | ||
The original was awesome. | |||
rakudo: say .WHAT | |||
p6eval | rakudo 70667a: OUTPUT«Mu()» | ||
frettled | Mu \o/ | ||
diakopter | masak: "so what? who cares?" <voice of SNL guy imitating lady on The View> | 09:20 | |
masak | :) | ||
diakopter: this goes in the report, you know :P | |||
diakopter | hrm. infractions**=infractions | 09:21 | |
masak | :) | ||
diakopter | rakudo: my $i**=$i; | ||
p6eval | rakudo 70667a: OUTPUT«Use of type object as valuecurrent instr.: 'perl6;Perl6Exception;throw' pc 13865 (src/builtins/Seq.pir:28)» | ||
masak | that might actually be the right behaviour. | 09:22 | |
diakopter | seems unsurprising if it is (I agree). | 09:23 | |
rakudo: my $a=1e5; --$a while $a; say 'finished' | 09:24 | ||
p6eval | rakudo 70667a: OUTPUT«finished» | ||
diakopter | rakudo: my $a=1e4; --$a while $a; say 'finished' | ||
p6eval | rakudo 70667a: OUTPUT«finished» | ||
diakopter | rakudo: my $a=1e6; --$a while $a; say 'finished' | ||
p6eval | rakudo 70667a: ( no output ) | 09:25 | |
diakopter | 1 million decrements takes more than 15s | ||
TimToady | but see S03:3801, which claims it should be 1 | 09:26 | |
moritz_ | new gcc versions would throw out that loop completely (with -O2) | ||
rakudo: my $i**=$i; say $i | |||
p6eval | rakudo 70667a: OUTPUT«Use of type object as valuecurrent instr.: 'perl6;Perl6Exception;throw' pc 13865 (src/builtins/Seq.pir:28)» | ||
09:26
moritz_ sets mode: +o TimToady
|
|||
diakopter | rakudo: my Int $a=1000000; --$a while $a; say 'finished' | 09:27 | |
p6eval | rakudo 70667a: ( no output ) | ||
diakopter | moritz_: yeah, in a language that's optimizable :P | ||
moritz_ | currently type constraints make the code less efficient in rakudo | ||
diakopter: aye | |||
diakopter | oh | 09:28 | |
rakudo: my Int $a=100000; --$a while $a; say 'finished' | |||
p6eval | rakudo 70667a: OUTPUT«finished» | ||
diakopter | yeah, it did better with the literal Num | ||
rakudo: say (7^^7).WHAT | 09:31 | ||
masak submits rakudobug based on what TimToady said | |||
p6eval | rakudo 70667a: OUTPUT«Method 'WHAT' not found for invocant of class 'Undef'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak submits rakudobug | |||
09:32
bacek joined
|
|||
diakopter | rakudo: say (7^^^^^^7).WHAT | 09:32 | |
p6eval | rakudo 70667a: OUTPUT«Method 'WHAT' not found for invocant of class 'Undef'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
09:32
am0c left
|
|||
diakopter | o_O | 09:32 | |
std: say (7^^^^^^7).WHAT | 09:33 | ||
p6eval | std 29733: OUTPUT«===SORRY!===Preceding context expects a term, but found infix ^^ instead at /tmp/8KnrsfoSCn line 1:------> say (7^^^^⏏^^7).WHATFAILED 00:01 106m» | ||
masak | it parses. | ||
diakopter | not in std | ||
masak | oh wait. you're right. | 09:34 | |
masak submits rakudobug | |||
jnthn | oh morning | 09:35 | |
.oO( omg, I'm awake and it actually still *is* morning. ) |
|||
masak | jnthn: it's started. | ||
jnthn | omfg | ||
jnthn runs away to the comfort of his coffee machine | |||
diakopter | moritz_: p6eval seems much more responsive... (both std and rakudo) | 09:36 | |
masak | hugme: hug p6eval | ||
hugme hugs p6eval | |||
masak | #perl6 seems much more responsive, come to think of it :) | 09:37 | |
moritz_ | that too | ||
09:39
k23z__ left
|
|||
masak | rakudo: undef.WHAT | 09:40 | |
p6eval | rakudo 70667a: OUTPUT«Could not find non-existent sub &undefcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak | rakudo: Undef.WHAT | ||
p6eval | rakudo 70667a: OUTPUT«Could not find non-existent sub &Undefcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
jnthn | There Is No Undef. | 09:41 | |
frettled | This is not the spoon you're looking for. | ||
09:41
colomon left
09:42
avuserow joined
|
|||
masak | jnthn: just checking, because (7^^7).WHAT apparently tried to call .WHAT on Undef. :) | 09:42 | |
mathw | :o | ||
that seems like a strange thing to do | |||
naughty rakudo | |||
moritz_ | masak: Undef is a parrot class leaking through | 09:43 | |
diakopter | std: my %r = 4; say ::%%r | ||
p6eval | std 29733: OUTPUT«ok 00:01 107m» | ||
diakopter | rakudo: my %r = 4; say ::%%r | ||
p6eval | rakudo 70667a: OUTPUT«Confused at line 11, near "say ::%%r"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
diakopter | I don't know whether that's a rakudobug, stdbug, both, or neither. | 09:44 | |
TimToady | std: :: % %r | ||
p6eval | std 29733: OUTPUT«Potential difficulties: Variable %r is not predeclared at /tmp/BecvEU8Bg6 line 1:------> :: % %r⏏<EOL>ok 00:01 106m» | ||
diakopter | rakudobug, then | ||
masak submits it | |||
rakudo: 7^^^^^^7 | 09:45 | ||
p6eval | rakudo 70667a: ( no output ) | ||
masak | moritz_: yes. I guessed as much in the rakudobug RT ticket. | 09:46 | |
moritz_: wonder why 7^^7 produces it. | 09:47 | ||
diakopter | rakudo: if 1 { &die 4 } | ||
p6eval | rakudo 70667a: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
pugs_svn | r29734 | lwall++ | [STD] add WHAT etc. to list of functions that require an argument | ||
masak | diakopter: two terms in a row? | ||
std: &die 4 | 09:48 | ||
TimToady | std: if 1 { &die 4 } | ||
p6eval | std 29733: OUTPUT«===SORRY!===Two terms in a row at /tmp/zb5arA2H0s line 1:------> &die ⏏4 expecting any of: bracketed infix infix or meta-infix statement modifier loopFAILED 00:01 126m» | ||
std 29733: OUTPUT«===SORRY!===Two terms in a row at /tmp/XkZNKvj04l line 1:------> if 1 { &die ⏏4 } expecting any of: bracketed infix infix or meta-infix statement modifier loopFAILED 00:01 126m» | |||
diakopter | ahah | ||
moritz_ | and I thougth that ng was supposed to bring us awesome error messages, comparable with those of STD.pm | ||
TimToady | as soon as ng can run STD, sure :) | 09:49 | |
masak submits LTA error message rakudobug | 09:50 | ||
masak has a feeling we can go on like this all day | |||
diakopter | std: if 1 { say(;) } | 09:51 | |
p6eval | std 29733: OUTPUT«ok 00:01 105m» | ||
diakopter | rakudo: if 1 { say(;) } | ||
p6eval | rakudo 70667a: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
diakopter | (or all night) | 09:52 | |
TimToady has the feeling he cannot go on like this all night, or he will produce an LTA error message | |||
mathw | masakbot is at full functionality :) | ||
masak | keep 'em coming. | 09:53 | |
diakopter | std: say Int() | 09:54 | |
p6eval | std 29733: OUTPUT«ok 00:01 105m» | ||
diakopter | rakudo: say Int() | ||
p6eval | rakudo 70667a: OUTPUT«Could not find non-existent sub &Intcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak submits rakudobug | 09:55 | ||
diakopter | sprixel: say Int() | ||
p6eval | sprixel 29734: OUTPUT«NYI: term__S_identifier» | ||
diakopter | hee | ||
masak | the fact that STD parses that one doesn't mean it should produce anything sensible, though. | ||
are .() calls with empty param lists made on type values defined by the spec? | 09:56 | ||
diakopter | once upon a time.. | ||
masak | I know .perl produces them, so they oughta be... | ||
moritz_ | not perl | ||
stringification | |||
rakudo: say Int.perl | |||
p6eval | rakudo 70667a: OUTPUT«Int» | ||
masak | right. thanks. | 09:57 | |
moritz_ | rakudo: say ~Int | ||
p6eval | rakudo 70667a: OUTPUT«Int()» | ||
masak | does that mean that 'Int()' isn't necessarily meaningful Perl 6 code? | ||
moritz_ | aye | ||
diakopter | stdbug then? | 09:58 | |
masak | no, it definitely parses. | ||
nothing wrong with it as such. | |||
diakopter | no, | ||
masak | it's like 42[5]. | ||
it parses, but it doesn't mean anything sensible in Standard Perl 6. | |||
diakopter | it should parse only if Int were a subname, or it would fail. | 09:59 | |
TimToady | well, it's coercing Nil | ||
frettled | Nil will not be coerced! :) | ||
diakopter | std: say Boo() | ||
p6eval | std 29734: OUTPUT«Undeclared name: 'Boo' used at line 1ok 00:01 105m» | ||
TimToady | my Int $x = Nil; # specced to make Int | ||
diakopter | std: class Boo { }; say Boo() | ||
p6eval | std 29734: OUTPUT«ok 00:01 105m» | ||
TimToady | so I suspect .() should just be identity on a type | 10:00 | |
masak | noted in the rakudobug. thanks. | ||
diakopter | std: class Boo { }; say Boo....() | 10:01 | |
p6eval | std 29734: OUTPUT«ok 00:01 106m» | ||
TimToady | std: say 1......() | 10:02 | |
p6eval | std 29734: OUTPUT«ok 00:01 106m» | ||
diakopter | rakudo: class Boo { method new() { } }; say Boo.new | 10:03 | |
p6eval | rakudo 70667a: OUTPUT«Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak | rakudo: class Boo {}; say Boo.new | 10:04 | |
p6eval | rakudo 70667a: ( no output ) | ||
masak submits rakuodbug | |||
diakopter | rakuod: blimey | ||
masak | rakudo: class Boo { method foo() { } }; say Boo.foo | 10:05 | |
p6eval | rakudo 70667a: OUTPUT«Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
diakopter | rakudo: class Boo { method new() { 1; } }; say Boo.new.WHAT | 10:06 | |
p6eval | rakudo 70667a: OUTPUT«Int()» | ||
masak | oh. | ||
rakudo: sub foo() {}; say foo | |||
p6eval | rakudo 70667a: OUTPUT«Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak | the Null PMC access isn't from having a method, it's from the return value. | 10:07 | |
diakopter | seems so | ||
masak modifies the rakudobug | |||
10:07
IllvilJa left
|
|||
diakopter | rakudo: class Boo { method invoke() { say 444; } }; say Boo.new.() | 10:08 | |
p6eval | rakudo 70667a: OUTPUT«invoke() not implemented in class 'Boo'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
diakopter | does it need a different signature? | ||
(if so, the error should clarify as such) | |||
10:08
Trashlord left
|
|||
moritz_ | invoke() is also a parrotism | 10:08 | |
class Boo { method postcircumfix:<[]>() { say 444; } }; Boo.new.() | 10:09 | ||
rakudo: class Boo { method postcircumfix:<[]>() { say 444; } }; Boo.new.() | |||
p6eval | rakudo 70667a: OUTPUT«invoke() not implemented in class 'Boo'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
10:09
snarkyboojum left
|
|||
diakopter | rakudo: class Boo does Snorkable { }; | 10:10 | |
p6eval | rakudo 70667a: OUTPUT«Null PMC access in type()current instr.: 'perl6;Boo;!class_init_11' pc 351 (EVAL_1:158)» | 10:11 | |
masak submits | |||
diakopter++ # Snorkable | |||
sounds like a concept out of the Mumin mythology :) | 10:12 | ||
rakudo: class Boo does 42 { }; | |||
p6eval | rakudo 70667a: OUTPUT«Malformed package declaration at line 11, near "does 42 { "current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
masak | rakudo: my $a; class Boo does $a { }; | ||
p6eval | rakudo 70667a: OUTPUT«Malformed package declaration at line 11, near "does $a { "current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
masak | rakudo: class Boo does Boo { }; | 10:13 | |
p6eval | rakudo 70667a: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class 'Boo'current instr.: 'perl6;ClassHOW;add_composable' pc 3686 (src/metamodel/ClassHOW.pir:159)» | ||
masak submits rakuodbug | |||
std: class Boo does Boo { }; | |||
p6eval | std 29734: OUTPUT«ok 00:01 105m» | ||
masak | that's cik :) | ||
s/cik/sick/ | |||
diakopter | rakudo: class _'_'_ { method new() { _'_'_ } }; say _'_'_.new.WHAT | ||
p6eval | rakudo 70667a: OUTPUT«_'_'_()» | 10:14 | |
diakopter | (no bug, just cute) | ||
masak | :) | ||
10:15
nbrown left,
nbrown joined
|
|||
TimToady | zzz & | 10:15 | |
diakopter | std: class class is class { } | 10:16 | |
p6eval | std 29734: OUTPUT«ok 00:01 105m» | ||
diakopter | rakudo: class class is class { } | ||
p6eval | rakudo 70667a: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:<is>'current instr.: 'perl6;class;!class_init_11' pc 351 (EVAL_1:158)» | ||
diakopter | ^z & | 10:17 | |
masak | rakudo: class A is A {} | ||
p6eval | rakudo 70667a: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:<is>'current instr.: 'perl6;A;!class_init_11' pc 351 (EVAL_1:158)» | ||
jnthn | Well, at least we kinda get that one right... | ||
masak | rakudo: class A {}; class B is A {} | ||
p6eval | rakudo 70667a: ( no output ) | ||
masak submits LTA rakudobug | |||
jnthn | Though we probably want a fallback trait_mod:is | ||
TimToady | class A is A should find the name A already introduced as a type | 10:18 | |
frettled | It should return a Rand type. | 10:19 | |
jnthn | TimToady: I was referring to the "is class" one. | ||
TimToady | same thing | ||
jnthn | Nope. | ||
There's no type "class" | 10:20 | ||
So it ges translated to a :class pair. | |||
TimToady | there is after you've said 'clas clas' | ||
jnthn | oh | ||
meh. | |||
TimToady | sorry, bad connection -> bad typing | 10:21 | |
moritz_ | the key is to type locally :-) (yes, I know...) | ||
jnthn very much hopes there will be the same enthusiasm to go through RT and clear up the fixed tickets. | |||
TimToady | I should sleep locally... | ||
zzz & # really | |||
jnthn | o/ | 10:22 | |
masak | jnthn: I hope so too! :) | ||
10:23
bacek left,
IllvilJa joined
|
|||
masak | after 15 rakudobugs, a lull seems to have set in. | 10:26 | |
diakopter++ # masak+diakoter make a good mech | 10:27 | ||
jnthn | masak: fwiw, I'll probably not look at RT while there's So Many Spectests in spectest.data left to unfudge. So you can take your time to fill it up. :-) | 10:28 | |
s/unfudge/uncomment/ | |||
masak | jnthn: understandable. | ||
jnthn: and I suspect my focus will gradually shift to getting the Ecosystem up and running again. | 10:29 | ||
masak tries to run Druid, and see what falls out | |||
10:30
snarkyboojum joined
|
|||
masak | Druid currently fails 10 lines into the code, on a statement-modifying for loop. the feature I didn't manage to add a couple of days ago. | 10:34 | |
masak .oO( I bet jnthn or pmichaud can do it easily ) | |||
10:36
UjinT34 joined,
ruoso left
|
|||
masak | std: say | 10:44 | |
p6eval | std 29734: 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/zX2BGwQhfN line 1:------> say⏏<EOL>ok 00:01 107m» | ||
masak | rakudo: say | ||
p6eval | rakudo 70667a: OUTPUT«» | ||
masak submits rakudobug | |||
std: print | 10:45 | ||
p6eval | std 29734: OUTPUT«Potential difficulties: Unsupported use of bare 'print'; in Perl 6 please use .print if you meant $_, or use an explicit invocant or argument at /tmp/tzCoyo7j1e line 1:------> print⏏<EOL>ok 00:01 105m» | ||
masak | rakudo: print | ||
p6eval | rakudo 70667a: ( no output ) | ||
masak | rakudo: (class { method foo() { say "OH HAI" } }).foo | 10:50 | |
p6eval | rakudo 70667a: OUTPUT«Invalid namespace key in set_pmc_keyedcurrent instr.: 'perl6;ClassHOW;new' pc 3418 (src/gen/Attribute.pir:473)» | ||
masak | locally, that gives me a failed assertion, too. | ||
masak submits rakudobug | |||
10:51
k23z__ joined
|
|||
masak | rakudo: (class {}).foo | 10:52 | |
p6eval | rakudo 70667a: OUTPUT«Invalid namespace key in set_pmc_keyedcurrent instr.: 'perl6;ClassHOW;new' pc 3418 (src/gen/Attribute.pir:473)» | ||
masak | rakudo: my $a = 0 but True | 10:56 | |
p6eval | rakudo 70667a: OUTPUT«No applicable candidates found to dispatch to for 'infix:<does>'current instr.: 'infix:<but>' pc 214077 (src/gen/core.pir:2169)» | ||
masak submits rakudobug | |||
10:56
mikehh left
|
|||
masak | rakudo: 0 but True | 10:57 | |
p6eval | rakudo 70667a: OUTPUT«No applicable candidates found to dispatch to for 'infix:<does>'current instr.: 'infix:<but>' pc 214077 (src/gen/core.pir:2169)» | ||
jnthn | masak: You're mostly running into known NYI. | 10:58 | |
10:59
mikehh_ joined
|
|||
masak | jnthn: hm. guess I am. most of those will likely have spectests. | 10:59 | |
11:00
jferrero joined
|
|||
masak | nevertheless, from my point of view, they're regressions. | 11:00 | |
11:01
snarkyboojum_ joined
11:03
snarkyboojum left,
snarkyboojum_ is now known as snarkyboojum
|
|||
jnthn | oh, sure, you can file them. | 11:03 | |
masak | \o/ | ||
jnthn | As I said, I just hope you or others will be willing to help clear out the RT queue. | 11:04 | |
Once a bunch are fixed up. | |||
11:04
payload left
|
|||
masak | I'll try. it would probably be good for my Rakudo knowledge to jump into the implementation fray early on. | 11:05 | |
11:06
snarkyboojum left,
k23z__ left
11:08
mikehh_ left
|
|||
moritz_ | note that say() and print() being disallowed can be detected at run time | 11:13 | |
(without arguments, that is) | 11:14 | ||
masak | aren't 'say()' and 'print()' allowed? | 11:17 | |
and what's the remarkable thing about 'can be detected at run time'? did you mean 'compile time'? | 11:18 | ||
moritz_ | I mean it's as easy as multi say (*@args) { die "say without parameters disallowed" if @args == 0; ... } | 11:19 | |
std: say() | |||
p6eval | std 29734: OUTPUT«ok 00:01 107m» | ||
moritz_ | hm | ||
11:19
moritz_ sets mode: +v p6eval
|
|||
moritz_ | maybe I'm wrong | 11:19 | |
ng: say 1 | |||
jnthn | I thought it was compile time check. | 11:20 | |
masak | moritz_: yes, for once I think you are. 'say;' is disallowed, 'say();' is allowed. | 11:21 | |
moritz_ dreads the "empty say not allowed" error message for say + syntax error later on | 11:22 | ||
masak | moritz_: why is that something to dread? the bare say is only a warning. | 11:25 | |
moritz_ | masak: because the old rakudo did it that way | 11:26 | |
11:26
pmurias joined
|
|||
masak | I'm not following. | 11:26 | |
moritz_ | in auld rakudo, when you wrote 'say 3 4' | 11:27 | |
it didn't say "two terms in a row" | |||
but "bare say not allowed at ... " | |||
masak | std: say 3 4 | ||
p6eval | std 29734: OUTPUT«===SORRY!===Two terms in a row at /tmp/0ZSLm3DtpG line 1:------> say 3 ⏏4 expecting any of: bracketed infix infix or meta-infix statement modifier loopFAILED 00:01 107m» | ||
masak | moritz_: strangely enough, I've never run into that one. | ||
moritz_ | masak: I have, many tiimes | ||
masak | moritz_: I sometimes ran into the `for 1,2,3, { block }` typo. | 11:28 | |
moritz_ | std: for 1,2,3, { block } | 11:29 | |
p6eval | std 29734: OUTPUT«===SORRY!===Expression needs parens to avoid gobbling block at /tmp/xYkkiexVHu line 1:------> for ⏏1,2,3, { block }Missing block (apparently gobbled by expression) at /tmp/xYkkiexVHu line 1 (EOF):------> for 1,2,3, { block | ||
..}⏏<… | |||
11:31
payload joined
11:33
pausenclown joined
11:35
drbean joined
11:37
patspam left
|
|||
pausenclown | oh dear. i was toying around with the grammexes as in the calendar example and wondered how to handle delimited strings. | 11:38 | |
and had a look in the std.pm to see if i could cargo cult something from that | 11:40 | ||
masak | 'delimited strings'? aren't all strings delimited? | ||
pausenclown | *overload* | ||
masak flaunts his ignorance | |||
pausenclown | something like "foo" or bar or [%baz%], masak. | 11:41 | |
masak | that looks like three examples of very different entities. | ||
pausenclown | somethings weird with my keyboard layout | 11:42 | |
i meant 'bar' | |||
masak | ok. | ||
so you're basically talking about string literals. | 11:43 | ||
moritz_ | STD.pm might be a bit... too much with its approach | ||
masak | yes, those are not entirely trivial to parse. | ||
consider just calling into Rakudo's own Perl 6 rule for parsing string literals. | |||
alpha: say "Can I call you like this?" | 11:44 | ||
moritz_: I see a need sometimes for doing evals on the old Rakudo branch. | |||
at least until ng-now-master reaches its full potential. | 11:45 | ||
moritz_ | but usually you can just do \' [ <-[']> | \\ \' ]* \' | ||
similar to what you'd do in Perl 5 | |||
pausenclown | yeah but in a perl book i read online they had a syntax like token { "[" ~ "]" restoftoken }. when i try that rakudo croaks. not implemented or deprecated or sillymedumb? | 11:50 | |
moritz_ | it worked last I looked | 11:53 | |
(and yes, goal matching is much nicer for that) | |||
rakudo: say '"abc"' ~~ / \" ~ \" | |||
p6eval | rakudo 70667a: 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)» | ||
moritz_ | rakudo: say '"abc"' ~~ / \" ~ \" \w+ / | ||
p6eval | rakudo 70667a: OUTPUT«"abc"» | ||
pausenclown | can you point me at a detailed documentation for this? | 11:54 | |
moritz_ | matches | ||
rakudo: say '"abc' ~~ / \" ~ \" \w+ / | |||
p6eval | rakudo 70667a: OUTPUT«Unable to parse _block46, couldn't find final \" at line 1current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
moritz_ | that bails out, as it should | ||
pausenclown: S05 | |||
perlcabal.org/syn/S05.html#New_metacharacters to be more specific | |||
pausenclown | cool ty. | 11:55 | |
do you know about already made popular grammars? like Grammar::Html or Grammar::TT? Is there a namespace for this? | 11:56 | ||
moritz_ | I've written a JSON grammar in JSON::Tiny | 11:57 | |
github.com/moritz/json/ | |||
11:59
bluescreen joined
|
|||
pausenclown | that was actually the example in the book i mentioned. when i copy and pasted it didnt work. ill try the repository | 11:59 | |
i just wonder if JSON::Tiny::Grammar shouldnt be Grammar::JSON | 12:01 | ||
moritz_ | there are also examples for XML, URIs and so on | 12:02 | |
in other github repos | |||
github.com/masak/proto/blob/master/projects.list lists know modules; some of them have (or contain) grammars | 12:03 | ||
pausenclown: not Grammar::JSON - you also don't name things Class::Foo just because Foo is a class | |||
and grammars are (sadly) rather tightly tied to the class that uses them | 12:04 | ||
pausenclown | why? you can tie entirely different action classes to a single grammar. | 12:05 | |
moritz_ | yes, but the structure of the captures is very specific to a single grammar | ||
what I mean is that you can't easily replace the grammar with another grammar that parses the same text, but works differently | 12:06 | ||
for a given action class | |||
lunch& | 12:07 | ||
12:11
snarkyboojum joined
|
|||
pausenclown | the last line goes a little over my scope and maybe im xy. what do you think would be a good namespace for grammars for popular formats. like *ml, json, tt, etc. ? | 12:11 | |
12:12
Schwern left,
k23z__ joined
|
|||
pausenclown | rakudo: say '"a\"c' ~~ / \" ~ \" \w+ / | 12:16 | |
p6eval | rakudo 70667a: OUTPUT«Unable to parse _block46, couldn't find final \" at line 1current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
pausenclown | rakudo: say '"a\"c"' ~~ / \" ~ \" \w+ / | 12:17 | |
p6eval | rakudo 70667a: OUTPUT«Unable to parse _block46, couldn't find final \" at line 1current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
jnthn | rakudo: / \" ~ \" \w+ / | 12:18 | |
p6eval | rakudo 70667a: ( no output ) | ||
jnthn | rakudo: say '"ac"' ~~ / \" ~ \" \w+ / | ||
p6eval | rakudo 70667a: OUTPUT«"ac"» | ||
jnthn | rakudo: say '"a\"c"' ~~ / \" ~ \" [\w+ | '\\"'] / | ||
p6eval | rakudo 70667a: OUTPUT«Unable to parse _block46, couldn't find final \" at line 1current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
jnthn | rakudo: say '"a\"c"' ~~ / \" ~ \" [\w+ | '\\"']+ / | 12:19 | |
p6eval | rakudo 70667a: OUTPUT«"a\"c"» | ||
jnthn | :-) | ||
pausenclown | rakudo: say '"a\\\"c"' ~~ / \" ~ \" [\w+ | '\\"']+ / | 12:20 | |
p6eval | rakudo 70667a: OUTPUT«Unable to parse _block46, couldn't find final \" at line 1current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
pausenclown | boom | ||
jnthn | well, yeah, you gotta write a grammar to parse what you want to parse :-P | 12:21 | |
rakudo: say '"a\\\"c"' ~~ / \" ~ \" [\w+ | \\.]+ / | 12:22 | ||
p6eval | rakudo 70667a: OUTPUT«"a\\"» | ||
pausenclown | an arbitrary string delimited be double quotes | ||
escapes allowd | |||
mberends | .oO( rakudobug speleology task: run perl6advent examples on new master ) |
12:25 | |
jnthn | Hmm...that last one I wrote didn't do it. :-/ | ||
jnthn is a tad confused why | 12:26 | ||
oh, I see | |||
rakudo: say '"a\\\"c"' | |||
p6eval | rakudo 70667a: OUTPUT«"a\\"c"» | ||
jnthn | rakudo: say '"a\\\\"c"' | ||
p6eval | rakudo 70667a: OUTPUT«"a\\"c"» | ||
jnthn | rakudo: say '"a\\\\"c"' ~~ / \" ~ \" [\w+ | \\.]+ / | ||
p6eval | rakudo 70667a: OUTPUT«"a\\"» | ||
jnthn | oh gah | 12:27 | |
Anyway, I think that regex is about rightish. | |||
rakudo: say '"a\\\\\\"c"' ~~ / \" ~ \" [\w+ | \\.]+ / | 12:29 | ||
p6eval | rakudo 70667a: OUTPUT«"a\\\"c"» | ||
jnthn | Trouble is the single quotes are doing stuff wiht the \\ too :-) | ||
That was the example i was trying to write | 12:30 | ||
jnthn has lunch now, brain might start working again... | |||
takadonet | morning all | 12:49 | |
masak | takadonet: \o | ||
takadonet | OMG Ng is in the master branch! | 12:51 | |
12:51
lichtkind joined
|
|||
masak | I for one welcome our new ng master. | 12:51 | |
takadonet | indeed brb restarting mahcine | ||
lichtkind | masak: hej | 12:52 | |
jnthn | s/\./ with many bug reports\./ # ;-) | ||
masak | lichtkind: moin | ||
lichtkind | haha | ||
jnthn | At least with the new STD-ish grammar in place implementing s/// may not be so far off. :-) | ||
masak | jnthn: you do realize my behaviour is perfectly explainable by a ridiculously pent-up need to submit bugs, right? :) | ||
jnthn | masak: Sure. Doesn't mean I can't tease about it. :-P | 12:53 | |
masak | jnthn: of course. :) | ||
jnthn | I'm kinda surprised it's only 15. :-) | ||
masak has smoke coming out of ears | 12:54 | ||
jnthn | rakudo: "ab" ~~ /a { say 42 } b/; say $/; # some things work that didn't before too :-) | ||
p6eval | rakudo 70667a: OUTPUT«42ab» | ||
masak | wow! | ||
jnthn | See. It's not all new bugs. :-) | ||
rakudo: "ab" ~~ /:my $x = 42; a { say $x } b/; say $/; | 12:55 | ||
p6eval | rakudo 70667a: OUTPUT«42ab» | ||
masak needs to put back his dropped jaw with his hand | |||
jnthn | rakudo: sub foo() { say $*x; }; "ab" ~~ /:my $*x = 42; a { foo() } b/; say $/; | ||
p6eval | rakudo 70667a: OUTPUT«42ab» | ||
lichtkind | mberends: wake? | ||
masak | jnthn: that's really cool. | 12:56 | |
jnthn | pmichaud++ for those | ||
masak: We're using those in Grammar.pm :-) | |||
masak | \o/ | ||
jnthn | Contextuals make a lot of things nicer when parsing Perl 6 and building AST. :-) | 12:58 | |
$*SCOPE alone has made life a load better. | |||
12:58
kraih_sri left
|
|||
jnthn | Anyways, gonna go wander around for an hour with a friend who has come to visit the city. | 12:59 | |
jnthn bbl | |||
12:59
kraih_sri joined
13:04
orafu left,
orafu joined
13:06
colomon joined
13:09
takadonet joined
13:13
Guest36069 left
|
|||
mathw reads some backlog and has to painstakingly reassembled his head, which exploded with delight | 13:16 | ||
masak | making people's heads explode with delight is the business of #perl6 :) | 13:17 | |
mathw | It's a good business | 13:18 | |
Now please to be making grammars work sufficiently for building Form.pm :) | |||
13:22
payload left
13:30
pmurias left
|
|||
pmichaud | good morning, #perl6 | 13:39 | |
masak | and a good morning to you, pmichaud. | ||
pmichaud reads backscroll | 13:40 | ||
colomon | \o | 13:41 | |
13:42
drbean left
|
|||
pmichaud | (from backscroll) -- no, nqp doesn't use pge under the hood. It used pge long enough to get it bootstrapped, but since then nqp is parsed using nqp. | 13:43 | |
scp1 | So... does perl6 rule enough for me to actually try and get parrot running? :) | 13:44 | |
masak | scp1: Rakudo is in an interesting superposition of 'rule' and 'suck'. YMMV. | 13:45 | |
pmichaud | it 'rules' because Perl 6 is so awesome. it 'sucks' because there are still some significant bugs/pieces missing | 13:46 | |
mathw | But they will come. This feels like a big milestone. | 13:47 | |
Even though it's a regression in terms of tests passing. | |||
scp1 | It seems very interesting. I guess this have been asked before, but in that state is perl6 right now? When should it be fully released, is there some schedule or something? | ||
s/that/what/ | |||
moritz_ | scp1: there's a shedule for a usable release: Q2 (likely April) this year | 13:48 | |
masak | scp1: I think the 'fully released' question is strange, if you don't mind me saying it. | ||
scp1 | oh really, awesome | ||
moritz_ | scp1: but no schdeule for a language freeze or feature complete compiler yet | ||
masak | scp1: what you should ask yourself is what needs you have, and how they interact with Rakudo-now and Rakudo-soon. | ||
myself, I have a need to try fun things with Perl 6. Rakudo is certainly ready for that. :) | |||
moritz_ | (if you're confused, Rakudo is a Perl 6 compiler) | 13:49 | |
scp1 | My current needs is still learning perl5, but I think there's place for perl6 too :) | ||
yeah, I know | |||
masak | I have next to no need to see a 'full release' of Rakudo. I hardly know what that means. | ||
scp1 | Started late with perl, december last year, but since it's the most beutiful thing ever created I doubt perl6 will be any less sexier | 13:50 | |
mathw | If you think Perl 5 is the most beautiful thing ever created, Perl 6 is going to make your head explode with sheer joy. | 13:51 | |
scp1 | :D | 13:52 | |
colomon | afk # skiing! | ||
masak | scp1: want the tour? I can show you some things on the p6eval bot. | 13:53 | |
rakudo: say "take the tour! " x 2 | |||
p6eval | rakudo 70667a: OUTPUT«take the tour! take the tour! » | ||
mathw | Personally, I'll consider Perl 6 'ready' when there's a compiler release which supports all the features I want every day and produces code which runs acceptably fast. | ||
'Finished' is an alien concept. There are just steps along the road. | |||
scp1 | masak, oh nice... that works in perl5 too though :) | ||
mathw | scp1: he hasn't really started yet | 13:54 | |
masak | scp1: true. I'm just warming up :) | ||
mathw: I think that's a reasonable requirement. my point, to the extent I have one, is that 'finishing' will be a gradual thing any way, different for different people. | |||
moritz_: could I have an 'alpha' target? puhleeze? | |||
I don't really trust this new engine :P | 13:55 | ||
13:55
bluescreen left
|
|||
moritz_ | masak: alpha target? what are you talking about? | 13:55 | |
masak | moritz_: p6eval access to the old branch 'alpha'. | ||
mathw | he wants p6eval to let you run against rakudo/alpha | ||
moritz_ | is that the old master? | 13:56 | |
masak | yes. | ||
moritz_: how am I supposed to demo Rakudo to scp1 on a branch that's hardly capable of doing abacus-like things? | |||
scp1 | ;o | ||
masak | scp1: (we just switched underpinnings. stand by while we calibrate your reality.) | ||
moritz_ | masak: please remind me again in a week... need to prepare at least two presentations, so likely ENOTUIT before that | 13:57 | |
scp1 | hehe allright | ||
masak | diakopter: ping | ||
moritz_ | masak: but I guess I could give you access to server, if you want to take matters into your own hands | 13:58 | |
(hope that's fine with diakopter who runs the server) | |||
masak | moritz_: sure. | ||
oh well. this works, I tried locally: | |||
rakudo: multi sub foo(Int $a) { say "AN INT" }; multi sub foo(Str $a) { say "A STRING" }; foo(42); foo("OH HAI") | |||
p6eval | rakudo 70667a: OUTPUT«AN INTA STRING» | ||
masak | scp1: see what's happening there? | ||
scp1 | oh, types... | 13:59 | |
masak | yes :) | ||
actually, I should start by doing this: | |||
rakudo: sub foo(Str $a) {}; foo(42) | |||
p6eval | rakudo 70667a: OUTPUT«Nominal type check failed for parameter '$a'; expected Str but got Int insteadcurrent instr.: 'foo' pc 177 (EVAL_1:75)» | ||
masak | rakudo: sub foo(Str $a) { say $a }; foo("OH HAI") | ||
p6eval | rakudo 70667a: OUTPUT«OH HAI» | ||
masak | parameter type checking. | ||
scp1 | wow, nice | ||
masak | yes :) | 14:00 | |
scp1 | uhm, I can not find any perl6 package in my distro... | ||
community/parrot 2.0.0-1 standalone virtual machine that can be used to execute bytecode compiled dynamic languages | |||
this babe? | |||
and rakudo. | 14:01 | ||
masak | that's the VM. | ||
scp1 | yeah, I need both? | ||
masak | that and rakudo should suffice. | ||
yes. | |||
14:01
athenot joined
|
|||
scp1 | allright | 14:01 | |
masak | just the VM doesn't give you Perl 6. | ||
scp1 | heh allright | ||
masak | compare JVM and Java. | ||
mathw | Perl 6 doesn't have one single implementation like Perl 5 does. Perl 6 is a specification, and Rakudo is one of the compilers which implements it. | 14:05 | |
masak | that said, with all due respect to all implementors of the other implementations, Rakudo is the word that comes to mind when associating freely on "Perl 6" and "implementation" :) | 14:06 | |
mathw | Yes, it's definitely the furthest along | 14:07 | |
cognominal | there is a difference so. Java sucks while the JVM are ok. Here, Perl 6 is great while the implementations are immature. :) | ||
scp1 | Talking types, isn't it legal anymore to use i.e my $str = 'string'; ? | ||
mathw | And it's the one that runs on Parrot, which was always the initial plan | ||
scp1: yes | |||
14:07
pmurias joined
|
|||
mathw | you're free to not use types if you don't want to | 14:07 | |
scp1 | ah allright | ||
masak | 'gradual typing'. | ||
mathw | underneath, the type system's still in action but your variables can be unconstrained | ||
cognominal | this is not to say there are not great languages on top of the JVM | 14:08 | |
masak | there's an implicit 'Any' type added to such a container. | ||
mathw | my Str $a; # can only assign Str and Str-derivatives to it | ||
my $a; # can assign anything | |||
scp1 | yeah, okay, nice... reading about it | ||
mathw | So you can choose how much static type checking you want | ||
Personally I tend to go for as much as possible, but I'm a Haskell programmer | |||
scp1 | What? | 14:09 | |
Are there more languages then perl? | |||
moritz_ | lots; and you tend to need many more when you work on a real-world project | ||
like SQL for example | |||
mathw | urgh | 14:10 | |
I'm not so fond of SQL | |||
And it's well-known in here how I feel about Java :) | |||
14:10
bluescreen joined
|
|||
masak | suck it up. :) it's a sign of professionalism to be able to write good code in a language you dislike. | 14:11 | |
Su-Shee | it's a sign of good research if you never have to. ;) | ||
pmurias | moritz_: after i read Database in Depth from READTHEM i stoped liking SQL ;) | ||
takadonet | hard to avoid not writing javascript... | 14:12 | |
masak | Su-Shee: :) | ||
mathw | My manager is aware of my feelings about Java, and also aware that I'm a better C++ programmer, so he tends to let me just do C++ work :) | ||
masak | takadonet: JS, fortunately, is not too difficult to like. the DOM API, on the other hand... :/ | ||
mathw | My previous manager made me do SCJP to try and get me to like it, but it didn't work... | ||
moritz_ | pmurias: I'm well aware that SQL is not THE solution, but often it's still handy, and better than writing a storage backend yourself | ||
mathw | SQL could be a lot worse | ||
pmurias | most things could be a lot worse | 14:13 | |
takadonet | masak: I'm glad that 99% of my work is Perl 5 | ||
masak | takadonet: that sounds wonderful :) | ||
mathw | And sometimes there's an obscure pleasure in crafting a query that spreads over twenty-five lines and has six joins and a highly elaborate set of WHERE clauses in it :) | ||
scp1 | takadonet, any job openings? :) | ||
Su-Shee has 25% javascript, 10% perl 6, 15% css, 10% sql and the rest is perl 5. | |||
takadonet | masak: We are looking for Bioinformatician :) | 14:14 | |
masak | takadonet: just let me finish my degree first... :) | ||
takadonet | You guys just need to be willing to move to Winnipeg Canada | 14:15 | |
scp1 | No perl jobs here in sweden... just java and .NET, urgh | ||
Su-Shee | same here.. and a couple of c++ and c stuff. | 14:16 | |
and plenty php. | |||
takadonet | masak: when do you finish your degree? | ||
mathw | there's PHP everywhere | 14:17 | |
like some sort of mould | |||
scp1 | php :( | ||
Su-Shee | :) | ||
masak | takadonet: in about a year, I hope. | ||
Real Soon Now. | |||
Su-Shee | I love those anglosaxon blogpostings about the great perl job situation ;) | ||
masak | takadonet: I can definitely move to Canada, if there's an opening in a year :) | ||
14:21
xomas joined
|
|||
scp1 | who knows - maybe perl6 could actually create some jobs? | 14:21 | |
masak | it sure creates a lot of work :) | 14:22 | |
scp1 | yeah I could imagine... :) | ||
moritz_ | scp1: I've already got a job offer due to my Perl 6 activity | 14:23 | |
scp1 | Yeah but I guess you're one hell of a programmer | 14:24 | |
PerlJam | good morning all | ||
masak | PerlJam: \o | ||
moritz_ has no idea if he is a good or bad programmer | 14:25 | ||
Su-Shee | we'll have to offer ourselves the perl 6 jobs for a year or two. | ||
mathw | I'd like a job working in Perl 6 | 14:26 | |
masak | me too. | ||
pmichaud | yes, a job in Perl 6 might be nice. :) | 14:27 | |
Su-Shee | you'll have to introduce perl 6 in your actual job as successor. and you're the expert to migrate carefully into it. | ||
scp1 | heh | 14:28 | |
takadonet | planning to introduce Perl 6 to my workplace when Bioperl6 is done.... | ||
Su-Shee | no, I really mean it. noone is going to throw away all existing xy code and do it all over again in p6. | ||
14:28
k23z__ left
|
|||
Su-Shee | takadonet: well you might be the single one exception of the rule. | 14:28 | |
takadonet | that reminds me I better start writing it | ||
Su-Shee: Why is that? | 14:29 | ||
Su-Shee | takadonet: if you are already doing perl 6? | ||
takadonet | Su-Shee: I was doing some but then work took over... | ||
PerlJam | Perl 6 needs some "killer apps" (there will be more than one :) | ||
Su-Shee | PerlJam: don't those require some boring base apps like DBI6? :) | 14:30 | |
pmurias | or use DBI:from<perl5> ;) | 14:31 | |
masak | yeah, rather that. | ||
until then, we can get by on things like Squerl, hopefully. | |||
scp1 | I'll try to port some thing I've done to perl6, might be good exercises | 14:32 | |
masak | scp1++ | 14:33 | |
rakudo: say $ss_SS_S_S__S_S_s.WHAT | 14:34 | ||
p6eval | rakudo 70667a: OUTPUT«Block()» | ||
pugs_svn | r29735 | pmurias++ | [mildew] remove phi functions before the ssa form is executed | ||
r29735 | make test-ssa passes | |||
14:34
wolf2k_ubuntu joined
14:38
snarkyboojum left
|
|||
jnthn | rakudo: say $ss_SS_S_S__S_S_s | 14:40 | |
p6eval | rakudo 70667a: OUTPUT«_block25» | ||
jnthn | wtf | 14:41 | |
masak | jnthn: don't worry :) | ||
jnthn: it's just the variable through which Safe.pm is inlined nowadays. | |||
jnthn | oh! | ||
masak | I liked the name, though :) | 14:42 | |
jnthn | :-) | 14:43 | |
jnthn suspects he's not going to get a round tuit for Rakudo today. | |||
(Visiting friends) | |||
pmichaud | I'm likely to be mucking with scalars all day anyway :) | ||
although first round of changes over the past 45 minutes has gone quite nicely :) | 14:44 | ||
masak | changes? what changes? :) | ||
pmichaud | changing the way Rakudo manages scalar variables and flattening | ||
masak | oh, cool. | 14:45 | |
jnthn | pmichaud: OK, wfm. | 14:46 | |
Tomorrow may/should be better. | |||
Wednesday onwards everythings all clear again. :-) | |||
14:46
kidd` joined
|
|||
pmichaud | make | 14:46 | |
ww | |||
I'm just now trying the part where we eliminate copying values :-) | 14:47 | ||
expect massive fireworks/failz | |||
jnthn | .oO( damm, shoulda typed a compile error before Pm noticed ww :-) ) |
||
masak | :) | ||
pmichaud | ...wtf? it passed "make test"? | 14:48 | |
14:48
cjk101010 left
|
|||
pmichaud | hmmmmmmmmmm | 14:49 | |
jnthn | pmichaud: It is possible that you did it right. :-) | ||
pmichaud | I truly expected massive fail. So far fail only on nested_array.t | ||
moritz_ | pmichaud: I predict infinite recursion for 'make spectest' :-) | ||
jnthn | .oO( plz to not breaks S1[24]-* |
14:50 | |
) | |||
:-) | |||
14:50
clausi left
|
|||
pmichaud | infinite recursion, yes. | 14:51 | |
14:57
cjk101010 joined
15:04
ignacio_ joined
|
|||
pmichaud | jnthn: would you prefer a 'scalar' property or a Perl6Scalar type? I think I can make it work either way. | 15:13 | |
15:13
cognominal left
|
|||
jnthn | pmichaud: hm | 15:13 | |
pmichaud: Well... | |||
masak | rakudo: class A { method Str { "OH HAI" } }; say ~A.new; say ~A | ||
p6eval | rakudo 70667a: OUTPUT«OH HAIA()» | ||
jnthn | pmichaud: I prefer the type I think. | 15:14 | |
pmichaud: Actually, question. | |||
masak | how come the user's Str method doesn't override stringification of the type object? | ||
jnthn | masak: It shouldn't. | ||
masak | jnthn: I know. how come it doesn't? :) | ||
pmichaud | masak: for that, I think one has to have method Str(self:U :) { ... } or something like that | ||
jnthn | pmichaud: Are we going to have a prophash on them anyway? | ||
15:15
PacoLinux joined
|
|||
pmichaud | jnthn: well, we still have to have somewhere to hold the type information (more) | 15:15 | |
masak | pmichaud: ah, that explains it. thanks. | ||
jnthn | masak: The current answer is "because the low-level role we mix in to make something a type object rather than just an ordinary instance overrides it" | ||
masak: The answer pmichaud gave is the right one. :-) | |||
pmichaud | but that could conceivably become an attribute of container objects (i.e., attribute of Perl6Scalar) | 15:16 | |
jnthn | Well, I was wondering if we could eliminate the prophash for e.g. untyped, but I guess they all still need rw... | ||
pmichaud | in short, we could start moving towards eliminating the use of the prophash | ||
jnthn | I don't hate the prophash per se, I'm just aware it's one more gc-able. | ||
pmichaud | I think we can eliminate the rw, also. | ||
jnthn | What do we set rw on? | 15:17 | |
15:17
lichtkind left
|
|||
jnthn | Only ever an ObjectRef? | 15:17 | |
pmichaud | well, I was thinking that we know something is rw because it's a Perl6Scalar, but now I'm not so sure. | ||
jnthn | If so, there's 7 PMC flag bits... | ||
We could take one for scalar, one for rw... | 15:18 | ||
pmichaud | and by "it's a Perl6Scalar", I mean only the PMC itself, not anything it references | ||
jnthn | Part of me thinks (that you won't like this idea but I'll say it anyway...) that we should factor out the "is it a scalar" and "is it rw" checks to dynops. | ||
Not for performance. | |||
But so we can more easily change/optimize the way we handle this in the future. | |||
pmichaud | I was just thinking "isscalar" as a dynop, yes. | ||
jnthn | Oh, I thought you'd hate the idea. :-) | 15:19 | |
pmichaud | well, the important thing about using Perl6Scalar as-a-type is that it's not a normal "isa" check. | ||
jnthn | You can just compare ->vtable->base_type | ||
pmichaud | i.e., right now if we do "isa ...", we end up checking the type-ness of the value as well as the containers | ||
jnthn | == poitner comparsisson to see if it's a scalar | ||
pmichaud | that's fine for "isa" checks, but I need something that just checks the container and not what it references. so I was thinking dynop might be the way to do that easily. | 15:20 | |
your point about putting all of this behind abstraction opcodes makes a lot of sense also. | |||
15:21
cognominal joined
|
|||
pmichaud | well, "is it a scalar" and "is it rw" have to be orthogonal, so they can't both be attached to the pmc type | 15:23 | |
jnthn | The other reason I like it behind such a thing, is that it'll be easier to hide however @other-vm do it behind the same thing. | ||
pmichaud | so there has to be a flag somewhere | ||
jnthn | Can they be attached to any PMC? | ||
Or just ObjectRef? | |||
pmichaud | in general, only containers end up with properties | 15:24 | |
jnthn | hmm | ||
We can't really go using PMC flag bits on any old PMC. | |||
pmichaud | at the moment that would be ObjectRef, Perl6Scalar, Seq, and Hash | ||
no, we wouldn't be putting flags on foreign PMCs | 15:25 | ||
only on our own container types | |||
jnthn | Seq and Hash are high level objects, so it's what the Object PMC that matters. | ||
I wonder if it uses flag bits... | |||
We can always use the prophash of course. | |||
pmichaud | and our container types are strictly containers -- they never hold values directly in the new model but always hold a reference to a value | ||
jnthn | but saving a gc-able for many of our untyped containers would be nice. | ||
pmichaud | so values never have properties on them | 15:26 | |
even if we don't use PMC flags, we can use standard PMC attributes | |||
and that doesn't create another gcable | 15:27 | ||
15:28
nihiliad joined
|
|||
jnthn | "attributes"? | 15:28 | |
Oh, hmm, maybe. | 15:29 | ||
pmichaud | yeah, the GETATTR stuff, not the object attributes | ||
jnthn | Ah, I see. | ||
OK, well...I think we agree we want a dynop abstraction interface. | |||
If the first cut is done with properties because it's easy/familiar, that's OK. | 15:30 | ||
pmichaud | well, I'd also like to find a good way to eliminate the setprops we do now. | ||
but not necessarily with separate opcodes. in some ways, I'd like to say "give me a Scalar" and have it already initialized with the standard scalar flags. | |||
s/give me a Scalar/create a Scalar | 15:31 | ||
jnthn | new_scalar | ||
oh, not with seperate opcodes... | |||
hm | |||
pmichaud | or perhaps put it all in one opcode | 15:32 | |
15:32
payload joined
|
|||
jnthn | I was thinking new_scalar would do the new | 15:32 | |
pmichaud | new_p6opaque <scalar>, <rw>, <init_ref> | ||
jnthn | and also set the props | ||
well, that kinda thing, yeah | |||
pmichaud | okay, I'll work on the assignment/binding ops a bit more | 15:34 | |
that should provide some clues as to what we really want | |||
jnthn | Not 100% sure if I like having p6opaque in the name...may work. | ||
pmichaud | doesn't have to be that.. I agree it's not precisely correct | ||
15:37
Psyche^ joined
|
|||
pmichaud | okay, I'll take a walk and think a bit more on things. thanks! | 15:37 | |
jnthn | np :-) | 15:38 | |
15:40
Patterner left,
Psyche^ is now known as Patterner
|
|||
masak | research.swtch.com/2010/01/generati...rrors.html | 15:56 | |
15:59
uniejo left
16:03
justatheory joined
16:11
jackyf joined
|
|||
masak | rakudo: role A { method x {} }; role B { method x {} }; class C does A does B {} | 16:16 | |
p6eval | rakudo 70667a: OUTPUT«Null PMC access in elements()current instr.: 'perl6;SeqIter;get' pc 13390 (src/builtins/Routine.pir:92)» | ||
masak submits rakudobug | |||
jnthn | *sigh* | 16:18 | |
I'd thought we were running tests for that. :-/ | |||
masak | hugme: hug jnthn | ||
hugme hugs jnthn and blushes | |||
diakopter | BUSHELS | ||
jnthn | It certainly used to work. Guess the array changes busted it. | ||
masak | diakopter: do you think you could help me add an 'alpha' target to p6eval? I have a case of nostalgia. | 16:19 | |
16:19
payload left
|
|||
masak | jnthn: that's what I'm here for. it's my Nelson function in #perl6. | 16:20 | |
ha ha! | |||
masak tries sledgehammer on a few other things | |||
frettled | :) | ||
New spectest: masak.t | 16:21 | ||
colomon | frettled: but that test file will never pass! | ||
pmurias | ch to a Perl 6 grammar | ||
masak: seem a good approach to getting good error messages in an LR parser the tricky part would be converting the appro | |||
ch to a Perl 6 grammar | |||
masak | pmurias: yes. thinking the same thing. | 16:22 | |
pmichaud | okay, walk helped | ||
jnthn: here's what I think I've figured out | |||
jnthn | 1) Put the dog on a lead. | ||
;-) | |||
pmichaud | we have more than (flatten|non-flatten) (rw|ro) | 16:23 | |
masak | rakudo: class A {}; supersede class A {} | ||
p6eval | rakudo 70667a: OUTPUT«Illegal redeclaration of symbol 'A'current instr.: 'perl6;Perl6;Grammar;_block111' pc 31921 (src/gen/perl6-grammar.pir:174)» | ||
masak | ENOSUPERSEDE | ||
pmichaud | in fact, what we have mirrors S06 fairly closely | ||
masak | I guess I don't need to submit a TODO for that one. | ||
jnthn | That's...not the error I expected... | ||
pmichaud | a container can suppress flattening by having a $ sigil. That's orthogonal to the other items | ||
masak | jnthn: it thinks &supersede is a sub. | 16:24 | |
pmichaud | a container can be readonly, in which case assignment is forbidden | ||
oops, let me rephrase | |||
a container can be a readonly reference to another container, in which case assignment is forbidden | |||
a container can be a rw reference to another container, in which case assignment is delegated to the other container | |||
a container can be rw in its own right, in which case it handles assignment itself | 16:25 | ||
jnthn | masak: oh! | ||
pmichaud | do we implement supercede yet? | 16:26 | |
masak | Seems not. | ||
jnthn | pmichaud: Not really, but add_name knows what to do with it. | ||
pmichaud | then just add a declarator for 'supercede' that says "not yet implemented" :) | ||
jnthn | I expected it to whine that supercede wasn't done yet a bit further on. | ||
add_name knows not to complain about re-decl though. | |||
Grammar.pm:86 | |||
diakopter | masak: dunno. mostly it's a server-admin kind-of-thing | 16:28 | |
pmichaud | jnthn: anyway, so the things we have to manage are equivalent to "is readonly", "is rw", and "is copy" | ||
jnthn | pmichaud: Hmm. | ||
If ou look at it sidewaysish, I guess that works :-) | |||
pmichaud | so what I'm guessing is that type-based isn't the way we want to go | 16:29 | |
jnthn | (We're not doing any copying) | ||
pmichaud | "is copy" is basically the same thing as assignment | ||
i.e., normal assignment | |||
jnthn | Hm | ||
masak | diakopter: yes. moritz_ gave me access, but I didn't add anything myself, mainly because I chickened out. don't want to break p6eval with no-one to help fix it. | ||
pmichaud | if I have | ||
jnthn | It's not implemented like that at the moment. :-) | ||
pmichaud | sub foo($x is copy) { ... } | ||
jnthn | It calls .clone :-) | ||
pmichaud | I'm not sure calling .clone will be correct, now. | 16:30 | |
it may be. | |||
pmurias | mildew: say 1 | ||
p6eval | mildew: OUTPUT«Can't open perl script "mildew": No such file or directory» | ||
diakopter | masak: it's not ultra fragile (it's easily fixable); go ahead and experiment | ||
pmichaud | but the point is that $x ends up acting like a standalone variable, not bound to the argument in any way | ||
in the same way that | |||
my $a = 4; my $b = $a; | |||
$b is a copy of $a, not bound to the $a container at all | |||
diakopter | masak: just do everything as the p6eval user in the chroot | ||
masak | aye. | 16:31 | |
diakopter | see its crontab | ||
masak | aye. | ||
diakopter: rakudo master (previously known as ng) uses a p/p1/p2 system. should the alpha branch also do something like that? | |||
jnthn | pmichaud: I could see it that way too. | ||
pmichaud | did we get rid of "is ref" ? | 16:32 | |
jnthn | Yeah | ||
well | |||
yes | |||
pmichaud | what is it now? | ||
jnthn | But we gained \ | ||
"is parcel" | |||
But you write a \ before, not "is parcel" | |||
is rw implies is parcel | |||
is parcel on its own implies "don't apply any context" | |||
diakopter | masak: actually the old master used p/p1/p2 system | ||
and so does the new master. the old ng didn't use p/p1/p2 | 16:33 | ||
I think | |||
hence the "missing ./perl6" msgs | |||
masak | ok. | ||
oh, aha! | |||
diakopter | so if you want to clone it, sure | ||
just... decrease the frequency of rebuilding alpha... it doesn't need to run every half hour | |||
jnthn | pmichaud: Well, s/implies/means/ on the last one. :-) | ||
masak | well, the need isn't as great, since alpha will be mostly static anyway. the crontab can... yes. | ||
diakopter | also, disable the make test upon rebuild if you would, plz | 16:34 | |
on both | |||
masak | oki | ||
masak is a little scared, but will try | |||
pmichaud | okay, but the point of "is parcel" is that our symbol is bound directly to the argument, no reference, yes? | ||
16:34
payload joined
|
|||
masak | nice change from breaking things, trying to make things work :) | 16:34 | |
jnthn | pmichaud: That's pretty much what happens. | ||
pmichaud | okay | 16:35 | |
jnthn | pmichaud: In fact, I think it's very literally exactly what happens. :-) | ||
pmichaud | whereas "is rw" creates an objectref ? | ||
jnthn | um | ||
Not sure without looking at the impl. | |||
pmichaud | well, it pretty much has to be an objectref, yes? | ||
jnthn | ah, waiting on a build, can check it... | 16:36 | |
pmichaud | sub foo(Int $a is rw) { ... } | ||
jnthn | we're not doing tht at the moment. | ||
if (sig_info->flags & SIG_ELEM_IS_RW) { | |||
/* XXX TODO Check if rw flag is set. */ | |||
if (sig_info->variable_name) | |||
VTABLE_set_pmc_keyed_str(interp, lexpad, sig_info->variable_name, value); | |||
} | |||
But yes, probably should. | 16:37 | ||
pmichaud | well, $a has to have its own type information | ||
jnthn | Right. | ||
pmichaud | so it has to be an ObjectRef of some sort | ||
jnthn | Well, er. | ||
pmichaud | and assigning to $a performs the check but delegates to the referenced container | ||
jnthn | my Int $x; sub foo(Numeric $y is rw) { $y = 1/2; } foo($x); # gotta fail | 16:38 | |
masak | diakopter: is the directory rakudo_old-master something I can use? | ||
16:38
payload left
|
|||
pmichaud | right, no problem. | 16:38 | |
16:38
payload joined
|
|||
jnthn | I guess the delegation handls that for us. | 16:38 | |
pmichaud | $y has to be smart enough to enforce its type as well as the type of the thing it references | ||
jnthn | ? | ||
pmichaud | or delegation handles it | ||
but yes, $y can check and if okay, pass the assignment to the thing it references | 16:39 | ||
jnthn | What about multi fact(Int $n) { $n * fact($n - 1) } ? | ||
recursion? | |||
We don't want to wrap more and more of the same checks. | |||
I guess that argues smart rather than delegation. :-) | |||
pmichaud | right, the checks can be smart | ||
but in your example, there's also no assignment. and $n is ro :-) | 16:40 | ||
we only have to be smart in the case of 'is rw' | |||
jnthn | Right. | ||
Bad example, I shoulda just said "recursion" :-) | 16:41 | ||
pmichaud | right, I get the reference :) | ||
16:41
cjk101010 left
|
|||
pmichaud | anyway, ObjectRef (or ObjectRef + Perl6Scalar) needs to be able to handle the cases I mentioned | 16:42 | |
read-only reference | |||
reference with delegation (is rw) | |||
standalone container | |||
16:42
payload left
|
|||
jnthn | *nod* | 16:42 | |
I think we're arguing for a flag of some kind for sure, then. | 16:43 | ||
pmichaud | and I wonder if, instead of having a separate property, if it's sufficient to simply check to see if what the ObjectRef references is itself another ObjectRef | ||
jnthn | hm | ||
Could work too maybe. | |||
And cheap. | |||
pmichaud | if so, we have to delegate the assignment, otherwise we do the assignment ourself | 16:44 | |
where "assignment" now means "reference a value object" | |||
jnthn | I like the analog with signatures here though. | ||
pmichaud | yes | ||
oh, and ooh! This cleans up array and list assignment a ton! | 16:45 | ||
jnthn | Makes me feel a bit more comfortable that it's along the right lines. | ||
pmichaud | it also fits a lot better with some of the things TimToady has been saying about binding/assignment | ||
jnthn | *nod* | ||
pmichaud | because instead of having to copy containers, I can just dereference them to get to the immutable values | 16:46 | |
big Win | |||
jnthn | Yeah | 16:47 | |
jnthn hopes this one flies :-) | |||
pmichaud | I think it will fly nicely. | ||
need some nom, then I'll write it up | |||
jnthn | OK | ||
I'm here for ~1.5 hours more | |||
pmichaud | okay | ||
jnthn | Then out for dinner and piva. | 16:48 | |
pmichaud | so, what we end up with is: | ||
(1) 'scalar' property suppresses flattening | |||
(2) 'rw' property determines rw-ness | |||
(3) ObjectRef to another ObjectRef delegates assignment (after possibly imposing more typechecks) | 16:49 | ||
-end- | |||
jnthn | 3 simple rules. | ||
lisppaste3 | pausenclown pasted "error" at paste.lisp.org/display/94991 | ||
pausenclown | WTF? paste.lisp.org/display/94991 | 16:50 | |
masak | pausenclown: you'll at least need a semicolon before 'XML::Parser::Actions.new();' | 16:51 | |
pmichaud | maybe need a semi.... what masak++ said | ||
but that still doesn't entirely explain it | |||
masak | pausenclown: the rule in Perl 6 is that a semicolon OR a newline is always needed after a closing brace. | ||
pmichaud | afk, nom | ||
pausenclown | there is a newline | 16:52 | |
copz and paste error | |||
masak | pausenclown: it works if I remove the 'grammar' line. | ||
16:52
cdarroch joined,
cdarroch left,
cdarroch joined
|
|||
moritz_ | looks like a weird rakudobug | 16:53 | |
pausenclown | well. that doesnt help much | ||
jnthn | Is this master now, or alpha from before? | ||
16:53
uniejo joined
|
|||
pausenclown | i tend to attrract those as it seems | 16:53 | |
masak | pausenclown: still in debug mode. hold on. | ||
pmichaud: new master. | 16:54 | ||
jnthn | masak: Oh. I didn't think we'd implemented grammars yet. | ||
That may be why. | |||
masak | it works if I remove the TOP token. | 16:55 | |
jnthn | None of S05-grammar/* runs, afaik. | ||
"works" :) | |||
dalek | kudo/master: c65c28b | (Martin Berends)++ | docs/compiler_overview.pod: [docs/compiler_overview.pod] over 80% updated for new master (former ng) |
||
masak | rakudo: class S {}; grammar A { token x { . } }; S.new(); | 16:56 | |
p6eval | rakudo 70667a: OUTPUT«Symbol '$ss_SS_S_S__S_S_s' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)» | ||
masak | o.O | ||
there's that variable again. | |||
jnthn | ...where'd that come from?! | 16:58 | |
masak hopes it wasn't something he did on the p6eval server :/ | |||
I don't think it was, but still... | |||
colomon | I thought that variable was coming from the inline version of use Safe; or something like that? | 17:00 | |
masak | it was indeed. | 17:01 | |
maybe its presence shadows the error I get locally for some reason. | |||
pausenclown | so any workaround suggestions? | 17:04 | |
masak | pausenclown: seems grammars are not implemented yet. | ||
pausenclown: workaround would be to use the January release :) | |||
or the alpha branch. | 17:05 | ||
pugs_svn | r29736 | masak++ | [evalbot] added alpha target for Rakudo nostalgia | ||
jnthn | master is more rough than ready atm. | ||
If you just want to play with Perl 6. | 17:06 | ||
imo | |||
17:06
Schwern joined
|
|||
masak | alpha: say q[guess this doesn't work just yet...] | 17:06 | |
hm, moritz_ usually does some manual restarting... | |||
evalbot control restart | 17:07 | ||
17:07
p6eval left,
p6eval joined
|
|||
masak | alpha: say "How about now?" | 17:07 | |
:( | |||
moritz_ | did you svn up before restarting? | ||
masak | huh. :) | ||
masak does that | 17:08 | ||
moritz_: (of course I did, uh... what do you take me for, some kind of maroon?) | |||
:P | |||
evalbot control restart | |||
17:08
p6eval left,
p6eval joined
|
|||
masak | alpha: say "Perhaps now?" | 17:09 | |
:( | |||
p6eval | alpha 30e0ed: OUTPUT«Perhaps now?» | ||
masak | \o/ | ||
alpha: grammar X { token top { . } }; say "Are you the Rakudo branch I know and love?" | |||
p6eval | alpha 30e0ed: OUTPUT«Are you the Rakudo branch I know and love?» | ||
masak | \o/ | ||
colomon | \o/ | ||
masak | alpha: class S {}; grammar A { token x { . } }; S.new(); | 17:10 | |
p6eval | alpha 30e0ed: ( no output ) | ||
masak | swimming & | 17:11 | |
17:11
masak left
|
|||
moritz_ | masak++ # tuning evalbot to his needs | 17:12 | |
pausenclown | alpha: class XML::Parser::Actions {}; grammar XML::Parser::Grammar { token TOP { \< \? xml } }; say XML::Parser::Grammar.parse('<?xml', :action( XML::Parser::Actions.new() )); | 17:18 | |
p6eval | alpha 30e0ed: ( no output ) | ||
pausenclown | where do i get the alpha branch? | 17:19 | |
jnthn | If you already have a clone, just git checkout alpha | 17:21 | |
then re-configure and re-build. | |||
pausenclown | root:/home/pc/perl6/rakudo# git checkout alpha >> error: pathspec 'alpha' did not match any file(s) known to git. | 17:24 | |
im not used to git, so pls forgive mz ignorance | 17:25 | ||
jnthn | oh, sorry | 17:27 | |
try git checkout origin/alpha | |||
I think that'll work | |||
jnthn doesn't have much git fu either. | |||
moritz_ | git checkout --track -b alpha origin/alpha | 17:29 | |
jnthn | ah, I guess in the event alpha gets any changes, it's worth tracking... | 17:30 | |
17:31
synth left
|
|||
moritz_ -> offline | 17:32 | ||
cognominal | that makes it : $ git clone git://github.com/rakudo/rakudo.git rakudo-alpha | 17:34 | |
$ cd rakudo-alpha/ | |||
$ git checkout --track -b alpha origin/alpha | |||
Branch alpha set up to track remote branch refs/remotes/origin/alpha. | |||
Switched to a new branch "alpha" | |||
17:44
colomon left
17:45
jferrero left
|
|||
jnthn | afk for a while | 17:50 | |
17:53
cognominal left
17:55
ShaneC joined
|
|||
pmichaud | my suggestion is for people to grab the alpha tarball rather than checkout from git | 17:56 | |
i.e., grab the latest release tarball | 17:57 | ||
17:58
cognominal joined
17:59
krychu joined
18:07
Chillance joined,
stephenlb joined
18:08
rv2733 joined
|
|||
jnthn | pmichaud: Got a few minutes before I head out for the evening; any last things? | 18:08 | |
pmichaud | not off top of my head | ||
jnthn | Also, looks like I will have Rakudo hacking time tomorrow. | ||
pmichaud | sounds good | ||
I'll keep working on assignment semantics now | 18:09 | ||
then I'll look at sort | |||
and then grammars | |||
jnthn | Not all day, but should be at least a few hours. | ||
OK, good plan. | |||
I'm going to wrap up some signature bits. | |||
Will you pop binding in along the way? | |||
Or leave that for now? | |||
pmichaud | maybe | ||
it's not so high on my priority list | 18:10 | ||
might do it while it's fresh in my head though | |||
jnthn | OK, if not, I may do it for the sig case. | ||
Need to re-read TimToady++'s commits on that area. | |||
It didn't really sink in the first time, but I was tired. | |||
After that, probably I'll take on meta-model/class/role things. | 18:11 | ||
Try and sort out the sits of S1[24] that we're still weak on. | |||
*bits | |||
pmichaud | afk for a bit | 18:12 | |
18:12
Schwern left
18:13
zibri joined
18:16
pmurias left
18:18
stephenlb left
18:19
stephenlb joined
|
|||
pausenclown | how do i create a string when i have a unicode codepoint? | 18:21 | |
pmichaud | rakudo: say "\x[ab]"; | 18:28 | |
p6eval | rakudo c65c28: OUTPUT««» | ||
pmichaud | rakudo: say "\c[171]"; | 18:29 | |
p6eval | rakudo c65c28: OUTPUT«» | ||
pmichaud | hmmmm | ||
looks like \x works, not sure about \c | |||
cognominal | rakudo: say Nil.WHAT | 18:35 | |
p6eval | rakudo c65c28: OUTPUT«» | ||
cognominal | rakudo: say "hi" | ||
p6eval | rakudo c65c28: OUTPUT«hi» | ||
cognominal | rakudo: say Nil | ||
p6eval | rakudo c65c28: OUTPUT«» | ||
cognominal | rakudo: my $a = (1, (2, (3, 4))); say $a[1]; | 18:36 | |
p6eval | rakudo c65c28: OUTPUT«2» | ||
18:37
rv2733 left
|
|||
cognominal | rakudo: my $a = (1, (2, (3, 4))); say $a[2]; | 18:37 | |
p6eval | rakudo c65c28: OUTPUT«3» | ||
pausenclown | ok, thanks. but what if i have the number in a variable? | 18:42 | |
18:43
pausenclown left
|
|||
pmichaud | rakudo: say chr(171); | 18:44 | |
p6eval | rakudo c65c28: OUTPUT«\xAB» | ||
pmichaud | uhhhhhhhh | 18:45 | |
*that's* bizarre. | |||
oh. | 18:46 | ||
looks like the I/O streams are utf8 defaulted | |||
mberends | it would really be nice to have a binary stream option as well | 18:49 | |
pmichaud | *aren't | 18:50 | |
18:52
payload joined,
lichtkind joined
|
|||
pugs_svn | r29737 | lwall++ | [pm.txt] more Pm-19 blatherations | 18:53 | |
lichtkind | mberends: added to www.perlfoundation.org/perl6/index....supporters | 18:54 | |
18:55
|Jedai| joined
|
|||
mberends | lichtkind: oh hai. unfortunately on the wiki editing, I didn't yet get a round tuit :( | 18:57 | |
18:58
athenot left
18:59
athenot joined,
athenot left
19:00
athenot joined
|
|||
pugs_svn | r29738 | lwall++ | [pm.txt] don't want to imply that .invoke is redispatched via method dispatch, | 19:01 | |
r29738 | so make it look more like a macro. | |||
TimToady | jnthn: ^^ the Pm-19 revisions I promised a day or so ago. | 19:03 | |
19:03
athenot left
|
|||
TimToady | the new section is labeled 'Update:' | 19:04 | |
pmichaud: it's okay if you look at it too. :) | 19:05 | ||
19:05
uniejo left
19:07
uniejo joined
19:13
wolf2k_ubuntu left
19:15
wolf2k_ubuntu joined
|
|||
lue | hello all! | 19:16 | |
rakudo: say ord(0x40); | 19:21 | ||
p6eval | rakudo c65c28: OUTPUT«5452» | ||
lue | rakudo: say ord(64); | ||
p6eval | rakudo c65c28: OUTPUT«5452» | ||
lue | ah, I see where I went wrong | ||
rakudo: say chr(0x40); | |||
p6eval | rakudo c65c28: OUTPUT«@» | ||
19:22
MaLiLL0 joined
19:24
MaL0_ left
19:25
payload left
|
|||
lue feels the breeze of people not in the room... *shiver* | 19:25 | ||
PerlJam | how do you feel their breeze exactly? | 19:26 | |
lue | If people are in the room, they block the draft. :) | 19:27 | |
TimToady | not if they're draft dodgers | 19:29 | |
19:30
athenot joined
|
|||
lue | Well then, how come I've never felt a breeze when people were here? | 19:32 | |
(oh wait, maybe there never was a draft ...) | |||
TimToady | insensitive to hot air? | ||
19:33
payload joined
|
|||
TimToady | personally, I usually find the backlog large enough to be a pretty good windbreak | 19:34 | |
lue | I'm thinking of a while ago. The switch to ng fixed the leak. | ||
TimToady | I think I have an entire cabin constructed of backlogs. | ||
lue | I think we have more backlogs than scientists have digits of pi. :D | ||
TimToady | We could maybe get ahead a little, if only someone would invent frontlogs. | 19:35 | |
lue | good idea. Just tell me where to "log in" :) | 19:36 | |
TimToady | go over to the log table over there... | 19:37 | |
19:37
colomon joined,
MaLiLL0 left
|
|||
PerlJam | apparently masak has been busy | 19:38 | |
masak++ | |||
lue | We make decent lumberjacks. Hey... any of you go shopping Wednesdays and have buttered scones for tea? | ||
19:41
cdarroch left
19:43
cdarroch joined,
cdarroch left,
cdarroch joined
|
|||
lue | goodbye hello goodbye hello! *huff huff* | 19:44 | |
19:46
ignacio_ left
19:47
TimToady sets mode: +vvvv buubot dalek hugme iblechbot,
TimToady sets mode: +vv ilogger2 IRSeekBot,
TimToady sets mode: +vvv lisppaste3 p6eval phenny,
TimToady sets mode: +v pugs_svn
|
|||
lue | AAAAAAAAAAAAAAAAAAAAAAH! | 19:47 | |
That came all at once!! | 19:48 | ||
frettled | wut? | ||
lue | all the *** TimToady stuff | ||
TimToady | just voiced 3 missing bots with a macro | ||
lue | oh. I'm fine *hyperventilation* don't worry about me. | ||
frettled | lue: May I recommend irssi? It bundles them up nicely. | ||
PerlJam | lue: do you pronounce your nick like "loo" or "loo-e" ? | ||
lue | doesn't matter. It's an acronym, actually. | ||
PerlJam | lue: for what? | 19:49 | |
TimToady | 42 | ||
19:49
ash__ joined
|
|||
lue | Life Universe Everything | 19:49 | |
TimToady: how did you guess? | |||
frettled | TimToady: got it in 42 | ||
TimToady | a good hypthalamus | ||
PerlJam | lue: TimToady is exceptionally observant :) | ||
TimToady | *hypo | ||
PerlJam | lue: he's also well-read | 19:50 | |
TimToady | pity about the rest though | ||
lue | ANFSCD... can you guess that one? | ||
Juerd | That's a common acronym. | 19:51 | |
And actually that question is more of the same :) | |||
TimToady | sorry, I don't do Python. | ||
PerlJam | even I could guess that one :) | ||
Juerd | :) | ||
lue | LASER (guess that one!) :D | 19:52 | |
TimToady | the S is for Shark | 19:53 | |
lue | (darn it!) okay... guess this one: UNIT | ||
Juerd | It's not guessing if you know. | 19:54 | |
TimToady | obviously it's the opposite of IT | 19:55 | |
lue | then what *does* UNIT stand for? | ||
TimToady | dunno, I'm only good at IT | ||
lue | (Doctor Who Fans'll know) UNIT stands for... | ||
lichtkind | TORCHWOOD is better | 19:56 | |
TimToady is not a Doctor Who Fan, having a real life | |||
lue | ... UNified Intelligence Taskforce | ||
lichtkind neither, just my brother is | 19:57 | ||
PerlJam | TimToady *is* Doctor Who ;) | ||
lue | NO! Say it ain't so! | ||
TimToady | but I could ask if you know what UNCLE is... | ||
lichtkind | i know a band called UNCLE | ||
PerlJam | TimToady: no, but I think that David McCallum is an integral part of what makes NCIS work | ||
TimToady | PerlJam: no, I won't be Doctor Who until 2023 | ||
well, Ilya would know what UNCLE stands for | 19:58 | ||
lue | UNCLE means... Undying Needs Contain Luminous Eels (?) | ||
TimToady | I think lue must be a member of THRUSH | 19:59 | |
frettled | yeah | ||
TimToady | or maybe KAOS | ||
frettled | I think I have Solo's number. | ||
TimToady | all the kiddies are gonna think you mean Han | 20:00 | |
frettled | Ilya was a favourite of mine, until he mysteriously disappeared, and was rarely seen again. | ||
TimToady | We've had several...interesting...Ilya's... | 20:01 | |
PerlJam | I haven't heard anything about Ilya Z. since I stopped paying attention to p5p. | ||
20:02
ignacio_ joined
|
|||
lue | I'm a board member of the FWAI (ask me what it means) | 20:02 | |
TimToady | Fat Wookies Are Inspiring? | ||
lue | no | 20:03 | |
PerlJam | I'm the founder of IMUTAS | ||
lue | FWAI stands for Fun With Acronyms International | ||
ash__ | i am the president of my local chapter of ACM... | ||
PerlJam | (I Made Up This Acronym Society) | ||
ash__ | doh, wait, thats a real group | ||
frettled | ash__: heh | ||
TimToady | a group of machinery... | ||
ash__ | but it can compute things | 20:04 | |
lue | FWAI has invented the BO-AT (Buoyancy Operated Aquatic Transport) | ||
TimToady | sure, but when I google for it, I get a lot of unwanted boat references mixed in. | ||
PerlJam | lue: Phineas & Ferb? | ||
lue | yes (can't believe anyone here knew that!) | 20:05 | |
I can't remember what MOAT stood for... | |||
PerlJam | lue: I have kids that are of the appropriate ages. | ||
lue | Remember FEH? | ||
PerlJam | lue: MOAT == Metropolitan Oval Aquatic Trench | 20:06 | |
google++ | |||
frettled | acronymfinder.com? | ||
PerlJam | lue: I even remember the episode. | 20:07 | |
lue | ah, that's what MOAT was. | ||
*FWAI is monitoring this channel intensely* | |||
TimToady now wonders what a frontronym is... | |||
PerlJam | TimToady: you should know ... you invented it! | 20:08 | |
lue | I think this IRC channel has encountered PINOP. | ||
Perl Is Not Our Priority | 20:09 | ||
PerlJam | lue: you are mistaken. | ||
lue: Perl is all about fun. | |||
or is it "pun"? | |||
one of those | 20:10 | ||
lue | I'm sorry, PINOFRN (Perl Is Not Our Focus Right Now) | ||
ANFSCD... I think the core.pm > core.pir takes way to long on my poor old G3... someone should change it :) | 20:16 | ||
20:18
cognominal left
|
|||
PerlJam | lue: patches welcome! | 20:18 | |
20:19
cognominal joined
|
|||
TimToady | ANFSC Diffident | 20:19 | |
lue | What it does now is put all these .pm files in core.pm, and puts it in core.pir. | ||
It should turn all those .pm files into .pir files first, then create core.pir by melding all the other .pir files. | 20:20 | ||
At least then I can see some progress :) | 20:21 | ||
20:28
hercynium joined
20:35
stephenlb left
20:43
cl58 joined
|
|||
cl58 | moritz_: ping | 20:43 | |
20:47
lue left
20:53
stephenlb joined,
payload left
20:54
ezgranny420 joined
21:00
lue joined
21:01
uniejo left
|
|||
lue | Bleh, compiling takes a long time. | 21:03 | |
21:04
ezgranny420 left
21:05
ezgranny420 joined
21:07
ezgranny420 left
21:08
lue left
21:15
payload joined
21:16
am0c joined
21:21
lue joined,
ignacio_ left
|
|||
ash__ | ng: my $f = 5; say $f(); # shouldn't that say Int? | 21:22 | |
hmm | 21:23 | ||
rakudo: my $f = 5; say $f(); # try again? | |||
p6eval | rakudo c65c28: OUTPUT«invoke() not implemented in class 'Integer'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
ash__ | there we go | ||
$f.WHAT is Int(), so why does trying to invoke on the object say Integer doesn't have invoke? | 21:24 | ||
21:26
krychu left,
am0c left
21:30
nwc10 joined
|
|||
nwc10 | What was that yesterday about the masakbot :-) | 21:30 | |
21:31
mssm left
21:33
Psyche^ joined
21:36
Patterner left,
Psyche^ is now known as Patterner
21:44
pmurias joined
21:46
jackyf left
21:48
mssm joined,
gbacon joined
21:55
Su-Shee left
21:58
bluescreen left
22:04
jferrero joined
22:06
patspam joined
22:07
wknight8111 joined
22:10
shillo joined,
shillo left
22:14
shillo joined,
cl58 left
22:18
shillo left,
Chillance left
22:20
athenot_ joined,
athenot left,
athenot_ is now known as athenot
|
|||
colomon | rakudo | 22:24 | |
rakudo: if " fdfs " ~~ /\s*(\S.*\S)\s*/ { say "that worked?"; say $0 } | 22:26 | ||
p6eval | rakudo c65c28: OUTPUT«that worked?fdfs» | ||
colomon | rakudo: if " fdfs " ~~ /^\s*(\S.*\S)\s*$/ { say "that worked?"; say $0 } | ||
p6eval | rakudo c65c28: OUTPUT«that worked?fdfs» | ||
22:27
nwc10 left
|
|||
Tene | colomon: what surprises you about that? | 22:27 | |
colomon | trim has a similar regex which fails. | 22:28 | |
I was thinking the problem was that bits of the regex grammar hadn't been implemented in master. | 22:29 | ||
22:29
snarkyboojum joined
|
|||
colomon | now I think I just borked the regex I was using. | 22:29 | |
the one above appears to work fine. | |||
Tene | the one above will fail for " a " | 22:30 | |
colomon | you're quite right! | ||
apparently trim.t doesn't have nearly enough tests yet. :) | 22:31 | ||
Tene | Occasionally. :) | ||
22:31
ash__ left
|
|||
colomon | Tene++ | 22:31 | |
22:33
athenot_ joined
22:34
supernovus joined
|
|||
supernovus | Just a small question, I notice blizkost hasn't been touched in a few months, how much is left to do in it before we can do: | 22:37 | |
22:37
athenot left,
athenot_ is now known as athenot
|
|||
pmichaud | /^\s*(.*?)\s*$/ should work :-) | 22:37 | |
/^\s*(.*?)\s*$/ should work :-) | |||
colomon | pmichaud: Duh. Don't know why I didn't think of that. | 22:38 | |
Actually, I was just reimplementing it in terms of the proposed trim_start and trim_end. | |||
pmichaud | slightly more efficient might be /^\s*:(.*?)\s*:$/ | ||
aesop | dear god | ||
do i even want to read that | |||
Tene | aesop: eh? read what? | ||
pmichaud | / ^ \s*: (.*?) \s*: $ / | 22:39 | |
aesop | there thats easier | ||
TimToady | just put :r on it | ||
.*? overrides ratchet | |||
colomon | What is \s*: ? | ||
pmichaud | TimToady: yes, but there's still an assumed cut after the subcapture, I think | ||
aesop | any number of spaces at the beginning followed by ? | ||
supernovus | use YAML::XS:from<perl5>; # last time I tried blizkost, it certainly did not like XS modules. | 22:40 | |
pmichaud | \s*: is greedy whitespace, no backtracking | ||
TimToady | use <( and )> instead? | ||
pmichaud | rakudo/pge/nqp don't have <( and )> yet, although those might help :-) | ||
colomon | pmichaud: oooooo. but won't that screw up the second one? | ||
pmichaud | colomon: shouldn't | 22:41 | |
colomon | Anyway, I've reimplemented trim in terms of the proposed trim_start and trim_end. | 22:43 | |
I hate those names, anyone have a suggestion of something better? | |||
before I push... | |||
pmurias | colomon: trim_front? | 22:44 | |
colomon | trim-beginning? | ||
Tene | pre-trim and post-trim? | 22:45 | |
trim and mirt? | |||
pmurias | trim-leading | ||
trim-trailing | 22:46 | ||
Tene | trim-except-not-the-end and trim-except-not-the-start? | ||
colomon | oooo, I like leading and trailing. | ||
Is there a pref for dashes over underscores in the spec? | 22:48 | ||
Tene | I strongly prefer dashes. | 22:49 | |
I hate typing underscores. :( | |||
pmurias | colomon: an ack search seems to imply that | 22:51 | |
Tene: that's not really a valid reason ;) | 22:52 | ||
s/reason/argument/ | |||
Tene | pmurias: invalid argument for what, exactly? All I was supporting there was my preference. | 22:53 | |
and "I hate typing underscores" is certainly a valid reason to prefer typing dashes over underscores, given that I don't hate typing dashes. | |||
PerlJam hates underscores too | |||
dashes++ :) | |||
Tene | I'm also comfortable trying to subvert the spec for my own benefit, fwiw. | 22:54 | |
TimToady | well, I'd probably just do btrim and etrim | ||
pmurias | :( | ||
supernovus crosses fingers, about to build the new 'master'... | |||
pmurias | TimToady: that was a joke? | 22:55 | |
TimToady | not at all | ||
PerlJam | didn't some flavor of BASIC have left(), right(), and mid() or were those just substr() variants? | ||
Tene | is that abbreviated back-trim and entrance-trim? | ||
PerlJam | for some reason the "trim" neuron twiddles that partial memory | 22:56 | |
pmurias | a Perl 6 ack would be really great | 22:57 | |
pugs_svn | r29739 | colomon++ | [t/spec] Add tests with just a single non-space character, change trim_start to trim-leading and trim_end to trim-trailing, and unfudge those tests for Rakudo. | 22:58 | |
colomon | Just realized I never ran spectest on my last commit there, but I don't see how fixing trim and adding two new functions could break anything.... | 22:59 | |
dalek | kudo/master: 8564837 | (Solomon Foster)++ | src/core/Any-str.pm: Add trim-leading and trim-trailing, and reimplement trim in terms of them. |
||
kudo/master: 4246be2 | (Solomon Foster)++ | t/spectest.data: Turn on trim.t. |
|||
PerlJam | colomon: that's why you run spectest ... so that you can see how those things could break something :) | ||
colomon | :) | 23:00 | |
pmichaud | better is /^\s*:(.*)$/ | ||
but not a huge difference :-) | 23:01 | ||
23:01
payload left
|
|||
colomon | And the same for trim-trailing, or no? | 23:01 | |
23:01
payload joined
|
|||
colomon | Ah, no, obviously can't get rid of the \S in that one. | 23:01 | |
spectest was fine, BTW. | 23:02 | ||
pmichaud | as it exists now, trim-trailing will fail on a string of all whitespace | ||
colomon | pmichaud: ooo, good, more tests needed. | ||
pmichaud | same for trim-leading as exists now | ||
pmurias | a trim($foo) modifies $foo? | 23:04 | |
PerlJam | no. | ||
dalek | kudo/master: cfe8cb3 | chromatic++ | (7 files): Merge branch 'master' of [email@hidden.address] |
23:05 | |
kudo/master: 1c51479 | chromatic++ | build/Makefile.in: [build] Fixed PMC include path when building bind.c. |
|||
kudo/master: e5f4b23 | chromatic++ | src/binder/bind.c: [binder] Fixed compiler warnings. |
|||
kudo/master: 448a825 | chromatic++ | src/pmc/perl6multisub.pmc: [PMC] Fixed compiler warnings. |
|||
kudo/master: ee1e518 | chromatic++ | (2 files): Merge branch 'master' of [email@hidden.address] |
|||
pmurias | PerlJam: thanks, | ||
23:06
dolmen joined
|
|||
supernovus | Oh dear... so far, PSpec + rakudo new master = EPIC FAIL! | 23:07 | |
23:07
jferrero left
|
|||
cognominal | PSpec? | 23:07 | |
23:07
athenot left,
chromatic joined
|
|||
chromatic | Hm, I don't know if cfe8cb3 should have gone to master; feel free to revert as necessary. | 23:08 | |
phenny | chromatic: 01 Jan 17:02Z <diakopter> tell chromatic I'll have you know I'm *again* switching back to JavaScript :/ sigh. .words.eat Compiling to JS now, though, now that I know how to write an emitter builder. | ||
supernovus | cognominal: a fun little project, a semi-serious/semi-humourous port of RSpec and Cucumber to Perl 6. | ||
chromatic | Likewise ee1e518. | ||
23:10
cotto_work joined
|
|||
colomon | chromatic: what do you think the problem with them is? | 23:10 | |
chromatic | I don't know; I don't know where they came from or if they overwrote other changes. | 23:11 | |
pmichaud | were you perhaps building from the old master? | ||
lue | Wow. I left this thing alone for about 2 hours and it STILL didn't turn core.pm into core.pir ! | ||
23:11
payload left
23:12
payload joined
|
|||
chromatic | pmichaud, that may have been it. | 23:12 | |
pmichaud | checking spectest now | 23:13 | |
chromatic | The only interesting changes are the warnings cleanups. | ||
My most recent interesting pull before that was for the December release. | |||
pmichaud | yes, we switch branches yesterday | ||
*switched | |||
so I'm thinking perhaps your push has folded in stuff from the old master | 23:14 | ||
chromatic | Sorry about that. | ||
pmichaud | we'll know shortly :) | ||
so far everything seems to be building okay, which is a very good sign :) | 23:15 | ||
chromatic | Mostly it looked like doc changes and spectest changes. | ||
lue | Let me know what a finished build looks like. I'll never know. :/ | ||
chromatic | lue, I have a couple of patches on a Parrot branch that speed up building. | ||
No huge changes, but a little bit helps. | |||
23:16
old_gray_bear joined
|
|||
supernovus | bah, and apparently, I can't build the 'alpha' branch even with the version of parrot it recommends... /opt/perl6/bin/parrot -o perl6_s1.pbc perl6.pir make: *** [perl6_s1.pbc] Segmentation fault | 23:16 | |
lue | so, how would I get those patches? | 23:18 | |
pmichaud | looks like lots of spectest failures :-| | ||
chromatic | I'll check them in after the Parrot release tomorrow. | ||
pmichaud | I'm guessing the Makefile.in patch is the culprit | 23:19 | |
pmurias | chromatic: i looked at the modern perl book, one thought about the "how do we know that any random CPAN distribution is useable and usefull" is that not all CPAN distributions are usefull | ||
23:20
jferrero joined
|
|||
chromatic | I can't see how the Makefile patch would hurt. | 23:20 | |
pmichaud | not the Makefile patch itself, but the fact that the branch merges pulled in the old makefile from master | ||
chromatic | Oh. Yes, that would suck. | ||
pmichaud | so now ng is building using the wrong makefile. | ||
crud. | 23:21 | ||
chromatic | I don't see that in the diffs. | 23:22 | |
pmichaud | well, I'm looking at the Makefile now, and it's definitely pulling in the wrong version of spectests | ||
23:22
athenot joined
|
|||
lue | chromatic: how would I get those parrot speedup patches? Would running Configure.pl get them? | 23:23 | |
23:23
payload left
|
|||
pmichaud | I agree it's not evident from the diffs. | 23:23 | |
chromatic | How about reverting ee1e518 and cfe8cb3? Does that do it? | 23:24 | |
pmichaud | fatal: Commit ee1e518df5f981621e287cd08f3d1d153a6723ad is a merge but no -m option was given. | 23:25 | |
I'm not sure how to do that revert. | |||
23:25
cotto_work left
23:27
explorer__ joined
|
|||
colomon has a patch to fix trim-leading and trim-trailing, but doesn't want to touch github until this stuff is straightened out... | 23:27 | ||
23:27
jferrero left
23:28
iblechbot left
|
|||
chromatic | nopaste? | 23:28 | |
lue is wanting to know how to get chromatic's compilation speed-up patches | 23:29 | ||
chromatic | one moment, lue | ||
lue, see nopaste.snit.ch/19628 -- apply that patch to Parrot. | 23:30 | ||
lue | allrighty | ||
supernovus | rakudo: augment class Int { method times (&code) { for ^self { code() } } }; 2.times: { say "hello" } | ||
p6eval | rakudo 4246be: OUTPUT«Method 'times' not found for invocant of class 'Integer'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
chromatic | www.kernel.org/pub/software/scm/git...-merge.txt | 23:31 | |
lue notes he has never had to apply a patch. He also notes he is a hopless beginner :D | 23:33 | ||
supernovus | PSpec is going to need some reworking, as it currently is using "class Blah is also" in a few places. But I find that error to be interesting. The new master see's 2 as an Integer not an Int, and yet: | ||
rakudo: say 2.WHAT | |||
p6eval | rakudo 4246be: OUTPUT«Int()» | 23:34 | |
23:34
nihiliad left
|
|||
colomon | lue: hopless? you have no beer? | 23:34 | |
supernovus: it lies | 23:35 | ||
rakudo: say PARROT(2) | |||
p6eval | rakudo ee1e51: OUTPUT«Integer» | ||
lue | colomon: ha ha. | ||
oops hopeless | |||
supernovus | Hmm, on the old master, this worked: class Int is also { method times (&code) { for ^self { code() } } }; 2.times: { say "hello" } | 23:36 | |
Tene | supernovus: "is also" is deprecated. | 23:37 | |
23:37
cotto_work joined
|
|||
supernovus | Tene: I know, but as shown above, if you use augment class Int { ... above code here ... }; 2.times: { say "hello" } it bails out claiming that the Integer class (not Int) has no method called "times". | 23:38 | |
Tene | ew ew I've always hated that stuff in ruby. >< | ||
(yes, I know, not helpful) | 23:39 | ||
lue wishes to know how to apply chromatic's patch (he is a HOPELESS beginner) | |||
supernovus | I'm thinking something fairly major has changed in the way augmenting existing classes works. | 23:40 | |
rakudo: augment class Int { method times (&code) { for ^self { code() } } }; 2.Int.times: { say "hello" } | |||
p6eval | rakudo ee1e51: OUTPUT«Method 'times' not found for invocant of class 'Integer'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
TimToady | rakudo: say ^Int.WHAT | 23:42 | |
p6eval | rakudo ee1e51: OUTPUT«Use of type object as valuecurrent instr.: 'perl6;Perl6Exception;throw' pc 13865 (src/builtins/Seq.pir:28)» | ||
Tene | ^Int? | 23:43 | |
std: say ^Int.WHAT | |||
p6eval | std 29739: OUTPUT«ok 00:01 108m» | ||
supernovus | rakudo: augment class Str { method woot { say "woot" } }; "hello".woot; | ||
p6eval | rakudo ee1e51: OUTPUT«Method 'woot' not found for invocant of class 'Perl6Str'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
colomon | lue: you want the patch program. err... you're on linux, right? | 23:44 | |
Tene | supernovus: please try it with custom classes not related to native types to verify whether the problem is with 'augment' or with the native type mapping. | ||
supernovus | Tene: okay, will do. | 23:45 | |
lue | colomon, I am. | ||
23:45
dondalin joined
|
|||
Tene | rakudo: class A { method foo { say "foo" } }; my A $a .= new(); augment class A { method bar { say "bar" } }; $a.bar(); | 23:45 | |
p6eval | rakudo ee1e51: OUTPUT«bar» | ||
Tene | see? works fine. | ||
rakudo: class A { method foo { say "foo" } }; my A $a .= new(); { augment class A { method bar { say "bar" } }; } $a.bar(); | 23:46 | ||
colomon | lue: grab the text from the patch, put it in a file named chromatic.patch (or something like that), then cd parrot and say | ||
p6eval | rakudo ee1e51: OUTPUT«Confused at line 11, near "{ augment "current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
colomon | lue: patch -p0 <chromatic.patch | ||
Tene | rakudo: class A { method foo { say "foo" } }; my A $a .= new(); if 1 { augment class A { method bar { say "bar" } }; } $a.bar(); | ||
supernovus | yeah, I tried augmenting a custom class and it works fine. | ||
p6eval | rakudo ee1e51: OUTPUT«Confused at line 11, near "if 1 { aug"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
lue | colomon, will do. | ||
Tene | rakudo: class A { method foo { say "foo" } }; my A $a .= new(); if 1 { augment class A { method bar { say "bar" } }; }; $a.bar(); | ||
p6eval | rakudo ee1e51: OUTPUT«bar» | ||
Tene | So it's not properly lexically scoped yet, then. | ||
TimToady | what's lexical scoped about augment? | 23:47 | |
it modifies something that already exists | |||
Tene | TimToady: Is augment not lexically scoped? | ||
TimToady | nope | ||
it's for monkey patching | 23:48 | ||
Tene | Is there a lexically-scoped version? | ||
TimToady | my class Foo is OUTER::Foo {...} | ||
Tene | Okay. Thanks. | ||
23:49
dondalin left
|
|||
lue patch applied, fingers crossed. | 23:53 | ||
23:54
payload joined
|
|||
colomon | lue: did patch say that the patch worked? | 23:57 | |
23:59
hudnix joined
|