»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moritz_ on 25 June 2010. |
|||
dalek | kudo: ea8f2bb | chromatic++ | src/binder/bind.c: [src] Hoisted more STRINGs to constants in binder. |
00:04 | |
kudo: aa66397 | chromatic++ | src/binder/bind.c: [src] Hoisted more binder STRINGs to constants. |
|||
kudo: 4e3a1a1 | chromatic++ | src/pmc/objectref_pmc.template: [PMC] Promoted a frequent STRING to a CONST_STRING. optimization. |
|||
00:11
[Coke] joined
|
|||
colomon | TimToady: re slurp.words versus lines.words, in Rakudo slurp is not lazy, and lines is. That makes slurp vs lines very important... | 00:12 | |
afk # bathing | |||
[Coke] | is there a way in NQP to get a ref to a named sub, or do you have to use pir to do that? | 00:17 | |
sorear | just use the name of the sub | 00:23 | |
nqp: sub foo() {}; say(foo) | |||
p6eval | nqp: OUTPUT«foo» | ||
sorear | nqp: sub foo() {}; say(pir::typeof(foo)) | ||
p6eval | nqp: OUTPUT«The opcode 'typeof_p' (typeof<1>) was not found. Check the type and number of the argumentscurrent instr.: 'parrot;PCT;HLLCompiler;evalpmc' pc 1047 (compilers/pct/src/PCT/HLLCompiler.pir:554)» | ||
sorear | nqp: sub foo() {}; say(pir::typeof__sp(foo)) | ||
p6eval | nqp: OUTPUT«Sub» | ||
[Coke] | ah, had tried &foo | ||
00:25
Guest2485 left
|
|||
[Coke] | ... and my failure was due to a missing ; before that anyway. arg. | 00:25 | |
lue | afk | 00:27 | |
ash_ | ping moritz_? | 00:33 | |
00:41
masonkramer joined
|
|||
TimToady | colomon: but .words is not defined on a list currently | 00:45 | |
so you'd have to use lines».words | 00:46 | ||
or we define $*IN.words, or make words also default to argfiles | 00:47 | ||
00:47
Visitor99 joined
|
|||
TimToady | but a "double split" by both lines and words really bugs me for some reason | 00:48 | |
00:50
plobsing joined
01:12
Guest1208 left
01:16
jferrero left,
Guest1208 joined
01:36
colomon joined
01:52
[Coke] left
01:55
xinming_ is now known as xinming
02:09
spinclad joined
02:24
nimiezko left
02:30
TiMBuS joined
02:46
Solarion joined
|
|||
ash_ | std: 0b0001010; | 02:51 | |
p6eval | std 31449: OUTPUT«ok 00:01 109m» | ||
ash_ | std: 0x123 | ||
p6eval | std 31449: OUTPUT«ok 00:01 107m» | ||
02:51
fridim joined
|
|||
ash_ | std: 0xdeadbeef; | 02:51 | |
p6eval | std 31449: OUTPUT«ok 00:01 106m» | ||
ash_ | std: 0xg | 02:52 | |
p6eval | std 31449: OUTPUT«===SORRY!===Whitespace is required between alphanumeric tokens at /tmp/8hYbX5DbXP line 1:------> 0⏏xgWhitespace is required between alphanumeric tokens at /tmp/8hYbX5DbXP line 1:------> 0x⏏gUndeclared routine: 'g' | ||
..used a… | |||
ash_ | std: 0o09 | ||
p6eval | std 31449: OUTPUT«===SORRY!===Whitespace is required between alphanumeric tokens at /tmp/xSYBzEd0HH line 1:------> 0o0⏏9Two terms in a row at /tmp/xSYBzEd0HH line 1:------> 0o0⏏9 expecting any of: POST bracketed infix infix or | ||
..meta-i… | |||
ash_ | std: 0x07 | 02:53 | |
p6eval | std 31449: OUTPUT«ok 00:01 107m» | 02:54 | |
ash_ | std: 0o77 | ||
p6eval | std 31449: OUTPUT«ok 00:01 107m» | ||
02:55
redicaps joined
03:00
Guest1208 left
03:01
meppel joined
|
|||
colomon is in your compilerz, programming in PIR | 03:07 | ||
lue | ohai i brok PIR bai | 03:10 | |
03:17
patspam joined
|
|||
colomon | pmichaud: new version of number interpreting code is still a bit slower than the old version (22 sec versus 15 sec to execute my all number test) but as far as I can tell (spectest still in progress) it is correct. I think this version is a winner. | 03:19 | |
03:23
whiteknight left
03:33
envi^home joined
03:36
hercynium joined,
jaldhar left
03:48
jrtayloriv joined
03:59
mepplock joined
04:03
meppel left
04:06
jaldhar joined
04:11
JimmyZ joined
04:12
Guest23195 joined
04:13
redicaps left,
justatheory left
04:18
patspam left
|
|||
ash_ | anyone home? | 04:19 | |
anyone have any comments on greaterthaninfinity.com/shell/ (its not functional yet, it's only pretending for now) | |||
you can try doing things like putting in "my $a = 'Hello World';" | 04:20 | ||
it syntax highlights (sorta) | |||
sorear | are you using the STD highighter? | 04:21 | |
ash_ | when your typing in the text-area box and press enter, it sends the current contents | ||
no, i just made it up in the last hour | |||
its very incomplete, but its a start | |||
shift + enter lets you put a new line in the textarea box | 04:22 | ||
so if you want to write multiple lines before you return, you can | |||
the textbox grows too, if you do more than 1 line | |||
clear | |||
will clear the screen | |||
sorear | Q:PIR { exit } | ||
→Confused at line 1, near "a * 3\n" | 04:23 | ||
ash_ | oh thats a fake error code | ||
its not actually executing anything | |||
every 3 lines it puts that out | |||
sorear | so you put in random fake errors? | ||
ash_ | so i could test what an error might look like | ||
sorear | har har | ||
ash_ | its not executing it at all currently, so yup... | ||
sorear | ok, I'll stop trying to crack your webserver | 04:24 | |
ash_ | sorear: does it look semi-okay so far to you? | ||
lol, its all static so far so good luck | |||
sorear | yes | ||
sorear jokes | |||
ash_ | it can do number literals too, (with the 0x 0o 0d 0b variants) | 04:25 | |
oops, i forgot to allow $_ as a variable | 04:26 | ||
well, just wanted to show someone else that | 04:27 | ||
04:32
jrtayloriv left
|
|||
ash_ | msg moritz_ I got a basic interface started, greaterthaninfinity.com/shell/ if you want to see it, it doesn't execute anything yet, it just is a front end. You can try out the console, it does some basic syntax highlighting too | 04:33 | |
hmm | |||
is the message bot down? | 04:34 | ||
sorear | no | ||
you're just on a different network | |||
you used purl syntax | |||
phenny: tell ash_ this is how we do messages here. | |||
phenny | sorear: I'll pass that on when ash_ is around. | ||
ash_ | ah, oops | 04:35 | |
phenny | ash_: 04:34Z <sorear> tell ash_ this is how we do messages here. | ||
ash_ | phenny: tell moritz_ I got a basic interface started, greaterthaninfinity.com/shell/ if you want to see it, it doesn't execute anything yet, it just is a front end. You can try out the console, it does some basic syntax highlighting too, comments or questions are welcome | ||
phenny | ash_: I'll pass that on when moritz_ is around. | ||
ash_ | heading to bed & | ||
05:03
mepplock left
|
|||
ciphertext | colomon: ping | 05:07 | |
05:31
envi^home left
05:42
orafu joined
|
|||
moritz_ | ash_: shell looks very good, thank you | 06:00 | |
phenny | moritz_: 04:35Z <ash_> tell moritz_ I got a basic interface started, greaterthaninfinity.com/shell/ if you want to see it, it doesn't execute anything yet, it just is a front end. You can try out the console, it does some basic syntax highlighting too, comments or questions are welcome | ||
06:01
ashleydev joined
|
|||
diakopter | moritz_: to answer your question, I don't know | 06:16 | |
it's currently at a crossroads while sorear explores many design options. | 06:17 | ||
my tuits aren't so round lately | |||
06:25
mberends joined
|
|||
mberends | im in ur belgianperlworkshop, drinkin ur coffee | 06:26 | |
moritz_ | mberends: fakedbi them! | ||
mberends | heh, morning moritz_ :) | 06:27 | |
moritz_ | good morning | ||
mberends | overnight I got about half of HTTP::Server::Simple::PSGI ported and working | 06:34 | |
06:34
ashleydev left
|
|||
moritz_ | wow - sever case of insomnia? :-) | 06:35 | |
*severe | |||
mberends | during coach journey from London :) | 06:36 | |
moritz_ | :-) | ||
mberends | had a nice day teaching P5 to noobs in a company | ||
yesterday | 06:37 | ||
06:48
Su-Shee joined
06:50
Visitor99 left,
JimmyZ left
06:55
zkw joined
06:56
zkw left
06:58
cls_bsd joined
07:20
xinming left,
mberends left,
xinming joined
|
|||
dalek | meta: r344 | stefa...@cox.net++ | trunk/vicil/ (2 files): [vicil] Rationalize separation of Scope/CallFrame and Body/Code |
07:22 | |
pugssvn | r31450 | moritz++ | fudge series tests for Rakudo | ||
07:24
xenor joined
|
|||
dalek | kudo: 6769e19 | moritz++ | t/spectest.data: series-simple.t is gone, series-nonnueric.t works now |
07:24 | |
07:26
xenor left
07:27
sjohnson joined
07:28
tylercurtis joined
07:29
Mowah left
|
|||
tylercurtis | rakudo: say [\+] [\+] 1 xx 5 | 07:33 | |
p6eval | rakudo ea8f2b: ( no output ) | ||
tylercurtis | pugs: say [\+] [\+] 1 xx 5 | ||
p6eval | pugs: OUTPUT«1361015» | ||
07:34
mberends joined
|
|||
moritz_ | rakudo: say ([\+] 1 xx 5).perl | 07:35 | |
p6eval | rakudo ea8f2b: OUTPUT«(1, 2, 3, 4, 5)» | ||
moritz_ | rakudo: say ([\+] ([\+] 1 xx 5)).perl | ||
p6eval | rakudo ea8f2b: OUTPUT«()» | ||
moritz_ | wow, that's a weird bug | ||
tylercurtis: do you want to submit it? or should I? | |||
tylercurtis | rakudo: say ([\+] [[\+] 1 xx 5]) | 07:36 | |
p6eval | rakudo ea8f2b: OUTPUT«1361015» | ||
moritz_ | rakudo: say ([\+] [[\+] 1 xx 5]).perl | ||
p6eval | rakudo ea8f2b: OUTPUT«(1, 3, 6, 10, 15)» | ||
tylercurtis | moritz_: I'm not particularly familiar with RT, so I'd be grateful if you would. | 07:37 | |
moritz_ | rakudo: say ([\+] (1, 2, 3, 4 5)).perl | ||
p6eval | rakudo ea8f2b: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11» | ||
moritz_ | rakudo: say ([\+] (1, 2, 3, 4, 5)).perl | ||
p6eval | rakudo ea8f2b: OUTPUT«(1, 3, 6, 10, 15)» | ||
moritz_ | tylercurtis: sure, will do | ||
07:38
Mowah joined
|
|||
tylercurtis | moritz_: Thanks. | 07:40 | |
moritz_ | rakudo: say [\+] [\+] 1, 1 | 07:41 | |
p6eval | rakudo ea8f2b: ( no output ) | ||
sorear | rakudo: say ([\+] 1, 1).WHAT | 07:45 | |
p6eval | rakudo ea8f2b: OUTPUT«List()» | ||
sorear | rakudo: say (1, 1).WHAT | ||
p6eval | rakudo ea8f2b: OUTPUT«Parcel()» | ||
07:45
mmcleric joined
|
|||
sorear | rakudo: say (1, 2 ... 5).WHAT | 07:46 | |
p6eval | rakudo ea8f2b: OUTPUT«List()» | ||
sorear | rakudo: say [\+] (1, 2 ... 5) | ||
moritz_ | rakudo: say (1 xx 5).WHAT | ||
p6eval | rakudo ea8f2b: OUTPUT«1361015» | ||
rakudo ea8f2b: OUTPUT«List()» | |||
moritz_ | sorear: the curious thing is that [\+] [ [\+] @list ] works | ||
erm, "works" | 07:47 | ||
sorear | it shouldnt'... | ||
moritz_ | I know | ||
07:48
tadzik joined,
Mowah left
07:49
Mowah joined
|
|||
moritz_ | funny thing is, when I add a pir::printerr__vs($list.perl); | 07:55 | |
after line 161 in src/core/metaops.pm | |||
it works | |||
08:00
perl7 joined
08:03
Ross joined
|
|||
jnthn | oh lol I'm at a Perl event | 08:07 | |
08:08
perl7 is now known as prz
|
|||
moritz_ | jnthn: which one? .be? | 08:11 | |
jnthn | moritz_: Indeed. | 08:12 | |
jnthn thinks it'll .be a good one :-) | 08:13 | ||
hmmm | 08:19 | ||
rakudo: my @squares = (0..*).map: { $^x * $^y }; | |||
rakudo: my @squares = (0..*).map: { $^x * $^y }; say "ok"; | 08:20 | ||
Is that not lazy yet? | |||
p6eval | rakudo ea8f2b: ( no output ) | ||
sorear | jnthn: correct, map isn't lazy | 08:22 | |
08:22
synth joined
|
|||
sorear | rakudo thinks that map == for | 08:22 | |
TiMBuS | but what about mapiter? | 08:23 | |
jnthn | that's...odd. | 08:24 | |
moritz_ | no | ||
it's the = that's not lazy | |||
jnthn | I think it's array storage | ||
moritz_ | map itself is | ||
TiMBuS | that makes more sense | ||
jnthn | moritz_: ah. | ||
:-( | |||
rakudo: for 1..* -> $n { say $n * $n; last if $n > 10; } | 08:25 | ||
p6eval | rakudo ea8f2b: OUTPUT«149162536496481100121» | ||
jnthn | heh, for is lazy now, huh. :-) | ||
moritz_ | well | 08:26 | |
only the evaluation of its argument | 08:27 | ||
TiMBuS | rakudo: my $squares = (0..*).map: { $^x * $^y }; $squares[4]; | ||
p6eval | rakudo ea8f2b: ( no output ) | ||
moritz_ | if it were lazy itself, it wouldn't do anything | ||
TiMBuS | wuh | ||
jnthn | moritz_: *NOD8 | ||
doh, keyboard fail | |||
sorear | I feel like there was something in one of the Synopses that explained "class" in terms of a sequence of calls to ClassHOW, but I can't find it with grep | 08:35 | |
Am I only imagining this? | 08:38 | ||
08:39
sorear sets mode: +vvvv p6eval hugme _ilbot2 dalek
08:40
sorear sets mode: +ooo dukeleto mberends colomon
|
|||
jnthn | sorear: I think S12 has language along those lines | 08:41 | |
sorear: Though ClassHOW is not explicitly mentioned. | |||
08:44
envi^home joined
08:54
prz_ joined
|
|||
sorear | I'm also kinda interested to know about knowhow | 08:54 | |
std: augment knowhow class { ... } | |||
p6eval | std 31450: OUTPUT«===SORRY!===Can't augment knowhow class without MONKEY_TYPING at /tmp/xPTP3RbneW line 1:------> augment knowhow class ⏏{ ... }Potential difficulties: Can't augment knowhow class because it doesn't exist at /tmp/xPTP3RbneW line 1:------> | ||
..[… | |||
08:55
prz left,
prz_ is now known as prz
08:58
tylercurtis left
|
|||
jnthn | sorear: I'm interested too - I want to gradually take Rakduo's metamodel to have that primitive as a foundation. | 09:01 | |
And write our ClassHOW and RoleHOW in terms of it. | |||
09:17
plobsing left
|
|||
sorear | jnthn: what *is* the primitive, though? | 09:23 | |
jnthn | sorear: afaik, it's a "pure prototype" | ||
sorear | It's not mentioned in the synopses and it has no tests | ||
jnthn | sorear: Indeed, it's not spec yet. | ||
sorear | This will be something to discuss in the meeting, I guess | ||
jnthn | sorear: Nor is the metamodel API. | ||
sorear: It's one of those things where I expect the implementations will need to decide what is agreeable accross them to be spec, and what will be implementation specific. | 09:24 | ||
sorear | Under what conditions are you allowed to augment a class by adding a new attribute | ||
? | |||
jnthn | sorear: At the end of the day, the decision is taken by the metaclass. | ||
sorear | I mean, for the default metaclass | ||
jnthn | e.g. it can throw an exception from add_attribute if the class was already composed | ||
For ClassHOW, I'm not sure. | 09:25 | ||
sorear | Obviously JoeHOW can decide however it wants | ||
jnthn | My impression is that you are meant to be allowed to. | ||
But it's...ugh...to implement. :-S | |||
The spec doesn't say "certainly yes" or "certainly no" either. | 09:26 | ||
sorear | What does it mean to compose a class, and when does it happen? | ||
jnthn | Composition time is when we do things like compose in the roles, detect missing required methods and conflicts, produce a type object... | 09:27 | |
It happens after the class has been fully defined | |||
sorear | At the closing brace? Or CHECK? | 09:28 | |
jnthn | I believe it's meant to happen at the closing brace. | ||
So in theory | |||
class C { method foo() { say 42 } }; BEGIN { C.foo } # should work | |||
moritz_ has a case of totally wrong line number | 09:29 | ||
jnthn | OH NOES | ||
moritz_: How rong is rong? | |||
moritz_ | jnthn: line 67 for a 30 line file | ||
jnthn | lol | ||
moritz_ | rakudo: class A { has $.x is rw }; A.new.x(5) | 09:30 | |
p6eval | rakudo 6769e1: OUTPUT«too many positional arguments: 2 passed, 1 expected in main program body at line 67» | ||
moritz_ | you see, line 67 | ||
jnthn | .. | ||
wtf. | |||
Epic fail! | |||
moritz_ submits rakudobug | |||
jnthn | plz to file ... yes that :-) | ||
moritz_ | rakudo: class A { has $.x }; A.new.x(5) | 09:33 | |
p6eval | rakudo 6769e1: OUTPUT«too many positional arguments: 2 passed, 1 expected in main program body at line 65» | ||
moritz_ | hey, not quite so rong :-) | ||
jnthn | ooooooh! | ||
sorear .o( sub die($exn) { my $f = callframe; while $f { if $f.exception-skip-to -> $nf { $f = $nf; next }; if $f.exception-handler -> $h { return $h($exn); }; $f = $f.caller; }; note("Internal error: exception handling ran off end"); exit(1); } ) | |||
jnthn | moritz_: Look at src/metamodel/attribute.nqp line 67 ;-) | 09:34 | |
moritz_ | I guess the accessor is somewhere... right | ||
jnthn | lol | ||
sorear | (this is what I'm planning to use in sprixel) | ||
jnthn | It's one of those accuracy wins that's a fail too. :-) | 09:35 | |
sorear | (implementing die in Perl feels so good) | ||
moritz_ | sorear: that looks cute | ||
09:36
agentzh joined
|
|||
sorear | that handles Perl 6's weird unwind rules, including rethrows and restartable exceptions | 09:39 | |
it relies on an outermost CATCH to handle backtraces, though | 09:40 | ||
also won't work in any implementation where return is powered by die | 09:41 | ||
09:42
Ambiguity joined
|
|||
moritz_ | sorear: you can control the outermost CATCH by providing it in your setting | 09:45 | |
I think it's reasonable to expect people to handle such cases when they write their own setting | |||
09:54
M_o_C joined
09:55
Miles8 joined
|
|||
Miles8 | Anyone seen this perl 6 logo? kraih.com/camelia-sri.png | 09:56 | |
tadzik | yep | ||
sorear | _sri told us first | ||
sorear ponders the nature of inline NQ-C# | 09:57 | ||
tadzik | oh, and by the way, just out of curiosity, why is it CATCH not catch? | ||
jnthn | tadzik: All of the phaser-ish blocks are uppercase. | ||
So just consistency. | |||
tadzik | phaser-ish? | ||
jnthn | e.g. FIRST, LAST, etc. | ||
tadzik | ah | ||
moritz_ | BEGIN, END, INIT, CHECK, PRE, POST | 09:58 | |
jnthn | tadzik: Things that run at certain "special" times rather than just where they are placed in your code. | ||
tadzik | I see | ||
sorear | there's a big list of them at S04:1225 | ||
Miles8 | any input on why he seems to been shoot down for making a logo that isn't actually repulsive like the one vurrently used? | ||
sorear | "shoot down"? | 09:59 | |
where? | |||
moritz_ | Miles8: afaict nobody shot him down | ||
Miles8: it's only that there's not the one person who tells him to shape his logo so it becomes the official one | |||
that's just not how the Perl 6 community works | |||
10:00
nadim joined
|
|||
moritz_ | I really liked his suggestions, and I know others did too | 10:00 | |
Miles8 | true but from what I read he has given up hope of getting his suggestions accepted in any way | ||
moritz_ | Miles8: yes, that's unfortunate | 10:01 | |
huf | it's the best perl logo i've seen so far | ||
but then, who am i to call this ;) | |||
moritz_ | but what do you expect from us, truely? that we magically create a person how answers his questions? | ||
sorear | Miles8: read where? | ||
Miles8 | I quote him "The Perl 6 decision makers are sadly not interested in the logos, so i'm not finishing them." | 10:02 | |
on the Mojolicious mailinglist | |||
jnthn | On the logo it's probably "person" :-) | ||
That said, the implementations can pick what they want for a logo. :-) | |||
Rakudo has its own, for example. | |||
sorear doesn't think he's seen Rakudo's logo | 10:04 | ||
huf | is it the japanese wooden gate thing? | ||
moritz_ | rakudo.org/ | ||
jnthn | sorear: it's on rakudo.org | ||
moritz_ | rakudo.org/sites/default/files/logo.png | ||
jnthn figures the writing actually says Rakudo :-) | 10:05 | ||
sorear | oh yes I have seen that. | 10:08 | |
dalek | meta: r345 | stefa...@cox.net++ | trunk/vicil/Kernel.cs: [vicil] Expand scope of KERNEL a bit |
||
sorear out | 10:09 | ||
jnthn | o/ | ||
10:10
tadzik left
|
|||
Miles8 | I hope perl6.org gets a new logo cause even if implementations can choose there on perl6.org is still gonna be the first thing a lot of new perl6 users will see and rigth now those are either repulsted by the logo or go in to epileptic shock | 10:12 | |
*on=own. | 10:13 | ||
or they thinks it some kindergarden drawing page an they are on the wrong website | 10:14 | ||
10:14
Miles8 left
|
|||
jnthn | I love how some people take their own dislike of it to mean everybody will feel that way. | 10:15 | |
TiMBuS | did he just leave in fear of some backlash from his last comment? | 10:17 | |
jeez.. | |||
jnthn | Heh | 10:18 | |
I got bored of such discussions long ago. | |||
Design is muchly a subjective thing. | |||
10:19
Su-Shee left
|
|||
jnthn | I know some people don't like Camelia, but I'm not convinced we could come up with a logo that everyone would like. | 10:19 | |
sjohnson | jnthn: eppy7890.files.wordpress.com/2009/0..._camel.jpg | 10:20 | |
:) | |||
bed time & | 10:21 | ||
jnthn | :-) | ||
night | |||
10:24
azert0x joined,
azert0x left,
tadzik joined,
meppl joined
10:26
azert0x joined,
azert0x left
10:28
azert0x joined,
azert0x left
10:30
agentzh left
10:32
azert0x joined
10:33
azert0x left
10:34
azert0x joined,
azert0x left
10:37
azert0x joined
10:44
tadzik left
|
|||
moritz_ | rakudo: my $x = given 4 { when Int { $_ } }; say $x | 10:48 | |
p6eval | rakudo 6769e1: OUTPUT«===SORRY!===Confused at line 11, near "my $x = gi"» | ||
moritz_ | std: my $x = given 4 { when Int { $_ } }; say $x | 10:49 | |
p6eval | std 31450: OUTPUT«===SORRY!===Word 'given' interpreted as a listop; please use 'do given' to introduce the statement control word at /tmp/gCRzHsPXEq line 1:------> my $x = ⏏given 4 { when Int { $_ } }; say $xUnexpected block in infix position (two terms in a | ||
..r… | |||
moritz_ | rakudo: my $x = do given 4 { when Int { $_ } }; say $x | ||
p6eval | rakudo 6769e1: OUTPUT«4» | ||
11:01
tadzik joined
11:02
felliott joined
11:08
prz left
11:13
whiteknight joined
11:16
[Coke] joined
11:22
pmurias joined
|
|||
cognominal | (1, $b, 2) == (1, 2) # Is there a $b value that could satisfy that predicate? It would be so convenient. | 11:31 | |
Nil is not what I want here. | 11:35 | ||
or at least it does no beheva that way in rakudo. | |||
rakudo: say (1, Nil, 2).perl | 11:36 | ||
p6eval | rakudo 6769e1: OUTPUT«(1, (), 2)» | ||
cognominal | rakudo: say [1, Nil, 2].perl | ||
p6eval | rakudo 6769e1: OUTPUT«[1, 2]» | ||
cognominal | ha!! | ||
jnthn | rakudo: rakudo: say (1, Nil, 2).flat.perl | 11:37 | |
p6eval | rakudo 6769e1: OUTPUT«===SORRY!===Confused at line 11, near "rakudo: sa"» | ||
jnthn | grrrr | ||
rakudo: say (1, Nil, 2).flat.perl | |||
p6eval | rakudo 6769e1: OUTPUT«(1, 2)» | ||
cognominal | I should remember that parcel are no arrays... | ||
xinming | say (1, (), 2).perl | ||
rakudo: (1, (), 2).perl | 11:38 | ||
p6eval | rakudo 6769e1: ( no output ) | ||
xinming | rakudo: say (1, (), 2).perl | ||
p6eval | rakudo 6769e1: OUTPUT«(1, (), 2)» | ||
cognominal | jnthn++ | 11:39 | |
11:41
timbunce joined
|
|||
jnthn | yayitstimbunce! | 11:41 | |
moritz_ | rakudo: say (1, (), 2) == (1, 2) | ||
p6eval | rakudo 6769e1: OUTPUT«0» | ||
jnthn | I suspect numifying a parcel doesn't first flatten | ||
timbunce | jnthn: Hi. I'm adding #perl6 to the list of channels I join automatically. I guess that means something. | 11:42 | |
colomon | moritz_: [\+] [\+] isn't a weird bug at all, it's a perfectly expected closure issue. | 11:43 | |
pugssvn | r31451 | pmurias++ | [smop] [mildew] smop supplies the correct gcc flags to mildew at test time so that the .m0ld tests run | 11:44 | |
mberends | hi timbunce, we're both talking about Perl 6 and databases at YAPC::EU :) it would be good to compare notes/plans to make sure we don't contradict each other ;-) | 11:45 | |
moritz_ | colomon: well, I didn't perfectly expect it | 11:46 | |
timbunce | mberends: great - please join #dbdi | ||
mberends | ok | ||
colomon | moritz_: when closures finally get fixed, a lot of stuff is going to magically start working. :) | ||
jnthn | :-) | 11:48 | |
11:50
synth left
|
|||
jnthn | std: for 0 { when ARRAY {} } | 11:57 | |
p6eval | std 31450: OUTPUT«===SORRY!===Function 'ARRAY' needs parens to avoid gobbling block at /tmp/2olCsm5nex line 1:------> for 0 { when ARRAY⏏ {} }Missing block (apparently gobbled by 'ARRAY') at /tmp/2olCsm5nex line 1:------> for 0 { when ARRAY | ||
..{}⏏… | |||
12:00
synth joined
|
|||
mberends | hugme: add timbunce to fakedbi | 12:03 | |
hugme hugs timbunce. Welcome to fakedbi! | |||
12:10
M_o_C left
12:13
pnate joined,
mberends left
12:14
sykes_ joined,
constant joined,
constant left,
constant joined,
mberends joined
12:15
nadim left,
nadim joined
12:20
envi^home left,
orafu left,
TiMBuS left,
stepnem left,
Lorn left
12:26
envi^home joined,
orafu joined,
TiMBuS joined,
stepnem joined,
Lorn joined,
japhb joined,
slavik joined,
dmpk2k_ joined,
stepnem left
12:27
stepnem joined
|
|||
timbunce | Running an uninstalled perl6 from a diferent directory gets a far less than awesome error message ("Null PMC access in find_method('new_class')". I know the docs say this'll happen but it's a likely newbie error and seems worth a better message. | 12:33 | |
(In my case I had a perl6 symlink in my ~/bin directory to the perl6 binary. That was handy for running the latest build without needing to install. Used to work fine. I've updated the symlink now.) | 12:37 | ||
colomon | rakudo: say "THis is a test".words | 12:40 | |
p6eval | rakudo 6769e1: OUTPUT«THisisatest» | ||
colomon | rakudo: say "THis is a test".words.perl | ||
12:40
masonkramer left
|
|||
p6eval | rakudo 6769e1: OUTPUT«("THis", "is", "a", "test")» | 12:40 | |
12:41
masonkramer joined
|
|||
jnthn | timbunce: Aye, we had a nicer one in alpha but I forget how we did it. Should really check... | 12:43 | |
12:44
Rohaq joined
12:45
mikehh joined
|
|||
timbunce | is there are pastebin for the channel? | 12:46 | |
rakudo: class java::io::Writer { multi method append( Str $v1, Int $v2, Int $v3, --> Object) { ... } } | 12:48 | ||
p6eval | rakudo 6769e1: OUTPUT«===SORRY!===Malformed method at line 11, near "append( St"» | ||
timbunce | That used to work (months ago). Has the syntax changed? | 12:49 | |
rakudo: role java::sql::RowId { multi method equals( Object $v1, --> Bool ) { ... } } | 12:51 | ||
p6eval | rakudo 6769e1: OUTPUT«===SORRY!===Invalid typename in parameter declaration at line 11, near " $v1, --> "» | ||
jnthn | That , before the --> looks odd | ||
mberends | timbunce: paste.lisp.org/new/perl6 used to announce on #perl6, but lately we got spammed, so now we must announce manually | ||
jnthn | std: role java::sql::RowId { multi method equals( Object$v1 --> Bool ) { ... } } | 12:52 | |
p6eval | std 31451: OUTPUT«===SORRY!===In parameter declaration, typename 'Object' must be predeclared (or marked as declarative with :: prefix) at /tmp/B3cPNYRnv6 line 1:------> ql::RowId { multi method equals( Object⏏$v1 --> Bool ) { ... } }Parse failedFAILED | ||
..00:01… | |||
jnthn | std: role java::sql::RowId { multi method equals( Object $v1 --> Bool ) { ... } } | ||
p6eval | std 31451: OUTPUT«===SORRY!===In parameter declaration, typename 'Object' must be predeclared (or marked as declarative with :: prefix) at /tmp/xY6ZUPxjTB line 1:------> ql::RowId { multi method equals( Object⏏ $v1 --> Bool ) { ... } }Parse failedFAILED | ||
..00:0… | |||
jnthn | std: role java::sql::RowId { multi method equals( Mu $v1 --> Bool ) { ... } } | ||
p6eval | std 31451: OUTPUT«ok 00:01 111m» | ||
jnthn | std: role java::sql::RowId { multi method equals( Mu $v1, --> Bool ) { ... } } | ||
p6eval | std 31451: OUTPUT«ok 00:01 111m» | ||
jnthn | hmm, std is OK wiht the comma. Surprises me a little. | ||
timbunce | but Object -> Mu is the main fix. ok | ||
TimToady | it's just the principle that you can have an extra comma on the end of a list | 12:53 | |
timbunce | TimToady: makes the code generation a little easier | ||
pmichaud | good morning, #perl6 | 12:57 | |
12:57
M_o_C joined
|
|||
mberends | pmichaud, o/ from Belgium | 12:58 | |
13:01
whiteknight left
|
|||
colomon | rakudo: say 0.707106781186547 | 13:08 | |
p6eval | rakudo 6769e1: OUTPUT«0.707106781186547» | ||
colomon | rakudo: say 707106781186547 | 13:09 | |
p6eval | rakudo 6769e1: OUTPUT«707106781186547» | ||
jnthn | o/ pmichaud | 13:15 | |
13:15
hugme joined
|
|||
TimToady | ohio | 13:15 | |
timbunce | Is there a way to ask rakudo for the list of builtin types and roles? | ||
moritz_ | hugme: show java2perl | ||
hugme | moritz_: the following people have power over 'java2perl': PerlJam, TimToady, [particle], colomon, jnthn, masak, mberends, moritz_, pmichaud, timbunce. URL: github.com/timbunce/java2perl/ | ||
moritz_ | hugme: add moritz to java2perl | 13:16 | |
hugme | moritz_: ERROR: Can't add moritz to java2perl: HTTP/1.1 401 Unauthorized | ||
moritz_ | urg | ||
TimToady | rakudo: say CORE::.keys | 13:17 | |
p6eval | rakudo 6769e1: OUTPUT«Could not find sub &CORE in main program body at line 11:/tmp/9tC8BMMJdE» | ||
13:17
whiteknight joined
|
|||
jnthn | ENOTYET | 13:17 | |
TimToady | std: say CORE::.keys | ||
p6eval | std 31451: OUTPUT«ok 00:01 111m» | ||
timbunce | ok, thanks | 13:18 | |
rakudo: role java::sql::Ref { multi method getObject( KeyHash $v1 --> Mu ) { ... } } | 13:19 | ||
jnthn | timbunce: Though if you don't need a programatic solution, grep through src/gen/core.pm for class and role | ||
p6eval | rakudo 6769e1: OUTPUT«===SORRY!===Invalid typename in parameter declaration at line 11, near " $v1 --> M"» | ||
TimToady | or just keep trying random names till you probabalistically get them all :) | 13:20 | |
colomon | TimToady: wouldn't it be much more efficient to use Str.succ to systematically go through all possible names? ;) | 13:21 | |
timbunce | jnthn: I don't see KeyHash, for example, in there. TimToady: shouldn't take tooo long! | ||
colomon | lazily, I mean, of course. | ||
TimToady | pugs/src/perl6/CORE.setting has a more concise list, but doesn't necessarily match rakudos | ||
timbunce | It's not that important for now, after all the spec's not changing all that often :) | 13:22 | |
rakudo: role java::sql::Ref { multi method getObject( KeyHash $v1 --> Mu ) { ... } } | |||
p6eval | rakudo 6769e1: OUTPUT«===SORRY!===Invalid typename in parameter declaration at line 11, near " $v1 --> M"» | ||
timbunce | std: rakudo: role java::sql::Ref { multi method getObject( KeyHash $v1 --> Mu ) { ... } } | ||
p6eval | std 31451: OUTPUT«ok 00:01 111m» | ||
pmichaud | (KeyHash NYI in rakudo) | ||
TimToady | STD's setting will be closer to spec, and rakudo's will be closer to what's actually implemented :) | ||
dalek | kudo: 1424333 | (Solomon Foster)++ | src/ (2 files): Rewrite the Actions handling of dec_number (ie Rat and Num constants) to work Still needed: Cleanup. Porting this solution to Int constants. Making prefix:<+>(Str) use these methods. |
13:23 | |
timbunce | Anyone suggest a reasonable mapping for java.util.Map in rakudo? | ||
13:25
pmurias left
|
|||
moritz_ | hugme: add mberends to java2perl | 13:25 | |
hugme | moritz_: ERROR: Can't add mberends to java2perl: HTTP/1.1 401 Unauthorized | ||
timbunce | I'll use just Hash for now. | ||
moritz_ | hash stringies its key | 13:26 | |
is that OK? | |||
TimToady | by default, which is all rakudo implements | ||
seems like it would be pretty trivial to hash on $key.WHICH to get object hashes | 13:27 | ||
though you'd have to be careful to include the WHAT as well for value types | 13:28 | ||
or 2 and "2" might hash the same | 13:29 | ||
timbunce | moritz_: at this stage I'm happy if the thousands of lines of perl6 (that java2perl6 generates for the JDBC API) just compiles :) | ||
13:38
fridim left
13:42
nimiezko joined
|
|||
TimToady | colomon: Str.succ won't work, unless you seed it with patterns like AaaaaAAA | 13:56 | |
13:59
jaldhar left
|
|||
TimToady | <sorear> In light of the existance of the \|$foo parameter form, is a Perl 6 implementation obliged to handle $*foo(:a, :b) differently from $*foo(:b, :a) ? | 14:06 | |
yes, capturization must be JIT in that case, since there's no proto | |||
(and you can see how far back I've fallen on backlogging...) | 14:07 | ||
timbunce | The DateTime type is 'built-in" in the sense that you don't need a 'use', yet it's not listed in the "Built-In Data Types" section in S02. That seems like a doc bug. | 14:09 | |
colomon | TimToady: do it all lowercase, and map the results through a transform that gets all the possible case variations -- that's just like counting in binary. :) | ||
TimToady | it won't find ACME::Don't either | 14:10 | |
colomon | errr... actually, that's a good series question. what should 'a' ... * do? | 14:11 | |
pmichaud | 'a', 'b', 'c', ... 'z', 'aa', 'ab', 'ac', ... | ||
colomon | that's current spec, I believe. | ||
TimToady | that seems more useful than ... "\x10ffff" | 14:12 | |
14:12
pmurias joined
|
|||
pmichaud | > my @a = 1..*; say @a[4]; | 14:12 | |
5 | |||
(we can haz array laziness) | |||
colomon | but it seems a bit inconsistent that 'a' ... some single character high in unicode will go all single chars, but 'a' ... * wraps at 'z'. | ||
\o/ | |||
pmichaud | colomon: I don't see that as being inconsistent at all, really | 14:13 | |
TimToady | but * isn't a single character, and has "maximize" semantics | ||
colomon | pmichaud: we weren't even sure if that was spec or not. :) | ||
TimToady | the single char rule only comes into effect if both ends are single | ||
pmichaud | to me, 'a' ... * says "increment forever" | ||
or, more accurately, .succ forever | |||
colomon | TimToady: okay, works for me, and already works. | ||
TimToady | pmichaud: what does it do about lists that it doesn't know are finite/infinite? | 14:14 | |
like the result of a gather? | |||
colomon | afk # "hoop!" | ||
pmichaud | at the moment it continues to eagerly evaluate them. | ||
I've added a .infinite() method to iterators, it returns zero for "known finite", one for "known infinite", and Mu for "not known" | 14:15 | ||
(actually, False, True, Mu) | |||
TimToady | do we need a method for pushing to the imaginary part of an array? | ||
.pushlist or some such | |||
pmichaud | I haven't looked at that part yet. | 14:16 | |
istr we decided that we did. | |||
TimToady | how does it add to its imaginary part internally? | ||
14:16
Trashlord joined
|
|||
TimToady | I think we bikeshedded names, but I don't recall settling on one | 14:16 | |
pmichaud | internally, List (and thus Array) has two attributes, @!items and @!rest | 14:17 | |
both are low-level VM arrays | |||
TimToady | .schedule .imagine .suggest etc | ||
pmichaud | @!items contains the "already reified" elements, @!rest contains the yet-to-be-reified elements | ||
TimToady | I think the original apocalypse had .specs | ||
.pushmore .pileon .append .notyet ... | 14:20 | ||
jnthn | pmichaud: (array laziness) yay! | ||
moritz_ | .project .plan | ||
TimToady | .plan is pretty good | 14:21 | |
jnthn | pmichaud: I tried that this morning to demonstrate today ;-) | ||
moritz_ | TimToady: might be confusing if we offer a sub form | ||
TimToady: because of use Test; plan 1; | |||
TimToady | right | ||
extend @array, list() reads well | 14:23 | ||
but is semantically a bit too concrete | 14:24 | ||
abstrude :) | |||
no way, that would extrude abstractly | |||
hmm | |||
moritz_ | schedule is just like plan, but without the colllision | ||
pmichaud | hmmm, I'm getting spectest failz though | 14:25 | |
TimToady | perhaps a bit too time oriented | ||
queue is more the idea | |||
oh, I remember | |||
we had .feed | |||
pmichaud | oh, I know why. | ||
TimToady | feed @array, 1 ... * | ||
colomon | Is the issue that we're pushing to the @rest, or that we're pushing something that might itself be infinite? | ||
moritz_ | TimToady: I like feed | 14:26 | |
TimToady | the idea is that we're taking whatever we have and putting it into @rest, regardless | ||
pmichaud | colomon: one piece of the puzzle is figuring out the laziness of whatever we're pushing, though | ||
14:26
simcop2387 joined
|
|||
colomon | shouldn't push always add to @rest if there is something there? | 14:26 | |
pmichaud | when doing push @a, $b; we really want to make sure we get the value of $b now and not the value of $b "whenver we get to it" | ||
TimToady | I think feed forces it into the lazy part, or possibly pulls known-finite off the front if @!rest starts out empty | 14:27 | |
pmichaud | and if @a has something infinite in it already, we might not reify it "right away" | ||
for example: | |||
TimToady | colomon: I think push is eager, so reifies everything | ||
colomon | I guess part of my problem is it feels to me like we are too eager to make arrays unlazy, and are making ourselves a lot of work in the progress. | ||
pmichaud | colomon: eagerness is the natural expectation | 14:28 | |
jnthn | I thought push would always put onto the @!rest | ||
pmichaud | jnthn/colomon: *it does* | ||
that's not the issue. | |||
jnthn | Oh | ||
ah | |||
@foo.push: $a, $b, $c; # we want the $a, $b, $c at this time? | |||
TimToady | the point is the expected semantics, and p5 programmers at least will expect push to behave eagerly | ||
pmichaud | if @!rest has something lazy in it already, then whatever we push gets lazily evaluated, even if someone expects it to be eager | ||
for example: | |||
jnthn | @foo.plan: $a, $b, $c; # reify later | 14:29 | |
pmichaud | my @b = <a b c>; push @a, @b; @b[1] = 'x'; | ||
does @a "see" the 'x' or no? | |||
if we just stick @b onto @a's lazy part, then we might not have gotten around to reifying it yet | |||
14:29
[Coke] left
|
|||
jnthn | *nod* | 14:30 | |
pmichaud | (yes, we can turn the arguments to 'push' into a Seq and push those... which is effectively what we're doing, but still some 'lazy' parts might hide the evaluation of some non-lazy parts | 14:31 | |
however, since we're also speculating about a method to de-containerize parcels, we could potentially do that to the slurpy parts of push/unshift | |||
colomon | it seems like what we should be doing is somehow cloning the array at the point of copy. or some sort of COW arrangement. | ||
pmichaud | then laziness isn't such a big issue | ||
colomon: errr.... what copy? ;-) | 14:32 | ||
colomon | point of push. | ||
pmichaud | there's no copy inherent in push | ||
at least, not yet. :-) | |||
TimToady | I think @array.push(1..*) should probably say "You can't push an infinite list; please use feed instead" | ||
and I think we should try to keep the eager method separate from the lazy method so people get used to thinking about it, instead of mysteriously having it guess wrong on the unknowns | 14:34 | ||
pmichaud | TimToady: I agree fully. | ||
that's certainly the conservative approach for now | |||
we have enough to fix in Rakudo in the next four weeks without also trying to explore every avenue of laziness :) | |||
TimToady | if at some point we say, well push and feed are really the same thing, then they're just good documentation :) | 14:35 | |
and (...) ==> my @foo is naturally mapped to .feed | |||
colomon | and feed will work properly for .... | 14:36 | |
TimToady | hmm, actually, .feed is then really <<== | ||
colomon | errr.... | ||
my @b = <a b c>; feed @a, @b; @b[1] = 'x'; | |||
TimToady | since it appends | ||
colomon | does that get the 'x' in @a? | ||
14:36
araujo joined
|
|||
pmichaud | my guess is that falls in the realm of "depending on lazy evaluation" | 14:37 | |
TimToady | that would depend on whether it does the "pull in concrete values" | ||
moritz_ | colomon: yes | ||
colomon | that still seems really icky to me. | ||
really, really icky. | 14:38 | ||
pmichaud | ...which is why .push is eager :) | ||
TimToady | feed should not be taking side effects into account | ||
and yes, we know where to find push | |||
pmichaud | > my @a = 1..*; say @a.elems | ||
Inf | |||
TimToady | however, one more thing to think about. What about my @a = 1,2,3; feed @a, @a | 14:39 | |
colomon | wait, shouldn't some sort of COW be easy with lazy arrays? | ||
14:40
rv2733 joined
|
|||
moritz_ | MU! (SCNR :) | 14:40 | |
colomon | you copy @items eagerly, then attach the iterator for @rest. | ||
if you change the source array later, it has to iterate to the point of the change. | 14:41 | ||
pmichaud | colomon: you're assuming that all of the things in @!rest are immutable | ||
colomon | the copied @rest stays the same. | ||
isn't that the point of the new iterator arrangement? | |||
pmichaud | no. | ||
you're assuming that @rest contains only iterators | |||
what @!rest really contains is iterables | 14:42 | ||
colomon | oh | ||
TimToady | perhaps we're going to have long term confusion as long as iterators and iterables have such similar names | ||
pmichaud | we could potentially change it to contain iterators, but we've already said that if you change an underlying iterable while it has active iterators that the results are undefined | 14:43 | |
colomon | afk # off to nom-grower's nomstore | ||
TimToady | chow | ||
pmichaud | TimToady: so far "Iterable" and "Iterator" have worked really well for me. I'd like them to remain. | ||
TimToady | was just wonderin' | ||
I know that wasn't the confusion point here | 14:44 | ||
packing & | 14:45 | ||
14:46
ciphertext joined
|
|||
colomon | the confusion point here is that (from the naive point of view), we've got two different functions to do the same thing, neither of which actually does what the user actually expects... # gone for real now... | 14:51 | |
ash_ | moritz_: ping | 14:53 | |
14:53
Ross left
|
|||
moritz_ | ash_: pong | 14:53 | |
ash_: I've seen your web shell demonstration | |||
It's really great | |||
ash_ | any comments? | ||
i need to do some work with the colors | 14:54 | ||
but that shouldn't be to difficult to fix | |||
moritz_ has only very little aesthetic judgement when it comes to colors | |||
ash_: have you committed it to the repo? | 14:55 | ||
ash_ | no, i don't think i have permissions | ||
moritz_ | ash_: my fault... what's your github ID? | ||
14:55
mberends left
|
|||
ash_ | ashgti | 14:55 | |
moritz_ | hugme: add ashgti to try.rakudo.org | 14:56 | |
hugme hugs ashgti. Welcome to try.rakudo.org! | |||
moritz_ | there you go | ||
ash_ | thanks | ||
should the default be that Return sends the command you have written? or should I make that so return adds a newline and say Shift + Return sends the command? | 14:59 | ||
pmichaud | web shell demonstration url plz? | 15:00 | |
moritz_ | ash_: return should send by default | ||
ash_ | greaterthaninfinity.com/shell/ its not actually evaluating anything yet | ||
moritz_ | ash_: Mathematica evaluates when you press Shift + Return. It confuses the heck out of each newbie | 15:01 | |
ash_ | ah, kk, i'll leave it the way it is then | ||
jnthn | It looks nice :-) | ||
moritz_ | it even autoextends the input box if you hit Shift + Enter | 15:02 | |
ash_++ | |||
ash_ | i still haven't done much for the tutorial part, the area under the textarea box will be where the tutorial comes up, I was planning on basing it off of the rakudo book | ||
15:02
jaldhar joined
|
|||
jnthn | On firefox, the top of camelia is just off the page top, btw | 15:03 | |
ash_ | yup | ||
moritz_ | ash_: well, the book isn't optimized for things to fit onto one line | ||
ash_: so you might need some adoptions | |||
ash_ | well, i don't have to use the books specific examples, i could simply them | ||
moritz_ | right | ||
ash_ wonders if i can capture tabs in all browsers... | 15:08 | ||
moritz_ | rakudo: class A { method b { } }; say A.new.cando(b)».name | 15:12 | |
p6eval | rakudo 142433: OUTPUT«Could not find sub &b in main program body at line 11:/tmp/0TqiMuzvdF» | ||
moritz_ | rakudo: class A { method b { } }; say A.new.cando('b')».name | ||
p6eval | rakudo 142433: OUTPUT«Method 'cando' not found for invocant of class 'A' in main program body at line 11:/tmp/7EqrerSqU7» | ||
moritz_ | rakudo: class A { method b { } }; say A.new.can('b')».name | 15:13 | |
p6eval | rakudo 142433: OUTPUT«Method 'flat' not found for invocant of class 'P6Invocation' in main program body at line 11:/tmp/SckOH78TVr» | ||
moritz_ | rakudo: class A { method b { } }; say A.new.can('b').name | ||
p6eval | rakudo 142433: OUTPUT«Method 'name' not found for invocant of class 'P6Invocation' in main program body at line 11:/tmp/Ohxzwo41qe» | ||
moritz_ | rakudo: class A { method b { } }; say A.new.can('b').WHAT | ||
p6eval | rakudo 142433: OUTPUT«Method 'WHAT' not found for invocant of class 'P6Invocation' in main program body at line 11:/tmp/5HLwOFFfBW» | ||
moritz_ | rakudo: class A { method b { } }; say A.new.can('b') ~~ Routine | ||
p6eval | rakudo 142433: OUTPUT«0» | ||
moritz_ | that's pretty suspicious, isn't it? | ||
ash_ | i thought it was ^can | 15:14 | |
or does .can forward to .^can? | |||
TimToady | colomon: yes, the PDLish view that you can define an array as a slice into another array is a third view, but I wouldn't call it the "naive" view... | 15:15 | |
jnthn | .can is a bit awkward | ||
Because it's meant to also be an iterator over the possibilities | |||
It probably forwards to .^can | 15:16 | ||
Or probably should anyway | |||
pmichaud | .can should probably return a List, then. | ||
jnthn | pmichaud: Yeah, but the tests seem to also call for it to be directly callable too | ||
pmichaud | jnthn: oh, ouch. | ||
jnthn | pmichaud: Yeah, quite | ||
pmichaud: I'm wondering if we want a spec tweak there. | |||
pmichaud | so, whatever .can returns should be subclassed from List, then :) | 15:17 | |
(and be invokable :-) | |||
jnthn | Yeah | ||
Should be workable. | |||
pmichaud | oh, it doesn't have to subclass from List | ||
it just needs to be Iterable. | |||
jnthn | ah, yes | ||
pmichaud | (and have a .iterator) | ||
jnthn | I didn't get to putting it back in mater yet | ||
*master | |||
Mostly because I wanted to see how lists would pan out. :-) | 15:18 | ||
pmichaud | I think they're pretty well panned out. :-) | ||
jnthn | Aye | ||
Now I just need to stop traveling all over Europe. ;-) | |||
pmichaud | once I get "mostly eager" in place I'll be prepared to say "okay, this is likely the right configuration" | ||
jnthn | \o/ | ||
pmichaud | After seeing so many people do my @a = 1..*; I woke up this morning thinking I had better go ahead and get that implemented. | 15:19 | |
jnthn | Just a little too late for my talk ;-) | ||
pmichaud | My timing seems to be very off that way. | ||
jnthn | 'tis fine, I had too much other cool stuff to show for the time I had anyway. :-) | ||
pmichaud | that was the experience in my talk as well. :-) | 15:20 | |
jnthn | Was a little overtime. | ||
pmichaud | I was a little overtime, -and- I didn't get to cover about 50% of what I had available. | ||
(but I designed the talk knowing that I had far more than I could cover, so there were several natural "stop points" built in :-) | |||
jnthn | Yeah, I had more that I cculd have done. | ||
urgh, I just worked out why using |$c in a method signature runs into issues. | 15:21 | ||
(Related to the *%_ that gets added | |||
) | |||
15:22
PZt joined
|
|||
moritz_ | |$c and *%_ don't like each other? | 15:22 | |
jnthn | |$c says "is there anything that follows me? if so, there are more args" | ||
since | 15:23 | ||
:(|$c1, $a, |$c2, $b) # should work | |||
You get snapshots of what is bound so far. | |||
But when it's | 15:24 | ||
:(|$c, *%_) | |||
Then it says "ah, there's more paramters, continue binding as usual" | |||
*parameters | |||
moritz_ | so *%_ tries to bind a positional argument? | ||
jnthn | Yeah, and thus the exploshun. :-) | 15:25 | |
jnthn ponders the best fix | |||
moritz_ | so no automatically added *%_ for signatures that end with a |-param? | ||
jnthn | It becomes | ||
:(self, |$c, *%_) | |||
moritz_ | rakudo: sub f(|$c) { }; say &f.signature.perl | 15:26 | |
p6eval | rakudo 142433: OUTPUT«:(Any $c)» | ||
jnthn | ... | ||
moritz_ submits rakudobug | 15:27 | ||
jnthn | .signature.perl appears not to know about | | ||
moritz_ | right | ||
15:27
synth left
|
|||
moritz_ | so TODObug | 15:27 | |
jnthn | aye | ||
LHF :-) | |||
15:27
synth joined
|
|||
moritz_ | sorry for the distruction | 15:28 | |
erm | |||
distraction :-) | |||
jnthn | ;-) | ||
It's good to track it. | |||
Anyway, am pondering if we just say "don't whine about arity after |$c". | |||
mmcleric | jnthn: hi | ||
jnthn | mmcleric: oh hai | ||
mmcleric | i think i'm on right track today, but i've got more stupid questions | 15:29 | |
jnthn | :-) | ||
mmcleric | error:imcc:syntax error, unexpected COMMA (',') | ||
now do i track errors like this one? | |||
i it may be related to the fact that my PAST::Op don't have pos and source, and this is second question - why is that? | 15:30 | ||
because it looks like most other nodes have pos and source automatically | |||
moritz_ | you need :node($/) to set pos and source | 15:31 | |
but a missing :node doesn't usually cause an IMCC syntax error | |||
mmcleric | thanks | ||
jnthn | No, quite | ||
--target=pir | |||
Use that | |||
mmcleric | o! | ||
jnthn | It'll show you the generated PIR | ||
Which may give more clues | 15:32 | ||
mmcleric | ok, lots of code in unknown language :) | 15:33 | |
imcc says it's line 97, should it be the same line in pir code? | |||
moritz_ | it should, but IMCC line numbers are somtimes off | 15:34 | |
ash_ | moritz_: do you know a good list of pseudo keywords i can use to highlight in the shell? right now i use: ['class', 'my', 'our', 'has', 'sub', 'method', 'submethod', 'module', 'role', 'package', 'token', 'grammar', 'augment', 'use'] | ||
pmichaud | 'is' ? | ||
'does' ? | |||
moritz_ | ash_: you can look into the perl6.vim hilightiing file | 15:35 | |
github.com/petdance/vim-perl/blob/m.../perl6.vim | |||
ash_ | ah, good point, i'll check there, thanks pmichaud++ | ||
moritz_++ | |||
lol, i don't even do if, or else yet i forgot about those some how | 15:36 | ||
moritz_ wrote some very neat code with given/when today | |||
15:37
pmurias left
|
|||
[particle] | Missing test file: t/spec/S03-operators/series-simple.t | 15:39 | |
noticed in make spectest | |||
moritz_ | [particle]: git pull | 15:40 | |
15:42
tedv left
15:43
tedv joined
|
|||
[particle] | i thought of that afterwards... thanks! | 15:43 | |
pmichaud: rblackwe is looking for you | |||
about ppw in october | |||
15:46
synth_ joined
|
|||
mmcleric | error [...] in file 'EVAL_1' line 25877908 | 15:46 | |
that's strange.. .am i doing something horribly wrong? or could it be imcc bug? | 15:47 | ||
jnthn | mmcleric: Unlikely | ||
mmcleric | line numbers are completely random... sigh | ||
[particle] | 25M lines, nice | ||
jnthn | oh | ||
wtf | |||
I missed the number | |||
Yes, IMCC's line numbers are a tad less accurate than Rakudo's :-) | 15:48 | ||
mmcleric | ok, i have an idea... can i hack generated pir file and rerun it again? | ||
jnthn | mmcleric: The error you got generally means you have some weird PAST though | ||
and it generates wrong PIR from it | 15:49 | ||
Can you nopaste the PIR? | |||
mmcleric | maybe, but all my pir::say prints are working, and PAST tree looks good too | ||
jnthn | Oh :S | ||
pmichaud | series-nonumeric.t seems to be caught in an infinite loop on my box now :-( | ||
moritz_ | pmichaud: did you svn up the spectests? | ||
pmichaud | I did "make spectest", yes. | 15:50 | |
moritz_ | I fudged it today | ||
pmichaud | oh, it's locked. | ||
just a sec | |||
yes, that was it. | |||
thank you. | |||
moritz_ | np | 15:51 | |
moritz_ got basic dispatch in CGI::Application working | |||
mmcleric | jnthn: gist.github.com/454146 | ||
ash_ | moritz_: for perl6? sweet! | 15:52 | |
moritz_ | ash_: aye | ||
jnthn | $P69 = "&infix:<+>"(, , $P51, $P68) | ||
That's the line that's wrong | |||
15:53
whiteknight left
|
|||
ash_ | i added tabs to the shell, and updated the highlighting, going for a walk with the dogs then i might work on some of the other features of, like the tutorial | 15:53 | |
(tabs as in \t not as in window tabs) | |||
moritz_ | ash_++ | ||
mmcleric | jnthn: oh, thanks | 15:54 | |
i see it in past now too, empty Stmts nodes | |||
jnthn | mmcleric: That'd do it. | ||
moritz_ | the simplest extension possible atm is probably to get chained methods on Whatever working | 15:58 | |
*.lc.ucfirst | |||
or is that handled in the dispatcher at run time? | |||
pmichaud | it's syntactic | 15:59 | |
moritz_ | rakudo: my $x = *; say $x.uc | ||
p6eval | rakudo 142433: OUTPUT«!whatever_dispatch_helper» | ||
pmichaud | I mean as far as the spec goes, it's syntactic. | ||
I don't know what rakudo does atm. | |||
moritz_ | yes, I know that :-) | ||
pmichaud puts his head back into his compiling windows :) | |||
jnthn | It doesn't at the moment :-) | ||
but what mmcleric++ is working on should probably also fix it | 16:00 | ||
16:00
Rohaq left
|
|||
mmcleric | ./perl6 -e 'say ((* + 5) + (* + 6)).(2,3)' | 16:01 | |
16 | |||
yay, it's working :) | |||
jnthn | \o/ | ||
mmcleric | now i'll just have to figure out how to get all other cases to work without too much copypasting | 16:02 | |
(now it's only WC <op> WC) | |||
jnthn: btw, how do i get last element of array in NQP? | 16:03 | ||
or number of elements | |||
moritz_ | +@a | 16:04 | |
nqp: my @a; @a[0] := 1; @a[1] := 2; say(+@a) | 16:05 | ||
p6eval | nqp: OUTPUT«2» | ||
moritz_ | nqp: my @a := [1, 2, 8]; say(+@a) | ||
p6eval | nqp: OUTPUT«3» | ||
mmcleric | er... by "array" i meant node, sorry :) | ||
also, where can i get my own nqp binary to try it for myself? | 16:06 | ||
16:07
Chillance joined
|
|||
moritz_ | mmcleric: ./parrot_install/bin/parrot-nqp | 16:08 | |
16:08
whiteknight joined
|
|||
mmcleric | thanks | 16:08 | |
moritz_ | nqp: my $x = PAST::Stmts.new(1, 2, 3); say(+$x) | ||
p6eval | nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 1, near " PAST::Stm"current instr.: 'parrot;HLL;Grammar;panic' pc 552 (src/cheats/hll-grammar.pir:205)» | ||
moritz_ | nqp: my $x := PAST::Stmts.new(1, 2, 3); say(+$x) | 16:09 | |
p6eval | nqp: OUTPUT«get_number() not implemented in class 'Capture'current instr.: '_block11' pc 37 (EVAL_1:1494965501)» | ||
moritz_ | nqp: my $x := PAST::Stmts.new(1, 2, 3); say($x.elems) | ||
p6eval | nqp: OUTPUT«Method 'elems' not found for invocant of class 'PAST;Stmts'current instr.: '_block11' pc 52 (EVAL_1:1376632416)» | ||
moritz_ | nqp: my $x := PAST::Stmts.new(1, 2, 3); say(?$x) | ||
p6eval | nqp: OUTPUT«1» | ||
moritz_ | nqp: my $x := PAST::Stmts.new(); say(?$x) | ||
p6eval | nqp: OUTPUT«1» | ||
pmichaud | $x.list.elems | 16:11 | |
nqp: my $x := PAST::Stmts.new(1,2,3); say ($x.list.elems); | |||
p6eval | nqp: OUTPUT«Confused at line 1, near "say ($x.li"current instr.: 'parrot;HLL;Grammar;panic' pc 552 (src/cheats/hll-grammar.pir:205)» | ||
pmichaud | nqp: my $x := PAST::Stmts.new(1,2,3); say($x.list.elems); | ||
p6eval | nqp: OUTPUT«Method 'elems' not found for invocant of class 'ResizablePMCArray'current instr.: '_block11' pc 61 (EVAL_1:17)» | ||
moritz_ | +$x.list | ||
pmichaud | nqp: my $x := PAST::Stmts.new(1,2,3); say(+$x.list); | ||
p6eval | nqp: OUTPUT«3» | ||
pmichaud | right. | ||
16:12
justatheory joined
|
|||
mmcleric | great :) thanks | 16:12 | |
TimToady | re running a little over on your talk: TheDamian++ talked all day about Perl 6 and still ran over. :) | ||
moritz_ sings "we shall overrun, we shall overrun, some daaaaaaay" | 16:13 | ||
jnthn | > class A { method foo(|$c) { say $c.perl } }; A.foo(1) | ||
\(1) | |||
\o/ | |||
moritz_ | jnthn: does that automagically fix 'handles' for methods with arguments? | ||
jnthn | should | 16:14 | |
since it was the underlying bug | |||
TimToady sings "Mañana, mañana, I love you, mañana! You're always a day away!" | 16:16 | ||
dalek | kudo: 77a3501 | pmichaud++ | src/ (5 files): Allow infinity laziness in arrays, array assignment. |
||
kudo: b5bd660 | pmichaud++ | src/ (2 files): Merge branch 'master' of github.com:rakudo/rakudo |
|||
pmichaud | "When it's siesta time.... in Akron O-HI-O...." </tom_lehrer> | 16:17 | |
moritz_ | TimToady: what do you think about :foo"string here" colonpair syntax? | 16:18 | |
I often miss it, and sometimes abuse :foo<string here> stringification to DTRT with spaces | |||
which is... an abuse, really | |||
pmichaud | I suggest :foo("string here") :-P | ||
moritz_ | I know that exists | 16:19 | |
pmichaud | the challenging part would be handling :foo'string here' | ||
moritz_ | why? | ||
TimToady | is :foo("string here") that bad? | ||
pmichaud | because foo'string is a valid identifier. | ||
moritz_ | oh, right | ||
pmichaud | I agree with TimToady++ | ||
visually I find that :foo"string here" doesn't look right to me | |||
moritz_ | TimToady: it's not that bad really, but I dislike (...) where the parens could be avoided somehow | 16:20 | |
anyway, if the majority disagrees, I'll rest my case | |||
jnthn | moritz_: all tests pass in handles.t | ||
pmichaud | jnthn: \o/ | ||
TimToady | rakudo: say :foo<string\ here>.perl | ||
moritz_ | jnthn: did you unfudge some? | ||
p6eval | rakudo 142433: OUTPUT«"foo" => ("string\\", "here")» | ||
TimToady | alpha: say :foo<string\ here>.perl | 16:21 | |
p6eval | alpha 30e0ed: OUTPUT«"foo" => ["string\\", "here"]» | ||
moritz_ | rakudo: say :foo<<string\ here>>.perl | ||
p6eval | rakudo 142433: OUTPUT«"foo" => ("string\\", "here")» | ||
moritz_ | alpha: say :foo<<string\ here>>.perl | ||
p6eval | alpha 30e0ed: OUTPUT«"foo" => "string here"» | ||
moritz_ | rakudobug! | ||
jnthn | moritz_: I just ran the .t | ||
;-) | |||
TimToady | one outa four ain't bad... | ||
moritz_ | jnthn: \o/ | ||
jnthn | moritz_: will unfudge and spectest | ||
Just in case | |||
moritz_ | rakudo: say «a\ b».perl | 16:22 | |
p6eval | rakudo 142433: OUTPUT«("a", "b")» | 16:23 | |
16:23
mberends joined
|
|||
TimToady | that's kinda wrong any way you look at it | 16:23 | |
16:23
M_o_C left
|
|||
moritz_ | right | 16:23 | |
attached to the same ticket | |||
TimToady | but I think <> should respect \ | 16:24 | |
rakudo: say <foo\>\>\>bar> | |||
p6eval | rakudo 142433: OUTPUT«foo>>>bar» | ||
moritz_ | .oO( this is what it must feel like to be masak :-) ) |
||
TimToady | works there | ||
space is arguably either way | 16:25 | ||
16:25
patspam joined
|
|||
TimToady | but I'd argue that it's more like a metachar than like a '\ ' | 16:25 | |
rakudo: say '\ ' | |||
p6eval | rakudo 142433: OUTPUT«\ » | ||
TimToady | that's correct, but I think <foo\ bar> should probably not split on that space | 16:26 | |
since the clear intent is to de-meta it | |||
moritz_ | I kinda thought that < were more like ' + split | ||
and << where more like " + split | |||
s/h// | |||
pmichaud | << is quite complex. | 16:27 | |
moritz_ | pmichaud: I know, I know | ||
TimToady | well, << is not really like " complete either | ||
since it allows internal shell quoting | |||
moritz_ | but I'm not strongly attached to that notion | ||
pmichaud | TimToady: so, inside of single-angles the \ would escape any sort of delimiter? | ||
TimToady | I think "clear intent" trumps "A is just a B" here | ||
pmichaud | where whitespace is a delimiter in the single-angle case? | 16:28 | |
(normally \ only escapes the closing bracket) | |||
TimToady | I'll bet it also escapes \ :) | ||
rakudo: say <\\> | |||
pmichaud | I'll take that bet. Oh wait, I lose. | ||
p6eval | rakudo 142433: OUTPUT«\» | ||
16:28
justatheory left
|
|||
pmichaud | yes, it also escapes \ . | 16:28 | |
TimToady | I think just add whitespace to that | 16:29 | |
jnthn | .u U+1F489 | 16:30 | |
phenny | jnthn: Sorry, no results | ||
16:31
synth_ left
16:33
synth left
16:40
synth joined
16:50
mmcleric left
|
|||
colomon | loliblogged: justrakudoit.wordpress.com/2010/06/26/99/ | 16:54 | |
TimToady wonders if { ... } ==> @result implies an "async" on the {} | 16:55 | ||
colomon | ciphertext: ping-pong? | ||
TimToady | so that just putting {} around the source of a feed would naturally be a (non-)sharing boundary | 16:56 | |
that is, my @result <<== { stuff() } turns into (my @result).feed: gather async { take {...}() } or some such | 16:58 | ||
pmichaud | jnthn: ping | ||
TimToady | s/\.\.\./stuff()/ | ||
jnthn | pmichaud: pong :-) | 16:59 | |
pmichaud | jnthn: I'm working on this one.... | ||
rakudo: say ({ a => 42 }).isa(Hash); | |||
p6eval | rakudo b5bd66: OUTPUT«0» | ||
pmichaud | the problem seems to be that Hash is a Perl6Role | ||
jnthn | rakudo: say ({ a => 42 }).does(Hash) | ||
p6eval | rakudo b5bd66: OUTPUT«1» | ||
jnthn | pmichaud: Yeah, long story ;-) | ||
17:00
alester joined
|
|||
jnthn | pmichaud: We had quite a few things as roles at one time. | 17:00 | |
pmichaud | so, what's the answer/punch-line ? | ||
jnthn | pmichaud: Then switched them to classes. | ||
pmichaud | should I switch Hash to be a class? | ||
jnthn | Apart from we got collisions with Parrot Hash when switching it to a class. | ||
I cleared up some of them | |||
But then it was still broken. :-/ | |||
pmichaud | it might not be so broken after my refactors | ||
jnthn | Anyway, yes, feel free to change and triage. | ||
pmichaud | okay, I'll try it and see what happens. tnx | ||
masonkramer | are there any syntax highlighting editors available for p6? | 17:01 | |
ash_ | phenny tell cygx I have a sample of the frontend up at greaterthaninfinity.com/shell/ if you want to take a look and give me any comments, suggestions, feedback | ||
jnthn | cd t\spec | ||
oops | |||
ash_ | masonkramer: vim, github.com/petdance/vim-perl | ||
pmichaud | masonkramer: perl6.org/whatever/ | 17:02 | |
alester | Some day I'll have a proper installer for it, masonkramer | ||
for now, just do a "make install" | |||
pugssvn | r31452 | jnthn++ | [t/spec] Corret one test and fully unfudge delegation.t. | ||
ash_ | ah, even better, i'll have to remember that link | ||
masonkramer | excellent, I use vim anyway | ||
jnthn | rt.perl.org/rt3/Ticket/Display.html?id=75966 is done but I gotta go afk right now | 17:03 | |
dalek | kudo: cbf03ac | jonathan++ | src/binder/bind.c: Fix |$c in method signatures and various other cases; it wasn't quite slurpy |
17:05 | |
ash_ | there is an old emacs one too i found once, in pugscode somewhere... i think its out of date, but some people do use emacs | ||
cognominal | is there an predefined operator to see if arrays are equal? == apparently compares their length | 17:06 | |
pmichaud | cognominal: eqv, I think. | 17:07 | |
TimToady | eqv should work, as should ~~ | ||
pmichaud | cognominal: I don't know if that's implemented in Rakudo yet (for arrays) | ||
cognominal | S02 indeed says == is for Nums | ||
moritz_ | ~~ DWIMs wrt * | 17:08 | |
rakudo: say [1, 2, 3, 4, 5] ~~ [1, *, 5] | |||
p6eval | rakudo b5bd66: OUTPUT«1» | ||
pmichaud | rakudo: my @a = <a b c>; my @b = <a b c>; say @a eqv @b; | ||
p6eval | rakudo b5bd66: OUTPUT«1» | ||
pmichaud | rakudo: my @a = <a b c>; my @b = <a b d>; say @a eqv @b; | ||
p6eval | rakudo b5bd66: OUTPUT«0» | ||
pmichaud | looks like rakudo might have it already. | ||
cognominal | rakudo++ | 17:09 | |
perl6++ | |||
ash_ | rakudo: my @a = 1, 2; my @b = 1, 2; my @c = 2, 1; my @d = 1, 3; say @a ~~ @b, @a ~~ @c, @a ~~ @d; | ||
p6eval | rakudo b5bd66: OUTPUT«100» | ||
moritz_ | is_deeply is implemented in terms of eqv | ||
TimToady | don't try to backport the ~~ solution to P5 though, since it will auto-any the array, methinks | ||
pmichaud | +1 to that | ||
(is_deeply) | |||
ash_ | so apparently ~~ on 2 array's order matters, interesting, but it does seem right | 17:10 | |
is there a comparison that doesn't care about order? i suppose you could sort... | |||
sorear | good morning #perl6 | ||
moritz_ | all(@a) eqv any(@b) shouldn't care about order | ||
but it's not quite the same | 17:11 | ||
TimToady | you might have to test it both ways | ||
moritz_ | mornin' sorear | ||
17:11
patspam left
|
|||
TimToady | eventually Set(@a) eqv Set(@b) | 17:11 | |
ash_ | rakduo: my @a = 1, 2; my @b= 2, 1; say @a.sort ~~ @b.sort; # seems the simplest, or what TimToady wrote | ||
TimToady | I don't think rakudo has sets though | 17:12 | |
ash_ | well, when its implemented | ||
moritz_ | it kinda has them, but... weirdly | ||
jnthn | rakudo: say Set; | ||
ash_ | helps if i spell rakudo right too | ||
cognominal | rakudo: 1 neqv 1 | ||
p6eval | rakudo b5bd66: OUTPUT«Set()» | ||
rakudo b5bd66: OUTPUT«===SORRY!===Confused at line 11, near "1 neqv 1"» | |||
moritz_ | rakudo: say Set.new(1, 2, 3) | ||
p6eval | rakudo b5bd66: OUTPUT«Set()<0x4a0cb40>» | ||
moritz_ | cognominal: !eqv | ||
ash_ | rakudo: my @a = 1, 2; my @b= 2, 1; say @a.sort ~~ @b.sort; | ||
p6eval | rakudo b5bd66: OUTPUT«1» | ||
cognominal | there is a !eq as well? | 17:13 | |
moritz_ | yes | ||
TimToady | there's a !op for any boolean op | ||
cognominal | makes sense | ||
I should read S03 thouroughly | |||
ash_ | rakudo: say 1 !+ 2; # just curious.... | ||
p6eval | rakudo b5bd66: OUTPUT«0» | 17:14 | |
pmichaud | s/boolean/binary? | ||
TimToady | no | ||
colomon | !+ shouldn't work | ||
pmichaud | okay, good. | ||
TimToady | std: 1 !+ 2 | ||
p6eval | std 31452: OUTPUT«===SORRY!===Can't negate + because additive operators are not iffy enough at /tmp/rwD0bAUQxQ line 1:------> 1 !+⏏ 2Confused at /tmp/rwD0bAUQxQ line 1:------> 1 !⏏+ 2 expecting infix or meta-infixParse failedFAILED | ||
..00… | |||
colomon | it's just extra logic to stop it from working, which we haven't implemented yet. | ||
17:14
mberends left
|
|||
cognominal | rakudo sometimes DWHM | 17:14 | |
ash_ | std: 1 !% 2 # neat | 17:15 | |
p6eval | std 31452: OUTPUT«ok 00:01 109m» | ||
TimToady | I think I'm going to make !% a specific operator rather than a meta % | ||
so that it doesn't do NOT-raising | |||
but if I do that, maybe it should really be ?% | |||
17:15
synth__ joined
17:16
synth__ left
|
|||
pmichaud | maybe it really should be ?div :-P | 17:16 | |
TimToady | thought about that | 17:17 | |
confusion with existing div though... | |||
pmichaud | agreed. | ||
ash_ | $x !?% 3 # for all the times $x isn't divisible by 3 | ||
pmichaud | but even ?% and !% have the potential to be confusing | ||
moritz_ | wouldn't that be !?% then :-) | 17:18 | |
TimToady | std: say 1 !?& 2 | 17:19 | |
p6eval | std 31452: OUTPUT«ok 00:01 109m» | ||
ash_ | ?% = boolean, + a ! for not-ing the boolean? | ||
TimToady | heh | ||
?& is iffy enough, so maybe ?% can be too | |||
ash_ | svn.pugscode.org/pugs/util/cperl-mode.el has the emacs perl6 cperl mode, but its a bit dated and doesn't have all the stuff the modern cperl module has, as a warning, but it could be linked on the page of text editor support since its kinda right | 17:20 | |
TimToady | I think I could get to like ?% | ||
colomon | I think I'd vote for !% | ||
TimToady | but it's confusing if you expect/don't expect NOT-raising | 17:21 | |
and I can see people expecting both sides of that | |||
17:21
jferrero joined
|
|||
ash_ | rakudo: say 1 !?+ 2 | 17:22 | |
p6eval | rakudo b5bd66: OUTPUT«===SORRY!===Confused at line 11, near "say 1 !?+ "» | ||
TimToady | std: say 1 ?+ 2 | ||
ash_ | std: 1 !?+ 2 | ||
p6eval | std 31452: OUTPUT«===SORRY!===Confused at /tmp/w11VCCceKy line 1:------> say 1 ⏏?+ 2 expecting any of: bracketed infix infix infix or meta-infix statement modifier loopParse failedFAILED 00:02 109m» | 17:23 | |
std 31452: OUTPUT«===SORRY!===Negation metaoperator not followed by valid infix at /tmp/tNGNolvzBI line 1:------> 1 !⏏?+ 2 expecting any of: bracketed infix infix infix or meta-infixParse failedFAILED 00:01 108m» | |||
ash_ | just curious | ||
TimToady | ? does not generalize like ! | ||
colomon | but the usual way operators are constructed with a ? prefix implies it's the normal sense of the operator, only boolean-y, which seems to imply to me that logically ?% should be the not-divisible-by operator. | ||
ash_ | % is only special because people use it to check things like "are we on the 3rd row?" which is a boolean assumption, correct? | 17:24 | |
TimToady | how 'bout %% | ||
ciphertext | colomon: pong | ||
colomon | TimToady: I could live with %% | ||
it doesn't mean anything obvious to me, so it can be whatever we want! ;) | 17:25 | ||
pmichaud | %% doesn't scream "boolean" to me, though. | ||
TimToady | it really needs to use % in it somehow, since people are used to seeing $a % 4 == 0 | ||
pmichaud | %=% or =%= or %== | ||
(just throwing out ideas) | 17:26 | ||
colomon | ciphertext: I should be able to look at series stuff all afternoon. Do need to get some $work done (starting a big test run soon is most important) and probably take a nap. | ||
TimToady | there's \% too | ||
pmichaud | \ reminds me too much of unspace | ||
ash_ | $a ?% 4; vs $a % 4 == 0; vs $a ?% 4; vs $a %% 4; vs $a =%= 4; | 17:27 | |
oops ?% is in there twice | |||
TimToady | %% probably looks the least cluttered | ||
and the = ones look like assignment | 17:28 | ||
ash_ | ?% is still kinda nice since it implies boolean-ness like it does in other places | ||
TimToady | yah | ||
ash_ | (in regards to ?) | ||
pmichaud | yes, but unfortunately $a ?% $b wouldn't be the same as ?($a % b) | ||
*$b | |||
ash_ | good point | 17:29 | |
pmichaud | that's where I think people might get confused. | ||
TimToady | well, it's not like == has a ? on the front of it either | ||
so I'm leaning toward %% | |||
pmichaud | how about o//o :-P | 17:30 | |
it's a percentage sign with a double-slash :-P | |||
TimToady | % | ||
pmichaud | or even °//o | ||
TimToady | ٪ | ||
sorear | TimToady: What about methods? $object.foo(1, a => 2, 3) isn't lexically bound to a single proto either | 17:31 | |
TimToady | ÷ | ||
ash_ | $a modulo 4 | ||
pmichaud | anyway, %% isn't too bad, so I could live with that. | ||
colomon | could be implemented in a couple of minutes.... ;) | ||
pmichaud | "gozinta" | 17:32 | |
TimToady | sorear: it might be sufficient to be able to reconstruct the original parcel from the capture if needed | ||
colomon | gozinta! | ||
TimToady | gozinta is backwards | ||
colomon | atnizog! | ||
TimToady | bless you | ||
pmichaud | hmmmm, getting \ to work in <...> is a bit nasty. Can no longer just do 'split' on the result. | 17:35 | |
I'll wait on that one for when we redo «...» again. | |||
ash_ | phenny: tell cygx I have a sample of the frontend up at greaterthaninfinity.com/shell/ if you want to take a look and give me any comments, suggestions, feedback | ||
phenny | ash_: I'll pass that on when cygx is around. | ||
ash_ | yay it worked this time | ||
TimToady | ‰ | 17:37 | |
※ | |||
ciphertext | colomon: i made a sort of checklist for series last night: nopaste.snit.ch/21593 | 17:38 | |
moritz_ | jnthn: btw you also seem to have fixed RT #74336 along the way :-) | 17:40 | |
rakudo: my @a = 1,2,3; my (@c) = @a; say @c.perl | 17:41 | ||
p6eval | rakudo b5bd66: OUTPUT«[[1, 2, 3]]» | ||
moritz_ | gives just [1, 2, 3] locally | 17:42 | |
pugssvn | r31453 | moritz++ | rakudo unfudges and refudges | 17:43 | |
colomon | ciphertext: great list | ||
ciphertext | thanks | 17:44 | |
colomon | okay, I see to have started my $work test successfully. | 17:45 | |
pugssvn | r31454 | lwall++ | [S03] change !% to %% to avoid metaconfusion | 17:46 | |
colomon | ciphertext: gimme a minute to fix that last change... | ||
sorear finish backlog | 17:47 | ||
17:47
Ross joined
|
|||
colomon | TimToady: I don't think we ever actually implemented !% | 17:47 | |
moritz_ | huh | 17:48 | |
colomon | just picked it up from !op and % | ||
17:48
Chillance left
|
|||
moritz_ | ok 13 - gather with nested while # TODO broken gather/take with while (RT #62178) | 17:48 | |
ok 14 - gather with nested loop # TODO broken gather/take with loop (RT #62178) | |||
huh? jnthn++ accidentally the bug? | |||
or pmichaud++? | 17:49 | ||
colomon | :\ | ||
sorear | autounfudge! | ||
moritz_ | rakudo: my @a = gather loop (my $i = 1; $i < 10; $i++) { take $i }; @a.perl.say; | ||
p6eval | rakudo b5bd66: OUTPUT«[10, 10, 10, 10, 10, 10, 10, 10, 10]» | ||
TimToady | autounfudge needs a "don't unfudge | 17:50 | |
moritz_ | it has | ||
it recognizes 'noauto' | |||
17:50
envi^home left
|
|||
TimToady | good | 17:51 | |
moritz_ | and also 'unspecced' | ||
colomon | rakudo: say ('A' ... *).munch(100) | ||
TimToady | bad :) | ||
p6eval | rakudo b5bd66: OUTPUT«ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCV» | ||
colomon | > say (1 ... 20) >>%%>> 4 | 17:53 | |
00010001000100010001 | |||
moritz_ | evil. | ||
pugssvn | r31455 | moritz++ | [t/spec] more rakudo unfudges | ||
ash_ | nice | 17:54 | |
colomon: that was fast | |||
colomon | ash_: now it will take 20 minutes to spectest. :) | ||
ash_ | moritz_: was that right? the above gather/take ? | ||
moritz_ | ash_: nope | ||
ash_ | okay, just curious | ||
moritz_ | but here with latest rakudo it just works[tm] | ||
pugssvn | r31456 | moritz++ | [t/spec] more rakudo unfudges | 17:55 | |
17:56
Transformer joined
|
|||
colomon | ciphertext: the closure on the RHS caveat is because the original series operator spec had the generating closure on the RHS instead of the LHS. | 17:58 | |
17:58
Transformer left
|
|||
colomon | But that's the main reason I haven't gotten around to implementing that. | 17:58 | |
probably no real reason not to at this point. | |||
17:58
alester left
|
|||
ciphertext | i've got rhs closures on my local version | 17:58 | |
TimToady | colomon: are you changing the !% spectests to %%? | 17:59 | |
colomon | TimToady: I haven't done so, no. | ||
ciphertext | right now, i'm merging with the current version (by hand) | ||
TimToady | I can change 'em, if you'll be checking in the %% fix soon | ||
colomon | ciphertext: this is maybe one area of the spec that still needs work, however. one minute. | 18:00 | |
TimToady: I'm going to check it is as soon as I spectest, so changes would be timely and appreciated. | |||
pugssvn | r31457 | lwall++ | [t/spec] change !% to %% | 18:04 | |
sorear | TimToady: Is there a good way to use STD to parse a slightly extended Perl 6? (Like some kind of Q:CIL block) | ||
TimToady | probably | 18:05 | |
colomon | ciphertext: It looks to me like the section describing closures on the RHS thinks you call it on the current list, whereas the explicit examples for string functions seem to imply it is called on the current list plus the potential next value of the list. | ||
that is, I can see three ways of doing it: | |||
1. Check closure, terminate if false, otherwise generate next value and "take" it. | 18:06 | ||
lue | ohai | ||
colomon | 2. Generate next value, check closure with list and next value, terminate if false, otherwise take new value. | 18:07 | |
TimToady | ohio | ||
18:07
sftp joined
|
|||
lue | OH :) | 18:07 | |
colomon | 3. .... guess this is just a variant on #1, though it might make a difference at the beginning of the series? | 18:08 | |
3. generate next, take it, check closure with list so far, terminate if false. | |||
I suspect the clean way to implement this is that internally, we always have a closure. | |||
TimToady | sorear: you ought to be able to derive from Q and then locally use that for the %*LANG<Q> braid | ||
moritz_ | autounfudge finds several new items, Tene++, pmichaud++, colomon++, jnthn++ | 18:09 | |
TimToady | just be sure to temp %*LANG at the right spot | ||
colomon | ciphertext: "what exactly does a signature mis-match imply?" Looks to me like the intent is that if you cannot call the generating function, then the series ends. Don't know how to cleanly implement that, however. | 18:11 | |
TimToady | sorear: where you aren't actually modifying the base Q language, other than to add a role that can be mixed in with :CIL | ||
colomon | rakudo: say (2, 3, 5 ... *).much(20).perl | 18:12 | |
p6eval | rakudo b5bd66: OUTPUT«Method 'much' not found for invocant of class 'Failure' in main program body at line 11:/tmp/0kHLSNjBQf» | ||
colomon | rakudo: say (2, 3, 5 ... *).munch(20).perl | ||
p6eval | rakudo b5bd66: OUTPUT«Method 'munch' not found for invocant of class 'Failure' in main program body at line 11:/tmp/ke9le3hOtC» | ||
18:13
M_o_C joined
|
|||
colomon | ciphertext: I guess the STD may not explicitly specify failure there, but I don't know what else we could sensibly do. | 18:13 | |
except now that I think about it, what about the 2, 3, 5 ... 3 case? That should work. :( | 18:14 | ||
seems to imply correct behavior is to output the LHS case (with appropriate termination checks), and only then try to figure out the implied generating function (if needed). | 18:15 | ||
ciphertext | colomon: re. rhs closures, i like #2; i think it's the most consistent with my understanding of the spec | ||
sorear | TimToady: I see | ||
TimToady | you usually do :) | 18:16 | |
sorear | I'd need to somehow hook in code after comp_unit for that, though | 18:17 | |
colomon | ciphertext: "the spec says 'numeric'..." I suspect this is an oversight. really, it seems like we need three categories: Numeric (ie we can find arithmetic or geometric); Ordered (ie cmp is defined, like Strs); No-nothing (all we can do is call .succ) | ||
sorear | anyways this is for a bit in the future | ||
TimToady | sorear: that's just 'use STD; grammar MyQ is STD::Q { etc }' | ||
colomon | ciphertext: I like #2 as well, but I think it's the furtherest from what the spec says, even if it's what the spec means. We should probably change the spec in this case. :) | ||
ciphertext | colomon: re. (2,3,5...3): terminating early should be fairly simple: we already loop through the values on the lhs and 'take' them. adding a 'return if...' to check for limit values. then, it would never get to the code that looks for patterns. | 18:18 | |
colomon | ciphertext: the mostly eager stuff is very much still in flux, I vote we don't worry about it yet. | ||
TimToady | the compiler can probably complain at compile time on the basis of the unrecognized sequence; it's only the RHS that is not known till run time | 18:19 | |
ciphertext | not worrying yet sounds good :-) | ||
colomon | ciphertext: right, that's what I was trying to say back there. :) | ||
(that's right as in never getting to the code that looks for patterns.) | |||
18:20
TiMBuS left
|
|||
colomon | ciphertext: the other thing we should do is take that list of yours and try to make sure we have tests for all the cases. | 18:21 | |
ciphertext | consider (2,3,5...$n) i'm not sure this should even compile, regardless of the value of $n... it seems kind of dangerous | 18:22 | |
TimToady | I just saidthat | 18:23 | |
ciphertext | TimToady: i was just agreeing with you :-) | ||
18:23
envi^home joined
|
|||
pugssvn | r31458 | moritz++ | [helpnow] another idea: Match.new | 18:23 | |
TimToady | but were you doing it consciously? :) | ||
18:24
envi^home left
|
|||
pugssvn | r31459 | lwall++ | [STD] change !% to %% | 18:24 | |
18:26
Mark____ joined
18:28
Mark____ left
|
|||
ciphertext | hmmm... my $a = 2; my $b = 3; my $c = 5; my $n = 3; say ($a,$b,$c...$n); # this can't really complain at compile time. | 18:28 | |
18:29
Mark____ joined,
Mark____ left
18:30
MarkSenn joined
|
|||
TimToady | no, but that doesn't prevent the compiler from checking when it does know what's there | 18:30 | |
which will be almost always | 18:31 | ||
lue | afk | ||
dalek | kudo: a579f8e | pmichaud++ | build/PARROT_REVISION: Bump PARROT_REVISION, fixes RT #71462. |
18:33 | |
18:34
MarkSenn left,
rv2733 left
|
|||
pugssvn | r31460 | pmichaud++ | [t/spec]: Unfudge passing test for RT #71462. | 18:44 | |
Tene | "By studying children who learned NSL at various stages of its development, Pyers has shown that the vocabulary they pick up affects the way they think. Specifically, those who learned NSL before it developed specific gestures for left and right perform more poorly on a spatial awareness test than children who grew up knowing how to sign those terms." -- ... | 18:47 | |
... blogs.discovermagazine.com/notrocke...s-thought/ | |||
pugssvn | r31461 | lwall++ | [STD] change 'not iffy enough' from .sorry to .panic | 18:49 | |
ash_ | so, if i think i am going to start working on the tutorials for the try.rakudo.org shell, and the first example in the rakudo book is incredibly complicated if you don't know perl... | 18:50 | |
dalek | kudo: 7102d7c | (Solomon Foster)++ | src/ (2 files): Implement infix:<%%> "is divisible by" operator. |
19:02 | |
ash_ | moritz_: hey, i have a question about try.rakudo.org (and perl6 documentation) | 19:04 | |
19:04
cono left
|
|||
moritz_ | ash_: sure | 19:04 | |
19:04
tylercurtis joined
19:05
cono joined
|
|||
ash_ | is there anywhere you can look up perl6 related terms? I wanted to have a: "help <term>" so you could get more information on a term that you might not know, like if we say "This operation is iffy" they could say help iffy and get a definition for how we use it in perl6 | 19:05 | |
moritz_ | ash_: 'grok' tried to implement such a function, I think | 19:07 | |
ash_ | if there is one thats started, that would be cool, if not we can always start fresh | ||
moritz_ | github.com/hinrik/grok | ||
19:09
hmmm joined
|
|||
hmmm | hello | 19:09 | |
does perl6 have filehandle arrays? Seems perl5 does not for some very strange reason... | 19:10 | ||
TimToady | filehandles aren't special in Perl 6; they're just normal objects, so a normal array of filehandles will work | 19:11 | |
hmmm | Sounds great, why do you think perl5 does not have for example FH[$i]? | 19:12 | |
ingy | greetings | 19:14 | |
TimToady | there are ways to get the same effect in Perl 5 | ||
pugssvn | r31462 | pmichaud++ | [t/spec]: Fix and unfudge test for RT #67218 in pair.t . | ||
ingy | seen patch | ||
19:15
felliott left
|
|||
TimToady | open(my $newhandle, "file"); $FH[$i] = $newhandle | 19:15 | |
patch | ingy: hi | ||
ingy | patch! | ||
i was wondering if you would like to set aside a few hours to hack on testml tomorrow? | 19:16 | ||
as in pairing... | 19:17 | ||
19:17
masak joined
|
|||
masak | oh hai, #perl6! | 19:17 | |
ingy | greetings masak | ||
patch | sure. in the afternoon or night. anytime after lunch really. | ||
TimToady | ohio | ||
hmmm | That's elightening, did not know that'd work (use strict/warnings), but that may get me where i want to go. How does Perl6 plan to do the FH arrays? | ||
TimToady | hmmm: it doesn't need to do anything special | 19:18 | |
masak | ingy: how's YAML-in-Perl-6 coming along? | ||
sorear | hmmm: FH in Perl 5 is quasi-deprecated; all the cool people store filehandles in scalar variables (new feature in 5.6) | ||
ingy | masak: patch and I are currently porting testml to p6 | ||
masak: then we will port jsync | |||
masak | what's jsync? | ||
ingy | which is a poor man's yaml | ||
masak | aha. | 19:19 | |
ingy | masak: www.jsync.org/spec/ | ||
masak peruses | |||
hmmm | using 5.12, not looking back, guess i learned something old and got stuck... | ||
ingy | masak: search.cpan.org/dist/JSYNC/ | ||
masak | doesn't look so poor-man's. looks quite powerful to me. | 19:20 | |
ingy | masak: so we will definitely have jsync done for rakudo star | ||
masak: :) | |||
sorear | Think of JSYNC as "YAML, but without the 200 page specification" | ||
masak | right. | 19:21 | |
ingy | masak: it doesn't afford the human niceness | ||
sorear | (seriously, how did they make yaml so complicated?) | ||
ingy | sorear: well the jsync spec simply points to the yaml spec for tags and stuff | ||
sorear: you mean me? | |||
:) | 19:22 | ||
I think it was the TimToady in us :) | |||
ingy <3 the YAML spec. | 19:23 | ||
sorear | it's been a while; I forgot who all was on the author list | ||
ingy | :) | ||
19:23
M_o_C left
|
|||
sorear wanders off to reread it | 19:24 | ||
ingy | masak: after that we can talk about binding libyaml into rakudo | ||
tylercurtis | rakudo: ([&&] 1, 3, 5, 0, 1).perl.say | ||
p6eval | rakudo a579f8: OUTPUT«===SORRY!===Could not find sub &infix:<&&>» | ||
tylercurtis | rakudo: ([||] 0, 0, 0, 1).perl.say | 19:25 | |
pmichaud | what part of the spec describes the assignment of Nil to variables? | ||
p6eval | rakudo a579f8: OUTPUT«1» | ||
tylercurtis | Why is it that [||] works in Rakudo but && does not? | ||
pmichaud | I'm thinking that [||] must be specially defined as an operator, while [&&] is not. | 19:26 | |
TimToady | S02:2162 | ||
pmichaud | TimToady: thanks | ||
masak | ingy: I had faked YAML enough in proto to be able to use it for simple config-like files. really only one level hashes, very predictable. for pls I decided to use JSON::Tiny by moritz_++. it's not faked, but I think it imposes quite a speed hit. | ||
ingy | nod | 19:27 | |
ash_ | moritz_: github.com/moritz/try.rakudo.org/bl...s/index.js does that outline look alright for chapter progression | ||
ingy | patch: our grammar didn't work for quoted strings... | 19:28 | |
patch: I'll commit a failing test... | |||
tylercurtis | pmichaud: that looks to be the case. | ||
patch | ingy: when is good for you tomorrow? | ||
19:29
quietfanatic joined,
alester joined
|
|||
ingy | patch: when is after lunch? | 19:31 | |
masak | ooh, a spec change. | 19:34 | |
I guess the clues for why are to be found in the backlog. | |||
ingy | patch: let's start at 1PM EST | 19:35 | |
pugssvn | r31463 | pmichaud++ | [t/spec]: Unfudge infinite range tests in range.t . | 19:37 | |
patch | ingy: was just checking my lunch plans. let's push it to 2pm. ok? | 19:38 | |
ingy: well, EDT, not EST. 18:00 UTC, that is. | |||
moritz_ | ash_: outline looks great | 19:39 | |
19:39
cygx joined
|
|||
hmmm | Will Perl6 will support this syntax for example? open($FHA[$i], "$filename[$i]",); { do some things; } close ($FHA[$i]); | 19:39 | |
moritz_ | ash_: I would have put strings before lists, but it works either way | ||
cygx | hi | ||
phenny | cygx: 17:35Z <ash_> tell cygx I have a sample of the frontend up at greaterthaninfinity.com/shell/ if you want to take a look and give me any comments, suggestions, feedback | ||
sorear | hmmm: no | 19:40 | |
moritz_ | hmmm: nearly; $FHA[$i] = open $filename[$i]; ... | ||
sorear | hmmm: filehandles in perl 6 aren't special. at all. | ||
TimToady | not syntactically special, anyway | ||
tylercurtis | pmichaud: I made a patch to add infix:&& and infix:and, I'll submit it once I make sure it doesn't somehow break anything(or, at least, nothing that is tested by "make test" or "make spectest"). | ||
sorear | alternatively, my $FHA = $filename.map(&open) | 19:41 | |
ingy | patch: sounds good | ||
ash_ | moritz_: i was thinking of starting with basic stuff, like math, and moving from there, and a list of numbers seemed pretty basic, (strings are lists of numbers in a lot of languages :P) but i could move them sooner | ||
TimToady | sorear: um, why the map for a single filename? | ||
cygx | what's the status of Sockets, DBI and non-blocking IO in Rakudo? | 19:42 | |
sorear | TimToady: $filename is an array | ||
TimToady | then it should be named $filenames :P | ||
sorear | unless by $filename[$i] earlier he meant @filename[$i] | ||
TimToady | he probably did | ||
ash_ | moritz_: anyway, i'll work on that some more tonight, going to spend some time with my girlfreind & | 19:43 | |
TimToady | hmmm: so more like: my @FHA = @filename.map(*.open) | ||
moritz_ | ash_: the main motivation is that if you introduce strings first, it's easier to explain that lists can hold any types | ||
ash_: have fun | |||
sorear | TimToady: Why does Str care enough about files to have an .open? | 19:45 | |
hmmm | $filename[$i] is an indexed element of array @filename and $FHA[$i] is an indexed element of my filehandle array @FHA | ||
TimToady | hmmm: only in Perl 5 | 19:46 | |
sorear | hmmm: in Perl 6, an element of @filename is @filename[$i] | ||
TimToady | those are spelled @filename[$i] in P6 | ||
pugssvn | r31464 | moritz++ | [t/spec] more rakudo unfudges | ||
r31465 | moritz++ | [t/spec] more rakudo unfudges | |||
TimToady | well, *.IO will probably work, if *.open doesn't... | 19:47 | |
hmmm | P6 is using better syntax perhaps ;) | ||
sorear | @filenames».IO».open? | ||
19:47
Trashlord left
|
|||
TimToady | IO probably defaults to readonly open anyway, if you do anything to read from it | 19:48 | |
ingy would approve | |||
sorear | ++ to whoever thought to put Camelia in the topic, btw | ||
What is "IO" semantically? | |||
19:49
Trashlord joined
|
|||
TimToady | an abstract handle that can do a few dwimmy things | 19:49 | |
the idea is something of ingy's from P5 | 19:50 | ||
sorear | How is it not a File? Or a Path? | ||
TimToady | so IO("in") ==> IO("out") would copy a file | ||
though in P5 he did it with overloading existing operators | |||
but it's representing the file in the abstract until you do something with it, so "foo".IO.e just tells you if the file exists, and doesn't necessarily have to open it, unless we decide to do so to avoid races | 19:52 | ||
ingy | :) | 19:53 | |
TimToady | and .IO workds because it's a coercion | ||
ingy: that's why I keep trying to get you to rewrite the IO pod :) | |||
so there's no IO method in Str | 19:54 | ||
ingy | TimToady: it's on my stack :) | ||
TimToady | yes, but since it got pushed some time ago, it just keeps getting deeper, since that's how stacks work | ||
maybe you need a fifo | |||
19:55
plobsing joined
|
|||
ingy | it's just below <replace pod> ;) | 19:55 | |
TimToady | Aw, kwid it! | ||
in theory you can just say =use kwid and off you go... | 19:56 | ||
ingy | I would gladly review and comment on a document describing IO ala IO::All | ||
but I can't drive it at the moment | 19:57 | ||
it would Bind me ;) | |||
TimToady | we can't just assign it to you? | ||
std: say 1 !% 2 | 19:58 | ||
p6eval | std 31462: OUTPUT«===SORRY!===Can't negate % because multiplicative operators are not iffy enough at /tmp/IOOocy67do line 1:------> say 1 !%⏏ 2Parse failedFAILED 00:01 112m» | ||
ingy | I'm a python guy, ya know... | ||
TimToady | std: say 1 %% 2 | ||
p6eval | std 31462: OUTPUT«ok 00:01 109m» | ||
ingy | crap | ||
TimToady | we all have our faults | ||
ingy | every time p6eval prints french quotes it borks my screen session | 19:59 | |
TimToady | how 'bout you get into the 21st century and enable UTF-8 | ||
Juerd | Do you want help fixing your screen? | ||
ciphertext | colomon: updated series feature list w/test information: nopaste.snit.ch/21594 | ||
ingy | anyway, YAPC events made me switch a new project from python to p5 | 20:00 | |
Juerd | Does it blow up everytime someone writes "döt Net" too? | ||
ingy | Juerd: please | ||
hmmm | Borked here too w/ FF 3.6 & UTF-8... | ||
ingy | TimToady: I have utf-8 enabled everywhere | ||
TimToady | apparently not | ||
moritz_ | ingy: does it work without screen on that console? | ||
ingy | except the some unknown place, yah | ||
moritz_ | Ctrl+A :ut8 on | ||
Juerd | If it's linux, it's a broken locale :) | 20:01 | |
Is it linux? | |||
moritz_ | s/ut8/utf8/ | ||
ingy | yes | ||
Juerd | ingy: In screen, what does locale output? | ||
TimToady | is LANG=en_US.UTF-8 ? | ||
sorear | TimToady: How is .IO not a method on Str? | ||
pugssvn | r31466 | pmichaud++ | [t/spec]: Refactor/refudge some tests in sigils-and-types.t | ||
TimToady | any coercion may be defined on either end | 20:02 | |
so it could be a method on string, but it's supposed to know that *.IO fails over to IO() | |||
20:03
Trashlord left
|
|||
TimToady | because IO is a type | 20:03 | |
ingy | evidently utf8 on was not in my .screenrc | ||
added and rejoined | |||
TimToady | std: say "hi to ingy" | ||
ingy | std: say 1 !% 2 | ||
p6eval | std 31466: OUTPUT«ok 00:01 111m» | 20:04 | |
std 31466: OUTPUT«===SORRY!===Can't negate % because multiplicative operators are not iffy enough at /tmp/Jk_lnpcL7a line 1:------> say 1 !%⏏ 2Parse failedFAILED 00:01 109m» | |||
Juerd | ingy: It doesn't have to be on. | ||
ingy: That is, screen enables it automatically if you use the right locale. | |||
ingy | Juerd: it seems to work now | ||
Juerd | ingy: That's good enough :) | ||
TimToady | you sure it was the utf-8 and not the colors? | ||
Juerd | Still you may want to look at your locales (locally, remote, and remote+screen) if you encounter more utf8 breakage. | ||
ingy | Hiragana (平仮å, ã²ãã㪠or ãã©ã¬ã?) is a Japanese syllabary, | ||
hmm, that didn't work | 20:05 | ||
TimToady | hmm, that was mojibake here | ||
Juerd | That looks lovely. juerd.nl/i/1de78c205cf7750f4017734309ddc798.png | ||
ingy | maybe irssi | ||
TimToady | copied from a Big-5 window maybe? | ||
Juerd | Irssi too Just Works if the locale is correct | ||
ingy | en.wikipedia.org/wiki/Hiragana | ||
Juerd | But you may force it with /set term_charset UTF-8 | ||
ingy | utf8 | ||
TimToady | 平仮名, ひらがな or ヒラガナ | 20:06 | |
works fine for my paste | |||
ingy | <@TimToady> ??????, ???????? or ???????? | ||
masak | ok, I think I've learned to like %% now. TimToady++ :) | ||
TimToady: does this change mean that the concept 'iffy' isn't needed any more? | |||
TimToady | on the OUTPUT lines above, is there and extra ^A before the « and such | ||
masak: no, it doesn't | 20:07 | ||
Juerd just looked up %%. I thought !% did that. | |||
TimToady | it dide | ||
*did | |||
now it doesn't | |||
Juerd | Because % isn't a comparing op? | 20:08 | |
masak | Juerd: there was a deja vu, er, spec change today. | ||
ingy | I have term_charset = "utf-8"; in my irssi conf | ||
under settings | |||
Juerd | ingy: But how about your locale? :) | ||
ingy | Juerd: checking | ||
TimToady | because it was confusing people about NOT-raising, and we could agree one whether it was better with ?% | ||
*couldn't | |||
Juerd | ingy: Check everywhere: local terminal, remote terminal, remote screen | ||
20:08
molaf joined
|
|||
Juerd | TimToady: I see | 20:09 | |
TimToady | what the heck is the matter with my "n't" key these days? | ||
Juerd | I wonder what your keyboard looks like | ||
TimToady | it's that extra red key between n and t that comes on thinkpads | 20:10 | |
when I press it, it does work | |||
*n't | |||
moritz_ | lol | ||
Juerd | My thinkpad must be broken | 20:11 | |
ingy | Juerd: nopaste.snit.ch/21595 | ||
masak | I was always a fan of that extra red key on ThinkPads. | ||
Juerd | "Problem desciption: n't key broken" I'm sure they'll understand and send me a new one. | ||
ingy | Juerd: looks like my linux server needs locale fix | ||
Juerd | ingy: Yes. One option is to allow ssh to copy the environment variables. The other option is to hard-code it in your profile/bashrc/whatever | 20:12 | |
TimToady | and your Mac is LANG=C | ||
which might be a problem | |||
Juerd | Ah, that too | ||
TimToady | I *only* set LANG | 20:13 | |
sorear ponders that %% should maybe be spelled | | |||
TimToady | well, I set *only* LANG | ||
sorear | with the arguments flipped, ofcource | ||
cygx | moritz_: I think the 'Controller' part of try.rakudo.org can actually be implemented in Perl6 | ||
Juerd | ingy: You'll have to restart screen to really fix things. | 20:14 | |
ingy | export LC_ALL=en_US.UTF-8 | ||
? | |||
Juerd | ingy: After you've fixed the locale itself, that is | ||
ingy: Like TimToady, I just set LANG | |||
export LANG=en_US.UTF-8 | |||
20:14
sorear sets mode: +o masak
|
|||
ingy | ok | 20:14 | |
moritz_ | cygx: yes, works for me | ||
Juerd | Then, check with locale if it picked it up | ||
ingy | I share my dot files anyways | ||
Juerd | If it doesn't, you're probably running Debian :) | ||
masak | sorear: infix:<|> is... taken... :) | ||
TimToady | sorear: um, I think | is taken | ||
ingy | ubuntu | ||
Juerd | In which case the fix is to add en_US.UTF-8 to /etc/locales and running update-locales) | 20:15 | |
s/\)// | |||
TimToady ==> $mt_vernon_OH; | 20:18 | ||
& | |||
pugssvn | r31467 | pmichaud++ | [t/spec]: Update fudging, mark test as possibly bogus. | ||
20:19
molaf left
|
|||
hmmm | Has Perl6 made array of arrays (AoA) simple to index? perl5 was not so simple imho... | 20:21 | |
tadzik | yep | ||
cygx | moritz_: we'd have to use POSIX:from<perl5> for non-blocking IO and MySQL, since that's what FakeDBI currently supports, but it seems workable | ||
sorear | Uh, the Perl6 way is the same as the Perl5 way | ||
tadzik | arrays do not flatten like in Perl 5, so you can just use 2-dimensional arrays, not array of arrayrefs | ||
sorear | @AoA[2][3] | ||
cygx | moritz_: it also might be a good idea to use a global controller instead of spawning a new one for each session... | ||
pmichaud | is "sink" specced to return Nil? | 20:22 | |
20:24
mmcleric joined
|
|||
hmmm | Perl5 AoA were not so simple to code/use, so i hope it is better in Perl6. =) | 20:27 | |
ingy restarts screen and irssi | 20:28 | ||
20:29
ilogger2 joined
|
|||
masak | hmmm: you should check out S09, and see if it is to your liking. | 20:29 | |
hmmm | Thxs All! =) gotta run... | ||
Huh, S09? | 20:30 | ||
masak | spec.pugscode.org/ | ||
perlcabal.org/syn/S09.html | 20:31 | ||
hmmm | thxs, gotit. | ||
masak | enjoy. | ||
20:33
ingy joined
|
|||
sorear | « | 20:33 | |
ingy | agana (平仮名, ひらがな or ヒラガナ) is a | ||
sorear | loud and clear. | ||
ingy | seems nice! | ||
:) | |||
screen flashed a msg saying something about utf8 on and window | 20:34 | ||
when I started it | |||
20:36
ilogger2 joined
|
|||
ingy | it flashed: /home/ingy/.screenrc: utf8: window required | 20:36 | |
masak | the section "Autosorted hashes" by the end of S09 seems to raise more questions than it answers. is there really a pressing need to keep that section. | ||
at the risk of repeating myself, the solution it proposes sounds like an excellent job for a (non-core) module. | 20:37 | ||
:) | |||
jnthn | o/ | 20:40 | |
masak | lolitsjnthn! | ||
how's the workshop? | |||
jnthn | Workshop has been nice | ||
mberends++ gave a nice talk :-) | 20:41 | ||
And I've drunk some nice Belgian beer. | 20:42 | ||
So, all around, pretty good. :-) | |||
ingy | Juerd: now I have nopaste.snit.ch/21596 | 20:44 | |
Juerd: which is why I prolly set LANG=C in the first place | 20:45 | ||
:\ | |||
pmichaud | rakudo: say (&infix:<cmp>).count | ||
p6eval | rakudo a579f8: OUTPUT«Method 'count' not found for invocant of class 'Perl6MultiSub' in main program body at line 11:/tmp/nQ1mO92fSP» | ||
jnthn | :( | 20:46 | |
Not that I'm sure that that'd do at the moment | |||
Probably the proto should decide the answer. | |||
moritz_ | [max] &multi.candidates».count ? | 20:47 | |
pmichaud | rakudo: say (&infix:<cmp>).?count.WHAT | ||
p6eval | rakudo a579f8: OUTPUT«Parcel()» | ||
moritz_ | erm | ||
pmichaud | that's the problem. | ||
moritz_ | Nil | 20:48 | |
isn't that supposed to be the outcome | |||
jnthn | Yeah, I think so. | ||
pmichaud | yes, but iirc, Nil is defined | ||
which means that &infix:<cmp>.?count is defined if .count isn't available. | |||
jnthn | oh sh... | 20:49 | |
:| | |||
I'm sure I had .? doing something different in the past. | |||
pmichaud looks a bit | |||
jnthn | And then changed it to Nil to match spec or something. | ||
Juerd | ingy: Do what the message says. Please check, etc. | ||
jnthn | .? should certainly return something undefined when there's no method found, anyway. | ||
I had it as a Failure once but apparently that was "too hard" :-) | 20:50 | ||
ingy | Juerd: I did | ||
no worky | |||
pmichaud | $object.?meth(@args) # calls method if there is one, otherwise Nil | ||
S12:849 | |||
Juerd | ingy: Is this on the Apple or on the Linux box? | ||
ingy | that Perl on my linux box seems to want LANG=C | ||
jnthn | pmichaud: I think we were in line with spec there. | 20:51 | |
pmichaud: I'm surprised that Nil is defined. | |||
ingy | 5.8.8 | ||
Juerd | ingy: Is your locale listed in /etc/locale.gen? | ||
jnthn | s/think/thought/ | ||
pmichaud | jnthn: since Nil is just () it's an empty container | ||
there are quite a few spectests (that we fail) that expect Nil to be defined | |||
jnthn | :S | ||
pmichaud | I was fixing those when I ran into this failure :) | 20:52 | |
jnthn | OK, so maybe .? should not return Nil then :-) | ||
Which is what I said before. ;-) | |||
If it's not Nil and it's not Failure though, I'm at a loss as to what it should be. | |||
pmichaud | Since method calls are performed directly on | ||
any object, C<Nil.defined> returns C<True> just as C<().defined> does. | |||
(S02:2159) | 20:53 | ||
ingy | Juerd: nopaste.snit.ch/21597 | ||
jnthn | Aye, I'm not disputing the spec says that Nil is defined and .? returns Nil. | ||
I'm just saying I think that's the wrong decision. | |||
(for .?) | |||
pmichaud | jnthn: right, I'm just verifying that something is inconsistent somewhere. :) | ||
jnthn | Yeah, it is. | ||
I'm not sure what the right answer is. Personally I'd say it's a Failure object. | 20:54 | ||
ingy | Juerd: seems like the same string as LANG | ||
jnthn | Which is how we once had it, but apparently that was too explodey. | ||
pmichaud | it's probably not Failure, because the method itself could've returned Failure | 20:55 | |
there's "failure to dispatch" and "dispatched and method returned failure" | |||
although having $foo.?xyz return Failure seems like it loses less information if it returns a failure | 20:56 | ||
jnthn | Well, the "method could have returned it" probably holds up for just about any return value we could choose? | ||
pmichaud | if it just returns Nil, we don't ... right | ||
(we don't know if it was unable to dispatch or dispatched and got Nil back) | 20:57 | ||
jnthn | Right, Nil is the "obvious" answer in that sense, just that it's defined. | ||
Oh, yes... | |||
It could return Nil | |||
Heh :-) | |||
Juerd | ingy: Yes. Run locale-gen | 21:00 | |
ingy: Might fix things. | |||
moritz_ | masak: the tests in the pls branch of proto seem build out | ||
*bail out | |||
masak checks | |||
moritz_ | t/subcommands/build.t ............... 1/31 No such project: fetched in 'App::Pls::Ecosystem::Hash::project-info' at line 59:lib/App/Pls.pm | 21:01 | |
masak | hm. | ||
did I destroy something while creating the proof of concept? | 21:02 | ||
pmichaud | I think I can work around the .? issue for the moment. | ||
ingy | Juerd: with what options? | ||
I ran locale-gen;perl and got the same thing... | |||
masak | moritz_: confirmed. thanks for reporting. | 21:04 | |
21:06
ilogger2 joined,
timbunce joined
|
|||
ingy | Juerd: for now I'll start screen/irssi with utf8 and then go back to C | 21:07 | |
until I figure it out I guess | |||
at least everything works now... :\ | |||
Juerd (and the rest of you): many thanks | 21:08 | ||
masak | moritz_: fixed, pushed. moritz_++ | ||
ingy | so much nicer | ||
oooo | |||
Camelia has an ö | 21:09 | ||
masak | :) | ||
ingy | I feel so close to P6 now | ||
moritz_ | masak: confirmed | ||
masak: if you saw my last commit to proto/pls, you also know what I've been working on today | 21:10 | ||
ingy | »ö« döt Net | ||
masak | moritz_: saw it, and retroactively give my permission :) keep up the good work. | ||
ingy | My little sis | ||
masak | (permission to push to that branch, I mean. probably good to keep that file up-to-date) | ||
ingy: it's so fascinating seeing the range of reactions to Camelia. | 21:11 | ||
ingy: I think I mostly prefer the company of your side of the spectrum. :P | |||
ingy | :D | 21:13 | |
Juerd | ingy: I wish I understood what is wrong. | 21:15 | |
21:17
ilogger2 joined
|
|||
tylercurtis | moritz_, rather. | 21:17 | |
moritz_: I'll be disconnected for the next few minutes. Feel free to respond via purl or wait until I return. | 21:21 | ||
pmichaud | sub xyz() { return; }; say xyz().defined; | 21:24 | |
rakudo: sub xyz() { return; }; say xyz().defined; | |||
p6eval | rakudo 7102d7: OUTPUT«0» | ||
pmichaud | empty return() returns Nil, yes? | 21:25 | |
ingy | Juerd: it seems like it's /usr/bin/perl being picky... | ||
Juerd: I've seen that error from Perl a zillion times | 21:26 | ||
Juerd: try LANG=x perl | |||
Juerd: when I try 'LANG=x perl' on OSX perl doesn't care, but on linux it does | 21:29 | ||
maybe TimToady knows... | 21:30 | ||
jnthn | pmichaud: Yeah, should just be an empty Parcel | ||
masak | www.audreyt.org/rakudo-camelia-sri.png # _sri++ audreyt++ | ||
pmichaud fixes spectests for empty return. | 21:31 | ||
I just _know_ that I'm going to switch everything around based on Nil being defined, and then we'll have to switch it all back. :-| | 21:32 | ||
rakudo: my @array; say @array ~~ Nil; | |||
p6eval | rakudo 7102d7: OUTPUT«1» | ||
ingy | Perl's moaning about locale problems can be silenced by setting the environment variable PERL_BADLANG="0" | 21:33 | |
ingy tries | 21:34 | ||
Juerd: PERL_BADLANG="0" worked... | 21:35 | ||
21:43
MarkSenn joined
|
|||
Juerd | Impressive | 21:46 | |
21:54
tylercurtis joined
21:55
MarkSenn left
21:57
tylercurtis left
22:00
Ross joined
22:05
FardadJalili joined
|
|||
sorear | Why is there so much hate for Camelia? | 22:11 | |
colomon | considering that Perl's traditional mascots are camels and onions, that's a real good question. :) | 22:12 | |
sorear | Who uses the onion? | 22:13 | |
colomon | the perl foundation, maybe? | ||
they were all over the yapc::na stuff | |||
(onions, I mean) | 22:14 | ||
masak | sorear: Camelia is provocative. those whose criticism includes the keywords "7-year old girls", "kindergarten" or "epillepsy" have simply taken the bait. :) | ||
sbp | yeah, I don't understand either | 22:15 | |
I think Camelia is extremely good | |||
maybe that's the problem though | |||
22:18
Ross left
|
|||
ciphertext | solomon: updated series list: nopaste.snit.ch/21598 (i'm debugging/testing the items marked 'K' right now) | 22:19 | |
*colomon | |||
colomon | got it. | 22:20 | |
22:20
Ross joined
22:27
Ross left
22:32
M_o_C joined
22:48
eternaleye joined
|
|||
pugssvn | r31468 | pmichaud++ | [t/spec]: Clean up (and unfudge) some tests involving Nil, sink, and undef. | 22:49 | |
dalek | kudo: 92d0c1c | pmichaud++ | src/Perl6/Actions.pm: Empty statement list should return Nil. |
22:53 | |
kudo: ac1c280 | pmichaud++ | src/builtins/assign.pir: Assigning Nil to a container resets it to type. |
|||
kudo: fd5e2e7 | pmichaud++ | src/builtins/Parcel.pir: Parcels are always defined (even Nil). |
|||
kudo: d401972 | pmichaud++ | src/core/List.pm: $obj.?method returns Nil, not undef. |
|||
kudo: 2334011 | pmichaud++ | src/Perl6/ (2 files): Add statement_prefix:sym<sink>. |
|||
diakopter | sorear: re: camelia, imho people don't like it b/c of the maximally-saturated colors, many adjacent high-contrast boundaries (line drawing), lack of Web 2.0 gradients/sheens, and lack of 3D/perspective/shadow. I'm not saying I don't like it for those reasons. | 22:54 | |
colomon | sink! | ||
22:59
ashleydev joined
|
|||
diakopter | sorear: personally, I like the shapes and attitude portrayed in Camelia, but not the flattening. If someone were to make a 3d model and render it with lighting and shadows and atmosphere :)..... well, then, ... | 23:00 | |
23:14
FardadJalili left
23:20
M_o_C left
23:24
cotto joined,
sftp joined
|
|||
ciphertext | ok... this is weird: when i run "make t/spec/S03-operators/series-arity2ormore.t" or "make spectest", i get a bunch of failures, but if i run "perl6 t/spec/S03-operators/series-arity2ormore.rakudo" or run the failing tests by hand (in REPL or in a file), they pass... | 23:26 | |
23:29
mmcleric joined
23:34
mmcleric left
23:36
Transformer joined
23:39
Transformer left
|
|||
ciphertext | (d'oh... i forgot 'make spectest' doesn't do 'make install' for you ) | 23:45 | |
23:53
eternaleye left,
Psyche^ joined
23:55
Psyche^ is now known as Patterner
23:59
Kodi joined,
justatheory joined
|