|
»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! | Rakudo Star Released! Set by moderator on 11 August 2010. |
|||
|
00:00
Psyche^ joined
|
|||
| dalek | kudo: 73a7674 | masak++ | : <pre>m src/core/Buf.pm <pre style='white-space:pre-wrap;width:81ex'>[Buf] added prefix/infix ~^, infix ~& and infix ~|</pre> |
00:00 | |
| masak | eh? that's not how my commit message looks here... :/ | 00:01 | |
| sorear | masak: Why are you committing HTML to svn:log | ||
| masak | :( | ||
| I did nothing out of the ordinary... | |||
| it looks fine locally and on github. | 00:02 | ||
| jnthn | Hate That Markup Language in the commit message! | ||
| masak: Not your fault. | 00:03 | ||
| masak | oki | ||
| jnthn | It happened to somebody else too on the Parrot channel. | ||
| On a completely unrelated project. | |||
| dalekbug maybe...or githubchange, or something. | |||
| masak | yeah, probably. | 00:05 | |
| dalek | kudo: bef86ee | masak++ | : <pre>m t/spectest.data <pre style='white-space:pre-wrap;width:81ex'>[t/spectest.data] added S03-operators/buf.t</pre> |
00:06 | |
| pugssvn | r32006 | masak++ | [t/spec] added missing 'plan' and footer to recent files | 00:07 | |
| masak | phenny: tell moritz_ that both S03-operators/bit.t and integration/real-strings.t seem to do ~& et al on Str, not Buf. S03:2734 outlaws this. should I simply remove those tests? or should I try to save them by making them convert to Buf? | 00:22 | |
| phenny | masak: I'll pass that on when moritz_ is around. | ||
| ingy | is there a p6rules sugar for: <b>* <a> [ <a> | <b> ]* | 00:27 | |
| that's something I see over and over | |||
| where say, a -> statement and b -> comment | 00:29 | ||
| so at least one statement, with comments anywhere | |||
| arnsholt | ingy: I bleev you can do something along the lines of <a>**<b> | 00:33 | |
| Check S05 to be sure | 00:34 | ||
| jnthn | zzz o/ | ||
|
00:42
risou joined
00:46
gbacon joined
00:57
redicaps joined
|
|||
| Tene | I wonder how important the order of the results of X are, or if it could be redefined to work usefully with infinite lists. | 01:01 | |
| TimToady | Already defined, see S03:1786. | 01:02 | |
| Tene | I wasn't asking if the order was defined, I was asking about the reasons for that specific order. | 01:04 | |
| TimToady | I fail to see a better way to do it than the current way, but maybe that's just failure of imagination. | 01:05 | |
|
01:06
mmmpork joined
|
|||
| Tene | 'k | 01:06 | |
|
01:06
cottoo joined
|
|||
| Tene | Thanks. :) | 01:06 | |
| TimToady | I suppose a 3-d space can be progressively sliced by any plane moving in a normal direction | 01:07 | |
| Tene | s/3/N/ | 01:08 | |
| TimToady | so you exhaust every finite dimension at every step through the N-space of infinite dimensions, but it still mostly seems like a good way to waste a lot of computing power | 01:09 | |
| well, hey, at least it's guaranteed polynomial time | 01:10 | ||
| course, ∞ to the N is still pretty large... | 01:12 | ||
|
01:13
justatheory joined
|
|||
| Tene | Heh, we could walk them in the order of a hilbert curve. ;) | 01:16 | |
| ingy | arnsholt: thx! looking... | 01:20 | |
| arnsholt: ** is great, but not quite what I was looking for | 01:23 | ||
| Tene | You could always do something approximately like this: gist.github.com/526218 | 01:28 | |
| module dealing with varying sizes, and extending it to N | |||
| although, similarly, if I want that, I can just write it like I just did. | |||
| ingy | TimToady: you can probably better answer my query from 17:27. | 01:31 | |
| sorear | ingy: <a>+ will do what you want if you use it in a rule and <ws> is defined to include comments | 01:34 | |
| this is what STD and the Rakudo parser do, anyway | |||
|
01:35
alester joined
|
|||
| Tene | That algorithm looks to me like it could properly extend to handle N lists, at the cost of keeping one index counter per list. | 01:37 | |
| ingy | <<b>* <a> <b>*>+ | 01:39 | |
| sorear: <ws> is maybe too magical | 01:40 | ||
| Tene | ingy: how is that different from [<b>*]**<a> ? | ||
| ingy | [<b>* <a> <b>*]+ | ||
| Tene: thinking... | |||
| Tene: don't think it guarantees a | 01:41 | ||
| Tene | Right, there could just be one <b> | ||
| ingy | keep trying! | ||
| <b>* <a> ** <b>* | 01:43 | ||
| Tene | Yeah, that would work. | ||
| sorear | ingy: in general? | 01:44 | |
| ingy | well it beats my original | ||
|
01:44
pwang017 joined
|
|||
| Tene | I've been a little frustrated before by ** being able to only specify one of length or delimiter, but no way to specify both length and delimiter. | 01:44 | |
| ingy | Tene: join #pegex ! | 01:45 | |
|
01:45
pwang017 left
|
|||
| Tene | joined! | 01:46 | |
| sorear | I mean, do you hate <ws> in general, or only for this one case | 01:49 | |
| ingy | sorear: I think <ws> feels too tied to p6rules | 02:00 | |
| but I may be wrong | 02:01 | ||
| I was told it was kinda magical | |||
| anyway, yeah, in this case I wanted something generic | |||
| I was just giving an example | |||
|
02:05
tylercurtis joined
|
|||
| sorear | hello tcurtis | 02:19 | |
|
02:20
mj41_ joined
02:21
agentzh joined,
proller joined
|
|||
| tylercurtis | Hello, sorear. | 02:22 | |
| alester | proof an announcement for me... | 02:44 | |
| gist.github.com/526305 | 02:45 | ||
| Tene | 'k | 02:47 | |
| alester | Please & thank you | ||
| Tene | ew no line breaks. :P | ||
| alester | yeah, well | ||
| sorry | |||
| Tene | s'fine | 02:48 | |
| alester | any comments? | 02:50 | |
| Tene | Yes. Reading through it now. | 02:51 | |
| s/vim/Vim/g | |||
| erm, except for the path. | |||
| less-confusing is "For example, <i>syntax/perl.vim</i> had not previously been updated since 2006." | 02:52 | ||
| alester | huh, you're right about the capitalization | ||
| Tene | I had to check vim.org; I wasn't sure. | ||
| alester | I did too. :-) | 02:53 | |
| Tene | are you really saying that *every* support file has been updated, or are you just saying that every *perl-related* support file has been updated? | 02:54 | |
| By my reading, you're saying the former. | |||
| ah, also probably don't capitalize Vim in urls. :) | 02:55 | ||
| global s/// was too much. :) | |||
| Ask me if you want me to recommend different language for support file updates. | 02:56 | ||
| Otherwise, that's everything that jumps out at me. | |||
| sorear | alester: what is that going to be? | 02:57 | |
| alester | Perlbuzz post | ||
| perlbuzz.com/2010/08/vim-73-supports-perl-6.html published | 03:00 | ||
| thanks | |||
| Tene | np :) | ||
| tylercurtis | sorear: at some point after GSoC when I've read and thought about traits and the object model some more, I'd like to chat with you about them if you don't mind. | 03:02 | |
|
03:04
achromic joined
|
|||
| sorear | tylercurtis: sure | 03:09 | |
|
03:11
redicaps left
|
|||
| sorear is now trying to add some optimizations to niecza, but running into what seems to be a critical misfactoring of the data structures | 03:16 | ||
| sorear checks out PCT for inspiration | 03:22 | ||
|
03:34
karb joined
|
|||
| sorear | I think my problem is that I need smaller steps | 03:46 | |
|
03:54
ruoso joined
04:03
molaf joined
04:11
redicaps joined,
redicaps left
04:17
PenThrive joined
04:39
molaf joined
04:45
cjk101010 joined
|
|||
| rcfox | rakudo: my regext test { <.isa(Num)> } my @a = 1,2,3; say @a ~~ /<test>/; | 04:51 | |
| p6eval | rakudo bef86e: OUTPUT«===SORRY!===Malformed my at line 22, near "regext tes"» | ||
| rcfox | rakudo: my regex test { <.isa(Num)> } my @a = 1,2,3; say @a ~~ /<test>/; | ||
| p6eval | rakudo bef86e: OUTPUT«===SORRY!===Confused at line 22, near "my regex t"» | ||
| rcfox | rakudo: my regex test { <.isa(Num)> }; my @a = 1,2,3; say @a ~~ /<test>/; | ||
| p6eval | rakudo bef86e: OUTPUT«Method 'test' not found for invocant of class 'Cursor' in <anon> at line 22:/tmp/MK8VTujbkg in 'Cool::match' at line 2394:CORE.setting in 'Regex::ACCEPTS' at line 1 in main program body at line 22:/tmp/MK8VTujbkg» | ||
| sorear | you need to use <&test> to disambiguate (known bug) | 04:52 | |
| rcfox | rakudo: my regex test { <.isa(Num)> }; my @a = 1,2,3; say @a ~~ /<&test>/; | ||
| p6eval | rakudo bef86e: OUTPUT«any(Match.new( from => 1, orig => "1", to => -3,), Match.new( from => 1, orig => "2", to => -3,), Match.new( from => 1, orig => "3", to => -3,))» | ||
| sorear | plain <test> is always parsed as a method currently | ||
| rcfox | Ah, thanks. | ||
| tylercurtis | What does that do? | 04:55 | |
| "that" being the <.isa(Num)> bit. Won't that call .isa(Num) on the cursor? | 04:56 | ||
|
04:56
risou joined
|
|||
| sorear | yes | 04:56 | |
| rcfox | perlcabal.org/syn/S05.html#Matching...on-strings | ||
| sorear | bear in mind that that entire section is completely unimplemented | 04:57 | |
| diakopter | sorear: re KenGuru trying niecza on windows... I'm almost certain nobody has gotten std to run in strawberry perl (and I think I'm the only one who's gotten it to run in cygwin, but that was year(s) ago) | 04:58 | |
| tylercurtis wonders why one would even want to be able to do /<.isa(Dog)>/. | |||
| Why not just *.isa(Dog). | 04:59 | ||
| sorear | tylercurtis: it's very useful for [ \\d || <.panic("No digits allowed here")> ]? | ||
| rcfox | I was actually planning to use it as a rule to test the properties of my token. | 05:00 | |
| diakopter | sorear: (let alone activeperl or microsoftperl ;) | ||
| sorear | tylercurtis: also, it's possible that entire section will be scrapped in favor of the replacement you did for GSoC | ||
| or, the ideas from it ported into a p6 frame anyway | 05:01 | ||
| microsoft perl? | |||
|
05:01
_jaldhar joined
|
|||
| sorear | pmichaud: ping | 05:02 | |
|
05:02
simcop2387 joined
|
|||
| tylercurtis | sorear: I understand the usefulness of calling methods on the Cursor/Grammar in regexes. But I don't see how <.panic> relates to doing $obj ~~ /<.isa(Dog)>/. I suppose object array matching could be useful with <,> and <elem>, possibly. | 05:03 | |
|
05:04
astinus joined
|
|||
| diakopter | sorear: yes microsoft distributes a build of perl. but my winking comment is beside my point, which is that niecza won't run on windows until std is bootstrapped in mono | 05:05 | |
|
05:11
kaare joined
|
|||
| rcfox | Hm. | 05:12 | |
|
05:28
Mowah joined
06:05
uniejo joined
06:30
Su-Shee joined
06:40
Axius joined
|
|||
| moritz_ | good morning | 06:48 | |
| phenny | moritz_: 00:22Z <masak> tell moritz_ that both S03-operators/bit.t and integration/real-strings.t seem to do ~& et al on Str, not Buf. S03:2734 outlaws this. should I simply remove those tests? or should I try to save them by making them convert to Buf? | ||
| moritz_ | phenny: tell masak converting to Buf would be preferable | ||
| phenny | moritz_: I'll pass that on when masak is around. | ||
|
06:54
wtw joined
07:09
NiiHiiL joined
07:13
xoor joined
|
|||
| xoor | rakudo: say 'Hello world'; | 07:13 | |
| p6eval | rakudo bef86e: OUTPUT«Hello world» | 07:14 | |
|
07:26
pmurias joined
|
|||
| pmurias | ruoso: hi | 07:26 | |
| tadzik | rakudo: DateTime.new | 07:30 | |
| p6eval | rakudo bef86e: ( no output ) | ||
| tadzik | rakudo: DateTime.new; say 'alive' | ||
| p6eval | rakudo bef86e: OUTPUT«alive» | 07:31 | |
| tadzik | hrm | ||
| wklej.org/id/377420/ why a difference? | |||
|
07:31
timbunce joined
|
|||
| tadzik | .succ and .pred are NYI for DateTime? | 07:38 | |
| looks so | |||
|
07:39
ajs left
07:40
foodoo joined
|
|||
| pmurias | tadzik: how much do the increment DateTime by? | 07:41 | |
| tadzik | pmurias: specs says it goes per days | ||
| see perlcabal.org/syn/S32/Temporal.html#Arithmetics | 07:42 | ||
| pugssvn | r32007 | moritz++ | [t/spec] remove invalid rx:g tests | 07:46 | |
| r32008 | moritz++ | [t/spec] rakudo unfudges | 07:49 | ||
| sorear | diakopter: STD needs to be changed to stop making assumptions about filesystem layout *anyway* | ||
| Tene | rakudo: say ('{aaa' ~~ /'{' ~ '}' 'a'*/).perl | 07:53 | |
| p6eval | rakudo bef86e: OUTPUT«Unable to parse _block119, couldn't find final '}' at line 1 in <anon> at line 22:/tmp/9HumU8Tyke in 'Cool::match' at line 2394:CORE.setting in 'Regex::ACCEPTS' at line 5791:CORE.setting in main program body at line 22:/tmp/9HumU8Tyke» | ||
| ingy | Tene: got it | ||
| Tene | ingy: see how it explains what the goal was? | ||
| ~ is called 'goal matching' oslt, iirc. | |||
| ingy | still, I think its sugar built of other primitives | 07:54 | |
| which is only to say that I can bootstrap without it | 07:55 | ||
| I definitely like it | |||
| sorear | #pegex? | ||
| (is this from) | |||
| ingy | sorear: aye | ||
| Tene | ingy: Yes, that's right. | 07:56 | |
| ingy ducks back into #pegex | |||
| sorear | STD currently handles it in a way which can't quite be desugared | ||
| except with a subrule | 07:57 | ||
| regex as_in_brackets { :my $*GOAL = '}'; '{' a* [ '}' || <.panic: "Unable to parse $?DBA, couldn't find final '}'"> ] } | |||
|
08:01
mac| joined
|
|||
| pmurias | sorear: what sorts of assumptions does STD make? | 08:01 | |
| mac| | Hello | ||
| tadzik | o/ | ||
|
08:05
agentzh joined
08:10
dakkar joined
|
|||
| sorear | pmurias: ./syml can be written to, module names can be turned into filenames like Foo/Bar.pm.syml, : separates paths | 08:10 | |
| dalek | ecza: 044e4a9 | sorear++ | : <pre>m Niecza/Actions.pm m Op.pm </pre> <pre style='white-space:pre-wrap;width:81ex'>Allow Op::CgOp to have Op children</pre> |
08:17 | |
| ecza: ec30fe4 | sorear++ | : <pre>m Op.pm </pre> <pre style='white-space:pre-wrap;width:81ex'>Commit some sketches of the beta-optimizer I don't think this can be made to work properly with our current ASTs. What I need is an AST high enough level to express closures but low enough to desugar signature binding; the PAST to our POST and AST.</pre> |
|||
|
08:17
timbunce joined
08:18
drbean joined
|
|||
| moritz_ | looks like dalek's RSS parser failed (or the format changed, or so) | 08:22 | |
|
08:23
redicaps1 joined
|
|||
| pmurias | why are there html tags in commit messages? | 08:24 | |
| moritz_ | 10:22 < moritz_> looks like dalek's RSS parser failed (or the format changed, or so) | ||
|
08:31
Su-Shee joined
08:32
awwaiid joined
08:33
cono joined
|
|||
| jnthn | morning | 08:35 | |
| mac| | hello jnthn | 08:36 | |
|
08:36
Helios joined
|
|||
| moritz_ | o/ | 08:36 | |
| redicaps1 | 他会给你解释哪个没通过的 | 08:38 | |
| lol, sent to the wrong channel.... | |||
| moritz_ didn't understand it anyway :-) | 08:39 | ||
| mathw | Ah, speaking in the wrong language | ||
| I do that | |||
| moritz_ | \\o mathw | 08:40 | |
| mathw: small reminder: you're in docs/release_guide.pod as volunteer for the Thursday compiler release | |||
| mathw | o/ moritz_ | ||
| oh am I | |||
|
08:40
Trashlord joined
|
|||
| mathw | yes I am aren't | 08:40 | |
|
08:41
sftp joined
|
|||
| redicaps1 | I think masak can understand ... but looks like he is not here right now. | 08:41 | |
| mathw | we've got a few people who might be able to understand that | ||
| moritz_ | JimmyZ, au|irc, probably more | 08:42 | |
| mathw | I just think it looks pretty | ||
| At least I've got the fonts for it | |||
| moritz_ | nine: your bench tools (rightly) complain that rakudo's docs/test_summary.times isn't valid JSON... how did you solve that problem on your machine? | 08:44 | |
|
08:46
redicaps joined
08:47
simcop2387 joined
09:07
azert0x joined
09:08
M_o_C joined
09:13
meppl joined
09:40
thebird joined
09:43
gbacon joined
|
|||
| ingy just wrote a pegex grammar to parse pegex grammars... | 09:45 | ||
| it compiles but no idea if it works | |||
| moritz_ | self-hosting ftw | ||
| cxreg | does it parse itself? | ||
| ingy | and too tired to start testing... | ||
|
09:46
daxim joined
|
|||
| ingy | it will, after I debug it :) | 09:46 | |
| cxreg | heh | ||
| moritz_ | and does it reject invalid input? :-) | ||
| ingy | moritz_: it probably rejects valid input at this point ;) | ||
| sorear | meanwhile in niecza-land... β-reduction is *close* | ||
| pmurias | in the optimizer? | 09:47 | |
| sorear | yes | ||
| ingy | I compiled it with my bootstrapping pegex parser... | ||
|
09:48
nadim_ joined
|
|||
| ingy | the grammar is here: bit.ly/brJPSC and the compiled grammar is here: bit.ly/d0FFCJ | 09:48 | |
|
09:48
masak joined
|
|||
| masak | good mo... good midday, #perl6! | 09:48 | |
| phenny | masak: 06:48Z <moritz_> tell masak converting to Buf would be preferable | ||
| sorear | midday? it's 3am | ||
| ingy | and the ingy is here => o_____ | ||
| moritz_ | it's always midday somewhere | ||
| jnthn | masak: Slept well? :-) | ||
| ingy | night... zzzzzzzzzz | 09:49 | |
| masak | jnthn: seems so. :) | ||
| jnthn | :-) | ||
| masak | good thing there are no meetings or such in the morning. | ||
| moritz_ | <=================O # at least the pencil is down :-) | ||
| nadim_ | morning, a quick question, are refinement types taken into account when doing multiple dispatch? | ||
| moritz_ | what do you mean be "refinement types"? | 09:50 | |
| subset? | |||
| nadim_ | subsets | ||
| jnthn | nadim_: Yes, they act as tie-breakers. | ||
| moritz_ | subsets are dealt like constraints, ie tie... jnthn was faster | ||
| jnthn | That is, something with a refinement is narrower than something without, given they both have the same nominal type. | ||
| moritz_ | so subset Odd of Int where * %% 2; multi f(Odd $x) is just the same as multi f(Int $x where * %% 2) | 09:51 | |
| well, s:g/Odd/Even/, but you get the picture | |||
| jnthn | (Folks here tend to refer to them as "constraints" or "subset types" rather than refinement types, though that was the name that a paper on the topic gave to them.) | ||
| moritz_ | to me, inheritance is also a refinement. | 09:52 | |
| masak | moritz_: the pencil officially goes down at 19:00 UTC, but I thought I'd let it rest till then, unless someone discovers something really urgent. | ||
| nadim_ | so the multiple dispatch is not optimized at run time but when the subs are called | ||
| s/run/comple/ sorry | |||
| moritz_ | they are ordered by narrowness of nominal type at compile-time | 09:53 | |
| jnthn | masak: It's a Norweigan Blue pencil? Just resting? :-) | ||
| masak | jnthn: it's pining for 19:00 UTC :) | ||
| moritz_ | (or at least at first dispatch, not sure) | ||
| jnthn | nadim_: We can determine the ordering at compile time. | ||
| nadim_: Though at the moment we compute it on the first dispatch. That will change in the coming months. | |||
| But we don't quite have some other infrastructure in place to deal with it all at compile time yet. | |||
| masak | when I put together my contributions into a .zip file, I'll need to compile them from three places: Rakudo, Mu/t/spec, and Mu/docs/Perl6/Spec | 09:54 | |
| moritz_ likes it that masak refers to it as the Mu repository :-) | |||
| jnthn | nadim_: In absence of refinement types, we can also - in cases where we have sufficient type information - also do the dispatch at compile time. | ||
| nadim_ | jnthn: programmersheaven FAQ++ | 09:55 | |
| sorear can't wait to be the first to implement Wadler-type dispatch optimization | |||
| unfortunately, I'll need to actually process class statements at compile time first, I think | |||
|
09:56
mmmpork joined
|
|||
| jnthn | sorear: Yes. :-) | 09:56 | |
| pmurias | sorear: Wadler-type dispatch optimisation? paper? | ||
| jnthn | sorear: That's going to be one of the things that'll change in Rakudo too. | 09:57 | |
| nadim_ | pmurias: maybe www.cs.washington.edu/homes/mernst/...ecoop98.ps | ||
| masak | My first impression of Rakudo Star ... www.perlmonks.org/?node_id=852336 | 09:58 | |
| moritz_ | jnthn: btw if you get 'require Foo::Bar <import list>;' to parse (maybe in a branch), I'll try to implement it | ||
| moritz_ is a parse failure | |||
| erm, I mean I fail at getting things parse :-) | |||
| jnthn | std: moritz_ | 10:00 | |
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mUndeclared routine: 'moritz_' used at line 1Check failedFAILED 00:01 111m» | ||
| jnthn | Actually you are a parse failure. :P | ||
| moritz_ | I know :-) | ||
|
10:00
Italian_Plumber joined
|
|||
| sorear | pmurias: "Compiling Pattern Matching", Augustsson 85 | 10:00 | |
| at one point I had a nice description of the algorithm, but now all google wants to give me is a portal.acm.org link | 10:01 | ||
|
10:01
redicaps left
|
|||
| sorear | fortunately, even if I mixed up the names, the procedure itself is simple enough that one can implement it from memory... | 10:02 | |
| moritz_ | www.springerlink.com/content/y64742...lltext.pdf # I don't know if that link works from outside my network | ||
| masak | *lol* -- though I don't know what that latter thing is: twitter.com/unixbigot/status/21280475312 | ||
| sorear | moritz_: nope | 10:03 | |
| masak | apparently, he writes Lovecraftian horror, among other things. heh. | ||
| moritz_ | who maintains dalek these days? diakopter? | 10:04 | |
| sorear | research.microsoft.com/en-us/um/peo...-1987.djvu physical pg. 91 looks like my original source | 10:05 | |
| (bonus: the chapter is credited to one Philip Wadler. Not entirely wrong!) | 10:07 | ||
| (yes, this reference is older than Perl itself and uses examples in a language which is beyond dead...) | 10:09 | ||
|
10:09
wamba joined
10:10
JimmyZ joined
|
|||
| JimmyZ | Hello | 10:10 | |
| sorear | Hello | ||
| masak | Hello | 10:11 | |
|
10:17
walfisch joined
10:23
tadzik joined
|
|||
| tadzik | oh hai | 10:24 | |
| mac| | o/ tadzik | 10:25 | |
|
10:49
envi^home joined
10:52
Axius joined
11:04
pmurias joined
11:05
Mowah joined
11:20
achromic joined
11:25
sftp joined
|
|||
| mac| | I have to go. Bye bye :) | 11:41 | |
|
11:41
bbkr joined
|
|||
| bbkr | when next Rakudo release is expected? has monthly release cycle changed after * ? | 11:43 | |
| moritz_ | the compiler releases haven't changed | ||
| R* will have monthly releases for now, later quaterly releases | 11:44 | ||
|
11:44
lichtkind joined
|
|||
| lichtkind | jnthn: hai | 11:44 | |
| jnthn | oh hai, lichtkind | 11:45 | |
| bbkr | moritz_: thanks. then I'll wait for new compiler few days before rechecking RT queue. | ||
|
11:56
gfldex joined,
ruoso joined
|
|||
| gfldex | rakudo is eating up lots of ram again while compiling core | 11:56 | |
| moritz_ | yes | 11:59 | |
| jnthn | omnomnomram | 12:00 | |
| I think Parrot folks have been tuning allocation stuff recently. | |||
| Sounds like a knob got twisted a little to far in the "moar ram" direction. | |||
| mathw | ah | 12:03 | |
|
12:16
takadonet joined
|
|||
| takadonet | morning all | 12:16 | |
| masak | takadonet: \\o | 12:29 | |
| lichtkind | takadonet, masak o/ | ||
|
12:35
rgrau joined
|
|||
| masak | here's someone who translate-quotes me from long ago, and who thinks that Perl 6 grammars are akin to Lisp macros. | 12:36 | |
| solom.livejournal.com/289965.html | |||
| bbkr | std: @1 | ||
| p6eval | std 31912: OUTPUT«ok 00:01 112m» | ||
| bbkr | hmm, is it some kind of special array? | ||
| masak | bbkr: as far as I know, @1 has no special meaning in Perl 6. | 12:37 | |
| if anything, it should mean @/[1] :) | |||
| but it doesn't. | |||
|
12:37
timbunce joined
|
|||
| moritz_ | it's parsed as @( 1 ) I suppose | 12:37 | |
| jnthn | I suspect...what moritz_ said | ||
| :-) | 12:38 | ||
| bbkr | thanks. I'm running mutation tests, hope to have few interesting cases soon. | ||
| masak | mutation tests? tell us more. | 12:39 | |
| moritz_ | rakudo: my $v = "test"; $v.=subst(/(\\w)/, -> $/ { say $/; 'X' }; say $v | ||
| p6eval | rakudo bef86e: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22» | ||
| moritz_ | rakudo: my $v = "test"; $v.=subst(/(\\w)/, -> $/ { say $/; 'X' }); say $v | 12:40 | |
| p6eval | rakudo bef86e: OUTPUT«tXest» | ||
| masak | \\o/ | ||
| moritz_ | rakudo: my $v = "test"; $v.=subst(/(\\w)/, -> $/ { say $0; 'X' }); say $v | ||
| masak | never seen that workaround before. | ||
| p6eval | rakudo bef86e: OUTPUT«tXest» | ||
| masak | moritz_++ | 12:41 | |
| moritz_ | www.perlmonks.org/?node_id=855251 | 12:42 | |
|
12:44
drbean joined
|
|||
| bbkr | masak: nothing fancy yet. just passing "(all_characters).pick(random_length, :replace)" to eval_lives_ok and STD compatibility checking. and I'm thinking now how to classify results. | 12:45 | |
| masak | can you goto into a BEGIN/INIT/CHECK/END block? what about FIRST/LAST blocks? do all of these then pretend to be located where they actually are located textually? | 12:46 | |
| bbkr: sounds like a cool exercise. | 12:47 | ||
| moritz_ | masak: I'm pretty sure you can't goto into a BEGIN block | ||
| from where would you enter it? | 12:48 | ||
| jnthn | masak: No to all of BEGIN/CHECK/INIT | ||
| moritz_ | from above: OH NOEZ, it's not parsed yet | ||
| jnthn | I'd probably guess no to all phasers. | ||
| moritz_ | from below: it's already executed, and notionally replaced by its return value | ||
| jnthn | Right | 12:49 | |
| The BEGIN block in a code sense maybe shouldn't actually make it into the compiled output in an ideal Perl 6 implementation. | |||
| masak | moritz_: as I read it, you can goto things that haven't been parsed you, just like you can call subs that haven't been parsed yet. | 12:50 | |
| s:2nd/you/yet/ | |||
| bbkr | masak: i expect to put generated snippets into following groups of results (rakudo / STD): "pass / pass", "pass / fail" (should go to RT), "fail / fail", "segfault / *", fail / pass". and the last group should be divided into smaller ones, like "nyi", "null PMC", "rakudo_works_fine_but_code_is_stupid", and so on... | ||
| masak | bbkr: 'this code indeed parses fine but produces a runtime error (as expected)' | 12:53 | |
| bbkr | masak: exactly :) | ||
| moritz_ | rakudo: $_ = q[you can goto things that haven't been parsed you, just like you can call subs that haven't been parsed yet.]; s:2nd/you/yet/; .print | 12:54 | |
| p6eval | rakudo bef86e: OUTPUT«you can goto things that haven't been parsed yet, just like you can call subs that haven't been parsed yet.» | ||
| moritz_ | masak++ # writing working p6 code | ||
| masak | :P | 12:55 | |
| bbkr | std: 804 - ;8 | ||
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mBogus term at /tmp/fVjB7Q6BX_ line 1:------> [32m804 - [33m⏏[31m;8[0mParse failedFAILED 00:01 113m» | ||
| masak | moritz_: implementing :2nd | ||
| bbkr | rakudo: 804 - ;8 | ||
| masak | moritz_++ | ||
| p6eval | rakudo bef86e: OUTPUT«===SORRY!===Confused at line 22, near "804 - ;8"» | ||
|
12:59
araujo joined
13:07
zag joined
13:08
M_o_C joined,
orafu joined
13:19
gbacon joined
|
|||
| moritz_ | rakudo: my $s = 'a=1;b=2;c=3;a=4'; %h.push: $s.split(';')>>.split('='); say %h.perl | 13:21 | |
| p6eval | rakudo bef86e: OUTPUT«===SORRY!===Symbol '%h' not predeclared in <anonymous> (/tmp/neqUK7Xr6w:22)» | ||
| moritz_ | rakudo: my $s = 'a=1;b=2;c=3;a=4'; my %h; %h.push: $s.split(';')>>.split('='); say %h.perl | ||
| p6eval | rakudo bef86e: OUTPUT«{"a" => ["1", "4"], "b" => "2", "c" => "3"}» | ||
| masak | moritz_: t/spec/S10-packages/basic.rakudo used to fail under my reverted enums patch. now it runs to completion. anything else with modules I could try? | 13:22 | |
| moritz_ | masak: pls used to segfault | 13:23 | |
| masak | oki, trying pls. | ||
|
13:23
cls_bsd joined
|
|||
| bbkr | std: :b | 13:23 | |
| p6eval | std 31912: OUTPUT«ok 00:01 111m» | ||
| moritz_ | rakudo: :b | 13:24 | |
| p6eval | rakudo bef86e: ( no output ) | ||
| bbkr | std: 9;:_ # curious | ||
| p6eval | std 31912: OUTPUT«ok 00:01 112m» | ||
| TimToady | I note that std is now 96 revs out of date | ||
| anyone know why it's not recompiling? | 13:25 | ||
| moritz_ takes a look | |||
| bbkr | std: ?5* | 13:27 | |
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mBogus term at /tmp/GDcpOso_sk line 1 (EOF):------> [32m?5*[33m⏏[31m<EOL>[0mParse failedFAILED 00:01 113m» | ||
| bbkr | rakudo: ?5* | ||
| p6eval | rakudo bef86e: OUTPUT«===SORRY!===Confused at line 22, near "?5*"» | ||
| moritz_ | STAGE=0 ./viv -o stage1/Cursor.store --freeze Cursor.pm6 | 13:28 | |
| syml/CORE.lex.store not found; CORE setting has not yet been compiled. | |||
| This file must be generated using './std CORE.setting' or 'make' before STD.pm6 | |||
| can be used. | |||
| colomon | ingy: ping | 13:29 | |
| masak | moritz_: pls still segfaults :( | ||
| bbkr | std: -Bb~*#B" | ||
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mUndeclared name: 'Bb' used at line 1Check failedFAILED 00:01 114m» | ||
| bbkr | rakudo: -Bb~*#B" | ||
| p6eval | rakudo bef86e: ( no output ) | ||
| moritz_ | cleaning out src/perl6/ and trying again... | 13:30 | |
| masak | bbkr: if you're going to keep doing that, you'll risk single-handedly reinstating the "Perl is line noise" myth :P | 13:31 | |
| bbkr | std: _~*.A | ||
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mUndeclared name: '_' used at line 1Check failedFAILED 00:01 114m» | ||
| moritz_ | you can also /msg std: _~*.A | ||
| bbkr | rakudo: _~*.A | ||
| p6eval | rakudo bef86e: ( no output ) | ||
| masak | well, /msg p6eval std: | ||
| moritz_ | ah right | ||
| bbkr | ok, I will reduce eval noise. | 13:32 | |
| masak | thank you :) | ||
| bbkr | should example above be reported? | ||
| masak | if you can explain to us what it does. :) | ||
| moritz_ | it calls a routine | 13:33 | |
| called _ | |||
| masak | rakudo: _~*.A; say "alive" | ||
| p6eval | rakudo bef86e: OUTPUT«alive» | ||
| moritz_ | with an argument that is a curried, stringied method call | ||
| you know *.A | |||
| masak | why is &_ defined? | ||
| moritz_ | it shouldn't be | ||
| bbkr | exactly, why? | ||
| moritz_ | rakudo: _; say "alive" | ||
| masak | bbkr: there's your bug. | ||
| p6eval | rakudo bef86e: OUTPUT«Could not find sub &_ in main program body at line 22:/tmp/4p240eNSrS» | ||
| bbkr | hmm | 13:34 | |
| rakudo: _~1; say "alive" | |||
| p6eval | rakudo bef86e: OUTPUT«Could not find sub &_ in main program body at line 22:/tmp/9xgRgdcVYm» | ||
| masak | ooh! the whole thing is curried, and thus never run! | ||
| of course! | |||
| moritz_ | but how is it parsed? | ||
| as _() ~ *.A? | |||
| masak | moritz_: rakudo doesn't check for undeclared sub names. | ||
| moritz_: aye. | 13:35 | ||
| moritz_ | but it shouldn't | ||
| should be _(~*.A), afaict | |||
| masak | oh. | ||
| then that's the bug. :) | |||
| moritz_ | because unknown identifiers should be treated as listops | ||
| no? | |||
| bbkr: have fun composing that ticket :-) | |||
| masak | just copy all we say into it :) | 13:36 | |
| moritz_: as far as I know, you're right. | |||
| about the listops thing. | |||
| moritz_ | next error from STD.pm buil: | 13:37 | |
| cp -r Actions.pm CORE.setting CursorBase.pmc DEBUG.pmc LazyMap.pm NAME.pmc NULL.lex RE_ast.pmc Stash.pmc mangle.pl std uniprops viv stage2/STD.pmc stage2/Cursor.pmc stage2/syml stage2/STD_P5.pmc lib tryfile teststd snap.new | |||
| cp: cannot stat `stage2/STD_P5.pmc': No such file or directory | |||
| make: *** [snap] Error 1 | |||
| I don't know how to fix that | |||
| TimToady | huh... | ||
| moritz_ | stage2 contains | 13:38 | |
| Cursor.pmc Cursor.store STD.pmc STD.store syml | |||
|
13:38
thebird joined
|
|||
| TimToady | mine contains: CORE.syml CursorBase.pm6.syml Cursor.pm6.syml DEBUG.pm6.syml NAME.pm6.syml NULL.lex.store Stash.pm6.syml STD.pm6.syml | 13:38 | |
| but I note _P5 isn't one of those | |||
|
13:39
tadzik joined
|
|||
| TimToady | oh, not the syml | 13:39 | |
| ENOCAFFEIN | |||
| moritz_ | TimToady: does 'make snap' work for you? | ||
| TimToady | ah, no it fails, so reproducable \\o/ | 13:40 | |
|
13:40
Holy_Cow joined
|
|||
| TimToady | I'm too used to looking for green and red for failure :) | 13:40 | |
| thanks, I can probably figger it out now | 13:41 | ||
| bbkr | std: >0 # got another one :) | 13:45 | |
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mPreceding context expects a term, but found infix > instead at /tmp/0mayWeFrqi line 1:------> [32m<BOL>[33m⏏[31m>0 # got another one :)[0mParse failedFAILED 00:01 112m» | ||
| bbkr | rakudo: >0 # got another one :) | ||
| p6eval | rakudo bef86e: OUTPUT«===SORRY!===Confused at line 22, near ">0 # got a"» | ||
| bbkr | maybe no :( | ||
| TimToady | heh, r31913 sez: [STDeco] Rework Makefile to make stages more similar to each other, also reduces 3 stages to 2. ** LIKELY BREAKS SNAPTEST AND STD-DIST ** | 13:46 | |
| sorear: it appears to have broken make snap as well... | |||
| tadzik | rakudo: (1 - i).cis | 13:47 | |
| p6eval | rakudo bef86e: OUTPUT«cis is only defined for Reals, you have a Complex()» | ||
| tadzik | ...then why is it on the methods list? | ||
| moritz_ | for giving a better error message? | ||
| colomon | tadzik: Complex.cis gives you exactly that error message. | 13:48 | |
| though it does seem a bit odd, now that I think about it. :\\ | 13:49 | ||
| tadzik | that's a bit misleading imho. Creating a method just to say that the method is not available | ||
| colomon | ah, yes, all the Real-only methods are defined in Numeric with stubs to give an error. | ||
| I have to admit that I never expected people would call .methods as a form of documentation. | 13:50 | ||
| tadzik | well, couldn't they be defined in Real if they're Real-only? | ||
| colomon | they are defined in Real. | ||
| tadzik | ah, and Complex is also Real, right | 13:51 | |
| colomon | they are defined in Numeric strictly to give you a decent error message. | ||
| Complex is not Real! | |||
| masak | rakudo: my $answer = 42 but role { method to_life_the_universe_and_everything { "The answer is ", self } }; say $answer.to_life_the_universe_and_everything | ||
| p6eval | rakudo bef86e: OUTPUT«The answer is 42» | ||
| tadzik | Real is a subset of Complex | ||
| colomon | tadzik: not in Perl 6 | ||
| tadzik | um, what? | ||
| moritz_ | we don't define our numeric types as subset types | 13:52 | |
| colomon | Real is the role that represents real numbers | ||
| moritz_ | wouldn't be efficient | ||
| and would screw up multi dispatch in many ways | |||
| colomon | Complex is a class which does Numeric but does not do Real | ||
| jnthn | But p6l would admire you greatly for thinking that way. ;-) | ||
| tadzik | I see | ||
| moritz_ | jnthn: but p6c would shout at you :-) | 13:53 | |
| masak | studying & | ||
| jnthn | And rightly so. :-) | ||
| colomon | oh. | ||
| tadzik | I'm studying too, I was just curious if Perl 6 can tell me the argument of a Complex number :] | 13:54 | |
| moritz_ | I'm pretty sure it can | ||
| colomon | there's a very good reason .cis (and others) are defined on Numeric. | ||
| it's because there's a Cool.cis. | |||
| If there weren't a corresponding Numeric.cis, then when you called .cis on a Complex number, you'd cause an infinite recursion | 13:55 | ||
| moritz_ | rakudo: say (2 + 2i).polar.perl | ||
| p6eval | rakudo bef86e: OUTPUT«(2.82842712474619, 0.785398163397448)» | ||
| moritz_ | the second number is the argument | ||
| tadzik | hm | 13:56 | |
| colomon | star: say (2 + 2i).abs | ||
| p6eval | star 2010.07: OUTPUT«2.82842712474619» | ||
| moritz_ | I'm nearly sure there's a more direct way | ||
| tadzik | moritz_: btw, is .succ and .pred on DateTime waiting to be implemented? | ||
| moritz_ | but switching between Mathematica, Matlab and Perl 6 has totallys screwed my knowledge of function/method naming | 13:57 | |
| tadzik: no idea | |||
| colomon | moritz_: nope, no more direct way | ||
| tadzik | moritz_: they're in the specs but not in Rakudo, can give it some love this evening | ||
| moritz_ | tadzik: should be pretty easy to do | ||
| tadzik | that's exactly what I thought | ||
| pmichaud | good morning, #perl6 | 13:58 | |
| tadzik | good afternoon pmichaud | ||
| jnthn | morning, pmichaud | ||
| moritz_ | \\o pmichaud | ||
| pmichaud | this morning, we undefine Nil. | 13:59 | |
| colomon | o/ | ||
| moritz_ | is that spec again? | ||
| colomon | pmichaud: I think you should have prefaced that with "Gentlemen." | 14:00 | |
| pmichaud | moritz_: it's at least speculated. | ||
| moritz_ | .oO( nice pun ) |
||
| jnthn | pmichaud: oh lol | ||
| pmichaud: That's how I put in in ages back. :-) | 14:01 | ||
| <chuckle> | |||
| TimToady | moritz_: working on the spec right now | ||
| moritz_ | ++TimToady | ||
| pmichaud | afk for a bit | 14:02 | |
| moritz_ kinda loathes the idea to switch the test suite back to the previous state of Nil definedness | 14:03 | ||
| ah well | |||
| maybe we can just reduce it to one or two tests | |||
| TimToady | masak complained, so he should fix 'em :) | ||
| moritz_ | less redundancy, so that the next 5 back-and-forth changes go more smoothly *SCNR* :-) | 14:04 | |
|
14:04
perlygatekeeper joined
|
|||
| moritz_ | I kinda agreed with masak++ | 14:04 | |
|
14:07
huf joined
|
|||
| bbkr | about 1% of randomly generated strings is valid P6 code. that's probably highest ratio of all languages :) some of cool examples (I have no idea what they do): "|*/\\A", "^!:_", "~| [~0]", "*%?_".... :P | 14:09 | |
| tadzik | bbkr: what's the statistic from? | 14:10 | |
| or where | |||
| moritz_ | ^!:_ is easy to explain | ||
| colonpair plus two prefixes | |||
| bbkr | tadzik: random chars passed to eval | 14:11 | |
| tadzik: I'm trying to hunt down segfaults and differences between rakudo and STD | 14:12 | ||
| tadzik | cool | ||
| pugssvn | r32009 | lwall++ | [S02] revert Nil to undefined singleton value for masak++ et al.++ | 14:13 | |
| r32009 | (Note, despite being a kind of "bottom", it is not a type as it was before.) | |||
| gfldex | bbkr: did you try genetical stuff already too? | ||
| bbkr | gfldex: no, I'm just brute-forcing compiler :) | 14:14 | |
| gfldex | while you are on it, take a random string that works and try to extend it with random stuff to let it grow | 14:15 | |
| TimToady | bbkr: at what length? surely as the length goes to Inf the percentage should approach 0, I'd think | ||
| bbkr | TimToady: length 4..8 | 14:17 | |
| TimToady | and what character set? | ||
| TimToady thinks APL would be much higher if you include APL chars | 14:18 | ||
| bbkr | TimToady: ('a' .. 'b', 'A' .. 'B', 0 .. 2, '~', '!', '@', '$', '%', '^', '&', '*', '(', ')', '-', '_', '+', '=', '{', '[', '}', ']', '\\\\', '|', ':', ';', '\\'', '"', '<', ',', '>', '.', '?', '/', ' ').pick((4..8).pick, :replace) | 14:19 | |
| TimToady | And I'm quite certain that TECO would be higher yet :) | 14:20 | |
| bbkr | TECO? | ||
| TimToady | Text Editor and COrrector | ||
| people used to type in their names to see what it would do | 14:21 | ||
|
14:21
barika joined
|
|||
| pugssvn | r32010 | qiuhw++ | [S02] typo fix. | 14:21 | |
| arnsholt | bbkr: That's character set is a bit skewed though | ||
| bbkr | arnsholt: why? | 14:22 | |
| TimToady | for one, it leaves out the control characters, which TECO accepts :) | 14:24 | |
| bbkr | std: !2*2!,-1 # this passes on Rakudo. who can track bug reason? | ||
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mCan't negate , because comma operators are not iffy enough at /tmp/JjBk81ERvd line 1:------> [32m!2*2!,[33m⏏[31m-1 # this passes on Rakudo. who can trac[0mParse failedFAILED 00:01 113m» | ||
| bbkr | rakudo: !2*2!,-1 # this passes on Rakudo. who can track bug reason? | ||
| p6eval | rakudo bef86e: ( no output ) | ||
| TimToady | rakudo doesn't do the 'iffy' test, afaik | 14:25 | |
| moritz_ | bbkr: that's known; rakudo doesn't check meta operator composition | ||
| bbkr | moritz_: thanks | ||
| pugssvn | r32011 | moritz++ | [t/spec] update some Nil tests to reflect last spec change | 14:26 | |
| TimToady | an interesting unanswered question is whether interpolating Nil as () in a list should give a warning | 14:27 | |
| to make people distinguish between "I'm not returning a value" and "I'm returning 0 values" | |||
| moritz_ | as a syntactic warning? | 14:28 | |
| TimToady | I suspect it would have to be runtime | ||
| at least in some cases | |||
| moritz_ | iiuc, { }.().defined would be False, right? | ||
| arnsholt | Well, it's a bit limited in the region of non-punctuation. But for testing pathological places in the parser, it's probably quite useful I imagine | ||
| TimToady | yes | ||
| moritz_ | because empty statement lists return Nil, not () | ||
| ok | |||
| bbkr | rakudo: ^^0 # this one fails on STD. | ||
| p6eval | rakudo bef86e: ( no output ) | ||
| TimToady | intentionally so | 14:29 | |
| dalek | kudo: 2f18a49 | pmichaud++ | : <pre>m src/Perl6/Grammar.pm <pre style='white-space:pre-wrap;width:81ex'>Fix precedence of numeric bitshift operators; fixes RT #77232 (masak++).</pre> |
||
| jnthn | std: ^^0 | ||
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mExpecting a term, but found either infix ^^ or redundant prefix ^ (to suppress this message, please use space between ^ ^) at /tmp/jn4DOYyPaK line 1:------> [32m^^[33m⏏[31m0[0mParse failedFAILED 00:01 111m» | ||
| moritz_ | that's another long known issue | ||
| it's the same for foo ~~ bar | 14:30 | ||
| which people often want to mean foo() ~~ bar | |||
| TimToady | std: foo ~~ bar | ||
| pugssvn | r32012 | pmichaud++ | [t/spec]: Add tests for RT #77232. | ||
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mExpecting a term, but found either infix ~~ or redundant prefix ~ (to suppress this message, please use space between ~ ~) at /tmp/63Cn7BsE67 line 1:------> [32mfoo ~~[33m⏏[31m bar[0mParse failedFAILED 00:01 114m» | ||
| TimToady | yes, STD assumes that nobody in their right mind would apply certain prefix operators twice | 14:31 | |
| since it helps catch some thinkos | |||
| moritz_ likes that attitude | 14:32 | ||
| TimToady | it's the inside-out of "two terms in a row", though it's not as reliable | ||
| moritz_ | but much more informative | ||
| bbkr will make a list of all "rakudo=pass, std=fail" cases found to avoid mess on the channel | 14:33 | ||
| TimToady | well, two terms is also informative, if you count all the messages that start out as two terms and mutate into a different message based on context | ||
| well, actually, they start out "Confused", and usually mention "Two terms" along with more info | 14:34 | ||
| "Unexpected block" is also a two-terms variant | 14:36 | ||
|
14:38
Alias joined
14:40
_jaldhar joined
|
|||
| bbkr | (;~*) # who can explain how this awesome emoticon is parsed? semicolon inside bracket looks wrong, but STD says it's correct code | 14:41 | |
| moritz_ | it is; afaict it's a slice literal, which is NYI in rakudo | 14:43 | |
| and ~* is just a curried prefix:~ | |||
| TimToady | bbkr: you can get the answer to such questions using viv -e | ||
|
14:45
alester joined
|
|||
| bbkr | TimToady: viv? what is it? | 14:45 | |
| TimToady | it runs STD and prints out the AST in (relatively) readable form | 14:46 | |
| it's also used to bootstrap STD by emitting perl 5 code | 14:47 | ||
| bbkr | TimToady: thanks, that will do :) | 14:48 | |
| rakudo: *>2<~1 # known one (STD fails)? | 14:49 | ||
| p6eval | rakudo bef86e: ( no output ) | ||
| moritz_ | std: *>2<~1 | 14:50 | |
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mUnable to parse quote-words subscript; couldn't find right angle quote at /tmp/esxgq7oNYH line 1:------> [32m*>2<[33m⏏[31m~1[0m expecting escapeParse failedFAILED 00:01 113m» | ||
|
14:50
pyrimidine joined
|
|||
| alester | In case you missed it, vim users now get Perl 6 support out of the box. perlbuzz.com/2010/08/vim-73-supports-perl-6.html | 14:52 | |
|
14:53
achromic joined
|
|||
| alester | Might be nice to have a pointer to that for the newbies. | 14:53 | |
| If we have some kind of canonical "Hi, welcome to Perl 6" document. | |||
| mathw | nice | ||
|
14:58
REPLeffect joined
|
|||
| TimToady | hmm, if arrays and hashes can usefully be undefined now, then we should probably make //= look for a list instead of an item like normal = does | 14:59 | |
| TimToady wonders if all op= should follow the = rule for $ on the left | |||
|
15:00
lichtkind_ joined,
fod joined
|
|||
| moritz_ is in favor of killing item assignment | 15:01 | ||
| TimToady | and even now, @foo ||= 1,2,3 doesn't dwim | 15:02 | |
| at least, in STD | |||
| alester | TimToady: If arrays can be "usefully unassigned", what would be the diff between my @foo; and my @foo = (); ? | ||
| TimToady | rakudo: my @foo ||= 1,2,3; say @foo | ||
| p6eval | rakudo 2f18a4: OUTPUT«1» | ||
| TimToady | alester: whether @foo.defined returned False or True | 15:03 | |
| alester | But a shift @foo would still return the same undef. | 15:04 | |
| TimToady | with the recent Nil change, you can undefine @foo by saying @foo = Nil; | ||
| alester | I just smell potential Surprise, but I can't think of an example. | ||
| TimToady | well, shifting something that isn't there is likely to return a Failure | 15:05 | |
| alester | "isn't there" meaning the case of @foo = Nil? | 15:06 | |
| TimToady | but the error inside the Failure might differ depending on whether @foo is defined or not | ||
| alester | Maybe I don't know of this Failure. | ||
| TimToady | well, in that case, the array "isn't there", and in the other case, .[0] isn't there | ||
| so in the first case you might get "Can't use .shift on an undefined array" | 15:07 | ||
| rather than "Can't shift an empty array" or whatever it returns now | 15:08 | ||
| rakudo: say ~shift(my @x); | |||
| p6eval | rakudo 2f18a4: OUTPUT«Undefined value shifted from empty list in main program body at line 1» | ||
| TimToady | rakudo: say shift(my @x); | 15:12 | |
| p6eval | rakudo 2f18a4: ( no output ) | ||
| moritz_ | TimToady: S05 mentions that :samespace works on :s-induced <.ws> matches. How are those identified after the regex has been compiled? | 15:15 | |
| or is that a fossile? | |||
| pmichaud | rakudo: my @x; say @x.shift ~~ Failure | 15:18 | |
| p6eval | rakudo 2f18a4: OUTPUT«1» | ||
| pmichaud | currently shifting an empty array does return Failure -- p6eval just doesn't show the failure messages for some reason. | ||
| pmichaud@plum:~/rakudo$ ./perl6 | 15:19 | ||
| > my @x; say @x.shift; | |||
| ===SORRY!=== | |||
| Undefined value shifted from empty list | |||
| moritz_ | p6eval doesn't use the REPL | ||
| does it make a difference if you use a file? | |||
| pmichaud | hmmmm | ||
| apparently it does | |||
| that's a bug. | |||
| looks like stringification of the Failure via 'say' doesn't throw the exception :-| | 15:20 | ||
| TimToady | shouldn't, probably | 15:21 | |
| pmurias | TimToady: did you figure out what construct result in control graph edges? | ||
| TimToady | should format the Failure though | ||
| moritz_ | is it a .Str vs. get_string vtable distinction | ||
| ? | |||
| TimToady | pmurias: I made some remarks | ||
| pmichaud | moritz_: likely. I've started to redo get_string and Stringy several times but keep running into ickiness | ||
| moritz_ | surprise, surprise | ||
| TimToady | but basically, everything is a lambda, and if you don't know you're current language, you don't know what is interpreting the lambdas | 15:22 | |
| *your | |||
|
15:22
molaf joined
|
|||
| TimToady | Stringy is for use later in the program as a string, so throws an exception on a Failure | 15:23 | |
| Str is low-level, make it a string any way you can for printing it out | |||
| pmichaud | right | ||
| TimToady | hence Stringy autothreads, but Str doesn't | ||
| pmichaud | I'm not sure what Parrot's get_string vtable should default to. | 15:24 | |
| TimToady | rakudo: say any(1,2) | ||
| p6eval | rakudo 2f18a4: OUTPUT«any(1, 2)» | ||
| TimToady | rakudo: say ~any(1,2) | ||
| p6eval | rakudo 2f18a4: OUTPUT«any(1, 2)» | ||
| TimToady | hmm, I guess that doesn't show the difference | ||
| pmichaud | that second should've been any("1","2") | ||
| oh, maybe not | |||
| rakudo: say any(1,2).perl | 15:25 | ||
| p6eval | rakudo 2f18a4: OUTPUT«any(1, 2)» | ||
| pmichaud | rakudo: say (~any(1,2)).perl | ||
| p6eval | rakudo 2f18a4: OUTPUT«"any(1, 2)"» | ||
| pmichaud | heh | ||
| TimToady | er | ||
| pmichaud | that second one should've been any("1", "2"), per spec | ||
| (I agree that Rakudo gets it wrong currently) | |||
| TimToady | pmurias: as for which constructs might throw control exceptions, that's difficult to know without explicit trait declarations | 15:27 | |
| and any construct might throw an error exception, but I think you can ignore those for basic blocks, unless you're moving code outside the scope of a CATCH | 15:28 | ||
|
15:28
ovle joined
|
|||
| pmurias | TimToady: any other ways to control flow other than (error/control) exceptions and loops and contionals? | 15:31 | |
| exit, and shortcircuting stuff &&,|| comes to my mind | 15:32 | ||
| ovle | given a set of integers, does some nonempty subset of them sum to 0? | ||
| moritz_ | yes | ||
| rakudo: say [+] 0; | 15:33 | ||
| p6eval | rakudo 2f18a4: OUTPUT«0» | ||
| moritz_ | rakudo: say [+] -1, 1; | ||
| p6eval | rakudo 2f18a4: OUTPUT«0» | ||
| moritz_ | ovle: now that I've answered your homework questions, will you fix a bug in Rakudo? | 15:34 | |
|
15:35
thebird joined
|
|||
| ovle | not a homework per se but www.getacoder.com/projects/solve%20...32036.html | 15:35 | |
| that:D | |||
| moritz_ | oh, of a particular subset of integers | 15:36 | |
| ovle | yes | ||
| moritz_ | ah well | ||
| pmurias | TimToady: {my $x=3;this_throws_an_exception;CATCH {}};if ($x != 3) {} #we can't optimize this out} | ||
| ovle | the usual linear machine solver solves it as long as the problem is small | ||
| not that it should solve it in P though | 15:37 | ||
| pmurias | TimToady: but just having a edge from each call to the CATCH should be enough | ||
|
15:37
rbuels joined
|
|||
| bbkr | rakudo: */\\*2 # fails on STD | 15:41 | |
| p6eval | rakudo 2f18a4: OUTPUT«===SORRY!===Confused at line 22, near "*/\\\\*2 # fa"» | ||
| bbkr | hmm | ||
| nvm | |||
| rakudo: <a>.WHAT.say; <a b>.WHAT.say; # looks like a bug. type should be independent of values amount, right? | 15:47 | ||
| p6eval | rakudo 2f18a4: OUTPUT«Str()Parcel()» | ||
|
15:48
kst joined
|
|||
| moritz_ | no, rakudo is right here | 15:48 | |
| it's spec. | |||
| bbkr | moritz++ | 15:49 | |
|
15:50
tylercurtis joined
|
|||
| TimToady | rakudo: <1/2>.WHAT.say | 15:55 | |
| p6eval | rakudo 2f18a4: OUTPUT«Str()» | ||
| TimToady | but it's wrong there :) | ||
| rakudo: <1>.WHAT.say | |||
| p6eval | rakudo 2f18a4: OUTPUT«Str()» | ||
| TimToady | and there | 15:56 | |
| moritz_ | rakudo isn't smart about those yet, true | ||
| TimToady | moritz_: re <.ws>, perhaps there should be some flag that tells it to use <ws> instead. or maybe :ss should have that effect internally | 15:59 | |
| or :ss just rewrites the regex somehow | 16:00 | ||
| moritz_ | capturing <ws> seems doable | ||
| rewriting the regex... NNOOOOO | |||
| recompilation is evil, no? | 16:01 | ||
| TimToady | we have to capture the words too | ||
| maybe .chunks does something smart | 16:02 | ||
| or something like .chunks | 16:03 | ||
| moritz_ | which words? | ||
| TimToady | the words between the spaces | ||
| though it's not clear how this interacts with bracketing | 16:04 | ||
| moritz_ | we know the original string, the match object, and if we also know what the automagic <.ws> matched, we're done | ||
| TimToady | in STD, that info is available from @*MEMOS, but rakudo doesn't have that | 16:05 | |
| perhaps the easiest thing would be to say that .chunks pays attention to :s | 16:06 | ||
| and sends matched whitespace through as separate chunks | |||
| though it would be suboptimal to have to rescan chunks to see if they're whitespace | 16:07 | ||
| espec since some of them might not have been matched by <.ws> | |||
| moritz_ | what about dumbing down :samespace to just apply filtering to any matched whitespace? | 16:08 | |
| TimToady | so I think there's probably a missing method | ||
| well, that's a possibility that has the same effect till you want to get fancy | |||
| and probably covers most of the use cases | 16:09 | ||
| moritz_ | there's also a module for "fancy" stuff | ||
| s/also/always/ | |||
| at least if somebody writes one :-) | |||
| TimToady | so just split(/(\\s+)/) and assume | ||
| moritz_ | wfm | ||
| TimToady | probably okay for now, and we can think about extending it elsewise | 16:10 | |
| just seems silly to rescan | |||
| moritz_ | otoh it seems silly to store that much information on all Match objects, if most will never use it | 16:11 | |
| bbkr | rakudo: %()==B # does this code segfault locally for you ? | ||
| p6eval | rakudo 2f18a4: ( no output ) | 16:12 | |
| moritz_ | bbkr: there's a segfault for things related to %() in RT | ||
| so no surprise here | |||
| bbkr | moritz_: I cannot find it, but I'm glad it's reported. thanks again. | 16:15 | |
| moritz_ | lol I blogged: perlgeek.de/blog-en/perl-6/state-of...fiers.html | 16:16 | |
|
16:17
ruoso joined,
risou joined
|
|||
| moritz_ | bbkr: rt.perl.org/rt3/Ticket/Display.html?id=75502 but it's probably not what I had in mind | 16:18 | |
|
16:21
justatheory joined
|
|||
| bbkr | rakudo: &2<+*+a # another one from "STD does not parse it" series | 16:23 | |
| p6eval | rakudo 2f18a4: ( no output ) | ||
| TimToady | you already had an unmatched < postfix before | ||
| moritz_ | same as the previous one involving < without a space before it | ||
|
16:24
kst joined,
isBEKaml joined
|
|||
| masak | swimming & | 16:26 | |
| bbkr | rakudo: $?:: # known? | 16:32 | |
| p6eval | rakudo 2f18a4: ( no output ) | ||
| TimToady | std: $?:: | 16:33 | |
| p6eval | std 31912: OUTPUT«[31m===[0mSORRY![31m===[0mBogus statement at /tmp/wRPEja655t line 1:------> [32m<BOL>[33m⏏[31m$?::[0mParse failedFAILED 00:01 114m» | ||
| moritz_ | no idea. | 16:34 | |
|
16:35
timbunce joined
16:42
macroron joined
16:44
Axius joined
|
|||
| bbkr | rakudo: say |3 # what does prefix:<|> do? | 16:46 | |
| p6eval | rakudo 2f18a4: OUTPUT«3» | ||
| moritz_ | interpolate data structures into captures | 16:47 | |
| TimToady | in this case it's a no-op | ||
| moritz_ | rakudo: sub f($x, $y) { say "$x|$y" }; my @a = 1, 2; f(@a) | ||
| rakudo: sub f($x, $y) { say "$x|$y" }; my @a = 1, 2; f(|@a) | |||
| p6eval | rakudo 2f18a4: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in 'f' at line 22:/tmp/xPgnND0R3T in main program body at line 22:/tmp/xPgnND0R3T» | ||
| rakudo 2f18a4: OUTPUT«1|2» | |||
| bbkr gets it, thanks | 16:48 | ||
| TimToady | since we changed coercions from .as(Foo) to just .Foo, I suppose .as is again available to mean .fmt | ||
| moritz_ | (mostly off-topic, sorry) news.ycombinator.com/item?id=1607995 is fascinating. Before I wrote my reply about trolls, that phython comment had a reputation of +3. It has -1 now | 16:49 | |
| people think it's funny, until they realize that it's just mindless trolling, and to be discouraged | 16:50 | ||
|
16:54
drdanger joined
16:55
fod joined
|
|||
| moritz_ -> afk | 16:55 | ||
|
16:55
Guest23195 joined
|
|||
| lichtkind | is it true that rakudo * releases will come now frewuently? | 16:59 | |
| [particle] | lichtkind: yes, monthly | 17:00 | |
| lichtkind | thnanks | 17:01 | |
| [particle]: good errortolerant read :) | 17:02 | ||
| [particle] | :) | ||
| Su-Shee | I thought rakudo comes monthly and rakudo * quarterly (or so)? | 17:15 | |
| jnthn | Su-Shee: I expect we'll drop to less frequent Rakudo * releases in the long run. | 17:19 | |
| Su-Shee: But monthly lets us get improvements and bug fixes from the first R* into people's hands sooner. | 17:20 | ||
| And it's nice to look responsive. :-) | |||
| bbkr | rakudo: .?foo # according to spec this should silently fail if $_ is Any()? | ||
| p6eval | rakudo 2f18a4: ( no output ) | ||
| Su-Shee | jnthn: or have quarterly stables and monthly bleeders :) | 17:21 | |
| jnthn | bbkr: You've already said it's OK for there not to be a method there, so it shoudln't fail noisily. | 17:24 | |
| .?foo is like "call a foo on $_ if there is one. If not, who cares." | 17:25 | ||
|
17:25
plobsing joined
|
|||
| tylercurtis | rakudo: .?foo.WHAT.say | 17:25 | |
| p6eval | rakudo 2f18a4: OUTPUT«Parcel()» | ||
| pmichaud | that's likely to become "Nil" | ||
| jnthn | It's most useful when you have objects where a role mighta been mixed into them to provide some method. | ||
| pmichaud: +1 | 17:26 | ||
| bbkr | jnthn: but it's different situation if class exist but does not have method and situation where class doesn't exist at all. I wanted to be sure. | ||
| pmichaud | (in the case of a .? call to a non-existent method) | ||
| jnthn | ..."class exist"? | ||
| Any is decidedly an existing class. :-) | |||
| tylercurtis | bbkr: $_ always exists. It just might be undefined. | 17:27 | |
| bbkr | jnthn: indeed! thanks. I'm still back in P5 thinking sometimes with "undef"s | ||
| jnthn | :-) | 17:28 | |
| TimToady | I think we should also say that any method called on Nil is Nil | 17:29 | |
| pmichaud | wfm | ||
| jnthn | TimToady: er | 17:30 | |
| Nil.perl ? | |||
| Nil.ACCEPTS | |||
| Or you mena "methods that are not defined"? | |||
|
17:33
dha joined
17:36
molaf joined
|
|||
| Su-Shee | moritz_: you're on hackernews. | 17:41 | |
| ah forget it you noticed. ;) | |||
| bbkr | rakudo: +1.sin before die for any { :food but pi.e} # poetry :))) | 17:47 | |
| p6eval | rakudo 2f18a4: OUTPUT«Died in main program body at line 22:/tmp/RVAK0oel3L» | ||
| pugssvn | r32013 | lwall++ | [S02] spec which methods Nil responds to, | 17:50 | |
| r32013 | and that it propagates Nil on unrecognized methods | |||
| r32014 | lwall++ | [S02,S03] allow Nil to smartmatch a Nil | 17:54 | ||
| dalek | kudo: b647188 | pmichaud++ | : <pre>m build/PARROT_REVISION <pre style='white-space:pre-wrap;width:81ex'>Bump PARROT_REVISION in preparation for Parrot release.</pre> |
17:56 | |
|
17:57
_jaldhar joined
17:58
gbacon joined
18:01
s1n joined
|
|||
| colomon | oh my, is it release week? | 18:05 | |
| dang, it is. | |||
| ingy | :D | 18:10 | |
| colomon | ingy: that script you were timing yesterday -- it is available / easy to use? | 18:11 | |
| I was thinking I might take a stab at trying to optimize it. | |||
| ingy | colomon: sure... | 18:12 | |
| one sec | |||
| git clone git://github.com/ingydotnet/testml-pm6.git && cd testml-pm6 && ufo && make test | 18:13 | ||
| :P | |||
| colomon | is make test what you were timing | 18:14 | |
| ingy | git clone git://github.com/ingydotnet/testml-pm6.git && cd testml-pm6 && ufo && time make test | ||
| :) | |||
| colomon: I had a couple ideas | 18:15 | ||
| each test has to do a p6r parse | |||
| I was wondering if || was faster than | | |||
| because all my | are really || | 18:16 | ||
|
18:16
osfameron joined
|
|||
| ingy | also I could turn <foo> into <.foo> a lot | 18:16 | |
|
18:16
cotto_work joined
|
|||
| ingy | would that help you think? | 18:16 | |
| osfameron | jnthn: hi! we don't seem to have an authorization form to publish video of "Perl 6 Signatures" from YAPC::EU 2010. If you would like us to, could you email yapc-info@perl.it to let us know? | 18:17 | |
| pmichaud | currently in rakudo, || and | are equivalent. | ||
| osfameron: +1 | |||
| ingy | guess that anwsers that :) | ||
| pmichaud | osfameron: publishing that talk would be seriously awesome | ||
| eventually | should probably end up being faster | |||
| colomon | ingy: I've no idea. I was thinking more of rakudo optimizations that would help your code... ;) | 18:18 | |
| ingy | I thought | was ltm and || was no ltm | ||
| pmichaud | it is | ||
| and for that reason, | may end up being a bit faster | |||
| (eventually) | |||
| ingy | faster than what? | ||
| pmichaud | faster than || | ||
| osfameron | pmichaud: it certainly would ;-) but we're trying to be "correct" and make sure we get full confirmation before publishing :-) | ||
| (the talk is transcoded, and sitting in a holding area at yapc.tv/presentingperl, ready to be put online once we get it) | 18:19 | ||
| pmichaud | osfameron: right -- I'm just happy that talk is being actively worked on | ||
| ingy | ltm is faster than short circuit alternation?? | ||
| pmichaud | ltm should avoid any false paths altogether | ||
| osfameron | is masak here? | 18:20 | |
| pmichaud | osfameron: that one talk is the one I most desire to see available :-) | ||
| colomon | ingy: okay, I seem to have a build.... errr... should make test have errors? | ||
| afk | |||
| ingy | colomon: gist it | ||
| osfameron | seen masak | ||
| ingy | make test should not have errors | ||
| colomon: I was using rakudo*, fyi | |||
| osfameron | meh. I have a talk to chase up for him too (the Perl6, prince of Parsea one) | ||
| pmichaud | masak is usually around | 18:21 | |
| I'll leave messages for them... one moment | |||
| phenny: tell jnthn osfameron would like to get an authorization form to publish the video of your "Perl 6 Signatures" talk at YAPC::EU 2010 -- please email yapc-info@perl.it with permission (or refusal) | |||
| phenny | pmichaud: I'll pass that on when jnthn is around. | ||
| pmichaud | phenny: tell masak osfameron would like to get an authorization form to publish the video of your "Perl 6 -- Prince of Parsea" talk at YAPC::EU 2010 -- please email yapc-info@perl.it with permission (or refusal) | 18:22 | |
| phenny | pmichaud: I'll pass that on when masak is around. | ||
| pmichaud | osfameron: there you go... should get emails very soon | ||
| osfameron | fantastic, thanks! | ||
|
18:24
ruoso joined
|
|||
| jnthn | osfameron: You have my permission - would you like an email too? | 18:32 | |
| phenny | jnthn: 18:21Z <pmichaud> tell jnthn osfameron would like to get an authorization form to publish the video of your "Perl 6 Signatures" talk at YAPC::EU 2010 -- please email yapc-info@perl.it with permission (or refusal) | ||
| osfameron | jnthn: yes please, if that's ok :-) | 18:33 | |
| jnthn | osfameron: Doing it. Want me to suggest a license? | 18:35 | |
| osfameron: sent email | 18:36 | ||
| osfameron | jnthn: I think the forms suggested a CC license, but if you've suggested a different one, then we'd try to accommodate | 18:37 | |
| pmichaud | hmmm, just found an nqp-rx misoptimization | 18:38 | |
| jnthn | osfameron: It's a CC one. | ||
| But htere's more than one type of CC :-) | |||
| osfameron | this is true :-) | ||
| jnthn | pmichaud: oh? | ||
| pmichaud | jnthn: yes, I'm looking through the generated code from nqp-rx.... I've added a switch to use ord instead of 1-char substr for single-character-literal checks... | 18:39 | |
| osfameron | I think we only suggested one, as there isn't a great deal of infrastructure yet to record/pass on licenses between ACT->yapc.tv/presentingperl.org | ||
| pmichaud | but I also notice it's putting in backtracking code for subrules inside of :ratchet | ||
| which it shouldn't be doing, of course. | |||
| osfameron | (i.e. ACT *now* has a flag for "yes, you can use my video", which will be useful for the *next* conference... and still doesn't specify license) | ||
| jnthn | pmichaud: Oh, ouch. | 18:40 | |
|
18:45
dwierenga joined
|
|||
| pmichaud | ah, I see what's happening. Interesting | 18:49 | |
| so, here's a question | |||
| is token { <abc>* } the same as regex { [ <abc>* ]: } or regex { [ <abc>: ]*: } ? | 18:50 | ||
|
18:53
PenThrive joined
18:56
masak joined
18:57
tadzik joined
|
|||
| gfldex | std: say &Any::can.signature; | 18:58 | |
| p6eval | std 31912: OUTPUT«ok 00:01 117m» | ||
| gfldex | rakudo: say &Any::can.signature; | ||
| p6eval | rakudo b64718: OUTPUT«Null PMC access in find_method('!signature') in main program body at line 1» | ||
| gfldex | oi! | ||
| is that planned? | |||
| masak | gfldex: .can is probably not an 'our' method. | ||
| phenny | masak: 18:22Z <pmichaud> tell masak osfameron would like to get an authorization form to publish the video of your "Perl 6 -- Prince of Parsea" talk at YAPC::EU 2010 -- please email yapc-info@perl.it with permission (or refusal) | ||
| masak | so that's equivalent to it not finding anything. | ||
| jnthn | Aye, and there's an RT for the NPMCA already. | ||
| masak | rakudo: &Any::bllllrgh | ||
| p6eval | rakudo b64718: ( no output ) | ||
| masak | rakudo: &Any::bllllrgh.signature | 18:59 | |
| pugssvn | r32015 | pmichaud++ | [misc/pm.txt] Provide (non-)answers generated for Pm-21 and Pm-22. | ||
| p6eval | rakudo b64718: OUTPUT«Null PMC access in find_method('!signature') in main program body at line 1» | ||
| gfldex | good good | ||
| pmichaud | I know that package variable looks need to be whence-ified, planning to do that soon. | ||
| pugssvn | r32016 | pmichaud++ | [pm.txt]: Add Pm-23: | ||
| r32016 | | |||
| r32016 | Pm-23: Should TOP (or any other grammar regex) be considered | |||
| r32016 | to have implied $-anchors when invoked from .parse? | |||
| r32016 | (See RT #77022.) | |||
| r32017 | pmichaud++ | [misc/pm.txt]: Add Pm-24 about ratcheting on quantified subrules. | |||
| r32017 | | |||
| r32017 | Pm-24: Is token { <abc>* } | |||
| r32017 | the same as regex { [ <abc>* ]: } | |||
| r32017 | or regex { [ <abc>: ]*: } ? | |||
| gfldex | is there any way to get hold of the signature of can then? | 19:00 | |
| pmichaud | rakudo: say Any.can('can').signature # perhaps? | ||
| p6eval | rakudo b64718: OUTPUT«get_attr_str() not implemented in class 'Sub' in main program body at line 1» | ||
| pmichaud | closer :-) | ||
| rakudo: say Any.can('can').WHAT | |||
| p6eval | rakudo b64718: OUTPUT«Code()» | ||
| jnthn | can is still in PIR I guess | 19:01 | |
| gfldex | i doubt it would help to unPIR it | ||
| jnthn | ? | 19:02 | |
| gfldex | class A { method m1(){}; }; my $o = A.new(); say 'yes' if &A::1 == $o.can('m1); | ||
| rakudo: class A { method m1(){}; }; my $o = A.new(); say 'yes' if &A::1 == $o.can('m1); | |||
| p6eval | rakudo b64718: OUTPUT«===SORRY!===Confused at line 22, near "say 'yes' "» | ||
| colomon | ingy: gist.github.com/527534 | 19:03 | |
| jnthn | gfldex: No no, I meant the Any.can('can').signature not working | ||
| gfldex | rakudo: class A { method m1(){}; }; my $o = A.new(); say 'yes' if &A::m1 == $o.can('m1); | ||
| p6eval | rakudo b64718: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22» | ||
| gfldex | rakudo: class A { method m1(){}; }; my $o = A.new(); say 'yes' if &A::m1 == $o.can('m1'); | ||
| p6eval | rakudo b64718: OUTPUT«No applicable candidates found to dispatch to for 'infix:<==>'. Available candidates are::(Any $x?):(Int $a, Int $b):(Num $a, Num $b):(Date $a, Date $b):(Real $a, Real $b):(Numeric $a, Numeric $b):(Any $a, Any $b) in main program body at line 22:/tmp/Eqa3oiYNxM» | ||
| ingy | colomon: looking | 19:04 | |
|
19:04
dha left
|
|||
| gfldex | what i mean is that *.can('somemeth') does not return the same thing then &*::somemeth | 19:04 | |
| and you dont even have to break it intentinally with supersede :) | |||
| ingy | colomon: sorry. git clone git://github.com/ingydotnet/testml-tml.git | 19:06 | |
| colomon: next to the testml-pm6 clone | |||
| colomon: should be fine then... | |||
| colomon | oh, I had the wrong repo altogether?! | ||
| jnthn | gfldex: Right, but that is correct. | ||
| ingy | colomon: no, you need both | 19:07 | |
| colomon | or do I need both for the one to work? | ||
| gotcha. | |||
| do I need to build it, or just have it sitting there? | |||
| jnthn | gfldex: Methods are not our-scoped by default. | ||
| ovle | ok pmichaud and i were discussing about a new logo for rakudo | ||
| ingy | colomon: testml-tml has the common test suite for Perl6 Perl5 Python, etc | ||
| ovle | pmichaud wants a theme to do with plants | ||
| anyone else has ideas? | |||
| ingy | colomon: looks like you got other failures though :\\ | 19:08 | |
| pmichaud | that's not exactly what I said. :) | ||
| colomon | ingy: testing now, will have an update in a moment. | 19:09 | |
| ingy | colomon: gist me the new results | ||
| ovle | ok | ||
| colomon | ingy: will as soon as I have them. | ||
| ovle | so what do you want? | ||
| do you want to keep the original logo and add another theme on top of it? | |||
| using plants or something | |||
| pmichaud | I said of the candidates you gave, I'd tend to want to go with the ones that have some sort of plant, in keeping with Rakudo's "paradise" theme | ||
| colomon | ingy: the open messages have gone away, but there's still a lot of fail | ||
| ovle | so you want to keep theoriginal rakudo paradise logo? | 19:10 | |
| sorear | good * #perl6 | ||
| ovle | and add something else? | ||
| tadzik | hello | ||
| sorear | pmichaud: I interpret /:r <foo>* / as / [ <foo>: ]*: / | ||
| colomon | ingy: gist.github.com/527534 (again, it's updated) | ||
| pmichaud | I don't have a strong opinion about what the logo should be. I do have some opinions about what it should not be, however. | ||
| jnthn | "hot pink" :-) | 19:11 | |
| frettled | is that a plant? | ||
| ovle | so i can draw anything i want with a plant theme? | ||
| frettled | (har har har) | ||
| ovle | i was actually thinking of a more complicated desig | 19:12 | |
| something like tesselations | |||
| of R | |||
| gfldex | rakudo: class A { method m1(){};}; my $a = A.new; say $a.can('m1').WHAT; | ||
| masak | TimToady++ # Nil propagates down method call chains | ||
| pmichaud | I'd probably want a more zen-like image; something simple | ||
| p6eval | rakudo b64718: OUTPUT«Method 'WHAT' not found for invocant of class 'P6Invocation' in main program body at line 22:/tmp/xxGbmjzLSP» | ||
| ovle | or R evolving into .. something | ||
| gfldex | should P6Invocation have .WHAT? | ||
| pmichaud | I tend to want elegance more than complexity | ||
| (they aren't mutually exclusive, but elegance tends towards simplicity I think) | 19:13 | ||
| masak | Nil is starting to sound like the ultimate narcissism object :) | ||
| "Nil.ACCEPTS matches only on Nil" :) | |||
| frettled | pmichaud: perhaps something that says "KISS"? :) | ||
| pmichaud | I'm more convinced that Nil is more like a singleton type object :) | ||
| anyway, I'm going to do the Nil conversion shortly and see what we get | 19:14 | ||
| ovle | elegance exists in complexity too, escher prooved it | ||
| but ok you want simple zenlike stuff | |||
| tadzik | rakudo: $_ = 'ab12fg34'; s:g/\\d/X/; say 'alive'; | ||
| TimToady | STD's CORE.setting has: constant Nil = Parcel; | ||
| p6eval | rakudo b64718: OUTPUT«alive» | ||
| ovle | im going to do this in pencil | ||
| tadzik | hrm, doesn't work locally | 19:15 | |
| ovle | and like you said b&w | ||
| just on paper | |||
| ok? | |||
| pugssvn | r32018 | lwall++ | [CORE.setting] constant Nil = Parcel; | ||
| TimToady | well, now it does :) | ||
| sorear | TimToady: oops. | ||
| pmichaud | ovle: sure, I'm always willing to look at candidates. I'm not willing to commit to anything until I see something I really feel strongly about :) | ||
| ovle | ok | ||
| i'll see what i can do in the next hr | |||
| TimToady | sorear: I'll let you fix that. | ||
| pmichaud | TimToady: I'm thinking class Nil is Parcel { method new(*@_) { self } } or something like that | 19:16 | |
| ovle | brb | ||
| pmichaud | that way Nil.ACCEPTS does the right thing | ||
| and attempting to create a Nil object always returns Nil :-) | |||
| anyway, I'll start with that and see where the errors crop up :-) | 19:17 | ||
| colomon | ingy: | ||
| Wynne:testml-pm6 colomon$ env PERL6LIB=/Users/colomon/tools/testml-pm6/blib/lib:/Users/colomon/tools/testml-pm6/lib: /Users/colomon/tools/rakudo/perl6 t/arguments.t | |||
| 1..2 | |||
| # Looks like you planned 2 tests, but ran 0 | |||
| TimToady | well, if you do that, it's possible also that class Failure is Nil | 19:18 | |
| but not sure that Failure ~~ Nil makes sense | |||
| ingy | colomon: can you try rakudo *? | 19:19 | |
| pmichaud | I'm not sure I see the relationship between Failure and Nil | ||
| frettled | ovle++ for the effort | ||
| pmichaud | yes, ovle++ | ||
|
19:19
scott12358 joined
|
|||
| colomon | ingy: not easily on this machine, but give me a minute... | 19:19 | |
| pmichaud | anyway, I'll try it and we'll see where the errors pop up :-) | ||
| dalek | p-rx: e91bc31 | pmichaud++ | : <pre>m build/PARROT_REVISION <pre style='white-space:pre-wrap;width:81ex'>Bump PARROT_REVISION to be closer to 2.7.0 release.</pre> |
||
| p-rx: 90e0bcd | pmichaud++ | : <pre>m src/PAST/Compiler-Regex.pir <pre style='white-space:pre-wrap;width:81ex'>Refactor case-insensitive literals in preparation for other improvements.</pre> |
|||
| p-rx: 6ab1f66 | pmichaud++ | : <pre>m src/PAST/Compiler-Regex.pir <pre style='white-space:pre-wrap;width:81ex'>Optimize single-character constant literal tests to use 'ord' instead of 'substr'.</pre> |
|||
| TimToady | Nil could be what confers undefinedness on Failure objects | ||
| p-rx: 2a8a5a9 | pmichaud++ | : <pre>m src/stage0/HLL-s0.pir m src/stage0/P6Regex-s0.pir m src/stage0/Regex-s0.pir </pre> <pre style='white-space:pre-wrap;width:81ex'>Update bootstrap.</pre> |
|||
|
19:20
cjfields joined,
cjfields left
|
|||
| pmichaud | so far Failure still feels more role-like to me than class-like. But it's never fit cleanly in Rakudo yet. | 19:20 | |
| s/never/not/ | 19:21 | ||
|
19:21
pyrimidine joined
|
|||
| TimToady | nodnod | 19:21 | |
| maybe Nil is the only value that can be created from type NIL, or some such | 19:22 | ||
| pmichaud | perhaps. But Nil still feels like a type object. In most ways it acts like a type object, although I'm sure I'm missing a few cases. | ||
| I guess it's different in list context | 19:23 | ||
| TimToady | well, I'm not sure we want people deriving from it, and we'd like to keep the check for it very efficient | ||
| pmichaud | well, checking for a type object can be pretty efficient. | ||
| and maybe "don't derive from it" is "Doctor it hurts when I..." | |||
| because they could just as easily derive from NIL :-) | 19:24 | ||
| TimToady | I'm of two minds whether it (and Parcel) should hang outside of Any | ||
| jnthn | If the check for the type object is a low-level-y "does the repr consider this defined" then yes, it can be quite cheap. :-) | ||
| pmichaud | I'm pretty sure that Parcel wants to be ~~ Any | ||
| I think I can see the other side of that argument too, but so far it fits more naturally as Any. | 19:25 | ||
| TimToady | I guess that gets you list coercions for free, maybe | ||
| pmichaud | right, as well as the fact that Parcel also wants to be Iterable | ||
| TimToady | but then you don't get warned | ||
|
19:25
zachy joined,
mberends joined
|
|||
| colomon | ingy: well, bother. I thought I had R* installed on my Windows box, and the directory is certainly there, but I can't find any sign of a perl6 executable. | 19:25 | |
| pmichaud | (although Iterable can be a role.... but in Rakudo it works out more cleanly as a class so far) | 19:26 | |
| ingy | colomon: windows? | 19:28 | |
| colomon | ingy: my main machine is os x | ||
| ingy | colomon: I'm using os x too | ||
| pmichaud | 19:10 <sorear> pmichaud: I interpret /:r <foo>* / as / [ <foo>: ]*: / | ||
| sorear: good to know... if we get concurrence from TimToady++ then I'll gladly fix nqp-rx to match :-) | 19:29 | ||
| ingy | colomon: are you running make test on win or mac? | ||
| ingy confused | |||
| colomon | ingy: on mac | ||
| ingy | ok | ||
| colomon | ingy: I've got a full rakudo development environment set up on the mac rather than rakudo star. | ||
| ingy: I thought I had R* on the windows box, which is why I tried it. | 19:30 | ||
| does TestML maybe depend on some other module I don't have installed? | |||
| ingy | colomon: I don't think so | 19:31 | |
| colomon: should be easy to install r* then for a bit | 19:33 | ||
| TimToady | pmichaud: re <foo>*, certainly that's how STD works currently | 19:35 | |
| anything in the scope of a ratchet assumes it can throw away anything after the first Cursor | 19:36 | ||
| colomon | ingy: sorry to leave you hanging, but I should probably be doing $work rather than trying install r* atm. :( | 19:38 | |
| ingy | colomon: yeah, TestML doesn't dep on anything but Test.pm | ||
|
19:39
nimiezko joined
|
|||
| ingy | colomon: sorry to leave you hanging as well but I decided to not work on p6 for the week! | 19:39 | |
|
19:52
Mowah joined
19:57
sftp joined
|
|||
| mberends | \\o/ github.com/jnthn/6model ports to Mono and Linux with only very minor tweaking | 20:01 | |
| ovle | ok i have some done in black ink and pencil | 20:05 | |
| pmichaud there? | |||
| pmichaud | ovle: yes, here :) | 20:06 | |
| ovle | i did about 6 | 20:08 | |
| frettled | nice! | ||
|
20:09
Su-Shee joined
|
|||
| tadzik | where is DateTime in Rakudo source? | 20:10 | |
| jnthn | mberends: Oh? | 20:11 | |
| Yay! | |||
| frettled | tadzik: in lib/ | ||
| ovle | i33.tinypic.com/j9ltzr.jpg | ||
| frettled | tadzik: if you're on a Unix-like system, try "find . -name 'DateTime*'" from the Rakudo source dir. | 20:12 | |
| jnthn | mberends: Feel free to push those tweaks. | ||
| tadzik | frettled: the thing is, it gives me no results | 20:13 | |
| ovle | i33.tinypic.com/op7fvr.jpg | 20:14 | |
| pmichaud | of the ones I've seen, I like this one the best :-) | ||
| ovle | the leaf over the R? | 20:15 | |
| tadzik | the leaves are the reference to the Paradise? | ||
| pmichaud | the op7fvr.jpg | ||
| ovle | ah | ||
| the leaf just denotes earth | 20:16 | ||
| [particle] | i don't like the marijuana leaf over the r | ||
| frettled | tadzik: hmm, after a fresh git clone, I get the same result. | ||
| [particle] | it looks too much like marijuana, anyway | ||
| ovle | oh shit lol i didnt want it looking like that, think it was coincedental | ||
| jnthn | We have high goals for Rakudo. | ||
| ;-) | 20:17 | ||
| ovle | that logo if i replace it with another leafe | ||
| huf | this looks like bay leaves. not marijuana | ||
| Tene | [particle]: I thought so too at first, but then I asked google for marijuana leaves, and it doesn't look much the same. | ||
| frettled | I thought it looked a bit like a maple leaf. | ||
| huf | look it up guys... | ||
| ovle | it should be interesting if you can make the leaf transparent in ps | ||
| Tene | So really I'm just not familiar with marijuana. | ||
| It seemed to suggest that to several people in the channel, though, so it's not just me. | |||
| ovle | but the idea is to make the leaf transparent over the R | ||
| [particle] | well, anyway i think rakudo logo should shy away with any symbols that bring the number 5 to mind | ||
| it doesn't necessarially have to be a symbol/logo that brings number 6 to mind, but shy away from 5. | 20:18 | ||
| ovle | i didnt draw a 5 | ||
| [particle] | the leaf had five points | 20:19 | |
| fingers? | |||
| whatever leaves have. | |||
| Su-Shee | that's clearly bay/laurel. not marijuana or maple. | ||
| frettled | ovle: beware of mines ;) | 20:20 | |
| ovle | so should i draw more centered around leaves | ||
| or something else/ | |||
| [particle] | Su-Shee: yes, it doesn't look exactly like marijuana, just reminiscent. | 20:21 | |
| frettled | ovle: let your creativity flow | ||
| ovle | i guess so, maybe tonight a few more | 20:23 | |
| [particle] | this is for rakudo, not rakudo star, correct? | ||
|
20:23
hercynium joined
|
|||
| ovle | just for rakudo | 20:24 | |
| frettled | ovle: the next statement from me is something I would like you to skip reading until you have come up with a few more ideas yourself. | 20:25 | |
| [particle] | i wonder if the various distribution logos will be based on rakudo compiler logo, like kubuntu et al on ubuntu | ||
| tadzik | Rakuntu? | 20:26 | |
| Su-Shee | *hahaha* :) | ||
| tadzik | oh, I see what you mean | ||
| alternative Perl 6 distros? | |||
| frettled | ovle: nopaste.snit.ch/22834 | ||
| Su-Shee | tadzik: I want rakware then. ;) | ||
| pmichaud | or even different distros within the Rakudo family | ||
| [particle] | yes, why would there only be rakudo star as a distro? | ||
| right, that's what i mean | |||
| jnthn | tadzik: lol! :-) | ||
| Su-Shee | rabian, rak hat, ruse ;) | ||
| [particle] | like vanilla, strawberry, chocolate perl | ||
| ovle | whats the rakudo compiler logo | 20:27 | |
| [particle] | that's what you're designing now :) | ||
| tadzik | [particle]: I now feel tempted to create mine :) | ||
| [particle] | tadzik++ # coopetition is good! | ||
| ovle | ah ok | ||
| Su-Shee | well with "rakudo from scratch" everybody can has his/her own :) | ||
| tadzik | [particle]: I like the work, coopetition | 20:28 | |
| [particle] | :) | ||
| tadzik | Su-Shee: :) | ||
| alright, but duties first. Where is the DateTime source? | |||
| moritz_ | src/core/Temporal.pm I think | 20:29 | |
| tadzik | there we go. moritz_++ | ||
| frettled | duh | ||
| frettled forgot about the convenient rename. | |||
| tadzik | oh, .succ are only for Date, not DateTime, and they are implemented | 20:32 | |
| diakopter | sorear: the STD-on-windows problems had nothing to do with filesystem. | 20:35 | |
| ovle | frettled: what was the link about | ||
| the butterfly idea was already in place, i drew one before but pmichaud didnt quite like the idea | 20:36 | ||
| maybe in color it would've come out better but it was the letters rakudo placed on grass with leaves and bugs around it, with a butterfly sitting on one of the letters | |||
| tadzik | Rakudo with bugs around :) | 20:38 | |
| ovle | hah | ||
| frettled | heh | ||
| ovle: it was in case the obvious hadn't been mentioned, but I didn't want to distract you yet :=) | |||
| ovle | i'll draw a few more tonight, im used to doing rough sketches usually and then have a graphics guy render them | 20:43 | |
| so trying to draw clean is something of a difficult task for artists who sketch usually:D | |||
|
20:44
PZt joined
|
|||
| ovle | ok later all | 20:47 | |
|
20:50
pmurias joined
|
|||
| pmurias | ruoso: ping | 20:50 | |
| PerlJam | A rakudo-tree? Paradise? Forbidden fruit? Hmm. | 20:53 | |
|
20:55
whiteknight joined
|
|||
| pugssvn | r32019 | kyle++ | [Test::Util] Remove nonsense comment | 20:57 | |
|
20:58
erik_ joined,
pnate joined
21:15
Guest23195 left
21:20
achromic joined
21:47
colomon joined,
kensanata joined
21:56
avar joined
|
|||
| pugssvn | r32020 | lwall++ | [STDeco] get snap working again | 22:04 | |
|
22:18
tylercurtis joined
22:22
IllvilJa joined
22:35
avar joined
|
|||
| isBEKaml | Rakudo Paradiso! :) | 22:35 | |
|
22:37
Italian_Plumber joined
|
|||
| pmichaud | ...avoiding some unneeded calls to !cursor_debug improves core.pir compilation by about 3.7% . | 22:38 | |
| jnthn | Wow. :-) | 22:39 | |
| colomon | \\o/ | ||
|
22:39
ash_ joined
|
|||
| jnthn | I'll take that. | 22:39 | |
| pmichaud++ | |||
| pmichaud | I'm going to optimize out a few other method calls. | ||
| jnthn | In NQP.NET land, basic signature support just landed. :-) | ||
| colomon | woah. NQP.NET is actually moving? | 22:40 | |
| jnthn | sekrit repository is not so sekrit: github.com/jnthn/6model/ | ||
| :-) | |||
| colomon | I thought you were just working on the new metamodel... | 22:41 | |
| jnthn | colomon: Yes...by implementing it. :-) | ||
| colomon: The prototype is coming along *very* nicely. | |||
| colomon | but I thought you'd be implementing it in parrot. | ||
| jnthn | colomon: Yes, I will be soon. | ||
| colomon | "if you rely on anything in this repo for anything then you're nuts." jnthn++ | ||
| jnthn | It's just easier to prototype not-in-C. :-) | ||
| TimToady | std: /x ** {2,3}/ | 22:42 | |
| p6eval | std 32020: OUTPUT«ok 00:01 116m» | ||
| jnthn | Plus my brain is quite Parrot wired and I want a portable design, so implementing it somewhere else first will help ensure that. :-) | ||
| TimToady | std: /x{2,3}/ | ||
| p6eval | std 32020: OUTPUT«[31m===[0mSORRY![31m===[0mUnsupported use of {2,3} as general quantifier; in Perl 6 please use X**2..3 at /tmp/zrkLdG3Qsk line 1:------> [32m/x{2,3}[33m⏏[31m/[0mCheck failedFAILED 00:01 113m» | ||
| ash_ | std: sub g(:$1) { ... } # is interesting | 22:44 | |
| p6eval | std 32020: OUTPUT«[31m===[0mSORRY![31m===[0mUnable to parse signature at /tmp/SSbs4RrpzJ line 1:------> [32msub g[33m⏏[31m(:$1) { ... } # is interesting[0mCouldn't find final ')'; gave up at /tmp/SSbs4RrpzJ line 1:------> [32msub g(:$[33m⏏[31m1) { ... } # is interesting[0m | ||
| ..expect… | |||
| diakopter | std: /x{2..3}/ | 22:45 | |
| p6eval | std 32020: OUTPUT«ok 00:01 115m» | ||
| TimToady | Useless use of a range in sink context, eventually | 22:49 | |
| tylercurtis | jnthn: Once I've read and thought some more about traits/roles and the object model, I'd like to discuss them with you if you don't mind. | 22:55 | |
| jnthn | tylercurtis: Sure. | 22:56 | |
| I know a few things about those. :-) | |||
|
22:58
avar joined
23:10
jferrero joined
|
|||
| pugssvn | r32021 | lwall++ | [STD] give useful info on illegal variable declarations as noticed by ash_++ | 23:12 | |
| ash_ | std: sub g(:$1) { ... } | 23:16 | |
| p6eval | std 32020: OUTPUT«[31m===[0mSORRY![31m===[0mUnable to parse signature at /tmp/lLJEfi6DxW line 1:------> [32msub g[33m⏏[31m(:$1) { ... }[0mCouldn't find final ')'; gave up at /tmp/lLJEfi6DxW line 1:------> [32msub g(:$[33m⏏[31m1) { ... }[0m expecting any of: constraint | ||
| ..param_sep… | |||
| sorear | TimToady, diakopter: Are either of you having communications difficulties to the shell? | 23:19 | |
| diakopter: nothing to do with the filesystem? | 23:20 | ||
|
23:21
ruoso joined
|
|||
| TimToady | sorear: um, could you unpack that a little? | 23:31 | |
| sorear | TimToady: once per 30-40 seconds, I start getting complete packet loss to host02.appflux.net for 5-10 seconds | 23:33 | |
| pmichaud: ping. Do you have any resources on designing IRs for compilers? | 23:34 | ||
| TimToady | not having any trouble right now, as far as I can tell | ||
| when I have such trouble it's usually someone running the microwave oven :) | 23:35 | ||
| sorear solved that problem by upgrading to Ethernet | 23:36 | ||
| pmichaud | sorear: no | ||
| sorear | besides, it seems to be remote-host specific. | ||
|
23:37
colomon joined
|
|||
| pmichaud | sorear: at least, I never found any resources that I found to be helpful | 23:37 | |
| I modeled PAST loosely on Pugs' IR | |||
| diakopter | sorear: yes, nothing to do with the filesystem. | 23:49 | |
| sorear: (besides, that's hardly the only thing that cygwin works around vs. cmd.exe) | 23:50 | ||
| sorear | diakopter: then what *is* the problem? | 23:51 | |
| diakopter | I tried several times over the past few years; I don't remember why I gave up the last time. istr that yaml had something to do with it. | 23:53 | |
| tonight I'll consider trying it again; maybe strawberry & std have courted each other secretly (and unbeknownst to each other) since then. :) | 23:54 | ||
| cygwin would likely be a lot easier in which to get std working, but getting it to work in strawberry/cmd.exe would be a lot better for making it worth with mono in the long run, imho. | 23:55 | ||
| (if it's feasible, I mean) | 23:56 | ||
| cognominal | what is the file config.pmc? perl6 is opening it (too) many times | ||
| ... acording to dtrace | |||
| diakopter | sorear: oh, yes, I'm getting disconnected from our host pretty frequently | 23:57 | |
| cognominal | I meant config.fpmc | ||
| diakopter | sorry it took me a while to realize which shell you meant | ||
| cognominal | is it specific to mac? | ||
| plobsing | cognominal: that's parrot's build config | ||