»ö« | 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 wolfe.freenode.net on 30 October 2009. |
|||
colomon | ash_: can you give an example I would understand of what's not working with BUILD? | 00:00 | |
ash_ | t/spec/S12-construction/BUILD.t | ||
try running that, its the issue i am talking about | |||
00:00
Chillance left
|
|||
ash_ | its not passing paramters to BUILD, if you do Foo.new(1); BUILD should get the 1, and its currently not at the moment | 00:03 | |
the *right way* for me to fix List.new is to use BUILD so, i just found the problem | 00:04 | ||
colomon is still trying to understand the issue.... | 00:06 | ||
ash_ | so, perlcabal.org/syn/S12.html#Construc...ialization says if you want to say initialize some variables right? like my class has an attribute $!values, i can use BUILD($values) { $!values = $values; } to do that | 00:07 | |
it also says if you do Foo.new(5); it should be passing the 5 along to BUILD | |||
in ng, the paramaters passed to new aren't getting passed to BUILD like they are supposed to be | 00:08 | ||
colomon | The error I get is "Unexpected named parameter 'b' passed" -- is that what you're seeing? | 00:11 | |
ash_ | yeah | 00:12 | |
zamolxes | frettled: right :) it's 2 AM here as well, but we'll get in touch in a few hours | 00:13 | |
ash_ | ng: class Foo { submethod BUILD($a) { say $a }; }; my $f = Foo.new(5); | 00:14 | |
p6eval | ng b65331: Not enough positional parameters passed; got 1 but expected 2current instr.: 'perl6;Foo;BUILD' pc 266 (EVAL_1:115) | ||
ash_ | colomon: thats a simple example of what I mean | ||
that should say '5' | |||
colomon | ash_: oh, I wonder if :a(5) works at all.... | 00:17 | |
ash_ | ng: class Foo { submethod BUILD(:$a) { say $a }; }; my $f = Foo.new(:a(5)); | ||
p6eval | ng b65331: sh: ./perl6: No such file or directory | ||
ash_ | hmm | ||
that worked locally | |||
colomon | yeah, it looks like b => 5 gets the same result. | 00:18 | |
zamolxes | frettled: dug this out of my bash history : tail -n 10000 /var/log/apache2/access.log | perl -nE '($url, $s, $d) = m{"[A-Z]+ (/[^/ ]*)[/ ][^"]+" \d+ (\d+) (\d+) "}; $urls{"$url"}+=$d;$dt+=$d; END {print for map { $d =int($urls{$_}/1000000);$p =int($urls{$_}*100/$dt); "$d $p% $_\n"} sort { $urls{$a}<=>$urls{$b} }keys %urls;}' | ||
it aggregates resource consumption per first token from the URL | 00:19 | ||
00:23
xomas is now known as xomas_,
xomas_ is now known as xomas
00:36
japhb left
00:40
nihiliad left
00:41
soupdragon left
00:46
cognominal joined
01:00
fridim_ left
01:01
payload joined,
sbilik joined
01:04
s1n joined
|
|||
justatheory | TimToady, chromatic: What, has Twitter replaced IRC? | 01:04 | |
01:07
PerlPilot is now known as PerlJam
|
|||
PerlJam | justatheory: I think this thing called "life" may have replaced IRC | 01:08 | |
diakopter | PerlJam: I suspect justatheory is referring to chromatic_x's and TimToady's conversation on twitter this afternoon | 01:09 | |
justatheory | corect | 01:10 | |
cognominal | ha, ha, as often, @chromatic_x shoot before aiming | 01:11 | |
01:12
meppel left
01:16
cdarroch left
01:17
cotto joined
01:23
lestrrat is now known as lest_away
01:25
tideflat joined
|
|||
tideflat | perl6: say 3 | 01:26 | |
p6eval | elf 29531, pugs, rakudo 3867ff: 3 | ||
tideflat | perl6: say 1 + 1 | ||
p6eval | elf 29531, pugs, rakudo 3867ff: 2 | ||
tideflat | perl6:my $a = 10;say a | ||
perl6:my $a = 10;say $a | 01:27 | ||
perl6: my $a = 10;say $a | |||
p6eval | elf 29531, pugs, rakudo 3867ff: 10 | ||
01:27
Exodist left
|
|||
tideflat | perl6: for $i in 1..1 say $a | 01:28 | |
p6eval | pugs: ***  Unexpected " in" expecting "::" Variable "$i" requires predeclaration or explicit package name at /tmp/gBzz33TGX6 line 1, column 7 | ||
..rakudo 3867ff: Confused at line 2, near "in 1..1 sa"in Main (file <unknown>, line <unknown>) | |||
..elf 29531: Parse error in: /tmp/gaFeglxI4xpanic at line 1 column 0 (pos 0): Can't understand next input--giving upWHERE: for $i in 1..1 say $aWHERE:/\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:76:in `scan_unitstopper' STD_red/std.rb:224:in `comp_unit' | |||
..STD_red/std.rb:210:in `… | |||
tideflat | perl6: for $i in 1..1 say $i | 01:29 | |
p6eval | pugs: ***  Unexpected " in" expecting "::" Variable "$i" requires predeclaration or explicit package name at /tmp/gvTTB8mbAm line 1, column 7 | ||
..rakudo 3867ff: Confused at line 2, near "in 1..1 sa"in Main (file <unknown>, line <unknown>) | |||
..elf 29531: Parse error in: /tmp/xYm3D2KzlOpanic at line 1 column 0 (pos 0): Can't understand next input--giving upWHERE: for $i in 1..1 say $iWHERE:/\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:76:in `scan_unitstopper' STD_red/std.rb:224:in `comp_unit' | |||
..STD_red/std.rb:210:in `… | |||
ash_ | rakudo: .say for 1..3; | ||
p6eval | rakudo 3867ff: 123 | 01:30 | |
ash_ | is that what you meant to do tideflat? | ||
tideflat | yes | ||
Can i just play with perl6 here? | |||
ash_ | sure, or you can message p6eval | 01:31 | |
if you don't want everyone to see it | |||
tideflat | OK | ||
rakudo: .say for 1..3; | |||
p6eval | rakudo 3867ff: 123 | ||
tideflat | rakudo: .say for 1..10 * 2; | ||
p6eval | rakudo 3867ff: 1234567891011121314151617181920 | ||
01:32
ash_ left
|
|||
tideflat | rakudo: say $_ * 2 for 1..10; | 01:33 | |
p6eval | rakudo 3867ff: 2468101214161820 | ||
tideflat | rakudo: say $_ ** 2 for 1..10; | ||
p6eval | rakudo 3867ff: 149162536496481100 | ||
tideflat | rakudo: say $_ ** -2 for 1..10; | ||
p6eval | rakudo 3867ff: 1000000000 | 01:34 | |
tideflat | $_ * $_ for 1..10; | ||
PerlJam | rakudo: say 4 ** -2 | ||
p6eval | rakudo 3867ff: 0 | ||
PerlJam | rakudo: say 4.0 ** -2 | ||
p6eval | rakudo 3867ff: 0.0625 | ||
PerlJam | rakudo: say 4 ** -2.0 | ||
p6eval | rakudo 3867ff: 0.0625 | ||
PerlJam | That's got to be a bug | 01:35 | |
tideflat | rakudo: say $_ * $_ for 1..10; | ||
p6eval | rakudo 3867ff: 149162536496481100 | ||
tideflat | rakudo: say $_ ** $_ for 1..10; | ||
p6eval | rakudo 3867ff: 14272563125466568235431677721638742048910000000000 | ||
tideflat | rakudo: say "\$_ is $_" for 1..10; | 01:36 | |
p6eval | rakudo 3867ff: $_ is 1$_ is 2$_ is 3$_ is 4$_ is 5$_ is 6$_ is 7$_ is 8$_ is 9$_ is 10 | ||
tideflat | rakudo: say [+] 1..10; | 01:39 | |
p6eval | rakudo 3867ff: 55 | ||
tideflat | rakudo: say [+] 1..50; | 01:40 | |
p6eval | rakudo 3867ff: 1275 | ||
tideflat | rakudo: say [>] 1..50; | ||
p6eval | rakudo 3867ff: 0 | ||
tideflat | rakudo: say [<] 1..50; | ||
p6eval | rakudo 3867ff: 1 | 01:41 | |
tideflat | rakudo: say [=<] 1..50; | ||
p6eval | rakudo 3867ff: say requires an argument at line 2, near " [=<] 1..5"in Main (file src/gen_setting.pm, line 2593) | ||
tideflat | rakudo: say [<=] 1..50; | ||
p6eval | rakudo 3867ff: 1 | ||
tideflat | rakudo: say [>=] 1..50; | ||
p6eval | rakudo 3867ff: 0 | ||
tideflat | rakudo: say [*] 1..5; | 01:42 | |
p6eval | rakudo 3867ff: 120 | ||
tideflat | say 1!; | 01:43 | |
rakudo: say 1! | |||
p6eval | rakudo 3867ff: Confused at line 2, near "!"in Main (file <unknown>, line <unknown>) | ||
tideflat | rakudo: say (3,3,3) <<+>> (3,3,3) | 01:44 | |
p6eval | rakudo 3867ff: 666 | ||
diakopter | tideflat: you can msg p6eval directly | ||
tideflat | I know. do you want me to? | ||
01:44
sbilik left
|
|||
PerlJam | tideflat: sub postfix:<!>($n) { [*] 1..$n }; say 5!; # for your factorial | 01:45 | |
diakopter | well, just remember there are a bunch of folks who read the irclogs (in their client or on the web) | ||
tideflat | oh, i will msg p6eval directly from now on | 01:46 | |
01:47
takadonet left
01:48
japhb joined
|
|||
colomon | tideflat: if you find something that puzzles you, please feel free to send it to p6eval here in #perl6. :) | 01:48 | |
tideflat | Ok | 01:49 | |
01:53
tideflat left
01:57
snarkyboojum joined
01:59
agentzh joined
02:11
sbilik joined,
sbilik left
02:12
snarkyboojum left
02:14
lest_away is now known as lestrrat
02:19
orafu left,
orafu joined,
jferrero left
02:20
araujo left
|
|||
drbean | doraku.asahi.com/ "An exclusive Asahi Newspaper entertainment site for the Beatles generation" | 02:22 | |
doraku = Do 楽 | 02:23 | ||
02:31
jaldhar joined
|
|||
pugs_svn | r29532 | diakopter++ | [sprixel] add action() combinator (inject arbitrary JS code into the parser function on node success).\ | 02:44 | |
r29532 | Add notes about plans for an analysis phase for Boyer-Moore & JS literal RegExp (fastest by far on \ | |||
r29532 | the shootout language game) substitution. | |||
02:51
agentzh left
|
|||
diakopter | ENOPM | 02:54 | |
Infinoid | ohnoes | 02:57 | |
03:01
nihiliad joined
03:02
agentzh joined
03:04
tideflat joined,
rachelBROWN left
|
|||
tideflat | /msg p6eval perl6: for ['cats','dogs','fish'] {say "$_ are the best amimal"} | 03:05 | |
diakopter | pmi<tab>: do nqp-rx's grammars run the Actions during the parse (so potentially multiple times incl backtracking), or after the parse once? | 03:06 | |
or anyone else who might know. | |||
03:09
agentzh left
03:25
am0c left
03:27
cls_bsd left
|
|||
tideflat | perl6: my $a = 'abe';for 1..10 {say $a;$a ~= 'abe'} | 03:28 | |
p6eval | pugs, rakudo 3867ff: abeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabeabe | ||
..elf 29532: Unknown rule: infix_postfix_meta_operator:=It needs to be added to ast_handlers. at ./elf_h line 2850 | |||
03:39
araujo joined
03:40
tideflat left
03:59
agentzh joined
04:06
dalek left,
Baggiokwok joined
04:07
Juerd left,
Juerd joined
04:08
dalek joined,
hatsefla1s joined,
hatseflats left
04:12
synth left,
nihiliad left
04:20
Khisanth left
04:31
cognominal left
04:53
gfx joined
05:17
stephenlb left
05:35
Khisanth joined
05:39
pinc0de left
05:48
jrockway joined,
youwin left
05:56
agentzh left
06:00
cls_bsd joined,
cls_bsd left
06:01
cls_bsd joined
06:22
szabgab left
06:25
agentzh joined
06:29
Baggiokwok left
06:35
justatheory left
06:42
szabgab joined
07:00
cognominal joined
07:04
kaare joined
07:05
kaare is now known as Guest43559,
rgrau` joined
07:11
allbery_b left,
rgrau` left
07:17
allbery_b joined
07:18
Su-Shee joined
07:19
redicaps joined
07:37
patspam left
07:39
iblechbot joined
07:52
lestrrat is now known as lest_away
08:03
baest joined
08:09
idemal left,
akl left,
silug left,
allbery_b left,
redicaps left,
IllvilJa left,
perigrin_ left,
buubot left,
pnu left,
skeptical_p left,
rgrau left,
kst left,
xenoterracide left,
ascent_ left,
cosimo left,
p6eval left,
Helios-- left,
Trey left,
c1sung left,
moritz_ left,
cls_bsd left,
payload left,
Patterner left,
mathw left,
Grrrr left,
wolverian left,
betterworld left,
tkr left,
charsbar_ left,
cxreg left,
TimToady left,
omega__ left,
Caelum left,
tarbo2_ left,
IRSeekBot left,
awwaiid left,
agentzh left,
jrockway left,
japhb left,
rjh left,
mikehh left,
slavik left,
Guest44003 left,
hudnix left,
PZt left,
frew left,
Intensity left,
Tene left
08:10
hanekomu left,
buu left,
he_ left,
frettled left,
rhr left,
diakopter left,
BooK left,
szbalint left,
Supaplex left,
broquaint left,
obra left,
ilbot2 left,
Ryan52 left,
hejki left,
huf left
08:11
mikehh joined,
Tene joined,
redicaps joined,
allbery_b joined,
agentzh joined,
cls_bsd joined,
jrockway joined,
japhb joined,
payload joined,
rjh joined,
Patterner joined,
IllvilJa joined,
perigrin_ joined,
slavik joined,
Guest44003 joined,
hudnix joined,
buubot joined,
pnu joined,
akl joined,
PZt joined,
skeptical_p joined,
cxreg joined,
frew joined,
Intensity joined,
rgrau joined,
kst joined,
xenoterracide joined,
ascent_ joined,
hanekomu joined,
buu joined,
tkr joined,
broquaint joined,
BooK joined,
Helios-- joined,
silug joined,
szbalint joined,
betterworld joined,
omega__ joined,
idemal joined,
c1sung joined,
Trey joined,
p6eval joined,
charsbar_ joined,
TimToady joined,
awwaiid joined,
IRSeekBot joined,
irc.freenode.net sets mode: +ovov Tene p6eval TimToady IRSeekBot,
Grrrr joined,
cosimo joined,
Caelum joined,
diakopter joined,
rhr joined,
huf joined,
moritz_ joined,
wolverian joined,
tarbo2_ joined,
mathw joined,
irc.freenode.net sets mode: +oooo diakopter moritz_ wolverian mathw,
Ryan52 joined,
frettled joined,
Supaplex joined,
ilbot2 joined,
hejki joined,
obra joined,
he_ joined,
irc.freenode.net sets mode: +ov frettled ilbot2
08:12
ashizawa left,
partisan left,
solarion left
08:14
ssm left
08:15
drbean left,
drbean joined
08:22
lest_away is now known as lestrrat
08:23
lestrrat is now known as lest_away
08:39
dalek left,
dalek joined
08:40
drbean left,
elmex left,
elmex joined
08:43
drbean joined,
stepnem left
08:48
stepnem joined
08:53
Mantis joined
08:57
Baggiokwok joined
|
|||
draegtun | Morning all. Has promised I posted my perl6 followup (last night): transfixedbutnotdead.com/2010/01/14...ogramming/ | 08:59 | |
Su-Shee | draegtun: I already read it before breakfast! | ||
09:00
Trey left
|
|||
draegtun | Su-Shee: Hope if didn't upset the breakfast :-) | 09:00 | |
09:00
Trey joined
|
|||
Su-Shee | no, not at all. | 09:02 | |
though every time I read something like this I keep thinking how much a good book about contemporary oo mixed with meta programming NOT based on Java is needed... | 09:03 | ||
draegtun | Su-Shee: I agree. Perl needs a good meta programming book methinks | 09:04 | |
mathw | draegtun: thanks for that, I am reading now... | ||
draegtun | mathw: Thanks for reading, hope you enjoy | 09:05 | |
Su-Shee | draegtun: I went through the shelf with "OO" recently .. all java. annoying. | ||
mathw | draegtun: Mmm nice. I did find your consistent use of {} for interpolation interesting. | 09:06 | |
09:06
dakkar joined
|
|||
draegtun | mathw: thanks. I think I was just keeping it consistent to original Ruby/Javascript examples | 09:08 | |
sjohnson | hi matt! | 09:09 | |
mathw | draegtun: It might lead a few people to think it's compulsory even for simple scalars, but maybe I'm just being twitchy and paranoid | 09:11 | |
sjohnson: hi | |||
draegtun: They can always be informed otherwise | |||
draegtun | draegtun: I see... I thought {} were compulsory ;-) | 09:13 | |
mathw: I see.. I thought {} were compulsory (oops!) | |||
mathw | no, ordinary scalars interpolate as in Perl 5 | 09:15 | |
draegtun | mathw: cool. Obviously reading an old doc again :( | 09:16 | |
mathw | {} is for more complex things like method calls and arrays | ||
I don't think they were ever compulsory | 09:17 | ||
Unless they were for a time in the period where I wasn't paying attention | |||
09:20
JohnDoe365 joined,
JohnDoe365 left
09:30
rekhajos joined
09:31
jogla_ joined,
go|dfish left,
jogla left
09:35
drbean left
|
|||
draegtun | mathw: Well everything on the web isn't always true :) | 09:37 | |
mathw: I've amended my gist accordingly: gist.github.com/276591 | |||
mathw: only place I needed the {} was on "{$.name}'s colour is $colour_name " (same reason as in Perl5) | |||
mathw: I'll add a comment to my blog post referring to this gist | |||
moritz_ | good morning | 09:45 | |
09:52
agentzh left
09:55
redicaps1 joined,
redicaps left,
baest left
|
|||
mathw | draegtun: Great stuff | 09:57 | |
09:57
zamolxes_ joined,
zamolxes left
|
|||
moritz_ | aye, draegtun++ | 09:58 | |
10:01
JimmyZ joined
10:03
sbp left
10:04
redicaps1 left
10:06
mberends joined
10:07
baest joined
10:08
sbp joined
10:11
meneldor joined
|
|||
meneldor | Hi all | 10:11 | |
Supaplex | all is on vacation | 10:13 | |
pugs_svn | r29533 | mberends++ | [vill] Code generator groundwork for 'my $foo="bar";'. Various parts are now awaiting a formal runtime metamodel... | ||
10:13
JimmyZ left
10:14
payload left
10:15
ssm joined,
ssm left
10:16
ssm joined
10:21
cognominal left,
cognominal joined
10:27
payload joined
10:29
drbean joined,
cognominal left
10:30
cognominal joined
10:42
meppl joined
11:01
jaldhar left
11:13
jaldhar joined
11:15
draegtun left
11:26
go|dfish joined
11:32
barney joined
11:34
gfx left
11:40
payload left
11:48
hanekomu left
12:00
SmokeMachine joined
12:04
bluescreen joined
12:07
ssm left
12:08
rekhajos left
12:12
Baggiokwok left
12:22
Mantis left,
cotto_w0rk joined
12:24
cotto_working left
12:29
payload joined
12:32
ruoso joined
12:44
cognominal left
12:46
iblechbot left
12:50
clintongormley joined
12:53
cognominal joined,
IllvilJa left
12:55
payload left
13:03
ssm joined
13:23
soupdragon joined
13:32
plainhao joined
13:34
takadonet joined
|
|||
takadonet | morning all | 13:34 | |
colomon | morning! | 13:37 | |
takadonet | colomon: alive and well sir? | 13:38 | |
colomon | not yet slain by this cold, anyway. :) | 13:39 | |
jnthn | eww cold :-( | 13:40 | |
13:40
korpenkraxar joined
|
|||
jnthn | Get well soon. | 13:40 | |
jnthn 's is better today than yesterday. | |||
colomon | It's been a whole week now, so I think it's reached the point where I have to pretend it's better and just get on with life. | 13:41 | |
Is rakudo supposed to have a release next week? | 13:43 | ||
jnthn | I guess so. | 13:45 | |
colomon | eeek! | 13:46 | |
13:50
synth joined
13:51
bluescreen left
13:55
payload joined
14:04
lichtkind joined
14:05
bluescreen joined
14:17
y3llow joined
14:19
Slug joined
14:20
nihiliad joined
14:35
Baggiokwok joined,
Baggiokwok left
14:36
Guest43559 left
14:38
jan_ left
14:53
ash_ joined
14:57
ash_ left
15:01
ash_ joined
15:02
s1n left
|
|||
ash_ | rakudo: my $a = List.new(1, 2, 3); say $a.perl; $a = list(1, 2, 3); say $a.perl; | 15:04 | |
p6eval | rakudo 3867ff: [][1, 2, 3] | 15:05 | |
ash_ | should those be the same? | ||
15:09
pnate left
15:10
pnate joined
15:14
bluescreen left
15:15
cdarroch joined
15:17
s1n joined
15:19
mberends left
15:21
iblechbot joined
15:25
payload left
15:27
payload joined
|
|||
ash_ | rakudo: my $a = Array.new(1, 2, 3); say $a.perl; | 15:29 | |
p6eval | rakudo 3867ff: [] | ||
ash_ | i am begining to wonder what the "right" functionality of .new on List/Array is... | ||
15:30
Exodist joined
|
|||
colomon | ash_: I would think those should be the same. | 15:30 | |
I doubt it is spec'd one way or another... | |||
ash_ | yeah, digging in S32-Containers i haven't seen any specs on .new for List/Array | ||
colomon | This is where we get to use our judgement and influence the future. :) | ||
15:31
am0c joined
|
|||
ash_ | rakudo: class Foo { submethod BUILD(*@args) { say @args.perl; } }; Foo.new(1, 2, 3); | 15:32 | |
slurpies in BUILD seem to function funny | |||
ng: class Foo { submethod BUILD(*@args) { say @args.perl; } }; Foo.new(1, 2, 3) | |||
p6eval | rakudo 3867ff: ( no output ) | ||
ng b65331: Method 'perl' not found for invocant of class 'Undef'current instr.: 'perl6;Array;_block3582' pc 240746 (src/gen/core.pir:20091) | |||
ash_ | i guess that's the next thing, should a slupry in a BUILD work? | 15:33 | |
i haven't seen that in the specs either | |||
jnthn | ash_: No, you probably want to do something like (if you want List.new(1,2,3) to be like list(1,2,3) | 15:34 | |
method new(*@values) { self.bless(values => @values) }; submethod BUILD(:@values) { ... } | 15:35 | ||
That is, transform the positionals into a single named arg that BUILD will receive. | |||
ash_ | hm, k | 15:36 | |
PerlJam | but should List.new and Array.new be that way out of the box? | ||
jnthn | PerlJam: In what sense? | 15:37 | |
YOu mean, should they be spec'd to work like that? | |||
PerlJam | aye | ||
ash_ | ng: augment class List { method new(*@args) { say 'me'; } }; List.new(1, 2, 3) # any reason that's not dispatching to new(*@args)? | ||
p6eval | ng b65331: ( no output ) | ||
colomon | ash_: should be multi method, yes? But I remember that not working yesterday for me... | 15:38 | |
jnthn | ash_: No, that's...odd. | 15:39 | |
ash_ | ng: augment class List { multi method new(*@args) { say 'me'; } }; List.new(1, 2, 3) | ||
p6eval | ng b65331: ( no output ) | ||
ash_ shrug *out of my knowledge of rakudo now* | |||
colomon | .oO(hope jnthn has a clue, 'coz I'm stumped...) |
15:40 | |
15:41
justatheory joined
|
|||
PerlJam | Can you turn a multi into an only via augment? | 15:41 | |
(sure it'll cause breakage, but can it be done?) | |||
15:42
synth left
15:44
nihiliad left
|
|||
ash_ | ng: augment class List { method new(*%kwargs, *@args) { say 'me'; } }; List.new(1, 2, 3) # adding a named slurpy doesn't help, i tried it both as the first and second argument too | 15:46 | |
p6eval | ng b65331: ( no output ) | ||
jnthn has to go out for meeting with freinds now...back later... | 15:47 | ||
ash_ | cya jnthn | ||
commuting ^ | 15:50 | ||
s/\^/&/ | |||
15:50
ash_ left
15:54
Psyche^ joined
15:58
alester joined
16:00
Slug left
16:01
soupdragon left,
Patterner left,
Psyche^ is now known as Patterner
16:02
hanekomu joined
16:05
jan_ joined
16:07
Exodist left,
Exodist joined
16:08
KyleHa joined
16:12
soupdragon joined,
cotto left
16:13
cotto joined
16:16
barney left,
soupdragon left
16:18
soupdragon joined
16:27
jaldhar left
16:28
jaldhar joined,
ignacio_ joined
16:37
tylerni7 left
16:38
tylerni7 joined
16:42
jackyf joined
|
|||
TimToady | PerlJam: functions are not search for in packages (except maybe as a last resort); you may put an only in an inner scope that hids outer multies | 16:44 | |
*searched | |||
(and by putting CORE as an outer lexical scope, this is how we guarantee that a user's function defs are future proof against new keywords) | 16:46 | ||
16:52
korpenkraxar left
16:58
meneldor left
17:07
alester left
17:10
ive joined
17:21
synth joined
17:24
KyleHa left,
KyleHa joined
17:38
hercynium joined
17:43
payload left
|
|||
TimToady | *hides | 17:45 | |
diakopter | eh | ||
TimToady | (correcting a typo from an hour ago) | 17:46 | |
takadonet | ... | 17:47 | |
diakopter | '*hides' was correcting the typo | ||
TimToady | ablutions & | 17:48 | |
17:49
pincode joined
17:51
pincode is now known as pinc0de
|
|||
pugs_svn | r29534 | kyle++ | [t/spec] Test for RT 72084: sub name beginning with last- | 17:57 | |
r29535 | kyle++ | [t/spec] Test for RT 72048: !~~ of role on instance is always true | |||
Tene | what's the motivation for asking "Was I called as a sub or as a method"? I'm missing something. | 18:04 | |
18:07
dakkar left
18:10
pnate left
18:11
pnate joined
18:16
jackyf left
18:22
stephenlb joined
18:23
kaare_ joined
18:24
uniejo joined,
ive left,
ive joined
|
|||
PerlJam | Tene: me too | 18:24 | |
(at least I don't understand it in a Perl 6 context) | 18:25 | ||
18:25
jackyf joined
|
|||
TimToady | he's using it to solve a P5 namespace collision that P6 doesn't have | 18:26 | |
(hence my remark yesterday about "namespace superstition") | |||
18:27
ash_ joined
18:28
ash__ joined,
ash_ left,
ash__ left,
ash_ joined
|
|||
PerlJam | I guess I was puzzled by "...I worry that the method/sub invocation isomorphism will be a trap just as in Perl 5." | 18:29 | |
ruoso .oO( IRC is always more productive than twitter ) | 18:30 | ||
18:30
petsepes joined
|
|||
petsepes | hi | 18:30 | |
ruoso | If someone really needs the distinction, he can install a different routine in the sub | ||
PerlJam | petsepes: greetings | ||
TimToady | it's a trap in P5 because P5 conflates the method and subroutine namespaces | 18:32 | |
18:33
lumi joined
|
|||
TimToady | P6 doesn't, so it's not a trap unless you write a custom dispatcher that confuses things | 18:33 | |
diakopter | or a compiler/runtime that confuses things. | ||
note the lack of closing </snark> tag | 18:34 | ||
PerlJam | TimToady: right, I was confused by the worry, because it seems you have to do it to yourself | ||
(in perl 6) | |||
18:35
petsepes left
18:36
rgrau` joined
18:37
Chillance joined
|
|||
TimToady | the upside of the isomorphism is that a dispatcher never has to worry about what kind of thing it's calling, because dispatchers only ever call functions, even when that function is implementing a method | 18:39 | |
which makes it easy to write dispatcher that shoots yourself in the foot if you want to :) | |||
ruoso | and methods are not our by default anymore, right? | ||
TimToady | but also allows us to export methods without writing wrappers | ||
correct | |||
if you *do* declare it our, you may call it as a subroutine | 18:40 | ||
(or my) | |||
ruoso | I think the issue is pretty much addressed... | ||
PerlJam | It's only a real problem if you're coming from a Perl 5 background and expect that you have do Perl 5ish things :) | ||
TimToady | the downside from the VM perspective is that if your VM compartmentalizes, you end up writing wrappers anyway | 18:41 | |
ruoso | and then the question is not "was this called as a method or as a sub", but "which was the dispatcher that called this?" since we could eventually have some other type of dispatcher | ||
TimToady | or you just don't rely on the VM's dispatcher from the user level | ||
since it probably doesn't implement nextsame anyway... | 18:42 | ||
from the P6 perspective, it's a no-brainer to say that underneath, everything gets invoked as a function | |||
ruoso | but I think that someone asking "which dispatcher was used here" can deal with implementation-specific stuff | ||
TimToady | well, a VM is not guaranteed to be able to tell you which dispatcher was used either, for that matter | 18:43 | |
18:43
cognominal left
|
|||
ruoso | it needs to some extent if it supports nextsame | 18:44 | |
TimToady | we want to support custom dispatchers in any case; use of a specialized VM dispatcher would be an optimization from the general case | 18:45 | |
in some cases a very good optimization | 18:46 | ||
but not at the expense of broken semantics | |||
(unless you predeclare broken semantics :) | |||
PerlJam | a custom dispatcher seems like an "all bets are off" kind of thing. If you're worried about shooting yourself in the foot, you've only got yourself to blame because the default dispatcher(s) protect you. | 18:48 | |
Is that an accurate statement? | |||
(with some wiggle room on "protect" :) | |||
TimToady | seems about right | 18:50 | |
but people coming from the world of P5 programming have a peculiar set of phobias which will take time to cure | |||
ash_ | rakudo: my $a = List.new(1, 2, 3); say $a.perl; my $b = list(1, 2, 3); say $b.perl; say $a == $b; # should this be true? | 18:51 | |
p6eval | rakudo 3867ff: [][1, 2, 3]0 | ||
TimToady | a great many Perl 5 "Best Practices" are really workarounds to design flaws, but prescriptive grammarians will continue to try to apply those workarounds after they are no longer needed. | 18:56 | |
PerlJam | That first clause seems like a really good answer to why Perl 6 is so different from Perl 5 | 18:57 | |
diakopter | who really needs vowel points anyway | ||
.oO( writing emitters specialized to particular permutations of its variations should eventually be resolved back to writing one emitter with lots of checks per instruction to-be-emitted. longer compilation time, but much more composably optimizable. )Oo. |
19:03 | ||
19:10
mssm joined
19:15
tolkad joined
|
|||
tolkad | perl6: print "test"; | 19:16 | |
p6eval | elf 29535, pugs, rakudo 3867ff: test | ||
tolkad | !help | ||
tell lambdabot @echo | 19:19 | ||
@echo | |||
ooh nvm | |||
19:19
tolkad left
|
|||
ash_ | so, according the dispatch mechanism, if there are 2 methods, 1 with foo(*@args); and another with foo(*@args, *%kwargs); and you call foo(1, 2, 3); that should dispatch to the one only with the arg's slurpy, not kwargs, right? | 19:24 | |
TimToady | it's arguable whether a (nilable) slurpy should be considered an extra constraint, but we really need an opinion from the implementors whether it's practical to make the distinction | 19:30 | |
the fact that theres another declaration effectively turns the * into a +, by that reckoning | |||
which seems a bit bogus | 19:31 | ||
why not just write the one method to handle the Nil case | |||
ash_ | so, 1 with foo ( ) # no params? you mean? | 19:33 | |
19:36
tylerni7 left
|
|||
ash_ | I guess i am trying to figure out why this isn't working: | 19:36 | |
ng: augment class List { multi method new(*@args) { say @args; } }; class Foo { multi method new(*@args) {say @args;}}; List.new(1, 2, 3); Foo.new(1, 2, 3); | |||
p6eval | ng b65331: 123 | ||
ash_ | it should of printed 123 twice, not once | 19:37 | |
hmmm | |||
might be a bug in the dispatcher, rather than an issue with the dispatching strategy | |||
I thought that might of been related to the fact that Mu has a new(*@args, *%kwargs) but it doesn't look like thats the problem | 19:39 | ||
19:40
tylerni7 joined
19:47
cotto_working joined
20:04
cotto_w0rk left
20:06
RaceCondition joined
|
|||
PerlJam | RaceCondition: greetings | 20:06 | |
RaceCondition | PerlJam: hi again | ||
quiet here | 20:07 | ||
PerlJam | RaceCondition: it's you imagination :) | ||
(lots of out-of-#perl6-band communication happens too) | |||
RaceCondition: What's your interest in Perl 6? Have you tried Rakudo yet? Or was it more just curiousity about the state of things? | 20:08 | ||
20:08
tylerni7 left
|
|||
RaceCondition | PerlJam: curiosity, yeah... I don't have the need and time to learn perl | 20:08 | |
PerlJam | What languages are you already familiar with? | 20:09 | |
RaceCondition | well most of the mainstream ones, but I've peeked into many | ||
ash_ | i personally like multi-methods and roles in perl 6, not many languages have either of those, and even fewer have both | 20:10 | |
that and you can define your own operators, that ones kinda cool | 20:11 | ||
rakudo: sub postfix:<!>(Int $x) { [*] 1..$x }; say 5!; | 20:12 | ||
p6eval | rakudo 3867ff: 120 | ||
ash_ | moritz_++ for that one | ||
KyleHa | I like type constraints. | 20:14 | |
20:15
sjohnson sets mode: +o PerlJam
|
|||
KyleHa | rakudo: sub postfix:<!>(Int $x) { [*] 1..$x }; say "five"! | 20:15 | |
p6eval | rakudo 3867ff: Nominal type check failed for parameter '$x'; expected Int but got Str insteadin Main (file src/gen_setting.pm, line 324) | ||
ash_ | rakudo: multi sub postfix:<!>(Int $x) { [*] 1..$x }; mutli sub postfix:<!>(Str $x) { $x.uc }; say "five"!; say 5!; | 20:16 | |
p6eval | rakudo 3867ff: Could not find non-existent sub mutliin Main (file src/gen_setting.pm, line 324) | ||
ash_ | oops | ||
rakudo: multi sub postfix:<!>(Int $x) { [*] 1..$x }; multi sub postfix:<!>(Str $x) { $x.uc }; say "five"!; say 5!; | 20:18 | ||
p6eval | rakudo 3867ff: FIVE120 | ||
ash_ | silly spelling | ||
KyleHa | How hard is it to get Perl 6 to recognize 'mutli' as 'multi'? | 20:19 | |
ash_ | macro mutli { 'multi' } ? | 20:20 | |
KyleHa | Macros make me think of TeX. | ||
ash_ | they make me think #define | ||
lichtkind | can anybody here answer to me some things about proto regexen? | 20:24 | |
ash_ | sure, we can try | 20:25 | |
20:32
rgrau` left
20:35
Exodist left
|
|||
RaceCondition | how does Perl 6 compare with Lisp? I see it has macros and multimethods | 20:40 | |
20:45
clintongormley left
|
|||
ash_ | in what respects? would you like to compare them in? | 20:46 | |
i think perl 6 has less ( ) | |||
well most of the time :P | 20:47 | ||
KyleHa | Perl 6 has more funny characters for some definitions of 'funny'. | ||
ash_ | perl 6's syntax doesn't fit on a 2"x"4 note card | 20:48 | |
i think | |||
well maybe if you had a really good printer | |||
RaceCondition | so why does Lisp's syntax fit? | ||
TimToady | doesn't have any :) | ||
RaceCondition | oh, in that sense | 20:49 | |
ash_ | lol lisp's syntax is very simple | ||
RaceCondition | I thought you mean "lisp code doesn't fit on a ..." | ||
TimToady | to the first approximation, Perl 6 is Lisp with a decent syntax, and minus a lot of assumptions about how lists should be represented :) | 20:50 | |
but that's also a vast oversimplification... | 20:51 | ||
KyleHa | I thought LISP was a vast oversimplification. | 20:52 | |
TimToady | nevertheless, despite all the trappings of OO, Perl 6 is fundamentally more in the FP camp | ||
20:52
alester joined
|
|||
diakopter | ENOPMSTILL | 20:54 | |
20:54
clintongormley joined
|
|||
diakopter | does anyone know when the Actions in an nqp-rx grammar are run? | 20:54 | |
TimToady | I believe they are run at reduction time, but note that Perl 6 grammar isn't supposed to backtrack much. | 20:56 | |
KyleHa | Is moritz_ around today? I'd like to reorganize (or disorganize) S03-operators/smartmatch.t, but I don't want to overcrud the spectests. | 20:57 | |
TimToady | there are still only two spots that we rely heavily on backtracking, and neither of them is likely to prove a performance problem. | ||
KyleHa | @seen moritz_ | 20:58 | |
TimToady | rakudo: say [+42].perl | 20:59 | |
p6eval | rakudo 3867ff: [42] | ||
TimToady | there's one of 'em | ||
rakudo: $_ = "foo"; say "$_.notamethod" | 21:00 | ||
p6eval | rakudo 3867ff: foo.notamethod | ||
TimToady | there's the other | ||
21:01
plainhao left
|
|||
ash_ | in the second case, is that backtracking to find the most recent defintiion of $_ ? | 21:01 | |
TimToady | no | ||
it's distinguishing from this: | |||
rakudo: $_ = "foo"; say "$_.notamethod()" | |||
p6eval | rakudo 3867ff: foo.notamethod() | ||
TimToady | well, it should be :) | ||
ash_ | oh, okay, so it has to string interpolation? | 21:02 | |
TimToady | finding the end of the interpolation involves looking for trailing brackets of some kind or other | ||
and not just the first brackets, but the last brackets | 21:03 | ||
"$foo.bar().baz()" | |||
or a more likely case, "$x[$y]{$z}" | 21:04 | ||
sjohnson | go to baktiz!! | ||
21:04
Woody2143 left
21:07
mssm left
21:08
clintongormley left
|
|||
frettled | oh! | 21:09 | |
uniejo | Is the interpolation length also depending on does Callable, Positional and does Associative ? | 21:13 | |
KyleHa | Is dev.pugscode.org relocated or just out of the picture? | 21:16 | |
frettled | KyleHa: if you're missing Trac, see the top post at howcaniexplainthis.blogspot.com :) | 21:21 | |
KyleHa | frettled: Thanks, that's just what I was missing. | ||
frettled | Someone™ just needs to get enough tuits to fix the spam problem. | 21:23 | |
21:25
rgrau` joined
21:26
RaceCondition left
21:28
Woody2143 joined
21:31
lumi left,
lumi joined
|
|||
KyleHa | The first thing that pops into my mind is to block Google via robots.txt. | 21:32 | |
The spammers are submitting bogus tickets, which I don't think anyone legitimately uses anyway, so lets amputate that. | 21:34 | ||
PerlJam | Starting with a new VM is probably the most important thing IMHO | ||
frettled | mm | ||
PerlJam | I'm a fan of clean slates where I can get them. | ||
diakopter | KyleHa: do you know anyone who was using dev.pugscode.org? (and if you were, what were you using on it?) | 21:35 | |
KyleHa | diakopter: I looked at the timeline to see recent commits to the pugs repo. From there I'd look at diffs, etc. | 21:36 | |
diakopter | oh | ||
KyleHa | That's how I kept up with spectest activity, back when I was keeping up. It's been a while since I looked. | ||
diakopter | KyleHa: may I interest you in this instead? perlcabal.org/svn/pugs/log | ||
its rss feed has been <ahem> customized for use by pugs_svn | 21:37 | ||
KyleHa: that SVN::Web installation is also on feather. | 21:38 | ||
also, it's the one to which the irclog web ui constructs links | 21:39 | ||
KyleHa | Oh, very nice. Thank you, diakopter++ | 21:41 | |
ash_ | rakudo: class List is also { method new(*@args) { say 'hi'} }; List.new(1, 2, 3); | 21:42 | |
p6eval | rakudo 3867ff: ( no output ) | ||
diakopter fights cisco anyconnect | |||
21:44
SmokeMachine left
|
|||
pugs_svn | r29536 | kyle++ | [t/spec] split S03-operators/smartmatch.t into S03-smartmatch/*.t | 21:44 | |
KyleHa | OK, I'm going for forgiveness over permission. | ||
ash_ | i think there is something wrong with how 'new' is getting dispatched | 21:45 | |
in both rakudo and ng | |||
PerlJam | rakudo: class Foo is List { method new(*@args) { say "hi" } }; Foo.new(1,2,3); | 21:46 | |
p6eval | rakudo 3867ff: ( no output ) | 21:47 | |
PerlJam | blame jnthn :) | ||
ash_ | maybe its augmenting/is also 's fault | ||
PerlJam | ash_: Well, I just tried inheritance and the result was the same. | 21:48 | |
although that worked fine on my local perl6 (not sure if it's ng or master since I haven't compiled it in a while) | 21:50 | ||
21:52
cotto left,
takadonet left
21:55
mssm joined
|
|||
dalek | kudo/ng: a57ebba | (Kyle Hasselbacher)++ | t/spectest.data: [spectest.data] update according to pugs r29536 |
22:00 | |
ash_ | PerlJam: if you use is also its master | ||
but also rakudo in here times out if you define a class | 22:01 | ||
it seems like its okay if you don't define a new method in an augment or in an 'is also' | |||
PerlJam | ash_: I meant the inheritance example ... but that's a good litmus test to find out which version I have :) | ||
22:03
meppl left
22:06
ruoso left,
Exodist joined
22:07
cotto_w0rk joined,
cotto joined
|
|||
ash_ | i wonder why rakudo: still time's out on class definitinos | 22:07 | |
22:08
cotto_working left
22:10
meppl joined
22:16
meppel joined,
colomon left,
colomon___ joined
22:17
uniejo left
22:29
snearch joined
22:31
meppl left
22:36
pinc0de left
22:40
soupdragon left
22:41
ignacio_ left,
szabgab left,
szabgab joined,
soupdragon joined,
lumi left,
s1n left,
y3llow left,
jogla_ left,
Trey left,
Khisanth left,
Juerd left,
simcop2387 left,
orevdiabl left,
Lorn left,
krakan left,
xomas left,
jjore left,
cj left,
mdxi left,
Infinoid left,
gju left,
f00li5h[HireMe] left,
GeJ left,
kcwu left,
hugme left,
sunnavy left
22:42
KyleHa left,
jaldhar left,
simcop2387_ joined,
Trey joined,
krakan joined
22:43
Su-Shee left
22:46
akl left,
silug left
22:47
stephenlb left,
synth left,
araujo left,
PerlJam left,
lisppaste3 left,
breinbaas left,
dukelet0 left,
mtve left,
REPLeffect_ left,
sjn left,
yves left
22:48
sjn joined,
jaldhar joined
22:51
Juerd joined,
akl joined,
silug joined
22:53
breinbaa1 joined,
lumi joined,
dukelet0 joined
22:54
Infinoid joined
22:56
lest_away is now known as lestrrat,
silug left
22:57
PerlJam joined
23:00
silug joined,
mdxi joined
|
|||
ash_ | Mu == undef? right? | 23:00 | |
23:02
avar left,
literal left
|
|||
frettled | not quite | 23:02 | |
But it's one of the undef-like values, depending on type. | |||
23:08
avar joined,
literal joined
23:09
soupdragon left,
alester left
23:10
bbkr left
23:11
constant_ joined,
cognominal joined
23:12
sbp left,
zamolxes_ left,
orafu left,
hicx174 left,
dukeleto left,
pugs_svn left,
LionMade1fLions left,
meteorjay left,
pjcj left,
yahooooo left,
constant left,
eiro left,
nsh left,
PacoLinux left,
phenny left
23:13
hicx174_ joined,
LionMadeOfLions joined
23:14
OuLouFu joined
|
|||
TimToady | arguably it's the most undefined value | 23:14 | |
insofar as all other undefined values derive from it | |||
23:14
dukelet0 left,
breinbaa1 left,
jaldhar left,
Trey left,
simcop2387_ left,
snearch left,
colomon___ left,
cotto left,
Exodist left,
ash_ left,
ive left,
hercynium left,
am0c left,
cdarroch left,
he_ left,
frettled left,
rhr left,
diakopter left,
frew left,
hudnix left,
slavik left,
rjh left,
szbalint left,
japhb left,
jrockway left,
BooK left,
buu left,
Supaplex left,
PZt left,
broquaint left,
obra left,
ilbot2 left,
Ryan52 left,
hejki left,
huf left,
Intensity left,
Tene left,
Guest44003 left
23:15
pjcj_ joined,
yahooooo joined,
xenoterracide_ joined
23:17
synth joined,
sunnavy joined,
cj joined,
s1n joined,
Khisanth joined,
jjore joined,
kcwu joined,
hugme joined,
irc.freenode.net sets mode: +v hugme
23:19
zamolxes joined
23:22
eiro joined,
Tene joined,
pugs_svn joined,
bbkr joined,
dukelet0 joined,
breinbaa1 joined,
jaldhar joined,
Trey joined,
simcop2387_ joined,
snearch joined,
colomon___ joined,
cotto joined,
Exodist joined,
ash_ joined,
ive joined,
hercynium joined,
am0c joined,
cdarroch joined,
jrockway joined,
japhb joined,
rjh joined,
slavik joined,
Guest44003 joined,
hudnix joined,
PZt joined,
frew joined,
Intensity joined,
buu joined,
broquaint joined,
BooK joined,
szbalint joined,
diakopter joined,
rhr joined,
huf joined,
Ryan52 joined,
frettled joined,
Supaplex joined,
ilbot2 joined,
irc.freenode.net sets mode: +ooov Tene diakopter frettled ilbot2,
hejki joined,
obra joined,
he_ joined,
araujo joined,
lisppaste3 joined,
REPLeffect_ joined,
yves joined,
mtve joined
23:23
meteorjay joined,
ingy left,
astinus left,
OuLouFu left,
PacoLinux_ joined,
meteorjay left,
REPLeffect_ left,
mtve left,
yves left,
araujo left,
lisppaste3 left
23:24
phenny joined,
Helios-- left,
kst left,
rgrau left,
sbp joined,
GeJ joined,
GeJ left,
snearch left,
kst` joined,
xenoterracide left,
rgrau joined,
nsh_ joined,
Helios-- joined,
constant_ is now known as constant,
silug left
23:25
kaare_ left
|
|||
sjohnson | TimToady: those two lines u wrote might end up as messages in an irc bottle | 23:25 | |
23:25
stepnem left,
lichtkind left
23:29
dukeleto joined,
mikehh left,
silug joined,
hudnix left
|
|||
ash_ | colomon___: ping? | 23:31 | |
23:32
elmex left,
ive left
23:33
OuLouFu joined
23:34
GeJ joined
23:36
rgrau left,
rgrau joined
|
|||
colomon___ | ash_: pong? | 23:37 | |
ash_ | I fixed List.new, i have patch for it | ||
colomon___ | \o/ | 23:38 | |
ash_ | i figured i could bug you instead of jnthn, also he's not here :P | ||
colomon___ | sure | ||
ash_ | gist.github.com/278521 is a copy of it, or i can email it to someone | 23:39 | |
23:39
cj left,
zamolxes left,
OuLouFu left,
zamolxes_ joined
|
|||
colomon___ | I will be slightly erratic for a few (reading to son)... | 23:39 | |
ash_ | no worries | ||
23:40
astinus joined,
orafu joined,
stepnem joined
23:42
cj joined
|
|||
colomon___ | Are there tests? | 23:45 | |
:) | |||
ash_ | not yet, i'll do those next | ||
List.new(1, 2, 3) should ~~ list(1, 2, 3) | 23:46 | ||
I'll work on some though | |||
23:48
cj left,
PacoLinux_ left,
hugme left,
s1n left,
synth left,
kcwu left,
Khisanth left,
jjore left,
sunnavy left
|
|||
colomon___ | m u | 23:48 | |
23:49
ingy joined
23:54
meteorjay joined,
elmex joined
23:58
tylerni7 joined,
cj joined,
PacoLinux_ joined,
synth joined,
sunnavy joined,
s1n joined,
Khisanth joined,
jjore joined,
kcwu joined,
hugme joined,
irc.freenode.net sets mode: +v hugme
|
|||
colomon___ | yay, works for Array too! | 23:58 | |
ash_ | should work for anything that inherits from List | 23:59 | |
so apparently augment and 'is also' can't add 'new' to a class | |||
ng: class Foo { }; augment class Foo { method new(*@args) { say 'hi'} }; Foo.new(1, 2); | |||
p6eval | ng a57ebb: ( no output ) |