»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | 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 lichtkind on 5 March 2010. |
|||
00:06
BrowserUk joined,
BrowserUk left
00:43
lest_away is now known as lestrrat,
ashleydev joined
00:44
BrowserUk joined,
BrowserUk left
00:45
BinGOs left,
yinyin joined
|
|||
snarkyboojum | rakudo seems to work nicely for me on parrot r46753 | 00:46 | |
fwiw | |||
diakopter | "At one point, there were 1200 developers on the CLR team. That's over a year of man-hours per 8-hour day!" | 00:47 | |
00:51
BinGOs joined
00:57
ashleydev left
00:59
ashleydev joined
01:08
ashleydev left
01:10
hercynium left
01:21
rgrau left,
molaf__ joined
01:24
hercynium joined
01:25
molaf_ left
|
|||
sorear | Why don't I get my own pugs-commits mails? | 01:30 | |
I get mailed when lwall edits the spec, but not when I edit viv | 01:31 | ||
TimToady | only spec changes go to p6l | ||
01:33
dolmen left
01:34
plobsing joined
01:35
jhuni joined
01:50
k23z__ left
01:58
agentzh joined
02:02
wknight8111 left
02:04
bluescreen joined
02:05
bluescreen is now known as Guest85419
02:18
BillN1VUX joined,
BillN1VUX left
02:19
JimmyZ joined
02:27
[mark] joined
02:38
eternaleye left
02:39
finanalyst joined
|
|||
sorear | re. Su-Shee: I hereby petition for the removal of base classes. We can simplify the metamodel a lot of all inheritance is done through roles | 02:43 | |
02:43
_jaldhar joined,
gbacon_ joined
02:46
gpw left,
gpw joined
|
|||
sorear | diakopter: Why am I reminded of Fred Brooks ... | 02:51 | |
02:59
lestrrat is now known as lest_away,
jassics joined
03:00
Guest85419 left
|
|||
jassics | hi all | 03:00 | |
sorear | Hello. | ||
03:00
masonkramer left
|
|||
sorear | Welcome. | 03:00 | |
jassics | Thanks. | ||
03:00
masonkramer joined
|
|||
jassics | i am working on perl 5.10 | 03:00 | |
what abt u all? | |||
sorear | We're working on Perl 6 | ||
TimToady | some of us are playing | 03:01 | |
sorear | If you want help hacking perl 5.10, ask #p5p or #corehackers on irc.perl.org | ||
what's the difference? | |||
jassics | oh cool... don't u think variable declaration and its use will be a mess b/w perl 5 and perl 6 | ||
sorear | I don't follow. | 03:02 | |
TimToady | the perl 6 way is really easy to get used to | ||
and perl 6 at least will tell you if you screw it up :) | |||
sorear | Isn't it essentially the same as the Perl 5 way? | ||
TimToady | std: my @abc; say $abc[1] | ||
sorear | Nobody uses no strict anymore | ||
p6eval | std 30678: OUTPUT«===SORRY!===Variable $abc is not predeclared (did you mean @abc?) at /tmp/irZ4JzHGem line 1:------> my @abc; say $abc⏏[1]Check failedFAILED 00:01 114m» | ||
jassics | ppl will find tought to switch from perl 5 to perl6 | ||
sorear | Oh, that | ||
jassics: you can't fix people. you have to win over their children & wait for them to die | 03:03 | ||
it's like this with all paradigm shifts :( | |||
jassics | and those who are working on perl 5 may not try to adapt wihperl 6 | ||
TimToady | unless your name is Joshua or Caleb, of course... | ||
jassics | u mean perl 5 will vanish if everyone wish to use perl 6 | ||
it should be like next version as damian told in 2003 | 03:04 | ||
TimToady | jassics: you don't have to make it an either/or thing like that | ||
there's more than one way to do it, including p5 and p6 | |||
03:04
lue left
|
|||
jassics | hmmmm but both r diff lang. | 03:07 | |
sorear | CPAN is the language | ||
jassics | even name is somewhow same. it would be really nice if perl 6 fully support perl 5 and tries to fix bugs or erors that perl 5 is having | ||
TimToady | diff syntax, but designed with the same fundamental principles | ||
well, sure, but we need to finish the p6 part of it first | 03:08 | ||
sorear | the problem with perl 5 is backwards compatibility. perl 6 fixes that, by abandoning the replacement paradigm | ||
TimToady | we will be able to parse the sane subset of P5; already have the grammar half written, in fact | ||
sorear | perl 6 is going to coexist with perl 5, in much the same way that Python coexists with BASIC | ||
TimToady | now be nice :) | 03:09 | |
jassics | wow thats sounds good. | ||
sorear | in time, we hope that we will win over the sane programmers, and Perl 5 will fade into the mists of history | ||
jassics | well then one day perl 6 will also go when perl 7 will come? | ||
TimToady | feel free to design Perl 7, but we have to finish 6 first :) | 03:10 | |
and if we do Perl 6 good enough, it can just evolve into Perl 7 | |||
we couldn't do that with 5 to 6 because 5 wasn't sufficiently well design to evolve that way | 03:11 | ||
*designed | |||
03:13
quietfanatic joined
03:18
slavik left
|
|||
jassics | lets see how long it will take to come into existence | 03:27 | |
i m waiting to see its power | |||
sorear | what? | 03:28 | |
it exists now | |||
languages don't magically become good, they need to be used | |||
so... use it if you want it to be good | |||
TimToady: I'm trying to reverse engineer the gimme5 regex compiler. What regexes should I avoid testing because they are miscompiled? | 03:30 | ||
TimToady | well, it doesn't do anything with embedded /foo/ style regexes, only token/rule/regex | ||
it doesn't do & or && | 03:31 | ||
it sometimes requires {{...}} around blocks if there are {} inside | |||
03:32
gbacon_ left
|
|||
TimToady | I there are some marginal things around the edges that work sometimes depending on the phase of the moon, but if nothing depends on them in testing STD.pm6 or *.t, they don't get tested | 03:32 | |
lookbehinds tend to fall into that category | |||
sorear | There are tests? | ||
Or are you talking about the bit where STD.pmc is run over t/spec/*/*?\ | 03:33 | ||
TimToady | yes, that | ||
but it's always running the same code, so it doesn't do complete coverage by any stretch | |||
03:34
slavik joined
|
|||
sorear has this mad notion of hooking up 'viv' + eval + 'tloop' | 03:34 | ||
TimToady | the :i sorts of things are probably marginal at best | ||
03:34
justatheory left
|
|||
TimToady | well, viv does pretty well on the un6 parts of the translation | 03:35 | |
at least it can completely translate EXPR, if it hasn't bitrotted | |||
sorear | un6 is basically just everything except regex, right? | ||
TimToady | well, mainline code | ||
doesn't do well inside quotes or regexen | 03:36 | ||
sorear | it shouldn't be doing anything at all inside quotes | ||
TimToady | so you see a lot of gluing things together with ~ in STD where it could be using interpolation | ||
sorear | because we, uh, use a real parser now | ||
TimToady | viv will do better on those than gimme5, sure | ||
except when it doesn't... | 03:37 | ||
and, of course, gimme5 is really not translating to an exact equivalent | |||
turning dynamic vars into locals, and suc h | 03:38 | ||
one of the reasons the old v6 was so slow was because it was aiming for exact semantics, so used Pad::Walker and such to play with lexicals | 03:39 | ||
that seemed like overkill for a bootstrap | |||
but even if viv only does a half-baked translation, using it to get BEGIN semantics would be cool | 03:40 | ||
and the subset of P6 that maps to P5 is already pretty cool | 03:41 | ||
are you going to continue hacking on viv? I can always find other stuff to work on (alas). | 03:42 | ||
sorear | so can I | ||
and you're in a better position | |||
if there can only be one, you have it | |||
what is "the old v6"? | 03:43 | ||
TimToady | I think we could timeshare, if we just keep checking in periodically | ||
sorear | svn is pretty good at conflict resolution as long as we don't branch... | 03:44 | |
TimToady | the first non-pugs perl 6 implementation in the pugs repo | ||
by fglock++ | |||
sorear | was it based on any of the STD/gimme5 technology? | ||
TimToady | no | ||
had its own hand-rolled parser | |||
and besides being slow is probably rather bitrotted by now | 03:45 | ||
well, I need to wander off for an hour or two, so you can have viv at least that long :) | 03:46 | ||
bbl & | |||
03:46
stephenlb left
|
|||
sorear doesn't think fast and correct have to be mutually exclusive | 03:50 | ||
04:09
occamshatchet joined
04:25
pnate joined
04:28
ashleydev joined
04:29
Targhan left
04:40
{shade} left,
{shade} joined
04:47
kolibrie left
04:52
kolibrie joined,
kst` joined
04:54
lue joined,
kst left,
Rugxulo joined
|
|||
sorear | hello | 04:56 | |
04:57
kolibrie left
04:59
jassics left
05:03
ashleydev left
05:05
kst`` joined
05:07
kst` left
05:14
kaare joined,
Rugxulo left
05:15
kaare is now known as Guest26716,
gpw left
|
|||
JimmyZ | hi | 05:16 | |
05:18
kolibrie joined
05:22
hercynium left
05:23
molaf__ left
05:44
patspam left
05:46
uniejo joined
05:52
finanalyst left,
XaeroOne joined
05:55
isBEKaml joined
05:56
pnate left
06:14
quietfanatic left
|
|||
isBEKaml | hi, folks! | 06:19 | |
moritz_ | moin | 06:22 | |
sorear | hello | 06:23 | |
isBEKaml: =~ is ~~ now | |||
JimmyZ | JimmyZ got many faild tests on rakudo perl 6 on Windows XP" (47 lines) at nopaste.snit.ch/20586 | ||
isBEKaml | sorear: nice. =~ is ~~ is smartmatching. :) | 06:26 | |
oh, yeah. That reminds me. Tests passed last night with a couple of TODOs passed too. | 06:27 | ||
on parrot r46740 | 06:28 | ||
moritz_: I was looking at u4x docs this morning. the state of the docs rattles against the u4x manifesto. :( | 06:32 | ||
06:34
gfx joined
|
|||
isBEKaml | moritz_: I'm thinking of adding more to it, from the TODO list. | 06:35 | |
sorear: You're working on viv? | 06:37 | ||
06:39
eternaleye joined
06:42
Su-Shee joined
|
|||
sorear | isBEKaml: working may be too strong a word... | 06:44 | |
06:45
eternaleye left
|
|||
isBEKaml | sorear: Could you just change the shebang on the top to the more generic /usr/bin/env perl ? | 06:45 | |
sorear: I find the pugs repo full of interesting things, though a tad old... :) | 06:46 | ||
sorear | right now, Larry is doing more work on viv than I am | 06:49 | |
06:49
lest_away is now known as lestrrat
|
|||
sorear | well not *right* *now* | 06:49 | |
but in the last month | |||
06:49
eternaleye joined
|
|||
isBEKaml | oh, ok. no issues. :) | 06:49 | |
sorear | it probably could be changed, but neither is exactly portable | ||
isBEKaml | is this right? 1 while $var ~~ /$pattern/ ? | ||
rakudo cops out on this line saying "unable to parse blockoid..." | 06:50 | ||
sorear | that's because /$pattern/ syntax is NYI | ||
but it's fine | |||
stdically | 06:51 | ||
moritz_ | isBEKaml: more docs would always be welcome | ||
sorear | yes, documentation is what the STD ecosystem needs more than anything else | ||
isBEKaml | no, I'm actually trying to get Rakudo to play hangman that available in the pugs/examples/games folder. :) | ||
sorear | my ability to comprehend it is predicated on TimToady's IRC availability | ||
does $pattern potentially contain metacharacters? | 06:52 | ||
isBEKaml | The actual line is this: 1 while $dict.lines ~~ rx:P5/\S/; | ||
sorear | oh | ||
moritz_ | rx:P5 is NYI in master | ||
sorear | pugs implemented regexes using PCRE | ||
which meant that rx:P5 was the only kind it could handle | 06:53 | ||
Rakudo has (indeed, is based on) an implementation of most of p6regex | |||
moritz_ | s/PCRE/Perl 5/ | ||
sorear | but lacks any p5regex handling | ||
isBEKaml | oh, I see... | ||
sorear | moritz_: Oh? Which implementation am I confusing it with that used PCRE? | ||
06:54
circuitbreaker joined
|
|||
moritz_ | alpha: say 'a,,' ~~ rx:P5/a,*/ | 06:54 | |
p6eval | alpha 30e0ed: OUTPUT«a,,» | ||
moritz_ | sorear: no idea | ||
sorear | rakudo: say 'a,,' ~~ /\S/ | ||
p6eval | rakudo 2d0fc2: OUTPUT«a» | ||
sorear | so just /\S/ is fine | ||
06:54
[circuitbreaker] left
|
|||
sorear | moritz_: did alpha parse rx:P5 itself or delegate to PCRE/perl6? | 06:55 | |
perl5 | |||
isBEKaml | sorear: yes, that's what I did. but there are too many, even with things like s:P5// | ||
and, I will have to modify the p5 regex patterns to those of p6. erm, I will be asking quite a lot of noob regex questions. Please bear with me. :( | 06:57 | ||
06:59
iblechbot joined
|
|||
moritz_ | sorear: PGE implemented parts of the perl 5 regex syntax | 07:07 | |
isBEKaml | rakudo: my $name="fname lastname"; my $realname=""; if($name ~~ /^(.+?)(?:\s+|$)/) { $realname ~~ s/\s*".*"\s*/ /; } say $name; say $realname; | 07:09 | |
p6eval | rakudo 2d0fc2: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)» | ||
moritz_ | first of all if(...) is a sub call | 07:10 | |
use if ... # no parens required | |||
07:11
gpw joined
|
|||
isBEKaml | rakudo: my $name="fname lastname"; my $realname=""; if $name ~~ /^(.+?)(?:\s+|$)/ { $realname ~~ s/\s*".*"\s*/ /; } say $name; say $realname; | 07:12 | |
p6eval | rakudo 2d0fc2: OUTPUT«Confused at line 11, near "if $name ~"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
isBEKaml | regex wrong? | ||
moritz_ | regex wrong | 07:14 | |
isBEKaml | rakudo: my $name="fname lastname"; my $realname=""; if $name ~~ /<alpha>+\b\s*/ { $realname ~~ s/\s*".*"\s*/ /; } say $name; say $realname; | ||
p6eval | rakudo 2d0fc2: OUTPUT«Confused at line 11, near "if $name ~"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
moritz_ | " needs to be escaped | ||
07:14
kst`` left,
kst``` joined
|
|||
moritz_ | and \b is now » | 07:14 | |
for right word boundary | 07:15 | ||
isBEKaml | oh... | 07:16 | |
escaping the "" worked, but no output. So I will have to work on the regex. Will read up S05 a bit and come back. | |||
d'oh! logic error... :/ | 07:20 | ||
rakudo: my $name="fname \"realName\" lastname"; my $realname=$name; if $name ~~ /<alpha>+>>\s*/ { $name ~~ s/\s*\".*\"\s*/ /; } say $name; say $realname; | 07:21 | ||
p6eval | rakudo 2d0fc2: OUTPUT«Confused at line 11, near "if $name ~"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
isBEKaml | rakudo: my $name="fname \"realName\" lastname"; my $realname=$name; if $name ~~ /<alpha>+»\s*/ { $name ~~ s/\s*\".*\"\s*/ /; } say $name; say $realname; | 07:23 | |
p6eval | rakudo 2d0fc2: OUTPUT«Confused at line 11, near "if $name ~"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
isBEKaml | odd, that worked on my local REPL... :( | ||
07:26
JimmyZ left
|
|||
isBEKaml | (0..+@array - 1 ) is now @^array, right? | 07:29 | |
nm, I see now.. | 07:32 | ||
indexing through loops is probably a bad solution, will have to look for a workaround.. | 07:33 | ||
07:41
snarkyboojum left
|
|||
isBEKaml | what does ~= mean? $variable ~= $some_other_variable | 07:43 | |
\o/. Finally got it to compile! | 07:52 | ||
one last question, though. what's the equivalent of @INC here with Rakudo? any environment variables that I can use? I got a rakudo set up in a custom location. | 07:53 | ||
"Unable to find module 'lib' in the @*INC directories." | 07:54 | ||
this is what I got when trying to run it... any ideas about locating the module? | |||
08:00
meppl joined
08:04
viklund joined
|
|||
sorear | isBEKaml: ~= is just an inplace modification derived operator | 08:04 | |
isBEKaml, use lib is a pragma | 08:05 | ||
it's not something you can just install | |||
isBEKaml | sorear: yeah, I figured as much. there were lines like use lib '<list of relative pathnames, should one fail take the next>' followed by use <module here>; | 08:07 | |
sorear: what bugs me is, the relative pathnames are all correctly pointing to the lib folder of File::Spec (the module that's required here) | 08:08 | ||
Juerd | isBEKaml: If you know what += does, and you know what ~ does (concatenate strings), then you can figure out what ~= does. | ||
sorear | use lib isn't mentioned in the synopses anywhere | ||
sorear blows the TimToady whistle | |||
let's do better than perl 5 and make it lexically scoped | |||
isBEKaml | Juerd: Thanks. :) | 08:09 | |
sorear: oh, no! what do we do? :( | |||
sorear | isBEKaml: You? Set PERL6LIB | 08:10 | |
Us? Wait for TimToady's resolution | |||
isBEKaml | sorear: I did perl6 -e '@*INC>>.join(",").perl.say'. It outputted the ., ~/.perl6/lib and the parrot lib location | 08:11 | |
sorear: what do I set PERL6LIB to ? | 08:13 | ||
sorear | That's wrong. Don't trust it. | ||
Just the absolute path of where you want modules found | |||
isBEKaml | ok, so I set it and that's not very generic it seems. I have to unset and reset it everytime I want to use another module. I could move all modules to another location and set up dir structure, though... | 08:16 | |
now, I remove all use lib lines? | |||
sorear | yes, I agree it's bad | 08:18 | |
isBEKaml | sorear: PERL6LIB failed too. I tried using use File::Spec:from '<relative path to lib folder here>', it gave me this, "Method 'value' not found for invocant of class 'PAST;Var' | 08:22 | |
" | |||
08:22
sorear left
08:23
sorear joined
|
|||
isBEKaml | echo $PERL6LIB; ~/Downloads/tools/rakudo/pugs/pugs/ext/File-Spec/lib/ | 08:23 | |
sorear | gah | 08:24 | |
isBEKaml | gack... Malformed package declaration at line 3, near "-0.0.1;\n\nm" WTF were version numbers included in module declarations?? | 08:26 | |
08:28
dakkar joined,
plobsing left,
clintongormley joined
|
|||
isBEKaml | sorear: I copied over the lib contents to ~/.perl6/lib and I got this. Corrected it and I get another error. Something like "Indirect name lookups not yet implemented..." | 08:29 | |
is this correct? return &::$(worker_pkg)::curdir(); | 08:31 | ||
File-Spec/lib/File/Spec.pm | |||
08:31
Helios left
08:32
arnsholt left,
arnsholt joined
|
|||
sorear | yes it's correct | 08:33 | |
08:33
Grrrr left
|
|||
sorear | "not yet implemented" isn't clear? | 08:34 | |
isBEKaml | sorear: I was looking at File::Spec::Unix, that defines curdir() or I think it does... | ||
08:34
mdxi left,
mdxi joined
|
|||
isBEKaml | there was eval require File::Spec::Unix before this line, so, surely this must have been implemented... | 08:35 | |
08:35
hejki left
|
|||
sorear | isBEKaml: I don't understand you | 08:35 | |
08:35
hejki joined
|
|||
sorear | There' | 08:36 | |
s no reason why features have to be implemented before people can prototype code using them | |||
isBEKaml | sorear: File/Spec.pm defines $worker_pkg based on the underlying os $^OS. Next it calls eval "require $worker_pkg"; and then this error msg.. | ||
sorear | furthermore, there are a dozen independant perl6 implementations | ||
08:36
Helios joined
|
|||
sorear | $^OS is wrong | 08:36 | |
needs to be $*OS | 08:37 | ||
File::Spec has never been run | |||
08:37
BrowserUk joined
|
|||
sorear | oh, run in pugs | 08:39 | |
moritz_ | wow, this morning all went wrong | ||
sorear | same thing, basically | ||
worse than mine? | |||
moritz_ | first my girlfriend cut her finger | ||
needed to take her to the doctor | |||
then was late for $work | |||
and the bus driver took the wrong turn | 08:40 | ||
sorear | isBEKaml: It would, indeed, be nice if you could take code written against pugs and run it against ng with no problems. | ||
moritz_ | (could all have been worse, but it feels bad nonetheless) | ||
08:41
TiMBuS joined
|
|||
sorear | isBEKaml: you're going to want to mostly rewrite this thing; ng's support surface is quite different | 08:41 | |
in particular, ng supports objects | |||
isBEKaml | sorear: yay, another challenge! I'll take it, but you'll have to tell me what I need to know before I go tackling this... :) | 08:42 | |
moritz_: feel sorry for ya. I hope everything's sorted out and okay now? | 08:43 | ||
moritz_ | isBEKaml: no idea, left her at the doctor's | ||
sorear | isBEKaml: sorry, I need to sleep now | 08:44 | |
isBEKaml | sorear: no problem. thanks and good night. :) | 08:45 | |
sorear | isBEKaml: if you feel *really* ambitious, improving ng is always good | ||
08:45
Grrrr joined
|
|||
sorear | ng is current (>Feb2010) "rakudo"; I say ng when I want to avoid confusion with alpha | 08:45 | |
*gone* | 08:46 | ||
isBEKaml | sorear: nah, I'm not all that confident I could turn out something good. I'm just tired of sitting with the Specs and want to do something.. | ||
jnthn | o/ | ||
isBEKaml | \o | ||
moritz_: you're making it sound funny(I don't know if I'm serious ;) ) | 08:47 | ||
08:49
finanalyst joined
|
|||
isBEKaml | sure looks like I have to rewrite these modules.... | 08:57 | |
cognominal | o/ | 09:01 | |
moritz_ | isBEKaml: I'm quite sure by now everything is sorted out - I just don't know yet | 09:05 | |
isBEKaml | moritz_: ok, nice. | 09:07 | |
09:07
rgrau joined
|
|||
isBEKaml | Straight from S05: "$target ~~ s:g[pattern] op= expr." What does this mean? What can I do in the expr part of this statement? | 09:12 | |
the equivalent form isn't clear to me either.. | |||
moritz_ | are you familiar with perl5's s///e? | ||
isBEKaml | yes.. evaluate on right side substitute... | 09:13 | |
moritz_ | in the case of s:g[pattern] = expr;, the expr take the role of the right side | ||
*takes | |||
so it's evaluated for each substitution | 09:14 | ||
$a op= $b is the same as $a = $a op $b | |||
isBEKaml | oh, I see... this looks to be a bit more verbose than s///e, what's the net gain? | ||
moritz_ | that it's clear that it's code | ||
so s[pattern] *= 3; is short for s[pattern] = $/ * 3; | 09:15 | ||
which means 'in-place multiply all matches of pattern with 3' | |||
rakudo: my $x = 'a23bc34'; $x ~~ s[\d+] *= 2; # I'd be surprised if it worked | 09:16 | ||
p6eval | rakudo 2d0fc2: OUTPUT«Missing assignment operator at line 11, near "*= 2; # I'"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
moritz_ | ah, NYI | ||
colomon: I wonder how hard that would be... | |||
jnthn | moritz_: Not that bad. | 09:18 | |
jnthn was a little tempted to try it when he added the = form in the first place | 09:19 | ||
isBEKaml | rakudo: my $str="momonut"; $str ~~ s:g/m/c/; say $str; ' | ||
p6eval | rakudo 2d0fc2: OUTPUT«Confused at line 11, near "'"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | 09:20 | |
isBEKaml | rakudo: my $str="momonut"; $str ~~ s:g/m/c/; say $str; | ||
p6eval | rakudo 2d0fc2: OUTPUT«Could not find sub &s:gcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
jnthn | moritz_: Plus there's various examples of munging operators in the meta-ops. | ||
isBEKaml | how do I use the global switch? | 09:21 | |
eternaleye | What happens for ~~ Nil? The most useful effects i can think of are either (Nil ~~ Nil == True, $other ~~ Nil == False) or ($undefined ~~ Nil == True, $defined ~~ Nil == False), but if ~~ counts as item context, Nil would likely be coerced to a Mu type object, and always match. (This occurred to me while reading the S05 section on quantified captures and how it is Nil if $number == 0; I then thought "What's the most intuitive way to check if a | 09:22 | |
value is Nil?") | |||
moritz_ | eternaleye: $val eqv Niv | 09:23 | |
jnthn: sounds like fun :-) | |||
eternaleye | moritz_: Is that an answer to 'most intuitive' or 'what happens'? | 09:24 | |
moritz_ | "most intuitive" | ||
eternaleye | Ah | ||
moritz_ | eternaleye: Nil is just a special (=empty) Parcel, so look in the smartmatching table what happens in this case | ||
rakudo: say Any ~~ Nil # rakudo might be wrong, just looking what it says | |||
p6eval | rakudo 2d0fc2: OUTPUT«1» | ||
moritz_ | rakudo: sah () ~~ Nil | 09:25 | |
p6eval | rakudo 2d0fc2: OUTPUT«Could not find sub &sahcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
moritz_ | rakudo: say () ~~ Nil | ||
p6eval | rakudo 2d0fc2: OUTPUT«1» | ||
moritz_ | rakudo: say (2) ~~ Nil | ||
p6eval | rakudo 2d0fc2: OUTPUT«0» | ||
moritz_ | rakudo: say 2 ~~ Nil | ||
p6eval | rakudo 2d0fc2: OUTPUT«0» | ||
eternaleye | rakudo: say Mu ~~ Nil | 09:26 | |
p6eval | rakudo 2d0fc2: OUTPUT«Nominal type check failed for parameter '$topic'; expected Any but got Mu insteadcurrent instr.: 'perl6;Any;ACCEPTS' pc 388891 (src/gen/core.pir:33432)» | ||
eternaleye | Kaboom | ||
rakudo: say Any ~~ Nil | 09:27 | ||
p6eval | rakudo 2d0fc2: OUTPUT«1» | ||
eternaleye | Huh, so it's the latter of the 'useful' options I listed, which is what I would have preferred. It's also considerably prettier than ~~ *.notdef | ||
isBEKaml | Mu is untreatable? | ||
eternaleye | Any isa Mu, and most things are defined in terms of Any (in fact, it's the default). One can easily define things for Mu explicitly. | 09:28 | |
rakudo: sub foo( Mu $a ) { say "alive"; say $a.defined; say $a; }; foo(1); foo(Mu); foo(1|2); | 09:29 | ||
p6eval | rakudo 2d0fc2: OUTPUT«alive11alive0Mu()alive1any(1, 2)» | ||
09:30
gfx left,
snarkyboojum joined
|
|||
eternaleye | rakudo: say Hash ~~ Nil; say Int ~~ Nil; | 09:31 | |
p6eval | rakudo 2d0fc2: OUTPUT«11» | ||
isBEKaml | but Mu is never defined? | ||
rakudo: say $.defined(Mu); | |||
p6eval | rakudo 2d0fc2: OUTPUT«Lexical 'self' not foundcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
moritz_ | rakudo: say Mu.new().defined | ||
eternaleye | Mu is the most undefined value possible | ||
p6eval | rakudo 2d0fc2: OUTPUT«1» | ||
moritz_ | :-) | ||
isBEKaml | :) | ||
eternaleye | Type objects are considered undefined, and Mu is the most general type object | 09:32 | |
moritz_ | that is certainly correct | ||
isBEKaml | yes, verified correct. :-) | 09:34 | |
eternaleye | Anyway, ~~ Nil is my new favorite way to check for undefinedness. It just rolls off the tongue^Wfingers :) | ||
moritz_ | eternaleye: please check with the spec first if it's supposed to work like that | ||
I remember some of rakudo's Nil handling being out of date | 09:35 | ||
09:35
yinyin left
|
|||
eternaleye | moritz_: AFAICT, it's unspecced. The smartmatch table doesn't list Parcel, and Capture is defined in terms of 'could bind to' which feels somewhat silly for Nil | 09:36 | |
moritz_ | eternaleye: then it'll probably fall back to some of the Positional types | ||
eternaleye | Erm, ignore after 'and' | ||
I was misreading Capture ~~ Signature | 09:37 | ||
Neither ~~ Capture nor ~~ Parcel seem to be listed in the smartmatch table | |||
moritz_ | TimToady: any objections to s/Array/Positional/ in the smartmatch table in S03? currently it leaves many gaps | 09:38 | |
TimToady: otoh I'm not sure what things like Match on the RHS of a smart match should do, since it's both Associative and Positional | |||
09:39
lestrrat is now known as lest_away
|
|||
eternaleye | TimToady: Also, is Rakudo's current handling of ~~ Nil sane? Because it's rather pretty and makes me feel like I've been given a pony :D | 09:39 | |
isBEKaml | I'm going to need to rewrite a bunch of regexes in File::Spec. Currently trying them out one by one on the REPL, consulting the spec and trying out some more. Hell, this is a lot fun than bland spec reading... :) | 09:41 | |
moritz_ | -Ofun++ | 09:42 | |
isBEKaml | -O is for optimized? I like it..! :) | 09:47 | |
moritz_ | aye | ||
I think audreyt came up with that term | |||
isBEKaml | -Ofun++ | 09:48 | |
10:01
agentzh left
10:04
[particle]1 joined
10:05
Exodist_ joined,
[particle] left,
Exodist left,
XaeroOne left
10:06
jjore left,
aindilis left,
jjore joined,
masonkramer left
10:07
aindilis` joined,
simcop2387 left
|
|||
moritz_ | ok, my girlfriend's finger didn't need any stitches after all | 10:08 | |
her email just lacked the characters a, q and y :-) | |||
10:09
simcop2387 joined
|
|||
mathw translates to UK keyboard layout | 10:11 | ||
so her left little finger, and she's a touch typist? :) | |||
moritz_ | yes | ||
mathw | I remember finding it very hard to type on German keyboard with Y and Z the wrong way round | ||
let alone the punctuation... | |||
moritz_ | actually she learned German, French and UK keyboards in her training | 10:12 | |
mathw | Wow | ||
That must've been a bit mind-bending | |||
10:12
masonkramer joined
|
|||
moritz_ | aye | 10:13 | |
10:24
Patterner left
|
|||
mathw tries to resist the temptation to hum along with Wise Guys, since that sort of thing is rarely appreciated in the office | 10:24 | ||
10:31
jhuni left,
Psyche^ joined
10:32
Psyche^ is now known as Patterner
10:36
lest_away is now known as lestrrat
|
|||
cognominal | anonymous grammar/classes are so cool to test on the perl 6 command line | 10:41 | |
mathw | :) | 10:43 | |
eternaleye | How would one compose an anonymous parametric role? I mean, there's does Positional[Int] and does $role, but is there a (just guessing here) does $role[Int] ? | 10:46 | |
Or are anonymous roles only an option via mixins, i.e. 'but'? | 10:47 | ||
Even if so, how would a parametric anon role work? | |||
isBEKaml | rakudo: my $fruit="bamama"; $fruit ~= s:g/m/n/; say $fruit; | 11:01 | |
p6eval | rakudo 2d0fc2: OUTPUT«Could not find sub &s:gcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
isBEKaml | s:g is NYI? | ||
11:01
k23z__ joined
|
|||
isBEKaml | or am I using it wrong? | 11:01 | |
colomon | isBEKaml: first, it's ~~ instead of ~= | 11:03 | |
second, we don't have s:g yet, I don't think | 11:04 | ||
isBEKaml | colomon: I tried ~~, I think it got confused.. | ||
colomon | rakudo: my $fruit="bamama"; say $fruit.subst(/m/, "n", :g); | ||
p6eval | rakudo 2d0fc2: OUTPUT«banana» | ||
isBEKaml | rakudo: my $fruit="bamama"; $fruit ~~ s:g/m/n/; say $fruit; | 11:05 | |
p6eval | rakudo 2d0fc2: OUTPUT«Could not find sub &s:gcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
colomon | rakudo: my $fruit="bamama"; $fruit .= subst(/m/, "n", :g); say $fruit; | ||
p6eval | rakudo 2d0fc2: OUTPUT«banana» | ||
isBEKaml | colomon: yes, okay.. I might have mistook for something else.. I found out about subst, but I wanted to try out s/// instead. | ||
colomon | btw, $fruit .= subst(blah) is equivalent to $fruit = $fruit.subst(blah) | 11:06 | |
rakudo: my $fruit="bamama"; $fruit ~~ s/m/n/; say $fruit; | |||
p6eval | rakudo 2d0fc2: OUTPUT«banama» | ||
isBEKaml | colomon: s/// without switches is in, nice.. :) | 11:08 | |
and I'm going over S05 as I try these out.. | 11:09 | ||
colomon | adding the switches is a relatively high priority at the moment. | ||
moritz_ and I got several working in the match method yesterday. but neither of us knows how to add them to the grammar for the m// and s/// forms. | 11:10 | ||
11:10
XaeroOne joined
|
|||
isBEKaml | rakudo: my $fruit = "bamama"; ($fruit ~~ s/m/n/) ~~ s/m/n/; say $fruit; | 11:13 | |
p6eval | rakudo 2d0fc2: OUTPUT«banana» | ||
isBEKaml | colomon: Oh, I see. How long before we see some switches? | 11:14 | |
colomon | I don't know. As I said, this is an area under active development at the moment. (Literally, I'm trying to figure out how to add the :nth switch to .match in another window.) | 11:15 | |
hmmm... you can't return from inside a gather? | 11:16 | ||
eternaleye | colomon: I was under the impression that take(Nil) terminated the list | 11:22 | |
And that one was returning the gather | |||
colomon | eternaleye: I was trying to subvert the gather altogether, returning a single value rather than a list. | 11:23 | |
eternaleye | Ah | ||
colomon | didn't work, and I think I've worked out that it's not the appropriate approach. | ||
eternaleye | if $foo { take($val); take(Nil) } | ||
isBEKaml | colomon: what's the nature of a Regex::Match() ? | ||
I believe matches return this object. If there were multiple matches, we would be seeing a list of them, right? | 11:24 | ||
eternaleye | isBEKaml: What do you mean 'multiple matches'? | ||
colomon | isBEKaml: if there are multiple matches from the .match method (and you selected :g), you get a list of them. | ||
isBEKaml | rakudo: my $str="hello"; my $fft = $str.match(/l/, :g); say $fft.WHAT; | 11:25 | |
p6eval | rakudo 2d0fc2: OUTPUT«GatherIterator()» | ||
colomon | if you are using m:g// (not possible yet) $/ will contain all the matches. | ||
isBEKaml | colomon: yes, $/ <- I just saw this in S05, was pretty confused over IFS in p5.. :( | 11:26 | |
colomon | IFS? | 11:27 | |
isBEKaml | Input Field Separator | ||
colomon | Oh, it's not the Input Field Separator any more, as you may have guessed. | ||
colomon is not very good at remembering the magic variables in Perl 5... | 11:28 | ||
isBEKaml | in p5, $/ is IFS, in p6, this is match object container. | ||
moritz_ | Perl 6 has only 3 special punctuation variables (ok, that's a lie, but it's pretty close) | ||
11:28
iblechbot left
|
|||
moritz_ | $_, $! and $/ | 11:28 | |
colomon | moritz_: I think match(:nth($N)) has to return a list. | ||
moritz_ | why? | 11:29 | |
isBEKaml doesn't remember much of P5, either. But had to look over a lot of formatting scripts at work, repetition got him in. ;) | |||
colomon | moritz_: $N doesn't have to be an Int. It can be a junction or a list as well. | 11:30 | |
probably a range too. | |||
so I'm thinking it's something we smartmatch against to return. | |||
moritz_ | wfm | ||
colomon | but but but, I don't know how to generically detect if $N is going to return one element or more. | ||
moritz_ | that's fine; we return a capture anyway | 11:31 | |
colomon | moritz_: I have no idea what that means. | ||
moritz_ | and the capture magic will make it DWIM for the case of a scalar | ||
colomon | does gather return a capture?! | 11:32 | |
11:33
XaeroOne left
|
|||
moritz_ | good question | 11:33 | |
eternaleye | colomon: Range and list would fall out naturally if you just say Positional and iterate it | 11:35 | |
colomon | eternaleye: it also has to handle a closure. | ||
11:35
buubot left
|
|||
moritz_ | $matcher = any $matcher if $matcher ~~ Positional | 11:36 | |
11:36
buubot joined
|
|||
moritz_ | and then smart-match against $matcher | 11:36 | |
where $matcher represents the argument to :nth | |||
eternaleye | rakudo: my $foo = gather { take 5; take Nil; }; say $foo; say $foo.perl; say $foo.WHAT | ||
p6eval | rakudo 2d0fc2: OUTPUT«5 ()GatherIterator()» | ||
eternaleye | rakudo: my $foo = gather { take 5; }; say $foo; say $foo.perl; say $foo.WHAT | ||
p6eval | rakudo 2d0fc2: OUTPUT«5()GatherIterator()» | 11:37 | |
eternaleye | Apparently, gather does not return a capture. | ||
colomon | eternaleye: foo.perl doesn't work because say $foo has already consumed the iterator. | ||
rakudo: my $foo = gather { take 5; }; say $foo.perl; say $foo.WHAT | |||
isBEKaml | moritz_: I assume $! is same as was in p5, dump error text ? | ||
p6eval | rakudo 2d0fc2: OUTPUT«(5)GatherIterator()» | ||
moritz_ | isBEKaml: clever Exception object, if all goes right :-) | 11:38 | |
isBEKaml | moritz_: It's more clever than p5's ? ;) | 11:39 | |
eternaleye | colomon: re closure, you're already checking if it's an Int, probably via smartmatching, so you may as well smartmatch against Postional (and iterate) or Code (and call, then redispatch the smartmatching on that) | ||
11:39
buubot left
|
|||
moritz_ | isBEKaml: yes; it should have line number and file name of the error location accessible via methods, backtraces etc. | 11:39 | |
colomon | eternaleye: I'm not checking against Int, I'm just smartmatching. | ||
11:39
buubot joined
|
|||
eternaleye | Or even make it considered a named argument and use multi dispatch | 11:39 | |
moritz_ | colomon: you can just smartmatch against any($nth) | 11:40 | |
colomon: if $nth is a scalar, the any() doesn't have an effect | |||
isBEKaml | moritz_: line number? I thought that was awkward against how text editors handle unicode? | ||
colomon | what if $nth is junction? | ||
11:40
buubot left
|
|||
moritz_ | then it's a one-item any-junction of a junction | 11:40 | |
eternaleye | multi over Int :$nth, Positional :$nth, and Code :$nth | 11:41 | |
moritz_ | which behaves the same as the original junction | ||
11:41
buubot joined
|
|||
moritz_ | eternaleye: we're not trying to write as much code as possible, but rather as little as possible :-) | 11:41 | |
colomon: and any($list) does what you mean | |||
colomon | what moritz_ said | ||
11:41
pmurias joined
11:44
buubot left
|
|||
colomon | > "hello world".match(/.<[aeiou]>/, :nth(1|3))>>.Str.perl.say | 11:44 | |
("he", "wo") | |||
moritz_ | \o/ | 11:45 | |
colomon | > "hello world".match(/.<[aeiou]>/, :nth({$_ !% 2}))>>.Str.perl.say | ||
("lo", ) | |||
not sure why I get the empty second element of the list there. | |||
moritz_ | what does .[1].WHAT say? | ||
colomon | > "hello world".match(/.<[aeiou]>/, :nth({$_ !% 2})).elems.say | ||
1 | |||
moritz_ | then it's a .perl artifact | 11:46 | |
11:47
hirschnase joined
|
|||
isBEKaml really goes back to S05, IRC's distracting. :P | 11:50 | ||
colomon | moritz_: any() doesn't seem to make any difference.... :( | 11:51 | |
moritz_ | rakudo: say 1 ~~ (1, 2) | ||
p6eval | rakudo 2d0fc2: OUTPUT«0» | ||
moritz_ | rakudo: say 1 ~~ any(1, 2) | ||
p6eval | rakudo 2d0fc2: OUTPUT«1» | ||
colomon | rakudo: my @a = 1, 2; say 1 ~~ any(@a) | 11:52 | |
p6eval | rakudo 2d0fc2: OUTPUT«1» | ||
moritz_ | rakudo: my $x = (1, 2); say ~~ any($x) | ||
p6eval | rakudo 2d0fc2: OUTPUT«any((1, 2))» | ||
colomon | rakudo: my $a = 1, 2; say 1 ~~ any($a) | ||
p6eval | rakudo 2d0fc2: OUTPUT«1» | ||
moritz_ | rakudo: my $x = (1, 2); say 1 ~~ any($x) | ||
p6eval | rakudo 2d0fc2: OUTPUT«0» | ||
eternaleye | rakudo: my $x = (1, 2); say 1 ~~ any(|$x) | ||
p6eval | rakudo 2d0fc2: OUTPUT«1» | 11:53 | |
moritz_ | colomon: my $x = 1, 2 parses as (my $x = 1), 2 | ||
because item assignment has tighter precedence than , | |||
11:55
bluescreen joined
11:56
bluescreen is now known as Guest63592,
takadonet joined,
[mark] left
|
|||
takadonet | morning all | 11:57 | |
colomon | o/ | ||
moritz_ | \o | ||
colomon | moritz_: any idea if that any is supposed to do what you thought? | ||
or will any(|$x) work for everything we might need? | 11:58 | ||
moritz_ | rakudo: say any(|1) | ||
p6eval | rakudo 2d0fc2: OUTPUT«any(1)» | ||
moritz_ | seems like it might | ||
11:59
finanalyst left
12:00
JimmyZ joined
|
|||
moritz_ | colomon: and now let's it extend it so that negative :nth values count from the back... no, just kidding :-) | 12:03 | |
colomon | moritz_: no no no no no no no | 12:05 | |
TimToady would kill us | |||
eternaleye prepares popcorn | 12:06 | ||
colomon wishes QuickBooks were smart enough to know not to ask me if I want to backup when exiting when my previous action was to manually backup.... | |||
12:07
buubot joined
|
|||
colomon | it is funny how much nth looks like running grep on the output of match. | 12:07 | |
12:08
masonkramer left
|
|||
colomon | any(|$nth) does it! | 12:08 | |
12:08
am0c joined
|
|||
eternaleye | \o/ | 12:08 | |
moritz_ | \o/ | ||
am0c | \\o/ | 12:09 | |
moritz_ wonders where am0c's second arm is coming from | 12:10 | ||
colomon | that's the good news. | ||
12:10
buubot left
|
|||
colomon | the bad news is I think none of the :nth tests I've written so far will handle having a list returned. | 12:10 | |
12:10
buubot joined
|
|||
am0c | it's my leg! | 12:10 | |
colomon | the idea that we return a capture which does the right thing is nice, but I have no idea how to make it work in practice. | 12:11 | |
moritz_ | am0c: wow, you're much more flexible than me :-) | ||
12:13
orafu left
12:14
OuLouFu joined,
OuLouFu is now known as orafu
|
|||
am0c | tehe.. | 12:17 | |
12:18
bpalmer joined
12:20
buubot left,
buubot joined,
buubot left
12:21
buubot joined
12:24
Guest63592 left,
Guest63592 joined
|
|||
pugssvn | r30679 | colomon++ | [t/spec] First tests for .match using :nth. | 12:25 | |
12:26
buubot left,
buubot joined
12:32
buubot left
12:33
buubot joined
12:36
iblechbot joined,
orafu left
12:37
wknight8111 joined
|
|||
wknight8111 | good morning, #parrot | 12:38 | |
moritz_ | good localtime() wknight8111 | 12:39 | |
wknight8111 | ah damnit, wrong channel | ||
not a good start to the day | |||
hello moritz | |||
colomon | o/ | ||
moritz_ | wknight8111: my day started with taking my girlfriend to the doctor's | 12:40 | |
wknight8111 | moritz_: I hope everything is alright? | ||
[Coke] | moritz wins. (loses?) | ||
12:40
orafu joined
|
|||
moritz_ | yes; was just a rather deep cut in her finger - no nerves harmed though | 12:40 | |
colomon sighs in relief. | 12:41 | ||
moritz_ | a bit of blood lost, some initial confusion, and now a bandage for a few weeks | ||
and emails without the letters 'a', 'q', and 'y' (on a qwertz keyboard) :-) | |||
isBEKaml | rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; $path.match(/ \s* \(.*\/ \) \s* \( <-[ / ]> \) \s* /); say $path; my $dirname=$0; say $dirname; my $filename= $1; say $filename; | 12:45 | |
p6eval | rakudo 2d0fc2: OUTPUT«/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filenameMethod 'postcircumfix:<[ ]>' not found for invocant of class ''current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)» | ||
isBEKaml | match is rather painful here. I almost wish for m/// op! :( | ||
eternaleye | isBEKaml: rx{ foo } | 12:46 | |
or m,foo, | |||
isBEKaml | eternaleye: thanks, I'll try that out.. | ||
moritz_ | isBEKaml: m// exists in rakudo, it just can't take adverbs yet | ||
eternaleye | rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; $path.match( rx{ \s* (.*/ ) \s* ( <-[ / ]> ) \s* }); say $path; my $dirname=$0; say $dirname; my $filename= $1; say $filename; | 12:49 | |
p6eval | rakudo 2d0fc2: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)» | ||
colomon | isBEKaml: also, .match does not change $path, it just returns a Match object (which you are throwing away). | ||
12:49
bpalmer left
|
|||
colomon | and $0 and $1 don't exist anymore (I think), and their p6 equivalents are not set when you call .match. | 12:49 | |
moritz_ wishes for a matlab parser with STD.pm6-like magic at explaining errors | 12:50 | ||
eternaleye | rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; $path ~~ m,\s* (.*/ ) \s* ( <-[ / ]> ) \s*,; say $path; my $dirname=$0; say $dirname; my $filename= $1; say $filename; | ||
p6eval | rakudo 2d0fc2: OUTPUT«Confused at line 11, near "$path ~~ m"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
moritz_ | colomon: $0 is an alias to $/[0] | ||
it does exist | |||
colomon | ah, okay. | ||
but it definitely is not set by .match. | |||
BrowserUk hates mailing list! | |||
isBEKaml | rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; $path ~~ rx{ \s* (.*\/) \s* ( <- [ / ]>* ) \s* }; say $path; my $dirname=$0; say $dirname; my $filename= $1; say $filename; | ||
p6eval | rakudo 2d0fc2: OUTPUT«/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename» | ||
isBEKaml | \o/ | ||
eternaleye | rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; $path ~~ rx{ :s (.*\/) ( <- [ / ]>* ) }; say $path; my $dirname=$0; say $dirname; my $filename= $1; say $filename; | 12:51 | |
p6eval | rakudo 2d0fc2: OUTPUT«/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename» | ||
eternaleye | Mmmm, delicious :sigspace | 12:52 | |
isBEKaml | eternaleye++ #cleaner regex! | ||
colomon: uhh, match does throw the Match object and $0, $1 do exist, I guess (from my cursory reading of S05) | 12:53 | ||
eternaleye | isBEKaml: It doesn't automagically put the match it returns in $/ though | 12:54 | |
colomon | "throw the Match object"? | ||
isBEKaml | eternaleye: uh, isn't $/ implicit match object? | ||
12:54
pencilk joined
|
|||
eternaleye | So $0 doesn't get aliased for .match, when it does for ~~ | 12:54 | |
$/ is for smartmatched regexes IIUC | |||
Grammar.parse doesn't set it either AFAIU | 12:55 | ||
moritz_ | Grammar.parse also sets $/, by #perl6 community decree | ||
eternaleye | Oh, okay | ||
moritz_ | we need to put that into the spec, though | ||
colomon | rakudo: "hello world".match(/.o/); say ~$/ | ||
p6eval | rakudo 2d0fc2: OUTPUT«Any()» | ||
isBEKaml | colomon: *throw* match object ? like in, out the window? | ||
colomon | moritz_: and the implementations? | ||
isBEKaml is really confused... | 12:56 | ||
12:56
envi^home joined
|
|||
colomon | Grammar.parse setting $/ seems like a really really really bad idea? | 12:56 | |
unless that's not the same as Regex::Cursor.parse? | |||
colomon is confused too. | 12:57 | ||
ah, wait. | |||
eternaleye | rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; rule dirname { / <-[/\0]> ** / / }; rule filename { <-[/\0]> }; $path ~~ rx{ <dirname> <filename> }; say $path; say $<dirname>; say $<filename>; | ||
p6eval | rakudo 2d0fc2: OUTPUT«Malformed regex at line 11, near "dirname { "current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
colomon | Grammar.parse sets $/, but .match doesn't. yes? | ||
eternaleye | rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; rule dirname { / <-[/]> ** / / }; rule filename { <-[/]> }; $path ~~ rx{ <dirname> <filename> }; say $path; say $<dirname>; say $<filename>; | 12:58 | |
p6eval | rakudo 2d0fc2: OUTPUT«Malformed regex at line 11, near "dirname { "current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
eternaleye | rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; rule dirname { '/' <-[/\0]> ** '/' '/' }; rule filename { <-[/\0]> }; $path ~~ rx{ <dirname> <filename> }; say $path; say $<dirname>; say $<filename>; | ||
p6eval | rakudo 2d0fc2: OUTPUT«Useless declaration of has-scoped rule in a module; add our or my to install it in the lexpad or namespaceUseless declaration of has-scoped rule in a module; add our or my to install it in the lexpad or namespaceMethod 'dirname' not found for invocant of class | ||
..'Regex;Cursor'curr… | |||
eternaleye | rakudo: my $path="/home/user/name/something/somethingmore/mroethansomething/fielname/gacknofielname/filename"; my rule dirname { '/' <-[/\0]> ** '/' '/' }; my rule filename { <-[/\0]> }; $path ~~ rx{ <dirname> <filename> }; say $path; say $<dirname>; say $<filename>; | 12:59 | |
p6eval | rakudo 2d0fc2: OUTPUT«Method 'dirname' not found for invocant of class 'Regex;Cursor'current instr.: '_block93' pc 1261 (EVAL_1:410)» | ||
12:59
ive joined
|
|||
eternaleye | Is fallback to <&lexical> not implemented? | 12:59 | |
moritz_ | no :( | ||
eternaleye | Also, error message for unquoted 'potential metasyntax' is very LTA | 13:00 | |
moritz_ | \o/ my $work simulations finally start to make sense | 13:02 | |
13:03
viklund left
|
|||
moritz_ | or not :( | 13:03 | |
plotted the wrong quantity | |||
mathw is busy fighting with SSL | 13:04 | ||
colomon is trying to put off the nasty bit with integrating a new version of the libraries we use for some $work projects. | 13:05 | ||
13:10
Guest26716 left
|
|||
dalek | kudo: 31598e9 | (Solomon Foster)++ | src/core/Cool-str.pm: Add beginnings of support for :nth argument to .match. |
13:11 | |
kudo: da6b23e | (Solomon Foster)++ | t/spectest.data: Turn on new counted-match.t. |
|||
colomon | moritz_: your turn to do :x ? ;) | 13:15 | |
moritz_ | colomon: don't know if I'll get around to it today | 13:16 | |
colomon: I still plan to write up a challenge tonight | |||
colomon | moritz_++ | ||
moritz_ | even if it will be a boring one | ||
colomon | I may take a stab at :x too, just trying for that back and forth work with you again -- it's -Ofun and productive. | ||
moritz_ | it is | 13:17 | |
colomon | ooooo, I think I just figured out how to implement :ex | ||
moritz_ | and tonight (ie in about 3 or 4 hours) I should have time for that kinda fun again | ||
colomon: it's just $match.next or so | |||
colomon | no, :ov, actually. | ||
$match.next ? | |||
moritz_ | and :ov is quite easy | ||
that's how it was with PGE | 13:18 | ||
13:18
orafu left
|
|||
moritz_ | for :ov, just set :c to $/.from + 1 | 13:18 | |
colomon | moritz_: yeah, that's what I figured out. ;) | ||
$match.next is the next possible match? | |||
moritz_ | it was, with PGE | ||
and iterating while .next returned a true value was the way to implement :exhaustive | 13:19 | ||
colomon | that would be pretty sweet. | ||
moritz_ | not sure if the ordering was right, though | ||
isBEKaml | what does (?!\n) mean in p5 regexes? | 13:20 | |
13:20
orafu joined
|
|||
isBEKaml | I understand \n, ?! --- ? | 13:20 | |
moritz_ | negative look-ahead | ||
(?!...) | |||
perldoc perlre | |||
search for 'ahead' | |||
colomon | "The order within each starting position is not guaranteed and may depend on the nature of both the pattern and the matching engine." (for :ex) | ||
moritz_ | ah, great | ||
moritz_ should stop trying to remember random details from S0d | 13:21 | ||
colomon hopes :ex is allowed to be lazy.... | |||
isBEKaml | moritz_++ | ||
colomon | "return all matches in list context, or a disjunction of matches in item context." I thought we didn't have list / item context any more? I'm certainly hard pressed to see how to implement this.... | 13:24 | |
moritz_ | right, that's a fossile | 13:25 | |
13:28
eternaleye left
|
|||
isBEKaml | rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s (/\.)+ (/||\Z\(?!\n)) }, "/", :g); $newpath.perl.say; | 13:33 | |
p6eval | rakudo 2d0fc2: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)» | ||
isBEKaml | uhh, I thought rx {} blocks were lexically scoped... :( | ||
moritz_ | std: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s (/\.)+ (/||\Z\(?!\n)) }, "/", :g); $newpath.perl.say; | 13:34 | |
p6eval | std 30679: OUTPUT«===SORRY!===Unrecognized regex metacharacter (must be quoted to match literally) at /tmp/Ty42dI2Nb2 line 1:------> ; my $newpath = $somepath.subst(rx{:s (/⏏\.)+ (/||\Z\(?!\n)) }, "/", :g); $newpatCan't call method "_REDUCE" on unblessed | ||
..refer… | |||
13:35
snarkyboojum left
|
|||
isBEKaml | <alpha> covers numerics too? if not, what would be an alphanumeric class? <alnum> ? | 13:40 | |
(guessing here) | |||
moritz_ | rakudo: say 3 ~~ /<alpha>/ | ||
p6eval | rakudo 2d0fc2: OUTPUT«» | 13:41 | |
moritz_ | rakudo: say 3 ~~ /\w/ | ||
p6eval | rakudo 2d0fc2: OUTPUT«3» | ||
moritz_ | rakudo: say 3 ~~ /<alnum>/ | ||
p6eval | rakudo 2d0fc2: OUTPUT«3» | ||
isBEKaml | right.. :) | ||
13:42
orafu left,
orafu joined
13:46
ruoso joined
13:49
perlygatekeeper joined
13:51
szabgab left
13:53
szabgab joined
13:57
kaare joined,
kaare is now known as Guest44059,
iblechbot left
13:58
pencilk left
|
|||
isBEKaml | rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s ( \/\.)+ (\/||\Z\(?!\n)) }, "/", :g); $newpath.perl.say; | 13:58 | |
p6eval | rakudo 2d0fc2: OUTPUT«Obsolete use of \Z as end-of-string matcher;in Perl 6 please use \n?$ instead at line 11, near "\\(?!\\n)) }"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
isBEKaml | rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s ( \/\.)+ (\/|| (?!\n)) }, "/", :g); $newpath.perl.say; | 13:59 | |
p6eval | rakudo 2d0fc2: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)» | ||
moritz_ | what is this (?! thing you're trying to use? :-_) | ||
rakudo: say 'ab' ~~ / . <!before 'b'> / | 14:00 | ||
isBEKaml | nothing much, i have replaced it with <-[<alnum>]*$> | ||
p6eval | rakudo 2d0fc2: OUTPUT«b» | ||
moritz_ | rakudo: say 'ab' ~~ / . <!before '3'> / | ||
p6eval | rakudo 2d0fc2: OUTPUT«a» | ||
14:00
uniejo left
|
|||
moritz_ | isBEKaml: it's still in your regex | 14:00 | |
isBEKaml | rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s ( \/\.)+ (\/|| <-[<alnum>]*$>) }, "/", :g); $newpath.perl.say; | 14:01 | |
p6eval | rakudo 2d0fc2: OUTPUT«regex assertion not terminated by angle bracket at line 11, near "*$>) }, \"/"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
isBEKaml | :D | ||
14:02
gbacon_ joined
|
|||
moritz_ | <-[<alnum>]*$> looks very wrong | 14:02 | |
isBEKaml | no, not that, check this... | ||
rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s ( /\.)+ (/|| <-[<alnum>]*$>) }, "/", :g); $newpath.perl.say; | |||
p6eval | rakudo 2d0fc2: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)» | ||
14:03
eternaleye joined
|
|||
isBEKaml | I replace / with \/, it doesn't seem to make sense to me. :( | 14:03 | |
moritz_ | <-[<alnum>]*$> still looks very wrong | ||
isBEKaml | how do I check before end of string? | ||
cognominal | rakudo: grammar C { token a { a } } ; say 'a' ~~ / <C::a> / | ||
p6eval | rakudo 2d0fc2: OUTPUT«regex assertion not terminated by angle bracket at line 11, near "::a> /"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
14:04
dalek left
|
|||
moritz_ | isBEKaml: $ is end of string, and zero-width | 14:04 | |
14:05
dalek joined
|
|||
isBEKaml | moritz_: hmm, I'll double check again if I really need this... | 14:05 | |
14:10
JimmyZ left,
cj is now known as KF7BMP,
KF7BMP is now known as cj
14:11
plobsing joined
|
|||
isBEKaml | aah, I got it working... | 14:15 | |
rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:s ( \/\.)+ \/}, "/", :g); $newpath.perl.say; | |||
p6eval | rakudo 2d0fc2: OUTPUT«"/home/user/somenrefil/moreso/"» | ||
isBEKaml | \o/ | ||
why does "/" need escaping? It isn't a special regex character, right? | 14:16 | ||
moritz_ | evertyhing that doesn't match \w needs escaping | ||
isBEKaml | dannit, that's tough! :D | ||
moritz_ | otherwise when you read a control character, you have to remember if it has a special meaning or not | 14:17 | |
to understand what it means | |||
we try to minimize the cases of random lists you have to learn | |||
but you can now also escape with '/' in regexes | |||
isBEKaml | but that would turn into an unreadable mess! | 14:18 | |
moritz_ | for one character, maybe | 14:19 | |
for longer literals it's great | |||
isBEKaml | are spaces important in regexes? are there switches that can ignore whitespaces inbetween regex clusters? | ||
:s in rx, anything else? | |||
subst? | |||
moritz_ | spaces are only singificant when :s/:sigspace is in effect | ||
14:19
SmokeMachine joined
|
|||
moritz_ | or for 'rule's (vs. 'token') | 14:19 | |
isBEKaml | giving a switch to ignore whitespace might offer a way out of an unreadable dump of a long regex pattern | 14:20 | |
sbp | "otherwise when you read a control character, you have to remember if it has a special meaning or not" - what's wrong with doing that? | 14:21 | |
isBEKaml | like we had in p5, the m swtich for multi line regexes.. | ||
moritz_ | isBEKaml: it's default already | ||
sbp: mental load | |||
sbp | oh, rather than programming load you mean | ||
isBEKaml | moritz_: Oh, that's great! | 14:22 | |
moritz_ | isBEKaml: it's only significant in your case because of that :s | ||
sbp: it's just an additional thing you have to remember; and the more you have to remember, the longer it takes to learn something | |||
isBEKaml | moritz_: I thought you meant insignificant.. | ||
moritz_ | isBEKaml: that would be :!s | ||
isBEKaml | rakudo: my $somepath="/home/user/././somenrefil/./moreso/"; my $newpath = $somepath.subst(rx{:!s ( \/\.)+ \/}, "/", :g); $newpath.perl.say; | 14:23 | |
p6eval | rakudo 2d0fc2: OUTPUT«"/home/user/somenrefil/moreso/"» | ||
isBEKaml | no difference.. | ||
moritz_ | isBEKaml: read about the default <.ws> rule in S05 | ||
isBEKaml | moritz_: yes, I will get to that, sooner or later. | 14:24 | |
sbp | yep, fair enough | ||
I just thought you were saying it's a computational issue | |||
and I couldn't understand why it would be so | |||
the fact that it isn't one clears that up rather well :-) | 14:25 | ||
moritz_ | another point is that if you reserve meta characters, you can easily extend the syntax later on | ||
14:25
ashleydev joined
|
|||
moritz_ | without resorting to wild character sequences like (?<! ... ) in Perl 5 regexes | 14:26 | |
which now reads <!after ... > | |||
sbp | is there any adverbial mode to turn that off, to only require the escaping of the currently known metachars, for people who don't care that it may take a while to learn? | ||
moritz_ | sbp: nope.. but once macros are in place, that should be easy to do in a module :-) | 14:27 | |
sbp | :-) | ||
moritz_ | use Perl5::Insane::Meta::Characters::In::Regexes; # :-) | ||
yes, the new regexes do need some time to get used to | 14:28 | ||
isBEKaml | heh! I was pretty sure I saw this module... # :D | 14:29 | |
moritz_ expects a wave of Acme modules once macros are in place | 14:30 | ||
it's just too tempting | |||
moritz_ points to Inline::PERL | 14:31 | ||
Su-Shee | *haha* that is a cool blog name "just raku do it" ;) | 14:33 | |
colomon | ;) | 14:34 | |
isBEKaml | /me afk (out for a walk. Regexes always leave him in a daze.... ) | 14:37 | |
fail! | |||
moritz_ | we all know what's meant :-) | ||
isBEKaml really out now (as you can see ;) ) | 14:38 | ||
14:48
patspam joined
14:49
plobsing left
|
|||
colomon no longer remembers who it was on #perl6 that came up with "just rakudo it" | 14:49 | ||
Su-Shee | colomon: it's a great slogan. | 14:50 | |
14:50
gbacon_ left
|
|||
moritz_ | colomon: I think it was TimToady++ | 14:51 | |
colomon | TimToady++ | ||
14:51
szabgab left,
gbacon_ joined
|
|||
colomon | > "hello world".match(/<[aeiou]>.*/, :overlap)>>.Str.perl.say | 14:54 | |
("ello world", "o world", "orld") | |||
14:55
szabgab joined
|
|||
moritz_ | shiny | 14:56 | |
TimToady | I thought I just came up with the subtitile | ||
moritz_ | TimToady: you'll get the karma, no matter what :-) | 14:57 | |
colomon | TimToady++ # definitely came up with the subtitle | ||
TimToady | s:3rd/i// | ||
colomon dreams of the day when :3rd actually works... | 14:58 | ||
pugssvn | r30680 | colomon++ | [t/spec] Fudged for Rakudo, then tests for the match method version are added. | 14:59 | |
14:59
TiMBuS left
15:00
szabgab left
|
|||
TimToady | yes, well, like Yogi Berra, I said a great many things I never said. | 15:00 | |
Su-Shee | You also worked for the NSA I read yesterday in a CS handbook. There you developed Perl. | 15:01 | |
TimToady | well, not directly for the NSA | 15:02 | |
but they were "The Customer" | |||
Su-Shee | they managed to phrase it very strangely. :) | ||
TimToady | Anything that does not kill me makes me stranger. :) | 15:03 | |
mathw | I suspect you have what is not an uncommon problem among the famous people of computer science, TimToady | 15:04 | |
Su-Shee | of course it is :) | 15:05 | |
TimToady | CS didn't invent that problem :) | ||
15:06
orafu left,
orafu joined
|
|||
Su-Shee | who's writing the OO chapter in "the book"? | 15:06 | |
moritz_ | mostly jnthn so far, iirc | 15:07 | |
git log will tell you | 15:08 | ||
Su-Shee | just opened it. ;) | ||
15:08
snarkyboojum joined
|
|||
jnthn | o/ | 15:13 | |
ooh, timing :-) | |||
colomon | \o | ||
jnthn just back from meeting :-) | |||
Yes, I did quite a bit of the OO chapter...plan on doing more soon too. | 15:15 | ||
15:15
szabgab joined
|
|||
jnthn | After some more bits on subs n sigs :-) | 15:15 | |
15:15
hercynium joined
|
|||
colomon | ooo, just realized I'm going to miss #rs today. | 15:15 | |
we're going out to meet a rescue dog and see if she is a good match for our family | 15:16 | ||
Su-Shee | jnthn: can I wish for a good explaination how roles and traits shape the way of OO programming? | ||
PerlJam | colomon: your family needs rescuing? | ||
:) | |||
jnthn | .oO( $family ~~ /rescue dog/ ) |
||
colomon | PerlJam: rescuing from the state of doglessness, yes. | 15:17 | |
jnthn | Su-Shee: You can wish. I'll try and make said wish come true. :-) | ||
colomon: OK, no worries; feel free to pre-paste a report and people can find it in the infrared clog. | |||
moritz_ chuckles | |||
Su-Shee | jnthn: that would be nice. while moosing and rakudoing I realized that the only stuff there really is are those smalltalk traits papers and a little ruby mixins... | ||
colomon | jnthn: I didn't know we did clogging here! | 15:18 | |
PerlJam | Su-Shee: The Moose people have some real-world experience with that. Perhaps there are some explanatory resources there | ||
Su-Shee | PerlJam: already read everything. | ||
PerlJam | Su-Shee: did you ask on #moose? | ||
Su-Shee | PerlJam: yes. | 15:19 | |
PerlJam | Su-Shee++ due diligence :) | ||
Su-Shee | PerlJam: and I read the smalltalk stuff. | ||
all of it doesn't really teach you where the future of OO might be going with roles and traits and little pieces of behavior which suddenly can be combined with powerful functional stuff. | |||
PerlJam | Su-Shee: probably because we haven't gotten there yet :) | 15:20 | |
Su-Shee | exactly my point. that's something a book should reflect by explaining what you can do and maybe even suggesting what you COULD do with it. | 15:21 | |
15:22
_buno_ joined,
szabgab left
15:23
szabgab joined
|
|||
PerlJam | Su-Shee: the way I look at it is .... it took the CS community decades to get to the point where we had this thing called OOP and then decades more to get to roles/traits, so in 10 years or so we'll start to have an understanding of how roles impact software and have some concept of their true power. Then, maybe 10 years after that we'll finally "understand" them. | 15:25 | |
15:28
szabgab left
15:29
Guest63592 left
15:32
silug left,
LionMadeOfLions left,
pnu left,
broquaint left,
diakopter left,
huf left,
Jedai left
15:33
pnu joined,
broquaint joined,
silug joined,
baest left,
Maddingue left,
awwaiid left,
ive left,
TimToady left,
Trey left,
isBEKaml left
15:34
aindilis` left,
diakopter joined,
huf joined,
xinming joined
15:35
silug left
15:37
revdiablo left,
TimToady_ joined,
silug_ joined,
silug_ is now known as silug,
xinming_ left
15:38
baest joined
15:39
Maddingue joined
|
|||
dalek | kudo: c515f5f | (Solomon Foster)++ | src/core/Cool-str.pm: Implement :overlap for Any.match. |
15:39 | |
kudo: 6894296 | (Solomon Foster)++ | t/spectest.data: Turn on overlapping.t. |
|||
15:40
IllvilJa joined
15:41
Guest63592 joined
|
|||
IllvilJa | o/ | 15:42 | |
15:45
Jedai joined
15:47
saaki is now known as Arroz
|
|||
colomon | \o | 15:47 | |
15:47
isBEKaml joined
|
|||
isBEKaml | I keep getting this error even as @letters is declared at the top of file ... "Symbol '@letters' not predeclared in draw_board " | 15:47 | |
moritz_ | isBEKaml: example? | 15:48 | |
15:48
ive joined
|
|||
isBEKaml | moritz_: It's available in pugs/examples/games/hangman.pl | 15:48 | |
moritz_: I worked around this by "my @letters if !defined(@letters); " -- having to do this for every variable is .... LTA | 15:50 | ||
15:50
TimToady_ is now known as TimToady
|
|||
moritz_ | looking now, have to recompile first though | 15:50 | |
isBEKaml | moritz_: it won't. That's what I'm up against. :) | 15:51 | |
moritz_ | recompile my rakudo, that is | ||
isBEKaml | oh.. | ||
PerlJam | isBEKaml: What revision of rakudo are you using? | ||
isBEKaml | PerlJam: I built it last night. | ||
moritz_ | rakudo: 1 orelse 2 | 15:52 | |
p6eval | rakudo da6b23: OUTPUT«Confused at line 11, near "1 orelse 2"current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)» | ||
moritz_ | so it won't work without modifications anyway | ||
perl6 examples/games/hangman.pl | |||
Unable to parse blockoid, couldn't find final '}' at line 20 | |||
isBEKaml | moritz_: I was able to modify File::Spec::Unix so that I can work with hangman.pl. Isolated the problem to hangman.pl now. | 15:53 | |
moritz_ | isBEKaml: then please commit your changes | ||
otherwise we'll have a hard time reproducing your problem | |||
[Coke] | moritz_: that's the orelse. | 15:54 | |
isBEKaml | moritz_: Alright. I haven't fully solved it though. Just touched on File::Spec::Unix and hangman.pl | ||
[Coke] | and yah, better than having all of us chasing your WIP. =-) | ||
isBEKaml | WIP? | ||
:P | |||
moritz_ | work in progress | ||
TimToady | Void is not a valid typename at line 14 | 15:55 | |
pugssvn | r30681 | moritz++ | [examples] start to correct and simplify hangman.pl | 15:56 | |
moritz_ | we'd call that Nothing, just so that we can write 'returns Nothing' | ||
TimToady | std: subset Nothing of Sink; | 15:57 | |
p6eval | std 30680: OUTPUT«ok 00:01 113m» | ||
PerlJam | I'd like a Sink so that I can derive a KitchenSink :) | ||
TimToady | std: KitchenSink | ||
15:57
moritz_ sets mode: +ooo TimToady [Coke] isBEKaml
|
|||
p6eval | std 30680: OUTPUT«ok 00:01 110m» | 15:57 | |
TimToady | KitchenSink is already there | ||
moritz_ | 1 while $dict.lines ~~ rx:P5/\S/; # WTF? | ||
isBEKaml | moritz_: yes.. there were quite lot of problems and I had made an helluva lot of changes over it.. | 15:58 | |
moritz_ | loop endlessly if there's a non-blank in the file? | ||
isBEKaml: then commit it. Now. | |||
TimToady | it solves the halting problem :) | ||
moritz_ | it just takes its time :-) | 15:59 | |
isBEKaml | moritz_: yours gets overwritten then.. | ||
15:59
rv2733 joined
|
|||
moritz_ | isBEKaml: I don't mind, if yours are better :-) | 15:59 | |
isBEKaml | moritz_: not necessarily... ;) | ||
PerlJam | isBEKaml: It's in the repo anyway if we want moritz_'s back | ||
isBEKaml | I cannot connect to server.. :( | 16:00 | |
PerlJam | isBEKaml: pastebin it then | ||
isBEKaml | ok, committing now.. | 16:01 | |
pugssvn | r30682 | svatsan++ | [examples] make hangman.pl compatible with Rakudo | ||
16:01
pjcj left
|
|||
moritz_ | decommute & | 16:02 | |
pugssvn | r30683 | svatsan++ | [ext] File::Spec::Unix compatiblity issues fixed | ||
isBEKaml | more... File::Spec::Unix.pm | 16:03 | |
Getting File::Spec::Unix to be used by hangman.pl was pretty awkward.. I copied the module over to ~/.perl6/lib folder . :( | |||
[Coke] | when installing rakudo, how can I specify where it should be installed? | 16:04 | |
PerlJam | the most annoying thing for me lately is that I keep wanting to create variable names $like-this in Perl 5. :) | 16:05 | |
isBEKaml | Rakudo by default would be installed in the current location.. | ||
PerlJam goes back to coding Perl 5 | |||
[Coke] | looking at the makefilie, it seems to rely on DESTDIR which is never defined. | 16:07 | |
(ah, that's kind of a red herring. nevermind.) | |||
16:08
TimToady sets mode: +vvv buubot dalek hugme,
TimToady sets mode: +vv ilogger2 IRSeekBot,
TimToady sets mode: +vvv lisppaste3 p6eval phenny,
TimToady sets mode: +v pugssvn
16:09
ChanServ sets mode: +o diakopter
16:10
slavik left,
slavik joined
|
|||
isBEKaml | setting PERL6LIB environment variable didn't cut it, either.. | 16:10 | |
16:16
pnate joined
16:19
alester joined
|
|||
isBEKaml | perl6 examples/games/hangman.pl | 16:20 | |
lol | |||
16:21
cdarroch joined,
cdarroch left,
cdarroch joined
|
|||
isBEKaml | My question was why don't globals work here? Or do we have a strict rule against using them? | 16:25 | |
16:30
rgrau left
|
|||
isBEKaml | rakudo: my $varstr = $*PROGBIND || "."; say $varstr; | 16:34 | |
p6eval | rakudo da6b23: OUTPUT«.» | ||
16:41
am0c left
16:43
szabgab joined
16:44
envi^home left
16:50
Trashlord left,
molaf joined
16:51
pmurias left
16:52
k23z__ left
16:55
Trashlord joined
17:00
dakkar left
|
|||
[Coke] | would anyone else like it if rakudo installed itself as rakudo (in addition to perl6) ? | 17:04 | |
or, perl6-rakudo, or something else with the flavor in the name? | 17:05 | ||
whoever got the installing working, btw, +1. | |||
moritz_ | I'd like just "rakudo" | ||
having two binaries with different names would be confusing | 17:08 | ||
TimToady | maybe you should install it as R* :) | ||
sorear | and "ng" | ||
[Coke] | moritz_: it's a common trick to have, e.g., tcl-8.4 and tcl-8.5 installed separately, and have tclsh be linked to the preferred one. | ||
17:09
colomon left
|
|||
TimToady | rakudo is kinda the "auth" in the name | 17:09 | |
[Coke] | changing it wholesale to rakudo would certainly be an easier patch, though. =-) | ||
sbp | I vote for just kudo | 17:10 | |
then you can install multiple kudos | |||
don't think about incrementing the k per version though | |||
17:10
hercynium left
|
|||
sbp | will lead to problems down the line on many systems | 17:10 | |
Su-Shee | the roles and traits idea come from smalltalk, right? | 17:11 | |
pugssvn | r30684 | lwall++ | [hangman] fix syntax problems pointed out by STD | 17:14 | |
17:14
jgabr joined
|
|||
[Coke] | pugs svn pretty webterface? | 17:15 | |
17:16
Trashlord left
|
|||
diakopter | perlcabal.org/svn/pugs/ | 17:16 | |
jgabr | Hi. Haven't seen any updates to planetsix in a while, but I see Gabor (for one) has been doing some blogging. | 17:18 | |
[Coke] | diakopter: danke. | ||
jgabr: under what url do you see gabor's postings? | 17:19 | ||
jgabr | Coke: on his blog, I mean. | ||
diakopter | jgabr: but not with the perl6 tag | ||
jgabr | Ah. | ||
[Coke] | this is the feed we're pulling from him: szabgab.com/blog/Perl%206.rss | ||
jgabr | Whoops. Thanks. | 17:20 | |
Guess it's just been a quiet week Perl 6 blogwise. | |||
diakopter | I should have a new post this week. | 17:21 | |
moritz_ | diakopter: do you want to write/mentor a new challenge? | 17:22 | |
diakopter | "implement labels/goto in rakudo" | 17:23 | |
moritz_ | diakopter: if you can mentor that, and give step-by-step introductions... sure :-) | ||
jnthn | diakopter: I look forward to it. :-) | ||
Su-Shee | "import rakudo into any browser by the way of sprixel." ;) | 17:24 | |
diakopter | har. | ||
the js sprixel? not possible, since it depends on the perl5 STD | |||
the clr sprixel? someday, yes, when it runs in silverlight. | 17:25 | ||
jnthn | meh, just host STD and use AJAC ;-) | ||
17:26
jgabr left
|
|||
Su-Shee | web sockets. | 17:26 | |
isBEKaml | TimToady: how many errors did you get with hangman? ;) | 17:29 | |
I give up! ## It's crazy running around in loops over globals :( | 17:39 | ||
"Symbol '$progdir' not predeclared in <anonymous>" | 17:40 | ||
17:40
_buno_ left
17:41
dju joined
17:42
dju left
17:43
dju joined
|
|||
pugssvn | r30685 | svatsan++ | [ext] Fixed File::Spec::Unix | 17:44 | |
isBEKaml has **really** given up | |||
pugssvn | r30686 | moritz++ | [t/spec] regex modifier :x(Int) and :x(Range) tests | 17:58 | |
moritz_ | rakudo: say (1..^3).max | 18:00 | |
p6eval | rakudo 689429: OUTPUT«3» | ||
moritz_ | is that correct? | 18:01 | |
isBEKaml | moritz_: I don't think so. | 18:02 | |
rakudo: say (1..^3) | |||
p6eval | rakudo 689429: OUTPUT«12» | ||
TimToady | that's correct; ranges are primarily intervals, and return the endpoint | 18:04 | |
however | |||
rakudo: say (1 ...^ 3).max # might be NYI | 18:05 | ||
p6eval | rakudo 689429: OUTPUT«1» | ||
TimToady | yes | ||
moritz_ | huh? that exists? :-) | ||
18:05
aindilis` joined
|
|||
TimToady | rakudo: say (1 ... 2.999999999999).max # might be NYI | 18:05 | |
p6eval | rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are::(Int $a, Int $b)current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)» | ||
TimToady | rakudo: say (1.0 ... 2.999999999999).max | 18:06 | |
p6eval | rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are::(Int $a, Int $b)current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)» | ||
TimToady | rakudo: say (1,2,3 ... 2.999999999999).max | ||
p6eval | rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are::(Int $a, Int $b)current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)» | ||
TimToady | rakudo: say (1.0,2.0,3.0 ... 2.999999999999).max | ||
p6eval | rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are::(Int $a, Int $b)current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)» | ||
TimToady | hmm | ||
18:07
ejs joined
|
|||
TimToady | rakudo: say (1 ... 5) | 18:08 | |
p6eval | rakudo 689429: OUTPUT«12345» | ||
TimToady | rakudo: say (1 ... 4.9) | ||
p6eval | rakudo 689429: OUTPUT«1234» | ||
TimToady | rakudo: say (1 ... 4.9).max | ||
p6eval | rakudo 689429: OUTPUT«4» | ||
TimToady | rakudo: say (1 ... 4.99999999).max | 18:09 | |
p6eval | rakudo 689429: OUTPUT«4» | ||
TimToady | rakudo: say (1 ... 4.99999999999999999).max | ||
p6eval | rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are::(Int $a, Int $b)current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)» | ||
TimToady | right | ||
say 2.999999999999.WHAT | 18:10 | ||
rakudo: say 2.999999999999.WHAT | |||
p6eval | rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are::(Int $a, Int $b)current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)» | ||
TimToady | rakudo: say 2.99999999999.WHAT | ||
p6eval | rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are::(Int $a, Int $b)current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)» | ||
TimToady | rakudo: say 2.9999999999.WHAT | ||
p6eval | rakudo 689429: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are::(Int $a, Int $b)current instr.: 'perl6;Rat;new' pc 486672 (src/gen/core.pir:69639)» | ||
TimToady | rakudo: say 2.999999999.WHAT | ||
p6eval | rakudo 689429: OUTPUT«Rat()» | ||
TimToady | 32-bit limitations, I guess | 18:11 | |
rakudo: say (1..4.9).max | |||
p6eval | rakudo 689429: OUTPUT«4.9» | ||
TimToady | rakudo: say (1 ...^ 4.9).max | 18:12 | |
p6eval | rakudo 689429: OUTPUT«1» | ||
TimToady | rakudo: say (1 ... (^4.9)).max | ||
p6eval | rakudo 689429: OUTPUT«1» | ||
TimToady | rakudo: say (1 ... (0,1,2,3)).max | 18:13 | |
p6eval | rakudo 689429: OUTPUT«1» | ||
TimToady | rakudo: say (1 ... 0,1,2,3).max | ||
p6eval | rakudo 689429: OUTPUT«1» | ||
TimToady | ooh, that's a bug | ||
rakudo: say ^4.9 | 18:15 | ||
p6eval | rakudo 689429: OUTPUT«01234» | ||
TimToady | rakudo: say ^4.0000000000000000000000000001 | ||
p6eval | rakudo 689429: OUTPUT«PAST::Compiler can't compile node of type BigIntcurrent instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)» | ||
TimToady | sugoi | ||
18:16
orafu left
|
|||
pugssvn | r30687 | moritz++ | [t/spec] correct one :x test, add another one | 18:24 | |
18:24
[particle]1 is now known as [particle]
|
|||
moritz_ now spectests a patch that implements :x on .match | 18:27 | ||
[Coke] | rs in 60m? | 18:29 | |
moritz_ | yes, I think so | ||
oh, that patch broke :nth. Bad moritz_, no cookie | 18:31 | ||
jnthn | 60m? | 18:33 | |
I thought it was in 30m and was about to say I had a scheduling FAIL and would be 10 mins late or so... | 18:34 | ||
moritz_ | you might be right... I never got around to writing down the time :-) | ||
right, we did start 19UTC last week | |||
rakudo: say (1, 2, 3).defined | 18:35 | ||
p6eval | rakudo 689429: OUTPUT«1» | ||
moritz_ | rakudo: say any(1, 2, 3).defined | ||
p6eval | rakudo 689429: OUTPUT«1» | ||
18:35
Sanitoeter left,
Sanitoeter joined
|
|||
jnthn | OK | 18:36 | |
moritz_ | I don't care much either way | ||
jnthn | It'll likely be a quiet one today - I didn't see pmichaud around yet, masak is likely having fun in Russia (and rightly so :-)), colomon can't make it either. | 18:37 | |
moritz_ | indeed | 18:38 | |
18:42
Guest63592 left,
Guest63592 joined
18:54
sahadev joined
19:02
ShaneC joined,
ShaneC left
|
|||
BrowserUk | ? | 19:06 | |
19:06
clintongormley left
|
|||
moritz_ | ! | 19:06 | |
19:16
Trashlord joined
|
|||
ruoso | perl6: my $a; { my $b = 1; $a = sub { return eval '$b++' } }; say $a.(); say $a.(); say $a.(); | 19:22 | |
p6eval | elf 30687: OUTPUT«Variable "$b" is not available at (eval 130) line 3.0Variable "$b" is not available at (eval 132) line 3.0Variable "$b" is not available at (eval 134) line 3.0» | ||
..pugs, rakudo 689429: OUTPUT«123» | |||
jnthn back | 19:26 | ||
19:27
rindolf joined
|
|||
rindolf | Hi all. | 19:28 | |
jnthn | o/ rindolf | ||
rindolf | rakudo: product [1 .. 4] | ||
p6eval | rakudo 689429: OUTPUT«Could not find sub &productcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
rindolf | Hi jnthn | ||
rakudo: [1..4].product() | |||
jnthn | rakudo: say [*] 1..4 | ||
p6eval | rakudo 689429: OUTPUT«Method 'product' not found for invocant of class 'Array'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
rakudo 689429: OUTPUT«24» | |||
eternaleye | (just rakudo it origins) irclog.perlgeek.de/perl6/2010-02-24#i_2027606 | ||
rindolf | rakudo: [*] 1..4 | ||
p6eval | rakudo 689429: ( no output ) | ||
rindolf | rakudo: ([*] 1..4).say | 19:29 | |
p6eval | rakudo 689429: OUTPUT«24» | ||
moritz_ | rakudo: <a b c>.map: *.say | 19:35 | |
p6eval | rakudo 689429: ( no output ) | ||
lisppaste3 | sahadev pasted "t/spec/S32-list/classify.t fixed" at paste.lisp.org/display/99420 | 19:36 | |
moritz_ | sahadev: the real fix is to move it outside of eval | 19:37 | |
*and* add those commas | 19:38 | ||
sahadev: feel free to push your patch anyway... if you /msg me your email address, I can give you a commit bit to the pugs repo | 19:39 | ||
sahadev | the first one still needs eval (otherwise, fails with error: ":= binding of variables not yet implemented") | ||
phenny | sahadev: 15 May 14:29Z <moritz_> tell sahadev that I've applied most patches from your 'book' fork; I didn't apply the one about custom paper size because it makes it harder to talk about a specific page number across platforms | ||
sahadev | thanks, phenny | ||
moritz_ | sahadev: then a #?rakudo skip 'binding NYI' before the block should be used | ||
sahadev | moritz_: ok | 19:40 | |
moritz_ | rakudo: my (@even, @odd); :(:@even, :@odd) = classify { $_ % 2 ?? 'odd' !! 'even' }, 1,2,3,4; say @even.perl | 19:41 | |
p6eval | rakudo 689429: OUTPUT«Cannot assign to readonly valuecurrent instr.: '&die' pc 17864 (src/builtins/Junction.pir:393)» | ||
moritz_ | rakudo: my (@even, @odd); :(:@even, :@odd) := classify { $_ % 2 ?? 'odd' !! 'even' }, 1,2,3,4; say @even.perl | ||
p6eval | rakudo 689429: OUTPUT«Too many positional parameters passed; got 1 but expected 0current instr.: '' pc 0 (EVAL_2:1)» | ||
[Coke] | are the perl6 advent files checked in anywhere as tests? | 19:43 | |
moritz_ | nope | ||
[Coke] | (and if not, any suggestions on where to put them? pugs/t/<mumble> ? | ||
t/advent/2009/ ? | 19:44 | ||
PerlJam | [Coke]: sounds good. | ||
moritz_ | [Coke]: t/spec/integration/advent2009-$mumble.t | ||
sahadev: welcome to the pugs repo. It's a custom to add yourself to AUTHORS in the first commit (and that way testing your commit bit) | 19:46 | ||
sahadev | moritz_: thanks. | ||
ruoso | TimToady, we got to an interesting point at the list, at which we're getting to the conclusion that supporting closing over all values (supporting access of data even from string eval or arbitrary CALLER::{$val} and OUTER::{$val}) might pose a challenge to threading... | 19:47 | |
and maybe we're at the balance of concerns | |||
requiring a static analisys of which variables need to be in the closure lexpad would be quite important in terms of threading semantics | 19:49 | ||
19:49
takadonet left
|
|||
ruoso | this would mean "my $a; { my $b = 1; $a = sub { return eval '$b++' } }; say $a.(); say $a.(); say $a.()" would stop working | 19:49 | |
moritz_ | as it does in perl 5, iirc | 19:50 | |
ruoso | yes... | ||
BrowserUk, anyway... the above comes from our discussion on the list ^^ | 19:53 | ||
ruoso assumes BrowserUk and nigelsandever are actually the same person | 19:54 | ||
jnthn | "spent about three days humping" isn't a phrase I ever expected to see in a Parrot release announcement! | 19:59 | |
pugssvn | r30688 | sahadev++ | added myself to the list | 20:01 | |
moritz_ | ok, seems I finally have a *working* patch for :x | 20:02 | |
20:02
wknight8111 left
|
|||
moritz_ | after I added a safety feature of which I am convinced I don't need it | 20:02 | |
jnthn | moritz_: Yay! | ||
moritz_ | but without it all test for :nth go wrong | 20:03 | |
20:06
iblechbot joined
|
|||
diakopter is finding it difficult to think inside the box. | 20:16 | ||
or outside, for that matter. | 20:19 | ||
moritz_ | which box? | ||
diakopter | :) | ||
trying to wrap my head around the semantacists on p6l | 20:20 | ||
their writings, I mean | |||
moritz_ | oh | ||
I've started to routinely ignore any threads which go > 5 in depth | |||
dalek | kudo: cf5afac | moritz++ | (2 files): implement :x in Any.match; also test it |
||
diakopter | I believe I do need to understand what they're writing.. it just .. may take a few more years. | 20:23 | |
sahadev | moritz_: looks like my copy of t/spec was out of date. you seem to have already committed the suggested changes to S32-list/classify.t. | ||
moritz_ | sahadev: ah. I remembered writing such a patch myself, but assumed I'd forgotten to push it | 20:24 | |
sahadev | i have to find something else to commit (if only to justify the addition of myself to AUTHORS) | ||
diakopter | :) | ||
moritz_ | sahadev: no hurry :-) | ||
diakopter | authoring AUTHORS is authoring too | ||
sahadev | diakopter: that kind of authoring, i can do any day :) | ||
20:25
iblechbot left
|
|||
diakopter | rakudo: my &marine = *; marine(marine, marine(marine)); say 'done' | 20:26 | |
p6eval | rakudo 689429: OUTPUT«done» | ||
rindolf | Hmmm... why is git pull from the rakudo github repos so slow here? | ||
moritz_ | rindolf: slow network? | ||
PerlJam | rindolf: it's because you're so far away :) | ||
rindolf | moritz_: don't know. | 20:27 | |
[Coke] | jnthn: yah, I'm a little wierded out there. | ||
moritz_ | rindolf: that would be my first place for investigating, if you plan to do any | ||
diakopter | github intentionally slows down the rakudo repos for people who don't hide behind crickets | ||
[Coke] | moritz_: t/spec/integration/advent2009/day*.t ?\ | 20:28 | |
rindolf | moritz_: it's fine from my wired computer, I think. | ||
moritz_: but here I have wireless. | |||
20:28
mikelifeguard joined
|
|||
rindolf | moritz_: it's the same Inet connection. | 20:28 | |
76.00 KiB | |||
moritz_ | [Coke]: please keep the hierarchy flat to two levels below t/spec/ (ie one dir + file name) | 20:29 | |
rindolf | Not too good. | ||
moritz_ | [Coke]: that's what some test harnesses out there in the wild assume, and it's bad to break their assumptions | ||
mikelifeguard | Is there a tool to automatically check perl code for perl6 compatibility? For example, there is the -3 flag in python 2.6 to tell you where stuff might break in python 3 | ||
[Coke] | ok. perhaps I'll collate them to multiple days per file, then. | ||
moritz_ | rindolf: then it's the wireless? | ||
rindolf | moritz_: maybe. | ||
moritz_ | mikelifeguard: Perl 6 is so much different from Perl 5 that compatiblity is only given in *very* trivial scripts | 20:30 | |
so it doesn't really make sense, IMHO | |||
rindolf | moritz_: I'm getting 318 KB via FTP from a different server in .il. | ||
mikelifeguard | hokay | ||
moritz_ | rindolf: maybe that's why you get so little ssh traffic over the line at the same time :-) | 20:31 | |
(just kidding) | |||
rindolf | moritz_: heh. | ||
20:31
mikelifeguard left
|
|||
Su-Shee | mikelifeguard: the difference between 5 and 6 is plainly larger then between 2.6 and 3. ;) | 20:31 | |
rindolf | moritz_: now it's 244.00 KiB | ||
OK, git pull finished now. | 20:32 | ||
dalek | kudo: 72ed16f | moritz++ | src/core/Cool-str.pm: simplify .match(:x) implementation a wee bit |
20:42 | |
20:44
BrowserUk left
20:45
ejs left
|
|||
diakopter | sum1 needs to write a Harmony of the Synoptics | 20:46 | |
pugssvn | r30689 | moritz++ | [t/spec] initial tests for combined modifiers in .match | 20:47 | |
20:49
molaf left,
Guest44059 left
20:50
patrickas joined
|
|||
patrickas | hello | 20:50 | |
moritz_ | hi | ||
20:50
ash_ joined
|
|||
patrickas | hi moritz_, how the little finger going? hope it is better! | 20:51 | |
:-) | |||
20:52
colomon joined
|
|||
patrickas | is MAIN implemented in rakudo yet? | 20:52 | |
moritz_ | it is | ||
and "no" | |||
it was, in alpha | |||
20:52
orafu joined
|
|||
moritz_ | at least basically | 20:53 | |
moritz_ wonders if that would make a good challenge | |||
20:53
iblechbot joined
|
|||
moritz_ | you know, a basic command line parser for Perl 6, written in Perl 6 | 20:53 | |
patrickas | ok ... cause I was sure I'd read it was implemented somewhere ... but I could not get it to work ... | ||
moritz_ | and then I'll bribe jnthn++ to hook it up | ||
colomon | match :x \o/ | 20:54 | |
patrickas | seems like a great challenge ... but maybe a jump a bit too big from the previous two | ||
moritz_ | colomon: I've got another simplication patch in my queue | ||
patrickas: it's not so bad, actually | 20:55 | ||
colomon | moritz_: I worked on Numeric patches while we were on the road, will spectest now that I have power. :) | ||
moritz_ | patrickas: input would be a list of strings, output should be an array and a hash (of positional and named arguments) | ||
patrickas | ok ... want me to work on it ? or do you want to make it challenge number 3 ? | 20:56 | |
moritz_ | patrickas: I'd like to make it challenge no. 3 (tomorrow morning) | ||
patrickas: of course you're welcome to work on it too... for this one I'll accept multiple submissions again | 20:57 | ||
patrickas | i could ... but since I am hooked already I'd rather leave the bait for osmeone else ;-) | ||
moritz_ | patrickas++ | 20:58 | |
20:58
mberends left
|
|||
patrickas | which reminds me ... I was wondering .. how do I detect context in perl6? | 20:59 | |
moritz_ | simplification patch pushed... only spectested against S05* ... /me hopes the best | ||
patrickas: you don't | |||
patrickas: context doesn't flow inwards like in Perl 5 | |||
patrickas: so instead you return objects that behave magically depending on the context | 21:00 | ||
colomon | spectest aborted, then. | ||
patrickas | and the objects behave differently by having secial methonds in them? | ||
moritz_ | anyway, I'm off to bed now | ||
patrickas: right; string context will call .Str etc. | |||
colomon | moritz_: 'night! | ||
wait, do you know where the #rs log is? | 21:01 | ||
21:01
moritz_ sets mode: +oo patrickas colomon
|
|||
patrickas | thx goodd night | 21:01 | |
moritz_ | colomon: irclog.perlgeek.de/rakudosketch/today not really worth it | ||
really gone & | |||
colomon | moritz_++ | ||
dalek | kudo: 6aedf5e | moritz++ | src/core/Cool-str.pm: [Any.match] remove some duplicated code |
21:05 | |
21:07
ash_ left
21:09
Su-Shee left,
wknight8111 joined
21:16
nimiezko joined
|
|||
diakopter | std: \ \.STD | 21:16 | |
p6eval | std 30689: OUTPUT«ok 00:01 110m» | ||
21:16
nimiezko left
21:17
nimiezko joined,
nimiezko left
21:20
nimiezko joined
21:32
gbacon_ left
21:36
rindolf left
|
|||
dalek | kudo: 980e03c | (Solomon Foster)++ | src/core/ (2 files): Implement (generic) Numeric.succ and Numeric.pred. Remove the multi from Rat's |
21:37 | |
kudo: 1bf6eab | (Solomon Foster)++ | src/core/ (3 files): Create postfix:<i> for Numeric and Any, delete the old Complex and Any versions. |
|||
21:39
ethel joined
21:41
BrowserUk joined
|
|||
BrowserUk | ruoso: That example explains your point on the list about string eval. Thanks. I've been sitting here racking my brains trying to see the killer use case for that, and I'm coming up short? The only thing that crosses my mind is to allow lexicals in a REPL, which is a very desirable feature. But it strikes me that shoudl be achievable using a pair of coroutines. | 21:45 | |
TimToady | interestingly, my $a; { my $b = 1; $a = sub { $b = $b; return eval '$b++' } }; say $a->(); say $a->(); say $a->(); | ||
does work in p5 | |||
so it just takes the lexicals from the current scope | 21:46 | ||
ruoso | TimToady, note the additional "$b = $b | ||
TimToady | ruoso: note it? I put it there... | ||
ruoso | heh | ||
ruoso wrote that too quickly | |||
TimToady | but in any case, I'm inclined to put the burden on anyone who uses eval, either to do such workarounds, or to put up with poor performance | ||
which, of course, is just another way of arguing it both ways :) | 21:47 | ||
BrowserUk | Ruoso: The first reads from stdin (Sorry $*IN) and then makes what it read available to the other that does the eval in the same context each time. That should work shouldn't it? | ||
ruoso | something like... eval <== $*IN | 21:48 | |
but eval does create a new scope whithin itself, so it wouldn't solve the REPL problem | |||
21:49
SmokeMachine left
|
|||
ruoso | I think we're getting to "we use locks for shared values"... | 21:49 | |
"unless they are actors" | |||
I think "actor" is just going to be a different type of object | 21:50 | ||
BrowserUk | Ah! Shame. | ||
ruoso | that simply lives in a different thread and is always invoked through a queue | ||
colomon | TimToady: if you use :x(4) in .subst, it only substitutes if all four reps are found. | ||
TimToady: If you use :x(4) in .match, does it only match if all four are present? | |||
TimToady | that's the current design | ||
colomon | TimToady: the spec doesn't exactly say for the second, as far as I can see. | 21:51 | |
ruoso | actor Foo { action bar($a, $b) { } } | ||
colomon | and I think the implementation and tests don't do that yet. | 21:52 | |
BrowserUk | ruoso: You'll have to give me time to digest that. | ||
TimToady | well, 'x' generally means n times, not up to n times | ||
patrickas | rakudo: class Foo {method Str () { return 'Fourty Two';}};my Foo $x;my Str $s = $x;say $s; | 21:53 | |
p6eval | rakudo cf5afa: OUTPUT«Type check failed for assignmentcurrent instr.: '&die' pc 17864 (src/builtins/Junction.pir:393)» | ||
colomon | rakudo: "hello world".match(/.o/, :x(5))>>.Str.perl.say | ||
p6eval | rakudo cf5afa: OUTPUT«()» | ||
ruoso | BrowserUk, putting it in a different way, the message passing concurrency might be available without prejudice to the shared-state concurrency, and that'd be explicit in the code... | 21:54 | |
and we would be free of green threads | |||
jnthn | patrickas: It's a type constraint, not a type coercion. :-) | 21:55 | |
class Foo {method Str () { return 'Fourty Two';}};myFoo $x;my Str $s = ~$x;say $s; | 21:56 | ||
rakudo: class Foo {method Str () { return 'Fourty Two';}};myFoo $x;my Str $s = ~$x;say $s; | |||
p6eval | rakudo cf5afa: OUTPUT«Symbol '$x' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)» | ||
jnthn | rakudo: class Foo {method Str () { return 'Fourty Two';}};my Foo $x;my Str $s = ~$x;say $s; | ||
p6eval | rakudo cf5afa: OUTPUT«Foo()» | ||
jnthn | rakudo: class Foo {method Stringy () { return 'Fourty Two';}};my Foo $x;my Str $s = ~$x;say $s; | ||
p6eval | rakudo cf5afa: OUTPUT«Foo()» | ||
jnthn | rakudo: class Foo {method Stringy () { return 'Fourty Two';}};my Foo $x .= new;my Str $s = ~$x;say $s; | 21:57 | |
p6eval | rakudo cf5afa: OUTPUT«Foo()<0x370b620>» | ||
jnthn | rakudo: class Foo {method Str () { return 'Fourty Two';}};my Foo $x .= new;my Str $s = ~$x;say $s; | ||
p6eval | rakudo cf5afa: OUTPUT«Fourty Two» | ||
jnthn | Heh. | ||
21:57
ashleydev_ joined,
meppl left
|
|||
patrickas | thx! | 21:58 | |
21:59
ashleydev left
22:00
iblechbot left
|
|||
patrickas | jnthn: so if a function expects Str I cannot pass Foo and expect it to work correctly if foo has a ..Str defined? | 22:02 | |
22:02
rgrau joined
|
|||
patrickas | I guess that would become a problem for multimethods ... | 22:03 | |
22:04
ashleydev_ left
22:06
ashleydev joined
22:08
pjcj joined
22:10
dju left,
ashleydev left
22:14
cognominal left
22:16
sahadev left
|
|||
patrickas | I can't find out how to specify List context :( | 22:17 | |
22:20
ive left
|
|||
jnthn | patrickas: No, if you want to coerce then you can write a signature like ($foo as Str) | 22:20 | |
patrickas: @( ...stuff here is in list context... ) | 22:21 | ||
22:22
ruoso left
|
|||
BrowserUk | Semantically, what is teh difference between @a <== map { ... } <== grep { ... } <== $*IN and @a map { ... } grep { ... } $*IN ? | 22:22 | |
patrickas | rakudo: class Foo {method Str () { return 'Fourty Two';};method Array () { return (4,2);};method List () { return (4,2);};};my Foo $x .= new;my @ar=@($x);@ar.say ; | ||
p6eval | rakudo cf5afa: OUTPUT«Fourty Two» | 22:23 | |
patrickas | sorry for the total noob questions :( | ||
BrowserUk | *@a = map ... | 22:25 | |
jnthn | list | ||
not List | |||
BrowserUk: The second (even with the =) is a syntax error anyway - need a comma between the block and the argument. | 22:26 | ||
BrowserUk: The differenence is in laziness, though. | |||
And also by using <== you're saying it's OK for the compiler to run each of the things in its own thread | |||
And set up a producer/consumer pattern. | |||
*compiler to generate code that will... | 22:27 | ||
BrowserUk | jnthn: OKay. So the instead of constructing a huge list and pasing it through the chain, it feeds 1 value through at a time. | 22:28 | |
22:29
kolibrie left,
Guest63592 left
22:31
k23z__ joined
|
|||
BrowserUk | There would be little or no benefit (indeed probably a cost) in using a separate kernel thread for each stage. | 22:31 | |
jnthn | BrowserUk: It may also not bother doing anything until you look at @a | ||
BrowserUk: List assignment is mostly eager (will not explode things that may be infinite though). | 22:32 | ||
BrowserUk: <== and ==> are not. | |||
BrowserUk | Hm Interesting. What if you test the size of the list? Does that then block until the chain completes? | 22:33 | |
jnthn | Asking .elems on a potentially infinite list is probably a bad idea, yes. :-) | ||
BrowserUk | jnthn: That implies that once you start lazy processing, you have to stick with lazy processing. No safe way to revert to eager. | 22:35 | |
jnthn | It's only really an issue if the list is infinite though. | 22:36 | |
But yeah | |||
22:36
cognominal joined
|
|||
BrowserUk | At some point $*IN will normally be exhausted and @a populated, but I don;t see an easy way to know when that has occurred and it would be safe to do something non-lazy with @a. | 22:37 | |
patrickas | rakudo: my %h = ("a"=> 1 , "b"=>2 );(map { .WHAT } , %h).say; | 22:39 | |
p6eval | rakudo cf5afa: OUTPUT«Hash()» | ||
patrickas | rakudo: my %h = ("a"=> 1 , "b"=>2 );%h.^add_method( 'list', method ( ) { return self.pairs; });(map { .WHAT } , %h).say; | ||
p6eval | rakudo cf5afa: OUTPUT«Pair()Pair()» | ||
patrickas | How can I add the list methos to the class of %h instead of %h itself ? | 22:40 | |
"augment class Hash" doesn't seem to be doing what I thing it should! | |||
colomon | TimToady: I was wrong, moritz_++ did indeed make :x work strictly for the correct number of repetitions. | 22:41 | |
patrickas | actually it works for arrays but not for hashes... | 22:44 | |
rakudo: my %h; %h.WHAT.say; | |||
p6eval | rakudo 980e03: OUTPUT«Hash()» | ||
patrickas | rakudo: my %h; my %hh = ("a"=> 1 , "b"=>2 );%h.WHAT.^add_method( 'list', method ( ) { return self.pairs; });(map { .WHAT } , %hh).say; | 22:48 | |
p6eval | rakudo 980e03: OUTPUT«Pair()Pair()» | ||
patrickas | \o/ | ||
BrowserUk | phenny: tell ruoso, My first reaction is that it is better dealt with using something like: my @a = async{ map{...}, grep, <== $*IN }.join; As everything that comes out of the grep is going to end up passing through the map and end up in memory in @a anyway. | 22:50 | |
phenny | BrowserUk: I'll pass that on when ruoso is around. | ||
22:53
rv2733 left
|
|||
BrowserUk | phenny: tell ruoso, the use-case I'm envisaging is a filtering a small subset of a large input. You save memory by filtering the input lazily, but after that--depending upon how lists are implemented-- you don't save much more cos it's all going to end up in @a anyway. | 22:54 | |
phenny | BrowserUk: I'll pass that on when ruoso is around. | ||
22:55
IllvilJa left
|
|||
BrowserUk | phenny: tell ruoso, If @a was assigned a placeholder promise, you can get on with other stuff while it runs, and only block when you access @a at some point later if it hasn't completed. | 22:58 | |
phenny | BrowserUk: I'll pass that on when ruoso is around. | ||
22:58
Psyche^ joined
22:59
Arroz left
23:02
Patterner left,
Psyche^ is now known as Patterner
|
|||
patrickas thinks he fixed his first rakudo bug ever ! | 23:04 | ||
BrowserUk | phenny: tell ruoso, And if IO primitives are set up as coroutines dispatched in the IO/Events thread, that allocate sharable buffers and post thread-chimeric handles to those buffers through queues, then the whole chain runs as quickly as the data can be read without sleeps, locks or polling. | 23:07 | |
phenny | BrowserUk: I'll pass that on when ruoso is around. | ||
23:07
lestrrat is now known as lest_away
23:08
jaldhar_ joined,
_jaldhar left
|
|||
BrowserUk | night all. | 23:10 | |
23:10
BrowserUk left
23:28
saaki joined
23:31
eternaleye left
23:43
eternaleye joined
23:48
cdarroch left
23:49
rgrau left
23:51
jhuni joined
23:57
lest_away is now known as lestrrat
|
|||
colomon | patrickas++ | 23:58 |