»ö« | 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. |
|||
sorear | TimToady: how nonsensical? | 00:00 | |
TimToady | does anything even use that $<sym>? | 00:01 | |
sorear | no | 00:02 | |
TimToady | and why should it be [':','dba']? | ||
sorear | ah | ||
TimToady | it just turned it into ':dba' since the «» code is what was giving undef warnings | ||
pugssvn | r31062 | sorear++ | [viv] Add a --no-indent option; rebootstrap with it | 00:03 | |
sorear | how is the new build working for you? | ||
TimToady | I hope it still indents the yaml :) | ||
sorear | it doesn't affect yaml | ||
it's just no warnings 'redefine'; *indent = \&no_indent | 00:04 | ||
so the code generator never puts in the spaces | |||
TimToady | HACKALERT!!! :) | ||
sorear | I'm not afraid of typeglobs | 00:05 | |
TimToady | .oO(fools rush in...) |
00:06 | |
sorear | possibly a conditional in ::indent itself would have been clearer | ||
TimToady | oh, I probably didn't actually fix the warning, if $M is undefined... | 00:08 | |
00:09
yinyin joined
|
|||
pugssvn | r31063 | lwall++ | [STD,Cursor] suppress undef warnings | 00:16 | |
sorear | TimToady: how well has the new build system been working for you? | 00:20 | |
TimToady | pretty okay; I don't know what the new targets are, but 'make clean' and 'make' seem to work :) | 00:21 | |
sorear | I use make fast, mostly | ||
make STD.pmc too | 00:22 | ||
00:22
ash__ left
|
|||
sorear | it's slower than I'd like | 00:26 | |
00:27
ash__ joined
|
|||
sorear | there's also 'make reboot', which causes the current built version of STD.pm6 to be used for future builds | 00:27 | |
TimToady | though 'make reboot' can conceivably break the build for 'make clean'ers | 00:29 | |
sorear | how so? you mean if you wrote a bad version of STD.pm6? | 00:31 | |
00:31
ashleydev left
|
|||
TimToady | if you introduced a dependency on something that a fresh build doesn't know how to do | 00:31 | |
sorear | no, make reboot copies the *compiled* version | 00:32 | |
00:32
justatheory left
|
|||
TimToady | std: 63 | 00:33 | |
00:33
LylePerl left
|
|||
p6eval | std 31063: OUTPUT«ok 00:01 110m» | 00:33 | |
00:34
LylePerl joined
|
|||
pugssvn | r31064 | sorear++ | [viv] Re-enable required argument checking for only subs | 00:35 | |
r31064 | [STD] Declare EXPR argument as optional | |||
00:37
rgrau left
|
|||
TimToady | sorear: have you figured out why \x et al. are not recognized in regexes? | 00:40 | |
since t/spec/S05-mass/named-chars.t is one of the regressions | |||
hmm, can recognize /\xAB/ but not /\x[AB]/ | 00:45 | ||
std: /\xAB/ | |||
sorear | no | ||
p6eval | std 31063: OUTPUT«ok 00:01 108m» | ||
TimToady | std: /\x[AB]/ | ||
p6eval | std 31063: OUTPUT«===SORRY!===Unrecognized regex backslash sequence at /tmp/utnzSrqANQ line 1:------> /\⏏x[AB]/Potential difficulties: [AB] appears to be an old-school character class; please use <[AB]> if you mean a character class, or quote it like | ||
..'AB… | |||
TimToady | looking... | ||
sorear | it might have something to do with the bit where I made '{' ~ '}' mean '{' {} ~ '}' | 00:48 | |
std: /\Z/ | |||
p6eval | std 31063: OUTPUT«===SORRY!===Unsupported use of \Z as end-of-string matcher; in Perl 6 please use \n?$ at /tmp/CDErcWmdgI line 1:------> /\Z⏏/Parse failedFAILED 00:01 107m» | ||
TimToady | I see there's a lazymap in there, perhaps deferring the <stopper> match to outside the local $::GOAL's scope is a problem somehow | 00:49 | |
it's not supposed to be using $*GOAL for anything other than messages though now | |||
and the really stopper is supposed to always travel with the type of the Cursor | 00:50 | ||
00:50
lest_away is now known as lestrrat
|
|||
TimToady | if you want to look at it, I'll stop for now | 00:51 | |
sorear | no | ||
TimToady | the problem with the --no-indent is that there isn't an indented .pm5 out there I can just look at. :) | ||
having it a separate make step meant that both versions were always there | 00:52 | ||
pugssvn | r31065 | sorear++ | [STD-ecosystem] Add a STD.pm5 target | 00:54 | |
sorear | yes, that is the downside | ||
but with the code-gen side of viv as fast as it is... I think it's tolerable | 00:55 | ||
TimToady: STD.pm6 +3791. viv is generating $0 as an array because it occurs inside a quantifier. Is this correct behavior? | 00:58 | ||
01:01
envi^home joined
|
|||
TimToady | yeah, needs a .[0] | 01:03 | |
01:04
whiteknight left
|
|||
TimToady | or a way in P5 to add .Str to ARRAY :) | 01:04 | |
01:08
pausenclown left
01:09
ashleydev joined
01:13
pausenclown joined
01:16
madalu joined
01:21
masonkramer__ left,
masonkramer_ joined
01:22
envi^home left,
plobsing joined
01:25
envi^home joined
|
|||
pmichaud | need to add to the README that JSON is now a requirement for STD compilation :) | 01:26 | |
awwaiid | random rakudo question, why is 'assign' in the filename 'src/builtins/assign.pir' not capitalized like all the other files in that directory? | 01:27 | |
pmichaud | because it's not a class | ||
or role | |||
or type | |||
awwaiid | ok, thanks | 01:28 | |
01:30
Schwern joined
|
|||
pmichaud | sorear: I get a lot farther now with building STD than earlier. | 01:32 | |
(still building... lots of "Use of uninitialized value ..." warnings) | 01:33 | ||
sorear | yes, TimToady++ just fixed some of those | ||
pugssvn | r31066 | sorear++ | [STD] add missing [0] for dumbsmart | 01:34 | |
r31067 | sorear++ | [viv] Remove obsolete dependency on JSON | 01:36 | ||
sorear | 1 regression down | ||
01:37
Schwern left
|
|||
awwaiid | ok if I add comments to RT tickets that say "actually it looks like rakudo does this correctly now. <pasted session>" ? | 01:37 | |
01:38
uvtc joined
|
|||
pmichaud | awwaiid: please do so, yes! | 01:38 | |
awwaiid: and thanks! | |||
awwaiid | np | 01:39 | |
uvtc | Hi #perl6. I just installed Parrot (with Rakudo) into `/usr/local/parrot`. Not sure how much sense this question makes, but, where is Rakudo's implementation of the Perl 6 "standard library"? | 01:41 | |
pmichaud | uvtc: in the sources, generally in src/core/*.pm | 01:42 | |
beyond that, there's not really a "standard library" defined by the language. Different distributions will be able to choose what modules to bundle with the distribution. | 01:43 | ||
sorear: build completed on my system, trying "make test" now. | 01:44 | ||
uvtc | I don't have a `/src/core` dir. Inside `/usr/local/parrot/src`, there's `2.4.0-devel`, and inside that, `ops`, `pmc`, and a couple of vtable files. | ||
pmichaud | uvtc: in the rakudo sources, not in the installed | 01:45 | |
the core library is compiled in as part of the rakudo executable | |||
TimToady | sorear, it appears that in \x[ it is not matching the [ because the pattern has an extra backslash: | 01:46 | |
3/1 TOP comp_unit statementlist statement EXPR termish term term__S_086value value value__S_135quote quote quote__S_142Slash_Slash nibble nibbler EXPR termish quant_atom_list quantified_atom atom metachar metachar__S_037Back backslash backslash__S_065x:::::::: PATTERN (?-xism:\G(?i:\\\[)) didn't match at 3 | |||
see that it says \\\[ | |||
uvtc | pmichaud: Ah. compiled in. I see. Thanks. | ||
TimToady | sorear: so I think it's a translation error | 01:47 | |
sorear | ahhh, backslashes, my sworn enemy | 01:52 | |
pmichaud | looks like it builds fine on my system now. | 01:53 | |
(std, that is) | |||
sorear++ TimToady++ | |||
01:54
yinyin left
|
|||
sorear | TimToady: found the error | 01:56 | |
01:59
azert0x_ left,
azert0x left
|
|||
pugssvn | r31068 | sorear++ | [viv] Fix double escaping of strings in case ignoring contexts (TimToady++ for doing most of the work) | 02:00 | |
02:01
bacek joined
|
|||
sorear | Hello bacek | 02:01 | |
02:01
[mark] joined
|
|||
sorear | TimToady: All three regressions are now fixed | 02:02 | |
TimToady | snaptesting | 02:07 | |
uvtc | I'd like to install Proto and try it out (by having it install the web module), but the install instructions on the Proto page (github.com/masak/proto) aren't working. The command runs, but evidently fails to get the proto.pl file. | 02:12 | |
(Aren't working *for me*, I mean.) | 02:13 | ||
Anyone have any tips on how I might get it installed? | |||
My guess is that, once I get a proto.pl file, it should go with my `perl6` binary in `/usr/local/parrot/bin`. | |||
Oops. Actually, looks like I can just grab the file by itself from github. | 02:15 | ||
02:18
drbean left,
drbean joined
|
|||
pugssvn | r31069 | sorear++ | [STD] Update bootstrap to get TimToady++'s undef fixes into the build | 02:18 | |
02:19
ashleydev left
02:23
bacek left,
agentzh joined
02:25
envi^home left,
rhr left,
Sarten-X left,
p6eval left,
TimToady left,
constant left,
avar left,
kolibrie left,
literal left
02:28
envi^home joined,
rhr joined,
Sarten-X joined,
avar joined,
p6eval joined,
TimToady joined,
constant joined,
kolibrie joined,
literal joined,
card.freenode.net sets mode: +vo p6eval TimToady
|
|||
TimToady | Passed 782/815, 95.95% | 02:28 | |
that's pretty darn good | |||
02:29
TiMBuS joined
|
|||
TimToady | I pronounce this stage of bootstrap complete. | 02:30 | |
sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ | |||
gimme5 is now officially pining for the fjords :) | 02:31 | ||
pugssvn | r31070 | sorear++ | [gimme5] Delete. (And there was much rejoicing.) | ||
TimToady | I thought you'd enjoy doing that :) | 02:32 | |
02:35
uvtc left
02:37
mantovani left,
mantovani joined
|
|||
pugssvn | r31071 | lwall++ | [viv] make sure .pmc has trailing newline | 02:41 | |
02:48
meppl left
|
|||
pugssvn | r31072 | colomon++ | [t/spec] Update hyper tests to match new spec. | 02:49 | |
02:49
satyavvd joined
|
|||
Wolfman2000 | gimme5...wait a second. What was that used for again, and why is there much rejoicing? | 02:51 | |
(( and why are you guys copying Python with the references? )) | |||
TimToady | just because someone else likes the same thing you do doesn't mean you have to quit liking it... | 02:52 | |
Wolfman2000 | I wasn't complaining about the Python references. I found it...slightly funny actually. | ||
TimToady | gimme5 was the chewing-gum-and-bailing-wire translator from P6 to P5 that we used to run std: with up till today | 02:53 | |
Wolfman2000 | Then again, I have to remember that Perl 6 seems to be combining many language aspects. Only makes sense for the jokes to translate. | ||
TimToady | sorear++ has developed viv to the point where it can now do the same translation, so we no longer need gimme5 | ||
and it does the translation "right" rather than cheating all over the place | |||
Wolfman2000 | "to the point"...soundsl ike something is missing then. | ||
TimToady | well, it still uses modules written in Perl 5, such as Cursor and Lazymap | 02:54 | |
next step is to rewrite those in P5 and translate using viv, so the whole system is in P6 | |||
02:55
ShaneC left
|
|||
Wolfman2000 | but once those are done...then even more progress in Perl 6 | 02:56 | |
TimToady | with viv we can start to think about running BEGIN blocks, for instance | ||
and we can use viv to target other backends than P5 | 02:57 | ||
02:57
xinming_ is now known as xinming
|
|||
TimToady | and we can do some of the optimizations that were impossible with gimme5 | 02:57 | |
and we can stop writing STD in the subset of P6 that gimme5 groks | |||
Wolfman2000 | alright, viv is the new hero, got it | 02:58 | |
TimToady | viva la viv | ||
03:02
pausenclown left
|
|||
sorear | gimme5 consisted of 1200 lines of Perl5 s/// statements being used to turn a subset of perl 6 into perl 5 | 03:03 | |
+800 lines of regex compiler | |||
viv works by passing Perl 6 into STD.pm6, then generating Perl 5 from the parse *tree* | |||
03:03
pausenclown joined
|
|||
sorear | so it accepts a much larger subset of perl 6 | 03:04 | |
e.g. gimme5 couldn't really handle postcircumfixes | |||
Wolfman2000 | I recall a++ has a postfix in ++. What's the postcircumfix again? | ||
sorear | @a[2] | 03:05 | |
it's a postfix operator that has an expression | |||
with gimme5, you had to write the method call form | |||
Wolfman2000 | ...I'm not quite seeing how making a postcircumfix would be useful. Got a sub you can make? | 03:06 | |
sorear | sub sum(@arr) { my $x = 0; for (0 .. ^@arr) { $x += @arr[$_] } } | 03:07 | |
Wolfman2000 | ...I think I asked the wrong question | 03:08 | |
sorear | the reason you can't see why they'd be useful is that you're taking them for granted | ||
Wolfman2000 | I've made custom infixes and prefixes before. | ||
But where would a custom postcircumfix come in handy? | |||
sorear | I'm not talking about custom ones | ||
gimme5 couldn't handle the *standard* ones | |||
Wolfman2000 | ...woah. Okay, missed that detail. | 03:09 | |
03:09
satyavvd left,
bjarneh joined,
justatheory joined
03:16
ash__ left
|
|||
sorear | Is backtracking from one LTM alternative into the next-longest token implemented yet? | 03:25 | |
TimToady | yes, that's what relex controls | ||
well, $relex, since it's always anonymous | 03:26 | ||
03:27
yinyin joined
|
|||
TimToady | see Cursor.pmc:531 | 03:27 | |
sorear | aha | 03:28 | |
what about something like [ a | aa ] ab | 03:29 | ||
can it backtrack into a group of alternations | |||
TimToady | I believe so, but I could be wrong | ||
if so, it's done with lazymaps | 03:30 | ||
it won't happen under :r of course | |||
03:30
madalu left
|
|||
sorear -> svnweb | 03:33 | ||
What is "failover"? | 03:35 | ||
TimToady | context? | ||
generally, when your first try or set of tries don't work, and you'd ordinarily get an exception, but you have something else to try instead | 03:36 | ||
we used to do a lot more of it in the design of p6, but we've tended to avoid it in recent years when possible | 03:37 | ||
we used to failover between methods and functions, and vice versa | |||
looking in GLOBAL for dynvars that aren't in the dynamic scope is also a failover | 03:38 | ||
sorear | die "failover no longer implemented" | 03:39 | |
TimToady | where? | ||
sorear | gimme5, RE_any::walk | ||
TimToady | oh, in that case, it originally assumed that the fates or relexes were unreliable, so would retry all the cases one by one, much more like rakudo still does | 03:41 | |
when the relexing worked, we didn't have to do that anymore | |||
STD has trusted its relexing for more than a year now, I think | |||
03:45
skids left
|
|||
sorear debates adding no warnings 'misc' so as to make my $C = foo; my $C = $C->bar; legal without intervening braces | 03:52 | ||
TimToady | that only works if you never need access to the original $C | 03:53 | |
03:55
satyavvd joined
|
|||
TimToady | and it doesn't really buy you much in p5 | 03:57 | |
since most blocks parasitize their sub's lexpad anyway | |||
04:21
ashleydev joined
04:23
jaldhar joined
|
|||
pugssvn | r31073 | lwall++ | [viv] is no longer a "start" on replacing gimme5 :) | 04:24 | |
04:33
tedv left
04:38
mtnviewmark joined
04:40
mtnviewmark left
04:41
Wolfman2000 left
04:42
envi^home left,
envi^home joined
04:44
plainhao left
04:48
ashleydev left
|
|||
pugssvn | r31074 | sorear++ | [viv] Overhaul indentation engine; should be much more readable now | 04:50 | |
04:53
yinyin left
|
|||
satyavvd | Why it is not displaying all the methods of HASH? | 04:54 | |
perl6 -e 'for Hash.^methods(:global) -> $meth { say $meth.name , "-", $meth.WHAT }' | |||
but same works for 'Array' | 04:55 | ||
??? | 04:57 | ||
05:00
patspam left
05:01
PenThrive left
|
|||
TimToady | interestingly: | 05:03 | |
rakudo: for { a => 1 }.^methods(:global) -> $meth { say $meth.name , "-", $meth.WHAT } | |||
p6eval | rakudo 18d996: OUTPUT«sort-Multi()Bool-Method()list-Method()postcircumfix:<{ }>-Multi()push-Method()delete-Method()of-Method()elems-Method()invert-Multi()Str-Method()reverse-Method()keys-Method()postcircumfix:<{ | ||
..}>-Multi()pairs-Method()contains-Method()exists-Method()kv-Method()ACCEPTS-… | |||
05:15
kaare joined,
kaare is now known as Guest6050
05:23
finanalyst joined
05:30
bacek joined
05:31
cli_ left
05:35
szabgab joined
05:36
dukeleto joined
|
|||
dukeleto | howdy | 05:37 | |
sorear | hello | 05:38 | |
dukeleto | i am trying to load perl6.pbc from rakudo in PL/Parrot, and I am running into this: gist.github.com/423516 | ||
dukeleto is trying to make PL/Perl6 work on PL/Parrot | |||
sorear | If you ever figure out how to make this work, tell us. | 05:39 | |
I would very much like to know why loading languages in Parrot is so balky. | 05:40 | ||
snarkyboojum | satyavvd: something like this | 05:43 | |
rakudo: class B { method class_B{} }; role A is B { method role_A(Str $test) {} }; say A.^methods(:global) | |||
p6eval | rakudo 18d996: OUTPUT«role_A» | ||
snarkyboojum | rakudo: class D { method class_D{} }; class C is D { method role_C(Str $test) {} }; say C.^methods(:global) | ||
p6eval | rakudo 18d996: OUTPUT«role_Cclass_DcanNumericelemsendreduceStrkeysreverseisauniqclassifymappairskvACCEPTSminmaxpickfirstminmaxdoesgrepvaluesjoinWHICHperlCREATECapturePARROTblessWHENCEWHERElistnotdefBUILDALLnewBoolsayprintdefinedWALKitemBUILDREJECTSclone» | ||
snarkyboojum | rakudo: class B { method class_B{} }; role A is B { method role_A(Str $test) {} }; say A.new.^methods(:global) | ||
p6eval | rakudo 18d996: OUTPUT«role_Aclass_BminmaxdoesgrepvaluesjoincanNumericelemsendreduceStrreversekeysuniqisaclassifymappairskvACCEPTSminmaxpickfirstBUILDALLnewBoolsayprintdefinedWALKitemREJECTSBUILDcloneWHICHperlCREATECapturePARROTblessWHENCEWHERElistnotdef» | ||
dukeleto | sorear: i will let y'all know, but would appreciate any help peeps in here have to give :) | 05:44 | |
snarkyboojum | not saying it's right, but that's what happens with Hash (a role) inheriting from a class (EnumMap) | ||
satyavvd | ok | ||
snarkyboojum | ask jnthn or someone.. could be a bug (I don't know enough) :) | 05:45 | |
satyavvd | yup ..Thanks | 05:46 | |
05:46
BrowserUk joined
05:49
yinyin joined
|
|||
[Coke] | anyone recall the git magic to make the old 'ng' branch the new 'master' ? | 05:55 | |
sorear | git checkout master; git reset --hard ng | 05:56 | |
dukeleto | [Coke]: git branch -M ng master | ||
05:59
hudnix left
06:01
eternaleye left
|
|||
[Coke] | dukeleto: what happens to master then? | 06:02 | |
(old master)? | |||
dukeleto | [Coke]: it goes into the ether, maybe not what you want | 06:04 | |
[Coke]: but you could do git branch -m master old_master beforehand | 06:05 | ||
06:05
frodwith left
06:06
uniejo joined
|
|||
[Coke] | dukeleto: eh. ether is prolly OK in this case. danke. | 06:06 | |
06:07
frodwith joined
06:18
eternaleye joined
06:19
Su-Shee joined
06:25
abhy joined
06:28
abhy left
06:35
justatheory left
06:45
xomas left
|
|||
moritz_ | good morning | 06:46 | |
06:46
viklund joined
06:47
frodwith left
|
|||
sorear | good morning moritz_ | 06:48 | |
moritz_ | installing Try::Tiny... | ||
BinGOs | There is no try there is only do. | 06:49 | |
sorear | really? | ||
BinGOs was throwing StarWars™ quotes around. | 06:50 | ||
sorear | Try::Tiny has been a Moose dependency for quite a while | ||
06:50
frodwith joined
|
|||
moritz_ | ouch | 06:52 | |
szabgab | is use v6; required by the specs ? currently rakudo can live without it | ||
moritz_ | I've tried to build a debian package for Try::Tiny | ||
and had the local::lib env variables lying around | |||
so it made a debian package that installed into /home/moritz/perl/ | 06:53 | ||
szabgab: "it depends" (more) | |||
szabgab: when the binary is called 'perl6', v6 is the default mode | |||
szabgab: but if the binary is called 'perl', v5 should be the default, and the 'use v6;' is required to enable Perl 6 mode | 06:54 | ||
szabgab | rakudo: my $x = 0; while ($x < 3) { say $x++ } | ||
p6eval | rakudo 18d996: OUTPUT«012» | ||
szabgab | rakudo: my $x = 0; while ($x < 3){ say $x++ } | ||
p6eval | rakudo 18d996: OUTPUT«===SORRY!===Missing block at line 11, near ""» | ||
szabgab | this is a parsing error right? | ||
moritz_ | yes | ||
without a space, the {...} is parsed as a postcircumfix | |||
the right thing to do is to omit the parens | 06:55 | ||
rakudo: my $x = 0; while $x < 3 { say $x++ } | |||
szabgab | oh, so it will never work that way? | ||
p6eval | rakudo 18d996: OUTPUT«012» | ||
moritz_ | right | ||
std: my $x = 0; while ($x < 3){ say $x++ } | |||
szabgab | ah | ||
p6eval | std 31074: OUTPUT«===SORRY!===Missing block (apparently gobbled by undeclared routine?) at /tmp/BjbKAwHt8k line 1 (EOF):------> my $x = 0; while ($x < 3){ say $x++ }⏏<EOL>Parse failedFAILED 00:01 111m» | ||
szabgab | ty | ||
moritz_ | you're welcome | ||
sorear: STD.pm build goes much further this time | 06:56 | ||
like, finished \o/ | |||
afk | 06:59 | ||
06:59
plobsing left
|
|||
Su-Shee | GNAGNA. COULD I PLEASE HAVE PERL6 NOW? this is a nuisance, this old stuff. | 07:16 | |
07:16
aindilis left
07:17
aindilis` joined
07:25
xomas_ joined,
xomas_ left,
xomas_ joined
07:41
clintongormley joined,
ejs joined
|
|||
pugssvn | r31075 | sorear++ | [viv] Start bringing _PATTERN under the DEEP framework, and implement combination of quantifiers with atom regexes. -2% STD.pm5 size | 07:45 | |
07:48
ejs left,
ejs joined
|
|||
sorear | TimToady: I'd love to optimize [ a | b ] into <[ a b ]>; could that be made to play nicely with LTM? | 07:49 | |
07:53
aindilis` left
07:57
wallberg joined
07:58
BrowserUk left,
zostay left
|
|||
szabgab | what is your suggested way to prompt for a value with a condition? my $val = prompt("Please give number below 50"); while $val >= 50 { $val = prompt("Please...") } | 07:59 | |
that has the same prompt twice | |||
07:59
zostay joined
08:00
dms joined
|
|||
szabgab | I guess: my $val; while not defined $val or $val >= 50 { $val = prompt("...") } | 08:00 | |
anything better ? | |||
mathw | Morning | ||
szabgab | gm | ||
08:01
dms left
|
|||
moritz_ | while my $val = promt(...) < 50 { ... } | 08:02 | |
while my $val = promt(...) < 50 { 1 } | |||
1 while (my $val = prompt(...)) < 50; | 08:04 | ||
szabgab | "Ask the user. If the answer is incorrect, ask again." | 08:05 | |
$val = prompt() while $val < 50; | |||
that's not even the right translation | 08:06 | ||
sorear | sub ask($sm, $prompt) { my $val; do { $val = prompt $prompt } until $val ~~ $sm; $val } | 08:07 | |
moritz_ | ask: my $val = prompt(); if $val < 50 { got ask }; | ||
s/got/goto/ | |||
j/k :-) | |||
sorear | ask * >= 50, "Enter a number over 50" | ||
moritz_ | rakudo: say prompt() | 08:08 | |
p6eval | rakudo 18d996: OUTPUT«No applicable candidates found to dispatch to for 'prompt'. Available candidates are::(Any $msg) in main program body at line 11:/tmp/utKUl1Z0j4» | ||
moritz_ | rakudo: say prompt('') | ||
p6eval | rakudo 18d996: OUTPUT«Land der Berge, Land am Strome,» | ||
hejki | :D | ||
08:09
Snarkyboojum_ joined,
Snarkyboojum_ left
|
|||
moritz_ | rakudo: say $*IN.slurp.substr(0, 10) | 08:10 | |
p6eval | rakudo 18d996: OUTPUT«Land der B» | ||
pugssvn | r31076 | sorear++ | [viv] Combine regexes in sequence nodes | ||
sorear | is that the German national anthem? | ||
moritz_ | rakudo: say $*IN.slurp.comb.classify({$_}).sort({+.value}).batch(5).map({.key}) | 08:11 | |
sorear: Australian | |||
p6eval | rakudo 18d996: OUTPUT«Method 'batch' not found for invocant of class 'Parcel' in main program body at line 11:/tmp/KZgpvkWzA6» | ||
moritz_ | rakudo: say $*IN.slurp.comb.classify({$_}).sort({+.value}).[^5].map({.key}) | ||
p6eval | rakudo 18d996: OUTPUT«TZAÄD» | ||
moritz_ | sorear: erm, Austrian | 08:12 | |
close miss :-) | |||
rakudo: say $*IN.slurp.comb.classify({$_}).sort({-.value}).[^5].map({.key}) | |||
p6eval | rakudo 18d996: OUTPUT«e rin» | ||
08:13
JimmyZ joined
|
|||
JimmyZ | rakudo: &$foo; | 08:13 | |
p6eval | rakudo 18d996: OUTPUT«===SORRY!===Confused at line 11, near "&$foo;"» | ||
JimmyZ | known bug? | 08:15 | |
sorear | rakudo: $foo(); | ||
p6eval | rakudo 18d996: OUTPUT«===SORRY!===Symbol '$foo' not predeclared in <anonymous>» | ||
sorear | JimmyZ: syntactically invalid | ||
moritz_ | std: my $foo; &$foo | ||
p6eval | std 31075: OUTPUT«ok 00:01 108m» | ||
moritz_ | JimmyZ: I think it's known | ||
JimmyZ | moritz_: ok, ignore it :) | 08:16 | |
szabgab | rakudo: while my $val = prompt("num ") >= 10 {}; say $val; | 08:17 | |
p6eval | rakudo 18d996: OUTPUT«num 0» | ||
szabgab | that's not good as the second $val is not the same scope | 08:18 | |
moritz_ | it is | ||
in Perl 6 | |||
rakudo: while (my $val = prompt("num ")) ~~ /Strome/ {}; say $val; | 08:19 | ||
p6eval | rakudo 18d996: OUTPUT«num num Land der Äcker, Land der Dome,» | ||
szabgab | ok, maybe it is but I get 0 there | ||
no matter how hard I press the keyboard :-( | |||
moritz_ | yes, because $*IN doesn'T contain numbers | ||
(on p6eval at least) | |||
szabgab | rakudo: while my $num = 7 >= 10 {}; say $num; | 08:20 | |
p6eval | rakudo 18d996: OUTPUT«0» | ||
moritz_ | precedence | ||
szabgab | rakudo: while (my $num = 7) >= 10 {}; say $num; | ||
p6eval | rakudo 18d996: OUTPUT«7» | ||
szabgab | rakudo: while (my $num = 12) >= 10 {}; say $num; | 08:21 | |
ok I tripped it :-) | |||
p6eval | rakudo 18d996: ( no output ) | ||
moritz_ | no worries, it has a timeout | ||
szabgab | so I need the parentheses there I think, right? | ||
for the precedence | 08:22 | ||
moritz_ | right | ||
because comparisons are tighter than assignment | |||
08:24
Maddingue[work] joined
|
|||
szabgab | if I could write it my $num = prompt while $num >= 10; ... | 08:25 | |
rakudo: my $num = 7 while $num >= 10; say $num; | |||
p6eval | rakudo 18d996: OUTPUT«Use of uninitialized value in numeric contextAny()» | ||
szabgab | rakudo: my $num = 7 while not defined $num or $num >= 10; say $num; | 08:26 | |
p6eval | rakudo 18d996: OUTPUT«7» | ||
08:27
eternaleye left
|
|||
pugssvn | r31077 | moritz++ | [t/spec] unfudge some advent tests for rakudo | 08:31 | |
08:32
pmurias joined
|
|||
dalek | kudo: a1140cc | moritz++ | build/PARROT_REVISION: bump PARROT_REVISION to get latest nqp-rx fixes |
08:34 | |
08:37
eternaleye joined
08:40
dakkar joined
08:44
wallberg left
08:47
snarkyboojum left
|
|||
moritz_ | \o/ all JSON parsing tests pass agian | 08:48 | |
pugssvn | r31078 | sorear++ | [viv] Fix a bug which caused 345 unneccessary lazymaps in STD.pm5. (But only saves 15 seconds?) | 08:50 | |
08:52
meppl joined
08:53
snarkyboojum joined
|
|||
moritz_ | rakudo: 'a b c'.subst(/<alpha>/, -> $m { uc $m }, :g) | 08:54 | |
p6eval | rakudo a1140c: ( no output ) | ||
moritz_ | rakudo: say 'a b c'.subst(/<alpha>/, -> $m { uc $m }, :g) | ||
p6eval | rakudo a1140c: OUTPUT«A B C» | ||
sorear starts a NYTProf run over STD.pm6 and goes to sleep | 09:05 | ||
09:08
dju joined
|
|||
moritz_ | rakudo: say 'abc'.samemark('ö') | 09:08 | |
p6eval | rakudo a1140c: OUTPUT«Method 'samemark' not found for invocant of class 'Str' in main program body at line 11:/tmp/Uip9Zlpb4l» | ||
moritz_ | rakudo: Range ~~ Iterable | 09:18 | |
p6eval | rakudo a1140c: ( no output ) | ||
moritz_ | rakudo: say Range ~~ Iterable | ||
p6eval | rakudo a1140c: OUTPUT«1» | 09:19 | |
moritz_ | rakudo: say Positional ~~ Iterable | ||
p6eval | rakudo a1140c: OUTPUT«0» | ||
09:22
ispeak joined
09:32
pmurias left
09:38
ruoso joined
|
|||
snarkyboojum | hi moritz_ | 09:52 | |
someone noticed this today gist.github.com/423699, is it buggy or how things are supposed to work? | |||
moritz_ | snarkyboojum: I think it's ok (more) | 09:55 | |
snarkyboojum | ah ok - so only shows the first method in the role | 09:56 | |
moritz_ | snarkyboojum: because a role can't really inherit from a class... it can just pass on the inheritance rule to classes it's mixed into | ||
snarkyboojum | Mmm.. okydoke.. the real world example was Hash (it's a role that inherits from EnumMap) | ||
so inspecting Hash.^methods for example, only shows the methods in the Hash role | 09:57 | ||
moritz_ | rakudo: my @a = < a b c d e>; my @b = <X Y>; say @a Z @b xx * -> $a, $b { say "$a$b" } | ||
p6eval | rakudo a1140c: OUTPUT«===SORRY!===Confused at line 11, near "say @a Z @"» | ||
09:57
yinyin left,
masak joined
|
|||
moritz_ | rakudo: my @a = < a b c d e>; my @b = <X Y>; for @a Z @b xx * -> $a, $b { say "$a$b" } | 09:58 | |
p6eval | rakudo a1140c: OUTPUT«a_block60» | ||
snarkyboojum | rakudo: say Hash.^methods() | ||
moritz_ | rakudo: my @a = < a b c d e>; my @b = <X Y>; for @a Z (@b xx *) -> $a, $b { say "$a$b" } | ||
p6eval | rakudo a1140c: OUTPUT«listBoolpostcircumfix:<{ }>!STOREpushdelete!push_constructsort» | ||
rakudo a1140c: OUTPUT«a_block60» | |||
snarkyboojum | say Hash.new().^methods() | ||
moritz_ | snarkyboojum: that's less than awesome... maybe there should be class Hash too, and then introspection should be tricked into using the class variant | 09:59 | |
snarkyboojum | moritz_: yeah - something to show all the methods you'd expect to see when introspecting perhaps | ||
rakudo: say Hash.new().^methods() | |||
p6eval | rakudo a1140c: OUTPUT«postcircumfix:<{ }>BoollistpushdeletesortiteratornewIntNumvaluesperlCaptureofelemsinvertStrreversepostcircumfix:<{ | ||
..}>keyspairscontainsexistskvACCEPTSfmtsqrtsinasincoshsuccsignasinhacosechabsucceilingunpolarfloorsamecasesubstrasechordroundflipsplitmatchacoshacosecwordscotancosechata… | |||
moritz_ | that matches 'sexist' :-) | 10:00 | |
snarkyboojum | also matches a 'shaco', an anagram for 'chaos' | 10:02 | |
:P | |||
hejki | hehe :) | ||
snarkyboojum | I certainly never knew 'keyspairscontainssexists' | ||
hejki | contain sexist skv :) | ||
10:03
ive joined
|
|||
masak | oh hai, #perl6. | 10:04 | |
phenny | masak: 02 Jun 23:28Z <jnthn> tell masak I did hack up something for you that should be enough for encode, see example code at gist.github.com/423175 | ||
masak: 02 Jun 23:29Z <jnthn> tell masak it's in ya buf branch, btw. | |||
masak | jnthn: \o/ | ||
will look. | |||
snarkyboojum | hi masak o/ | ||
masak | hi. what a lovely day for some Perl 6 work. :) | ||
snarkyboojum | beautiful rainy night here :) | 10:05 | |
10:12
agentzh left
|
|||
mathw | masak: what a shame I have to do $day-job instead | 10:12 |