»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
sorear | phenny: tell colomon I'm wondering how to work the spectest stuff into announce.v13 | 00:00 | |
phenny | sorear: I'll pass that on when colomon is around. | ||
colomon | I'm back... little guy did NOT want me reading tonight. | 00:03 | |
phenny | colomon: 00:00Z <sorear> tell colomon I'm wondering how to work the spectest stuff into announce.v13 | ||
colomon | what are you wondering about it? | 00:04 | |
x3nU | #perl6 seems to be most active perl irc channel these days | 00:05 | |
pretty strange | |||
00:07
hundskatt left
|
|||
colomon | why is that strange? | 00:07 | |
x3nU | perl 6 isn't exactly most popular thing | ||
colomon | but it's got two implementations with very active development at the moment, both coordinated over this channel. | 00:10 | |
dduncan | that might also be because more established languages have split up into a variety of channels, while Perl 6 stuff is concentrated in fewer | ||
eg, most Perl 5 talk is in channels about specific tools or modules rather than generic Perl 5 I think | 00:11 | ||
or a lot is on mailing lists | |||
Perl 6 talk doesn't seem to be on email lists as much as it used to | |||
colomon, what is the other most active implementation besides Rakudo? | 00:12 | ||
colomon | Niecza | ||
dduncan | okay | ||
I might have guessed that, what with it having regular release announcements | |||
is there more than one person working on Niecza | 00:13 | ||
sorear | x3nU: have you tried looking on irc.perl.org? | ||
dduncan: I count as five people | |||
dduncan | okay | ||
sorear | seriously, though, bus number = 1. colomon and [Coke] are trying to fix this | ||
colomon | I'm not really trying to fix the bus number thing, but I am trying to make sure you don't have to do all the work! | 00:14 | |
sorear | colomon: right now there's nothing much in the announcement about all the spectest improvement work that's been done | 00:15 | |
maybe I'll link to tadzik/flussence's graph | |||
dduncan | on a tangent, is there any list of projects that are based on but don't intend to be a full Perl 6 implementation? | ||
or are any known | |||
not the lists, but projects | |||
my Muldis D is based on Perl 6, and I thought there might be others | |||
NQP maybe | |||
is one | 00:16 | ||
sorear | phenny: tell flussence_ Do you mind if I use github.com/flussence/specgraphs/ra.../impls.png in the niecza v13 announcement? | ||
phenny | sorear: I'll pass that on when flussence_ is around. | ||
colomon | sorear: you could say something like [Coke] and colomon are working on fudging spectests so they run on NIecza; between that and actual improvements, we've gained 5000+ working spectests since the last release. | ||
dduncan | I suppose Perlito is another | 00:20 | |
sorear | nom: sub foo($x where { 12 }) { "Y" }; say foo(4) | ||
p6eval | nom eb6c4b: OUTPUT«Y» | ||
sorear | Is this correct? | ||
wait, of course it is | 00:21 | ||
dalek | ecza: 5a663d0 | sorear++ | docs/announce.v13: Add blurb about roast progress, link to flussence++ chart |
00:23 | |
colomon | is it correct? does the where clause smartmatch or does it just need to return true? | ||
or is it smartmatching on the block? | 00:24 | ||
colomon has not used where clauses in far, far too long | |||
sorear | I am, uh, not really sure | 00:25 | |
00:26
pmurias left,
silug_ left
|
|||
colomon | yeah, it's smartmatching | 00:27 | |
I think | |||
:(1) Will introspect the same way as: :(Int $ where 1) | |||
x3nU | sorear: yes, i'm on few channels there | ||
colomon | nom: sub foo($x where 12) { "Y" }; say foo(4) | 00:28 | |
p6eval | nom eb6c4b: OUTPUT«Constraint type check failed for parameter '$x' in sub foo at /tmp/Lg7p0E_DBc:1 in block <anon> at /tmp/Lg7p0E_DBc:1 in <anon> at /tmp/Lg7p0E_DBc:1» | ||
00:30
dduncan left
|
|||
colomon | nom: sub foo($x where /\w+/) { say $x }; foo("this"); foo(" ") | 00:31 | |
p6eval | nom eb6c4b: OUTPUT«thisConstraint type check failed for parameter '$x' in sub foo at /tmp/odHAr76zcq:1 in block <anon> at /tmp/odHAr76zcq:1 in <anon> at /tmp/odHAr76zcq:1» | 00:32 | |
colomon | yeah, that's totally smartmatching | ||
00:34
risou is now known as risou_awy
00:39
drbean left
00:42
simon__ joined
|
|||
simon__ | nom: my @a = 1..3; @a X @a X @a; | 00:43 | |
p6eval | nom eb6c4b: ( no output ) | ||
00:46
drbean joined
00:53
simon__ left
00:54
replore joined
00:55
x3nU left
00:56
tokuhirom left
01:01
benabik left
01:02
benabik joined
01:55
donri joined
01:57
hypolin joined
|
|||
sorear | crazy idea of the day: how about making p6eval automatically "say" the result if no output is generated? | 02:08 | |
(rakudo and niecza already have this logic for the REPL. I'm imagining adding a --replish-output option) | 02:09 | ||
02:15
envi_ joined
02:16
hundskatt joined
02:18
raiph left
|
|||
donri | sorear: +1 | 02:26 | |
colomon | +1 | 02:37 | |
sorear | Who would be able to tell me if this is feasable on the Rakudo fence side? | 02:38 | |
02:40
mkramer joined
|
|||
donri | why not just surround "say (...)"? | 02:52 | |
geekosaur | double output if the code already does a say? | 02:57 | |
sorear | exactly | 02:58 | |
dalek | ecza: 16011dd | sorear++ | src/ (2 files): Remove a bunch of fossils from signature handling |
03:02 | |
03:07
mkramer1 joined,
mkramer left
03:14
lutok left
|
|||
dalek | ecza: 37737c7 | sorear++ | / (5 files): Realign compiler and runtime parameter flags to 1:1 correspondence |
03:22 | |
03:24
mkramer joined,
mkramer1 left
03:34
Ingis left
03:37
Psyche^ joined
03:38
sftp left
03:39
mkramer1 joined,
mkramer left
03:40
Patterner left,
Psyche^ is now known as Patterner
03:41
cognominal_ joined
03:44
cognominal left
03:46
mkramer1 left,
mkramer joined
03:54
hypolin left
03:55
hypolin joined
04:15
envi_ left
04:18
mkramer left
04:24
Chillance left
04:39
TimTom joined
04:41
simcop2387 left
|
|||
TimTom | rakudo: my %a; %a<a> = <1 2 3>; say %a<a>; %a<a> = %a<a>,4; say %a<a>; | 04:41 | |
p6eval | rakudo eb6c4b: OUTPUT«1 2 3maximum recursion depth exceeded in method gist at src/gen/CORE.setting:682 in method gist at src/gen/CORE.setting:3977 in method gist at src/gen/CORE.setting:3977 in method gist at src/gen/CORE.setting:3977 in method gist at src/gen/CORE.setting:39… | ||
TimTom | good, so it's not just me | ||
04:42
simcop2387 joined
|
|||
TimTom | is it a known issue that assigning some kinds of parcels in rakudo is currently broken? | 04:42 | |
sorear | I don't see a bug there | 04:43 | |
TimTom | maximum recursion depth exceeded in method gist at src/gen/CORE.setting:682 in method gist at src/gen/CORE.setting:3977 in method gist at src/gen/CORE.setting:3977 in method gist at src/gen/CORE.setting:3977 in method gist at src/gen/CORE.setting:39… | ||
sorear | %a<a> = %a<a>, 4 creates a recursive data structure | ||
TimTom | it should be printing 1 2 3 4 or something similar to it | ||
but it shouldn't be an infinite recursive structure | 04:44 | ||
sorear | there is no 1 2 3 in the result | ||
after the assignment, <1 2 3> is unreferenced garbage | |||
04:44
raiph joined
|
|||
TimTom | I don't care if it ends up as ([1,2,3], 4) or (1,2,3,4). Either way it's not an infinitely recursive structure | 04:45 | |
04:45
Ingis joined
|
|||
sorear | TimTom: except as defined it *is* an infinitely recursive structure | 04:46 | |
rakudo: my $a; $a = <1 2 3>; say $a; $a = [ @$a, 4]; say $a | |||
p6eval | rakudo eb6c4b: OUTPUT«1 2 31 2 3 4» | ||
TimTom | sorear: so how would I instead get it to assign the value of %a<a> to the slot stored in %a<a> | ||
okay, that's fine. The underlying reason I found this is because hash push is broken | 04:47 | ||
sorear | TimTom: avoid using a parcel, because parcels are very lazy | ||
parcels don't actually fetch until they have to | |||
04:47
IngisKahn joined
|
|||
sorear | when you say $a = $a, 4; the parcel doesn't fetch until long after $a is re-assigned | 04:47 | |
TimTom | rakudo: my %a; %a.push(1 => 2); %a.push(1 => 3); say %a | 04:48 | |
sorear | which is why it comes out recursive | ||
p6eval | rakudo eb6c4b: OUTPUT«("1" => [2, 3]).hash» | ||
TimTom | okay, so that one's just broken on my system | ||
04:49
eiro left
|
|||
sorear | what version are you on? | 04:49 | |
b: my %a; %a.push(1 => 2); %a.push(1 => 3); say % | |||
TimTom | latest | ||
p6eval | b 1b7dd1: OUTPUT«===SORRY!===Non-declarative sigil is missing its name at line 22, near "%"» | ||
TimTom | at least when I do a git pull it reports I'm at latest | ||
04:49
Ingis left
|
|||
sorear | git status # What branch are you on? | 04:50 | |
TimTom | master | ||
04:50
stepnem_ joined
|
|||
sorear | b: my %a; %a.push(1 => 2); %a.push(1 => 3); say %a | 04:51 | |
p6eval | b 1b7dd1: OUTPUT«1 2 3» | ||
sorear | TimTom: git checkout nom and try again | ||
TimTom | k | ||
04:54
raiph left
04:55
lue joined
|
|||
lue | hello world! o/ | 04:55 | |
04:55
stepnem left,
cooper left,
stepnem_ is now known as stepnem
|
|||
lue | rakudo: say (9/9) ~~ Int; | 04:56 | |
p6eval | rakudo eb6c4b: OUTPUT«Bool::False» | ||
lue | That feels like a bug. | ||
sorear | I said the same thing. | 04:59 | |
05:01
cooper joined
|
|||
benabik | nom: say (9/9).WHAT | 05:06 | |
p6eval | nom eb6c4b: OUTPUT«Rat()» | ||
05:11
cognominal joined
05:14
cognominal_ left
05:24
wolfman2000 left
05:45
envi_ joined
05:47
kaleem joined
06:00
lutok joined
06:16
traingeek joined,
traingeek left
06:34
replore left
06:35
replore_ joined
06:50
packetknife left,
am0c joined
07:00
koban joined
07:16
sudokode left
07:22
HarryS left
07:27
pat_js joined
|
|||
pat_js | 08:29 *** 421 message Unknown command | 07:30 | |
07:30
cognominal left
07:32
cognominal joined
07:34
mkramer1 joined
07:45
sudokode joined,
fridim_ left
07:55
mkramer joined,
mkramer1 left
08:07
sayu joined
|
|||
dalek | ecza: 8fef06e | sorear++ | / (5 files): More signatures refactoring - use bitfields througout |
08:26 | |
08:28
mkramer left
08:29
HarryS joined,
mkramer joined
08:35
mkramer left
|
|||
ingy | hi | 08:48 | |
anyone around? | |||
sorear | yes | 08:49 | |
but probably nobody useful. :) | |||
ingy | sorear! | 08:50 | |
I have a question for you! | 08:51 | ||
what's the difference between a .a file and a .o file? | |||
geekosaur | .a file is a statc link archive, made of .o files | 08:52 | |
sorear | .o files are like executable files, but without "main" | 08:53 | |
phenny | sorear: Service not found in github.com/nslater/oblique/wiki | ||
sorear | compilers produce .o files, and the linker takes a bunch of .os and makes an executable | ||
geekosaur | as distinct from a dynamic link library which is made from .o files linked together in a special way (and often the .o files are compiled differently; see position-independent code) | ||
sorear | but people got tired of adding printf.o exit.o ... to their link lines, so the linker also accepts .a files, which are just archives contianing .o files | ||
ingy | oh | 08:54 | |
sorear | I mean archives in a quite literal sense - .a files and .tar files can be used interchangably (well, the on-disk formats are incompatible) | ||
notably, Debian packages use ar format for some reason | |||
ingy | is a .a file like a static .so? | 08:55 | |
geekosaur | it's simpler | ||
ingy | and wtf is geekosaur? | ||
geekosaur | BSD has libarchive, linux doesn't in general, so .a format is easier to manipulate | ||
erm? | 08:56 | ||
ingy | oh | ||
I thought you were a bot | |||
sorry | |||
:D | |||
geekosaur | (also ar files are generally flat, i.e. cannot hold subdirectories) | ||
ingy | let me try comething | 08:57 | |
geekosaur | (I think gnu ar relaxes that somewhat) | ||
ingy | something | ||
thx geekosaur | |||
sorear | ingy: geekosaur is the *nix expert formerly known as allbery_b | 09:02 | |
who has a long history of wisecracking about his age | |||
ingy: .a files are just file archives. they aren't in any way specialized for use with linkers. | 09:03 | ||
geekosaur | if you've ever heard Against Me!'s "Thrash Unreal"... sometimes I feel like that | 09:04 | |
sorear | geekosaur: which came first, ar or tar? | ||
09:04
eiro joined
|
|||
sorear wanders off to sleep | 09:05 | ||
geekosaur | hm. that goes back a long way. ar came first with respect to use for disk files, though; tar was originally intended for disks (and you generally used numeric options 0-7 to pick /dev/rmt[0-7]nsted of the f/-f option) | ||
geekosaur isn't quite sure what happened to that line... network hiccuped | |||
sorear | s/disks/tapes/? | ||
geekosaur | tapes. sigh | 09:06 | |
geekosaur needs a nap | |||
sorear | wait, where are you living these days? | ||
geekosaur | time only tells part of the story; my sleep schedule is quite insane, when it exists at all | ||
geekosaur has a sleep disorder that leaves his sleep schedule drifting somewhat aimlessly and resistant to being fixed | 09:07 | ||
sorear | KF8NH suggests strong US ties but CTCP TIME says Western Europe | ||
geekosaur | oh. this IRC session is in EC2 and its time zone is UTC | ||
but I'm actually located near Akron, OH atm | |||
sorear | ah | 09:08 | |
sorear out for real | |||
geekosaur | and between the number of people all over the place that I regularly chat with and my own sleep non-schedule, utc for the IRC session is fairly convenient | ||
ingy | geekosaur: do you do any perl 5 XS? | 09:12 | |
09:15
Trashlord left
09:19
eiro left
09:21
eiro joined
|
|||
geekosaur | very little | 09:22 | |
09:25
pat_js left
|
|||
masak | morning, #perl6! | 09:27 | |
09:29
drbean left
|
|||
masak | sorear: there once was logic to do what you proposed. it drove people nuts and interacted heavily with debugging. might just've been the implementation, of course, but from what I've seen the utility isn't worth the investment. | 09:29 | |
09:29
eiro left,
eiro joined
09:31
drbean joined
09:33
mkramer joined
09:37
mkramer left,
mkramer joined
09:44
kaare_ joined
|
|||
masak | 9/9 ~~ Int is potentially a tricky one. | 09:48 | |
09:48
mkramer left
|
|||
masak | on one hand, you could decide that number results should always try to fit into the "narrowest" type; here, Int. | 09:48 | |
I've argued that many times myself. | |||
on the other hand, it feels slightly unfair if someone does 'my Rat $r = $a / $b', and it typefails the times when $b divides $a. | 09:49 | ||
09:50
mkramer joined,
mkramer left
09:54
envi_ left
10:03
mj41 joined,
Trashlord joined
10:07
hypolin left
10:13
replore_ left
10:14
drbean left
10:19
drbean joined
10:30
mj41 left
|
|||
masak | breaking news: now there's a *second* prize in the contest: strangelyconsistent.org/blog/the-20...ng-contest | 10:34 | |
yet another reason to sign up. :) | |||
tadzik | the third prize can be an optimal way to tie a shoe :P | 10:39 | |
10:40
drbean left
|
|||
tadzik | or that was supposed to be the LAF prize... | 10:40 | |
10:47
drbean joined
|
|||
masak | tadzik: what is it with you and the optimal way to tie a shoe? :P | 10:47 | |
tadzik | it's awesome! | 10:49 | |
will teach you one day | |||
masak | :P | ||
11:13
cognominal left
11:16
ponbiki joined
|
|||
masak | "First of all: Finally accept that there are two Perls now. 5 and 6. Period. The world needs more Perl - here we have it. :) None of the two will go away. That's a good thing." -- Su-Shee++ blogs.perl.org/users/su-shee/2011/0...ideas.html | 11:28 | |
I really like the suggestions in that blog post. | 11:29 | ||
11:31
koban left
11:36
cognominal joined
11:39
Trashlord left
|
|||
tadzik | what's a <...> in function body? | 11:40 | |
optional yada yada? | |||
masak | nom: sub foo { ... }; foo; say "alive" | 11:43 | |
p6eval | nom eb6c4b: OUTPUT«alive» | ||
masak | nom: sub foo { ??? }; foo; say "alive" | ||
p6eval | nom eb6c4b: OUTPUT«Stub code executedalive» | ||
masak | nom: sub foo { !!! }; foo; say "alive" | ||
p6eval | nom eb6c4b: OUTPUT«Stub code executed in sub foo at /tmp/ariRzjFSxp:1 in block <anon> at /tmp/ariRzjFSxp:1 in <anon> at /tmp/ariRzjFSxp:1» | ||
masak | nom: sub foo { ... }; foo.^name | ||
p6eval | nom eb6c4b: ( no output ) | ||
tadzik | nom: sub foo { <...> }; foo; say "alive" | ||
p6eval | nom eb6c4b: OUTPUT«alive» | ||
masak | nom: sub foo { ... }; say foo.^name | ||
p6eval | nom eb6c4b: OUTPUT«Failure» | ||
tadzik | masak: github.com/mberends/http-server-simple/pull/4 | 11:44 | |
masak | tadzik: as far as I know, that's just a string with funny syntax. | ||
tadzik | oh, sane | ||
nom: sub foo { <...> }; say foo.perl | |||
p6eval | nom eb6c4b: OUTPUT«"..."» | ||
tadzik | yep | ||
masak | & | ||
11:45
donri left
12:08
Trashlord joined
12:23
am0c left
12:41
sayu_ joined
12:42
sayu left
12:46
sayu_ left
12:50
sayu joined
13:06
PacoLinux joined
13:07
x3nU joined
13:24
mkramer joined
13:31
zhangkaizhao joined
13:37
sftp joined
13:42
IngisKahn left
13:44
Trashlord left
13:52
kaleem left
14:08
Chillance joined
14:26
lateau_ joined
14:32
mkramer left
14:33
mkramer joined
14:41
mkramer left
14:43
mkramer joined,
mkramer left
14:50
Trashlord joined
14:51
mkramer joined
14:55
TimTom left
15:03
mkramer left,
sayu left
15:04
lateau_ left,
bluescreen10 joined
15:05
mkramer joined
15:28
am0c^ joined
15:40
risou_awy is now known as risou
15:55
benabik left
15:57
TimTom joined
15:58
benabik_ joined
16:06
am0c joined,
colomon_ joined
16:07
colomon left,
colomon_ is now known as colomon
|
|||
masak | quiet today. is everyone in a post-Christmas dinner coma? | 16:30 | |
or are you absorbed by the p6cc problems? :P | |||
tadzik | more like in-a-cold coma :/ | ||
masak | aww | ||
tadzik | not even in a mood for hacking | 16:31 | |
but did some psgi/POST research for HTTP::Server::Simple | |||
masak puts on armor and hugs tadzik :) | |||
tadzik | :) | ||
ha | 16:32 | ||
twitter.com/#!/samvtran/status/151...3386315776 | |||
it was a good move to merge it :) | |||
masak | \o/ | 16:33 | |
I never saw the the point of those angle brackets, though. | 16:34 | ||
tadzik | they're just workaround | ||
in this case | |||
could've been removed completely and the effect would've been similar | 16:35 | ||
masak | ah. | 16:36 | |
tadzik | now they just return "..." | ||
but they're either never called, or their result is ignore | 16:37 | ||
d | |||
tadzik ponders giving some serious love to H::S::Simple | |||
colomon has been pondering making a serious effort to port panda to niecza -- but $work and family will probably keep tuits in short supply for a couple of days | 16:38 | ||
masak | (Panda on Niecza)++ | 16:40 | |
16:42
glitchmr joined,
glitchmr is now known as GlitchMr
16:43
GlitchMr left
16:48
jaldhar left
16:49
x3nU left
16:52
pmurias joined
16:54
jaldhar joined
|
|||
ruoso have been trying to get some word from the parrot folks on the "blocking buffered stream" idea | 16:58 | ||
masak | yes, nice email thread. | ||
kudos. | |||
TimTom | Hi. I'm looking for a way to either get the cross operator to return it's items as an list of arrays or for the for loop to take n items at a time without being forced to specify n scalar variables. As an example of the list generation... | 17:01 | |
rakudo: my @a = (1,2,3); my $n = 2; say infix:<X>(|(en.wikipedia.org/wiki/Special:Searc...;search=@a xx $n)); | |||
p6eval | rakudo eb6c4b: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2» | ||
TimTom | oh good. it interpreted that... | ||
rakudo: my @a = (1,2,3); my $n = 2; say infix:<X>(|([ [@a] ] xx $n)); | |||
p6eval | rakudo eb6c4b: OUTPUT«1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3» | ||
masak | TimTom: hi. sounds like you maybe want lol context. | 17:03 | |
"lol" here stands for "list of lists". | |||
TimTom | masak: most likely. How would I get said context? | ||
masak | I'm not so sure it's fully supported yet... so, workaround, most likely. | ||
here, let me dig up the relevant piece of spec for you. | 17:04 | ||
ruoso | say infix:<X>(|([ [1,2,3] ] xx 2)).perl | ||
nom: say infix:<X>(|([ [1,2,3] ] xx 2)).perl | |||
p6eval | nom eb6c4b: OUTPUT«((ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),)).list» | ||
ruoso | nom: say infix:<X>(|([ [1,2,3] ] xx 2)) | 17:05 | |
p6eval | nom eb6c4b: OUTPUT«1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3» | ||
ruoso | nom: $a := infix:<X>(|([ [1,2,3] ] xx 2)); say $a[0;0]; | ||
p6eval | nom eb6c4b: OUTPUT«===SORRY!===Variable $a is not predeclared at line 1, near " := infix:"» | ||
masak | hm. I don't see any particular synopsis "introducing" lol context. | 17:06 | |
ruoso | nom: my $a := infix:<X>(|([ [1,2,3] ] xx 2)); say $a[0;0]; | ||
p6eval | nom eb6c4b: OUTPUT«ListIter.new()» | ||
ruoso | nom: my $a := infix:<X>(|([ [1,2,3] ] xx 2)); say $a[0;0;0]; | ||
p6eval | nom eb6c4b: OUTPUT«ListIter.new()» | ||
ruoso | nom: my $a := infix:<X>(|([ [1,2,3] ] xx 2)); say $a[0;0].get; | ||
p6eval | nom eb6c4b: OUTPUT«Method 'get' not found for invocant of class 'Parcel' in block <anon> at /tmp/1CqkbYX8Dg:1 in <anon> at /tmp/1CqkbYX8Dg:1» | ||
TimTom | I know it's referenced at least in the spec. In fact, it's referecned right in the cross operator section | ||
but there's no explanation on how I would transform something into them. | |||
ruoso | nom: my $a := infix:<X>(|([ [1,2,3] ] xx 2)).lol; say $a[0;0].get; | 17:07 | |
p6eval | nom eb6c4b: OUTPUT«Method 'lol' not found for invocant of class 'List' in block <anon> at /tmp/8nn1qc4s8X:1 in <anon> at /tmp/8nn1qc4s8X:1» | ||
TimTom | I'm not sure how it affects the infix notation, but you want X, instead of X to get it into a semblance of a list of list for the return value. But it still ends up treated as a single list for iteration | 17:08 | |
ruoso | p6eval nom: my $a := infix:<X>(|([ [1,2,3] ] xx 2)); say $a[1][1]; | ||
p6eval | ruoso: nom eb6c4b: OUTPUT«2» | ||
TimTom | oooh | ||
ruoso | the bind operator will defer context enforcement | 17:09 | |
so you will get the actual iterators | |||
in this case, $a[1;1] was supposed to work as well | 17:10 | ||
but I guess it's not making the correct context | 17:11 | ||
There was also a "capture context", but I'm not sure that ever got accepted/implemented | |||
p6eval nom: my ¢a = infix:<X>(|([ [1,2,3] ] xx 2)); say $a[1][1]; | 17:12 | ||
p6eval | ruoso: nom eb6c4b: OUTPUT«===SORRY!===Malformed my at line 1, near "\x{a2}a = infix"» | ||
ruoso | p6eval nom: my ¢a = infix:<X>(|([ [1,2,3] ] xx 2)); say ¢a[1][1]; | ||
p6eval | ruoso: nom eb6c4b: OUTPUT«===SORRY!===Malformed my at line 1, near "\x{a2}a = infix"» | ||
ruoso | p6eval std: my ¢a = infix:<X>(|([ [1,2,3] ] xx 2)); say ¢a[1][1]; | ||
p6eval | ruoso: std dc62e1d: OUTPUT«===SORRY!===Malformed my at /tmp/H30mtq9BPc line 1:------> my ⏏¢a = infix:<X>(|([ [1,2,3] ] xx 2)); say expecting scoped declaratorParse failedFAILED 00:01 120m» | ||
ruoso | yep... not accepted/implemented | 17:13 | |
TimTom | nom: my $a := infix:<X>(|([ [1,2,3] ] xx 2)); for $a -> $elem { say $elem; } | ||
p6eval | nom eb6c4b: OUTPUT«111213212223313233» | ||
TimToady | we have a parcel context introduced with \ instead | ||
TimTom | it's still flattening when used in a for loop | ||
ruoso | TimTom: for will flatten the elements.. | 17:14 | |
TimTom | ruoso: as will any listy context. assigning it to @d also gets the same result | 17:15 | |
TimToady | lol is still unimplemented | ||
TimTom | I suppose I could instead iterate over ^$a.elems | ||
colomon | TimToady! \o/ | ||
ruoso | doesn't the Parcel have an API to get the immediate elements? | 17:16 | |
TimToady | nom: my $a := infix:<X>(|([ [1,2,3] ] xx 2)); say $a[0].perl | 17:17 | |
p6eval | nom eb6c4b: OUTPUT«(ListIter.new(),)» | ||
TimToady | nom: my $a := ([1,2,3],[4,5,6]); say $a[0].perl | 17:18 | |
p6eval | nom eb6c4b: OUTPUT«[1, 2, 3]» | ||
ruoso | nom: my $a := ((1,2,3),(4,5,6)); say $a[0].perl | 17:19 | |
p6eval | nom eb6c4b: OUTPUT«1» | ||
ruoso | wasn't that supposed to have two Parcels? | ||
TimToady | I would tend to think so | 17:20 | |
nom: my $a := ((1,2,3),(4,5,6)); say $a.perl | 17:21 | ||
p6eval | nom eb6c4b: OUTPUT«((1, 2, 3), (4, 5, 6))» | ||
ruoso | hmm... $a[0] is forcing flat list context | 17:22 | |
nom: my $a := ((1,2,3),(4,5,6)); say $a[0;0].perl | |||
p6eval | nom eb6c4b: OUTPUT«1» | ||
ruoso | nom: my $a := ((1,2,3),(4,5,6)); say $a[0;1].perl | ||
p6eval | nom eb6c4b: OUTPUT«2» | ||
TimToady | nobody implements ; yet either | 17:23 | |
ruoso | ah. ok. | ||
TimToady | in fact, S09 has mostly been completely ignored | ||
ruoso | nom: say Parcel.^methods | ||
p6eval | nom eb6c4b: OUTPUT«Parcel Capture flat item list lol at_pos postcircumfix:<[ ]> STORE FLATTENABLE_LIST FLATTENABLE_HASH fmt of Bool Numeric Str ACCEPTS gist perl DUMP abs conjugate sqrt sign rand sin asin cos acos tan atan atan2 sec asec cosec acosec cotan acotan sinh asinh cosh acosh t… | ||
TimToady | nom: my $a := ((1,2,3),(4,5,6)); say $a.lol.perl | 17:24 | |
p6eval | nom eb6c4b: OUTPUT«LoL.new((1, 2, 3), (4, 5, 6))» | ||
TimToady | nom: my $a := ((1,2,3),(4,5,6)); say $a.lol[0]perl | ||
p6eval | nom eb6c4b: OUTPUT«===SORRY!===Confused at line 1, near "say $a.lol"» | ||
ruoso | nom: my $a := ((1,2,3),(4,5,6)); say $a.lol[0].perl | ||
TimToady | nom: my $a := ((1,2,3),(4,5,6)); say $a.lol[0].perl | ||
p6eval | nom eb6c4b: OUTPUT«(1, 2, 3)» | ||
ruoso | hah | ||
TimToady | looks like we have some lols | ||
ruoso | nom: my $a := infix:<X>(|([ [1,2,3] ] xx 2)).lol; say $a.lol[0][0]; | ||
p6eval | nom eb6c4b: OUTPUT«Method 'lol' not found for invocant of class 'List' in block <anon> at /tmp/KNC1ANnUM_:1 in <anon> at /tmp/KNC1ANnUM_:1» | ||
TimToady | I suspect it's only the minimum lol-hood to implement ** binding | 17:25 | |
but I'm exactly two weeks behind in backlogging due to brane malfunction, so don't quote me on anything | 17:26 | ||
ruoso | I am afraid infix:<X> is flattening too early | 17:33 | |
hmm... nope... it's not | 17:34 | ||
nom: say infix:<X>(|(((1,2,3) xx 2)))[8][1].perl | 17:35 | ||
p6eval | nom eb6c4b: OUTPUT«3» | ||
17:35
zhangkaizhao left
|
|||
TimToady | perl6: say ([1,2,3] X [4,5,6]).elems | 17:35 | |
p6eval | niecza v12-183-g8fef06e: OUTPUT«1» | ||
..pugs b927740, rakudo eb6c4b: OUTPUT«9» | |||
TimToady | 1 is correct there | 17:36 | |
so yes, nom is flattening wrongly | |||
masak | aye. | 17:37 | |
TimToady | [] should not flatten in a list context | ||
masak | submitted a rakudobug about that yesterday. | ||
(but with &take, not infix:<X>) | |||
suspect it's the same root cause, though. namely, &take :) | |||
ruoso | hmm.. why is 1 correct? isn't .elems being called on the parcel with the results? | 17:38 | |
TimToady | perl6: say (([1,2,3],[1,2,3])).elems | 17:41 | |
p6eval | pugs b927740, rakudo eb6c4b, niecza v12-183-g8fef06e: OUTPUT«2» | ||
masak | 2!? | ||
TimToady | .elems appears to be flattening | 17:42 | |
perl6: say ([1,2,3] X [1,2,3]).perl | |||
p6eval | pugs b927740: OUTPUT«((1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3))» | ||
..niecza v12-183-g8fef06e: OUTPUT«([1, 2, 3], [1, 2, 3]).list» | |||
..rakudo eb6c4b: OUTPUT«((ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),)).list» | |||
ruoso | perl6: say ((1,2,3) X (1,2,3)).perl | 17:43 | |
p6eval | pugs b927740: OUTPUT«((1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3))» | ||
..rakudo eb6c4b: OUTPUT«((ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),)).list» | |||
..niecza v12-183-g8fef06e: OUTPUT«(1, 1, 1, 2, 1, 3, 2, 1, 2, 2, 2, 3, 3, 1, 3, 2, 3, 3).list» | |||
TimToady | niecza is wrong there in losing the subparcels from X, I think | 17:44 | |
17:44
cognominal left
|
|||
TimToady | otoh, your inner parens are supposedly noops | 17:45 | |
perl6: say (1,2,3 X 4,5,6).perl | |||
p6eval | niecza v12-183-g8fef06e: OUTPUT«(1, 4, 1, 5, 1, 6, 2, 4, 2, 5, 2, 6, 3, 4, 3, 5, 3, 6).list» | ||
..rakudo eb6c4b: OUTPUT«((ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),), (ListIter.new(),)).list» | |||
..pugs b927740: OUTPUT«((1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6))» | |||
17:46
cognominal joined,
yunga joined
|
|||
ruoso | yeah.. true... but the effect was supposed to be the same yet... I think pugs is correct there.. | 17:46 | |
TimToady | it at least provides that appearance :) | 17:47 | |
masak | Rakudo is just being weird in this case. | ||
ruoso | but [1,2,3] is supposed to be different than plain 1,2,3 | 17:52 | |
perl6: say [1,2,3].perl; say (1,2,3).perl; | |||
p6eval | pugs b927740, rakudo eb6c4b, niecza v12-183-g8fef06e: OUTPUT«[1, 2, 3](1, 2, 3)» | ||
ruoso | perl6: say [1,2,3].HOW; say (1,2,3).HOW; | ||
p6eval | niecza v12-183-g8fef06e: OUTPUT«ClassHOW.new(...)ClassHOW.new(...)» | ||
..rakudo eb6c4b: OUTPUT«Method 'gist' not found for invocant of class 'Perl6::Metamodel::ClassHOW' in sub say at src/gen/CORE.setting:5649 in block <anon> at /tmp/0BfXLX4lvT:1 in <anon> at /tmp/0BfXLX4lvT:1» | |||
..pugs b927740: OUTPUT«<obj:Class><obj:Class>» | |||
masak | [backlog] wow, the discussion abotu <numish> and LTM is eye-opening. I hadn't realized how much subrule parsing and calling actions can "get out of sync". | 17:53 | |
ruoso | TimToady: btw, if you could take a look at a thread in parrot-dev I just posted, it would be interesting to get some confirmation about some expectations about concurrency... | 17:56 | |
lists.parrot.org/pipermail/parrot-d...06506.html if you're not subscribed | 17:57 | ||
moritz | \o | 17:59 | |
18:01
whiteknight joined,
whiteknight is now known as Guest89987
|
|||
masak | moritz! \o/ | 18:01 | |
18:02
fglock joined
18:04
am0c left
18:08
mkramer left
18:10
mkramer joined
|
|||
sorear | good * #perl6 | 18:14 | |
masak: ah, understood. I will drop it then. | |||
masak | sorear: it's one of those "cute on paper" ideas, I think. | 18:15 | |
18:15
mkramer left
|
|||
sorear | niecza: say (1,2,3 X 4,5,6).raw-elem(2).perl # TimToady, known bug in .perl | 18:17 | |
p6eval | niecza v12-183-g8fef06e: OUTPUT«Unhandled exception: Unable to resolve method raw-elem in class List at /tmp/u0vVfpZ8vu line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2572 (ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2573 (module-CORE @ 61)  at /… | ||
sorear | niecza: say (1,2,3 X 4,5,6).raw_at(2).perl | 18:18 | |
p6eval | niecza v12-183-g8fef06e: OUTPUT«Unhandled exception: Unable to resolve method raw_at in class List at /tmp/tIhJvaDWkc line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2572 (ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2573 (module-CORE @ 61)  at /ho… | ||
sorear | ohright, it doesn't return a Parcel | 18:19 | |
I really need help understanding the finer points of LoL and .lol semantics | |||
18:21
GlitchMr joined
|
|||
masak | ruoso: I think jnthn will be interested in the current patrrot-dev thread. but he's currently on holiday. | 18:22 | |
ruoso: if I may channel him for a while, I'd say that "all sane concurrency will have to somehow build on CAS". | 18:27 | ||
ruoso | CAS? | 18:28 | |
masak | that seems relevant at least for serializing access to that increment counter in the discussion. | ||
en.wikipedia.org/wiki/Compare-and-swap | |||
ruoso | oh... but that is in a much lower level... | 18:29 | |
masak | yes, it's grounded in hardware. but the *idea* of it is useful even at higher levels. | 18:30 | |
in some sense, all the other atomicity concepts build on CAS as a primitive. | |||
so the question is "just" through which Perl 6 primitives we choose to expose it. | 18:31 | ||
ruoso | Yes... but I am talking on a level more abstract than that | ||
I am talking in the model on how information flows and how parallel things preempt each other | |||
masak | right. | ||
so it's more the "mental model of Perl 6" that you're interested in now. | 18:32 | ||
not how to ground it in the VM. | |||
18:32
carlin joined
|
|||
ruoso | with the exception that we would require one more vm primitive | 18:33 | |
that we used to | |||
which is the akin to unix pipes | |||
carlin | has something changed with how Q:PIR {} works in Rakudo? | 18:34 | |
18:34
mj41 joined
|
|||
carlin | I'm getting "Cannot assign a non-Perl 6 value to a Perl 6 container" on code that worked a few months ago | 18:34 | |
tadzik | carlin: what does the code return>? | ||
masak | well, I've always seen unix pipes as a kind of coroutines. so, basically equivalent to the gather/take primitive. | ||
TimToady | by default unix processes cannot modify their incoming env or arg values from the surrounding scopes | ||
masak | carlin: might need to containerize stuff explicitly nowadays. | 18:35 | |
carlin: maybe check how Rakudo's src/core/ does things. | |||
TimToady | also Q:PIR is deprecated in favor of nqp primitives | ||
carlin | ah ok | ||
masak | aye. | ||
carlin | so %r = box whatever isn't the way to go anymore? | 18:36 | |
tadzik | you may want to box that from the Perl 6 side | ||
like nqp::p6box_i(Q:PIR {}) for Int | |||
masak | ruoso: is there any reason I'm missing that things like '<==' would need more from Perl 6 than things like 'gather'? | ||
TimToady | any lazy list can potentially be implemented using threads in p6 | 18:37 | |
in that sense <== isn't so special | 18:38 | ||
but it is more of an indication that the user is thinking in parallel | |||
masak | to me it feels like "the same" primitive. | ||
TimToady | so the optimizer might make different choices | ||
we may also end up with some restrictions on how the inner scope of a thread can interact with its outer scope by default | 18:39 | ||
masak | I've been mentally labelling the thread-like thing that runs inside of a 'gather' as a 'co' (from 'coroutine') -- essentially a green thread. | ||
TimToady | that's fine until it blocks :) | 18:40 | |
masak | then it's a 'compet' :P | ||
TimToady: wouldn't it make sense from the optimizer's point-of-view to *completely* restrict the thread's interaction with the outer scope by default? | |||
and then have it ask nicely for permissions? | |||
TimToady | not necessary for constants | 18:41 | |
masak | feels analogous to making params readonly. | ||
TimToady | and for some known-unchanging values | ||
masak | sure, but those are not problematic anyway... | ||
TimToady | but basically it's okay for any input you have no say in the production of | ||
sorear | restricting interaction between coroutines and outer scopes is very problematic. I can't think how to implmenet it | 18:42 | |
TimToady | well, ssa-ish fresh-binding-only semantics help with the loops involving the return value, at least | 18:43 | |
masak | the boundary between threads isn't visible statically? | ||
18:43
pmurias left
|
|||
TimToady | it is in <==, at least at the top level, but not in subcalls | 18:43 | |
sorear | masak: threads can call functions outside them, like &infix:<+> | ||
masak | dang. | ||
masak de-trains, back in 30ish | 18:44 | ||
TimToady | anyway, our default is that it's the programmers fault, and if the compiler can help to detect badness, all the better | 18:45 | |
programs that rely on such side effects may become illegal in the future, which is a good reason to avoid programming in that style | 18:46 | ||
it's an open question what can be caught in the absense of a monadic lifestyle, though... | |||
and monads are not P6's job to inflict on the minds of programmers | 18:47 | ||
or however a sane person would say that... | |||
historically, Perl has not shied away from detecting specific problems just because the general problem is insoluable :) | 18:49 | ||
.oO("Your program is going to halt at line 42. You have been warned.") |
18:50 | ||
18:52
thou joined
18:54
MayDaniel joined,
am0c^ left
19:00
Mowah joined
19:07
drbean left
19:11
risou is now known as risou_awy
19:13
drbean joined
19:14
donri joined
|
|||
sorear | TimToady: what do you think about <:XID_Start> and <:XID_Continue> ? | 19:15 | |
seems the Perl 5 folks have switched to using that to define identifiers | |||
19:19
cognominal left
19:21
cognominal joined
|
|||
TimToady | I don't think anything about them. | 19:24 | |
it does not reassure me that a google for XID_Start finds only old four-year-old discussions though | 19:27 | ||
I suppose if I put on my language designer meta-hat, I'd say that language designers don't like standards bodies telling them how to design their languages. :) | 19:31 | ||
ruoso | masak: it is a coroutine that can be run concurrently, yes | 19:38 | |
we could consider that every gather spawns a new "concurrent task" | |||
dalek | ecza: 64376da | sorear++ | lib/CORE.setting: Seems STD wants <alpha> to match "_" |
19:39 | |
sorear | now running the pre-release spectest | ||
moritz | niecza: say so '_' ~~ /<:alpha>/ | 19:40 | |
p6eval | niecza v12-183-g8fef06e: OUTPUT«Bool::False» | ||
sorear | :alpha is the Unicode property "Alphabetic" | 19:42 | |
<alpha> is now defined as <:alpha + [_]> | |||
moritz | yes, I'm aware | 19:45 | |
just thought I'd check :-) | 19:46 | ||
TimToady | maybe we should rename that to <al_pha> :) | ||
more seriously, maybe it should be <wchar> if it reflects \w | 19:47 | ||
but I shouldn't be designing anything till my brane improves a bit more... | 19:48 | ||
19:49
IngisKahn joined
19:57
drbean left
|
|||
sorear | aaaaa wchar_t | 19:58 | |
19:58
mj41 left
|
|||
TimToady | right...well, <w> is maybe available, but \w is still shorter :) | 19:59 | |
anyway, as I say, I'm still not quite up to weighing tradeoffs in my head | 20:00 | ||
at least I can think about one thing at a time now... | |||
last week it was more like .5 things at a time | |||
s/week/month/ | 20:02 | ||
20:02
icwiener joined
|
|||
masak | ruoso: "concurrent task" is a cute term. I like. | 20:02 | |
20:03
GlitchMr left,
drbean joined,
benabik_ left
|
|||
ruoso | masak: parrot uses the term 'task' as the generic for "green thread" or "os thread" | 20:04 | |
masak | ooh, nice. | ||
20:06
fglock left
20:08
fridim_ joined
20:24
bbkr1 left
20:25
cognominal_ joined
20:27
drbean left
20:28
cognominal left
20:31
ksi joined
20:33
drbean joined
20:34
bbkr1 joined
20:45
Mowah left
20:46
mj41 joined
20:50
donri left
20:54
molaf joined
21:04
[particle] joined
21:06
ilogger2 joined,
ChanServ sets mode: +v ilogger2
|
|||
dalek | ecza: 66cefa7 | sorear++ | Makefile: github.com has a valid SSL certificate now |
21:14 | |
ecza: a22318d | sorear++ | FETCH_URL: Update FETCH_URL |
|||
masak | 'night, #perl6 | 21:15 | |
sorear | v13 ann sent | ||
'night masak | 21:16 | ||
21:18
Yary joined
21:19
[particle] joined
|
|||
Yary | Hi. I updated my Rakudo git clone (after about a year of non-use) and a simple Grammar failed- pastebin.com/wA0G9qRY | 21:22 | |
is it my build, or has the syntax changed? | |||
colomon | probably syntax, give me a moment | 21:23 | |
hmmm... | 21:24 | ||
tadzik | shouldn't that be :actions(Math::Actions.new)? | ||
Yary | I'll try adding ".new" | 21:25 | |
21:25
arlinius joined
|
|||
colomon | parse definitely still has an :actions argument | 21:26 | |
Yary | same error here | ||
21:27
[particle] left
|
|||
Yary | Not sure it is a good build. There was a test failure: t/02-embed/01-load.t ............... Failed 1/1 subtests | 21:27 | |
colomon | Yary: it works for me | ||
Yary | OK that's good to know | ||
colomon | might be worth doing a "make realclean" and rebuilding everything from scratch | 21:28 | |
Yary | arrgh takes forever but OK | ||
realclan lost my makefile :-( | 21:30 | ||
have to go for a bit, thanks for the start though | |||
21:49
drbean joined
|
|||
Yary | just had to re-run Configure to get the Makefile back | 21:52 | |
22:05
drbean left
22:14
drbean joined
22:18
y3llow joined
22:19
pothos joined
22:20
y3llow left,
y3llow joined
22:22
pothos left,
pothos joined,
y3llow left
22:23
y3llow joined
|
|||
sorear needs a more ... statistically robust ... way to do timings | 22:23 | ||
22:24
y3llow left
22:25
y3llow joined,
pothos left,
pothos joined
|
|||
sorear | phenny: tell [Coke] What do I need to do to run autounfudge against niecza? | 22:31 | |
phenny | sorear: I'll pass that on when [Coke] is around. | ||
22:56
Yary left
|
|||
dalek | osystem: 5774692 | tadzik++ | META.list: Add Bailador |
22:56 | |
tadzik | nom: qr[/foo] | 23:10 | |
p6eval | nom eb6c4b: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 2» | ||
tadzik | std: qr[/foo] | ||
p6eval | std dc62e1d: OUTPUT«===SORRY!===Unable to parse regex; couldn't find final '/' at /tmp/AjjYKRPFG_ line 1:------> qr[/foo⏏] expecting any of: quantifier regex atomUndeclared routine: 'qr' used at line 1Parse failedFAILED 00:01 121m»… | ||
tadzik | hmm | ||
23:10
mj41 joined
|
|||
tadzik | std: qr[/foo/] | 23:10 | |
p6eval | std dc62e1d: OUTPUT«===SORRY!===Undeclared routine: 'qr' used at line 1Check failedFAILED 00:01 121m» | ||
tadzik | does it treat [/ as a delimiter? | ||
23:17
whsdu joined
|
|||
tadzik | gist.github.com/1522280 -- mostly working Bailador pastebin | 23:26 | |
23:38
whsdu left
|
|||
TimToady | why are you expecting qr to do anything special? | 23:40 | |
tadzik | I was expecting it to turn '/foo' into a regex | 23:41 | |
TimToady | that's a p5ism | ||
there is no qr in p6 | |||
tadzik | oh, ok | ||
TimToady | maybe you wanted rx[] | 23:42 | |
tadzik | probably, yes. Thank you | ||
23:43
mj41 left
23:48
drbean left
23:53
drbean joined
|