»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
cotto rakudo: 4..24.pick(*) 01:18
p6eval rakudo 405afa: ( no output )
cotto rakudo: 4..24.pick(*).say
p6eval rakudo 405afa: OUTPUT«24␤»
cotto rakudo: 4..24.pick(*).join(',').say
p6eval rakudo 405afa: OUTPUT«24␤»
cotto rakudo: (4..24).pick(*).join(',').say 01:24
p6eval rakudo 405afa: OUTPUT«5,9,18,13,7,6,23,8,24,22,12,15,4,10,11,20,14,16,17,21,19␤»
cotto goes off to find out if 24 is better in random order 01:25
ajs Curious if anyone has an improvement on my code at essays.ajs.com/2011/03/perl-6-for-f...owers.html -- I could golf it a bit, but that wasn't what I had in mind. 02:40
It's based on a python example that I wanted to play with a bit. 02:41
sorear ... is an unnecessarily big gun for this problem 02:50
using .. would be safer
I might write the loop as for 2 .. $lim X 2 .. $lim -> $a, $b {
line 10 possibly better written using Hash.push 02:51
the closure on sort is unnecessary; pairs sort by .key automatically 02:52
%powers := classify { .key ** .value }, (2 .. $lim X=> 2 .. $lim) # perhaps too golfy 02:56
sorear pokes ajs 02:59
ajs hey 03:23
I thought ... was supposed to be used for looping now? When did it change back? 03:24
PerlJam It never changed to begin with. 03:25
... is the sequence generator
ajs Yeah, sorear, those are certainly more idiomatic approaches, but I don't know how much they improve the code.
PerlJam .. is just a range op 03:26
ajs Oh, and I don't think you can use X because of the way you have to short circuit the inner loop
PerlJam, I know. But there was a time on this channel when people were pushing ... as the right solution for loop ranges. I think it was when we were having the range vs. sequence discussion re: characters and strings. 03:27
PerlJam I don't think it matters much in this case. They may end up being the same thing 03:29
(i.e. I think that $a ... $b turns into $a .. $b when it can)
ajs I'm sure it's all jitted down to some SSE instruction that gets pushed out to the GPU ;-) 03:30
ajs Actually, I might be wrong about "my Array %foo" 03:37
Would you be able to just push onto arbitrary indexes (e.g. %foo<blah>.push(0)) or is that goingt to fail because an undefined value of type Array is stored there? 03:38
sorear ajs: just use push %foo, blah => 0; 03:40
ajs I don't think that does the same thing 03:57
ajs The idea is you have an empty %foo. You want to add one element to the array at index "blah". In Perl 5: push @{$foo{blah}}, 0; 03:58
sorear rakudo: my %foo; push %foo, blah => 1; push %foo, blah => 2; say %foo.perl; # Now do you beleive me? 04:01
p6eval rakudo 405afa: OUTPUT«Method '!fill' not found for invocant of class ''␤ in 'List::push' at line 2907:CORE.setting␤ in main program body at line 22:/tmp/gc85QxsW3I␤»
sorear hmm
ajs no ;) 04:02
sorear rakudo: my %foo; %foo.push: blah => 1; %foo.push: blah => 2; say %foo.perl;
p6eval rakudo 405afa: OUTPUT«{}␤»
sorear it's absolutely specced to work.
PerlJam wow.
sorear I thought it worked in Rakudo
ajs that would be very keen
PerlJam so did I
mberends ajs++: nice blog 04:16
PerlJam rakudo: my %foo; %foo.push: 'blah' => 1; %foo.push: 'blah' => 2; say %foo.perl 05:17
p6eval rakudo 405afa: OUTPUT«{"blah" => [1, 2]}␤»
PerlJam sorear: it only seems to fail when you try to push a Pair that has an unquoted string on the LHS of the => 05:18
and with that ... I'm asleep
moritz_ good morning 06:30
fwiw Hash.push is not specced to work with named arguments 06:31
the signature in S32 just mentions *@values 06:32
dalek ecs: bb2a783 | moritz++ | S32-setting-library/Containers.pod:
[S32] typo or thinko in Hash.push signature
06:33
sorear oh! of course 06:36
good morning moritz_.
sorear out 06:44
moritz_ you witnessed: shift changeover in #perl6 :-) 06:45
the US slowly fades away, Europe slides into the sun's focus again 06:46
tadzik guten morgen #perl6 07:33
jdhore moritz_, ping 08:09
moritz_ jdhore: pong 08:10
jdhore moritz_, Do you think someone's going to take Release Manager for 2011.04 in the next ~2 weeks or should I just take it now (I want to give others a chance) 08:11
moritz_ jdhore: I'll ask around if anybody wants to do it 08:12
jdhore OK :)
moritz_ jdhore: it's great that you volunteer, I just want to keep the bus number high by diversivying 08:13
jdhore Exactly
moritz_ btw today I received the 3rd item of the p6cc price :-) 08:54
"winning ways for your mathematical plays"
so that I won't botch up a p4-like task in future :-)
only one book missing, but that's a pre-order
Su-Shee hello everyone! 08:58
moritz_ oh hai su shee
tadzik Su-Shee \o/ 09:01
Su-Shee so none of you had a journey to perl? :) -> twitter -> #myjourneytoperl :) 09:10
moritz_ had a journey to perl, but doesn't twitter 09:13
Su-Shee moritz_: it's a great announcement tool. 09:14
moritz_ I know. I should stop being so old-fashioned
Su-Shee moves moritz_' mouse over the "sign up" button. ;) 09:15
tadzik heh, I recently realized I'm some sort of an internet hipster, so if anything becomes too upstream I keep away from it. Like I'd never sign up to facebook
Su-Shee I'm a late early adopter. ;) 09:16
tadzik besides a false account I need for downloading music sheets sometimes, they often want "login with facebook"
Su-Shee I keep an eye on things and start when I actually see any value
moritz_ tadzik: I avoid facebook like the plague
Su-Shee after I realized that I could use twitter to get dates and appointments and events served easily, I made an account. 09:17
tadzik moritz_: same here
but that makes me think that if I ever get to microblogging, that'd be rather identi.ca, not twitter. Dunno why
Su-Shee tadzik: I don't think it's really about microblogging. well not within the geek community anyways. I see mostly links to docs, articles, short opinions, events etc 09:18
moritz_ Su-Shee: you've just given a good defintion of micro blogging :-) 09:19
tadzik yeah, 140 chars is to little for anyblogging :)
Su-Shee and there's the marketing aspect of course. announcements spread very nicely via twitter.
moritz_ ok, registered as 'nogoodnickleft' 09:22
tadzik I wonder if tadzik is taken 09:23
Su-Shee moritz_: *haha* nice one :)
tadzik username has already been taken. What a ....
moritz_ all my usual ones were taken already
even "perlgeek"
Su-Shee tadzik: that happens with 10 million people. I didn't get Su-Shee as well and had to go for my alternate sheeshee
moritz_ is happy he was an early github adopter, and got his usual nick there 09:24
tadzik see? Too mainstream! Even for tadzik!
tadzik oh, our kids will have serious problems 09:30
moritz_ no, they'll just use new services 09:31
do you really expect twitter to still be mainstream in 12 years?
Su-Shee of course not. I have yet to see _any_ "social web" thingie which isn't out of fashion after 5 years. 09:34
Su-Shee (kuro5hin, oloh, advogato, orkut...) 09:34
moritz_ myspace! 09:35
Su-Shee dropped rapidly indeed.
lifejournal.
moritz_ was there a social network before myspace?
Su-Shee hm, if you count slashdot? 09:36
moritz_ that was never social :-) 09:37
Su-Shee harhar :)
tadzik (: 09:44
pmurias sorear: ping 13:38
dalek kudo: 4bf1327 | perlpilot++ | docs/release_guide.pod:
Claim April release
13:46
moritz_ PerlJam++
sorear pmurias: hi 14:04
good * #perl6 14:05
moritz_ good morning sorear
PerlJam buenos dias 14:06
sorear: I bet that Hash.push problem is relatively LHF (though I haven't really looked at it myself) 14:07
rakudo: my %h; %h.push: a => 1; say %h.perl;
p6eval rakudo 405afa: OUTPUT«{}␤»
PerlJam rakudo: my %h; %h.push: 'a' => 1; say %h.perl;
p6eval rakudo 405afa: OUTPUT«{"a" => 1}␤»
moritz_ PerlJam: it's spec, not LHF 14:08
PerlJam oh? That's odd. 14:09
moritz_ a => 1 is a named parameter to push()
'a' => 1 is a pair that's passed as a positional parameter
the spec says *@values, which catches the latter but not the former
PerlJam The devil is always in the details 14:10
moritz___
er, moritz_++
moritz_ it would be a LHF to change, but requires concious decision 14:10
also note that the use of named arguments would lead to weird behavior 14:11
%h.push: 'a' => 1, a => 2, 'a' => 3; # now, what's the order of %h<a> ?
a naive implementation would produce either 1, 3, 2 or 2, 1, 3 14:12
pmurias sorear: would finishing the lisp backend be a good gsoc project? 14:18
sorear: hi
sorear PerlJam: I now beleive there is no problem. 14:25
pmurias: I doubt it
pmurias sorear: why? 14:26
not usefull enought?
or too small/big?
sorear that's what I'm thinking, not useful widely enough 14:26
moritz_ let's play the devil's advocate: what are the benefits for the perl (6) community at large?
pmurias moritz_: adds a secondary backend to niecza targeting something largely different then .net removing showing .net specificness in niecza 14:48
moritz_ pmurias: that in itself doesn't sound like a benefit for the perl community 14:48
then we know that $feature is .NET specific - so what? 14:49
pmurias moritz_: it's a backend we can expect good performance of as common lisps (like sbcl) offer good performance for a similiar language
PerlJam We get the benefit of all of these years of people hacking on lisp compilers. 14:51
moritz_ what does that mean? faster execution?
pmurias yes
moritz_ now *that's* something you can write in such a proposal 14:52
sorear out 14:53
pmurias moritz_: re if .net specific stuff is found in niecza i would make it more generall 15:15
moritz_ pmurias: that's still no benefit for the perl 6 community at large 15:16
pmurias: think in terms of "what does the user of your compiler care about?"
pmurias what the sbcl backend would over is hopefully reasonably good performance 15:18
but it's not a sure thing before it's done
s/over/offer 15:19
PerlJam pmurias: is there anything that having yet another Perl 6 backend intrinsically buys us? (other than the hopeful performance boost)
moritz_ integration with the vast landscape of lisp libraries? dunno if that exists... 15:20
PerlJam portability to more systems? 15:21
moritz_ I was about to say "it makes it easier to add more backends", but then the question is recursively "what do more backends buy us?" 15:22
PerlJam access to some lispian technology that would greatly benefit us?
PerlJam Is there a bootstrap path that if it involved lisp would obtain us an epic win? :) 15:24
TimToady rewrite emacs in Perl 6? 15:25
moritz_ now I'm scared.
TimToady oops, one day too early
PerlJam heh
TimToady hmm 15:26
flussence wonders if I could write a php grammar in 24 hours...
PerlJam flussence: isn't the grammar already out there somewhere? 15:27
TimToady php's grammar is written in lisp?!?
maybe we can work Paul Graham in there somewhere... 15:28
PerlJam TimToady: for an AFJ? Sure. :) 15:29
TimToady personally, I think a Haskell backend might be more useful than a Lisp backend :)
you just have to write a CheatAllOverThePlace monad 15:30
poincare101 'perl6: say3:' 15:46
perl6: say3;
perl6: say 3; 15:47
sbp rakudo: say 3
p6eval niecza v4: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'say3' used at line Any()1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 387 (CORE die @ 2)␤ at /home/p6eval/niecza/src/STD.pm6 line 1141 (STD P6.comp_unit @ 75)␤ at
../home/p6eval/niecza…
..pugs: OUTPUT«*** No such subroutine: "&say3"␤ at /tmp/V5hXz43kDc line 1, column 1-5␤»
..rakudo 4bf132: OUTPUT«Could not find sub &say3␤ in main program body at line 22:/tmp/JhqcDX0V5d␤»
pugs, rakudo 4bf132, niecza v4: OUTPUT«3␤»
rakudo 4bf132: OUTPUT«3␤»
poincare101 rakdu say "hi!";
rakudo: say "hi!";
p6eval rakudo 4bf132: OUTPUT«hi!␤»
poincare101 that's exciting.
moritz_ rakudo: say 'patience, spelling :-)'
p6eval rakudo 4bf132: OUTPUT«patience, spelling :-)␤»
poincare101 moritz_: :) 15:48
TimToady
.oO(you ain't seen nuthin')
moritz_ rakudo: say [*] 1..6
p6eval rakudo 4bf132: OUTPUT«720␤»
moritz_ commute&
poincare101 I don't wanna write any more PHP, get on with Perl 6 please.
moritz_: WHOA
moritz_: that's like map in Haskell
sbp rakudo: my @ips = ((0..255).roll(4).join('.')for 0..99); .say for @ips.sort: { .&naturally };
p6eval rakudo 4bf132: OUTPUT«Could not find sub &naturally␤ in <anon> at line 22:/tmp/JSBglHth8g␤ in 'List::sort' at line 1␤ in main program body at line 22:/tmp/JSBglHth8g␤» 15:49
TimToady poincare101: it's a fold
sbp rakudo: sub naturally ($a) { $a.lc.subst(/(\d+)/, -> $/ { 0 ~ $0.chars.chr ~ $0 }, :g) ~ "\x0" ~ $a }; my @ips = ((0..255).roll(4).join('.')for 0..99); .say for @ips.sort: { .&naturally };
poincare101 TimToady: That's exciting. Again.
p6eval rakudo 4bf132: OUTPUT«(timeout)»
sbp rakudo: my @random-nums = (1..100).pick(*); my @odds-squared <== sort <== map { $_ ** 2 } <== grep { $_ % 2 } <== @random-nums; say ~@odds-squared; 15:51
p6eval rakudo 4bf132: OUTPUT«1 9 25 49 81 121 169 225 289 361 441 529 625 729 841 961 1089 1225 1369 1521 1681 1849 2025 2209 2401 2601 2809 3025 3249 3481 3721 3969 4225 4489 4761 5041 5329 5625 5929 6241 6561 6889 7225 7569 7921 8281 8649 9025 9409 9801␤»
sbp rakudo: my @d10 = 1 ... 10; my @scores = (@d10 X+ @d10) X+ @d10; say @scores.perl; 15:53
p6eval rakudo 4bf132: OUTPUT«[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 10, 11, 12, 13, 14, 15,
..16, 1…
sbp rakudo: my @powers-of-two := 1, 2, 4 ... *; say @powers-of-two[^10].perl; 15:54
p6eval rakudo 4bf132: OUTPUT«(1, 2, 4, 8, 16, 32, 64, 128, 256, 512)␤»
flussence hm, google doesn't turn up any results for a php grammar...
donri Guys I quite like ==> but find it weird to have it end with the "my @foo", and to start with an assignment has weird precedence, requiring parenthesis. 15:55
Can't we change that?
sbp rakudo: my @Fibonacci := 0, 1, * + * ... *; say (@Fibonacci ...^ * > 10000).perl;
p6eval rakudo 4bf132: OUTPUT«(0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765)␤»
PerlJam flussence: www.icosaedro.it/articoli/php-syntax-ebnf.txt
tadzik flussence: trac.parrot.org/parrot/wiki/Languages
donri And similarly allow assignment with <==
tadzik there is a PHP implementation
PerlJam flussence: svn.php.net/repository/php/php-src/...e_parser.y 15:56
flussence: code.google.com/p/phpparser/source/...mmar/Php.g
flussence: all of those could be used as a starting poitn.
TimToady donri: I don't follow you at all, but maybe it's because I've only had half a pot of coffee... 15:57
sbp rakudo: my @random-stuff := 1, 3, 4, 7 ... *; say @random-stuff[^10].perl
p6eval rakudo 4bf132: OUTPUT«Method 'count' not found for invocant of class 'Failure'␤ in <anon> at line 861:CORE.setting␤ in 'List::at_pos' at line 1␤ in 'Any::postcircumfix:<[ ]>' at line 1808:CORE.setting␤ in <anon> at line 1␤ in 'Any::postcircumfix:<[ ]>' at line 1␤ in main program body at line
..1␤»
sbp — via jasondavies. is a bug?
flussence the BNF thing looks like something I can understand... I might try this.
tadzik: seems like it's dead :(
donri TimToady: "my @foo = @bar ==> grep stuff" will assign @bar, not the grepped result, i think
sbp in Soviet Perl6, @bar ==> grep stuff = @foo, my! 15:58
TimToady well, yes, sometimes you have to use parens to do unnatural precedence
donri but why is it unnatural?
TimToady there's no way to arrange a precedence table so that never happens 15:59
donri why doesn't assignment have the lowest precedence
TimToady feeds are "pipes" in a Unixy sense, and have to be very "heavy"
they're really intended for inter-thread use
PerlJam donri: just put my @foo on the other end and be happy :) 16:00
donri PerlJam: but that reads weird
PerlJam donri: read it to me.
donri mainly i'm curious if this behavior is a result of puristic idealism, or because of technical reasons, or just NYI 16:01
donri or if it's actually useful in ways i haven't understood 16:02
dalek ecs: b1878bf | larry++ | S03-operators.pod:
dig out a precedence fossil

List assignment is looser than list infix, not just looser than comma.
16:08
TimToady feed operators are heavier than assignment operators, in part because they make promises about lack of side effects between threads, and because they're really message queues, which are intended to connect larger chunks of code than assignment typically does 16:12
TimToady they have larger names to indicate their greater weight too 16:13
they may also end up getting used for file IO 16:15
generator() ==>> io("filename") or some such
or more generally, allow channel targets a la Go 16:16
in the limit, some feed operators might be implemented by forking and using a real pipe 16:17
(or shared memory so you don't have to marshall/demarshall) 16:18
donri alright thanks :) 16:19
TimToady the prec table is in S03 if you're interested 16:20
feed operators are the loosest infix there is 16:21
(but note that rakudo only partially implements feed ops yet; the precedence is according to spec, though, afaik) 16:22
PerlJam I don't know ... semi-colons look infix to me ;)
TimToady sometimes they are :) 16:23
in any case, precedence table design is both a science and an art 16:24
we can give lots of reasons, but the overall reason is "it feels about right"
moritz_ it's often "so that $common_used_construct DWYM" 16:25
PerlJam TimToady: you should write a book called "The Art of Programming Language Design" ala Knuth :-) 16:26
Just don't take 40 years to finish it.
FSVO finish
moritz_ it'll never be finished, of course :-)
Eevee isn't that what Perl 6 is
"if you want to design a programming language, make this one" 16:27
TimToady well, depends on whether you want your language to be the universal root of all other languages...
PerlJam Eevee: Except TMTOWTDI and context is important. (all very perly lessons)
moritz_ there's still much room for designing special purpose language
[particle] writing a book on designing arabic? 16:28
moritz_ "optimized for poetry"
PerlJam I once asked Jon Bentley if he were going to update "More Programming Pearls" and in his response he indicated that languages like Perl have largely made the whole "little languages" idea obsolete. He couldn't have been more wrong. 16:29
pmurias moritz_: what about adding ...:from<C#> or use ...:from<perl5> to niecza 16:35
?
moritz_ pmurias: works for me 16:37
pmurias: I would also accept the lisp backend for niecza as a GSOC project, you just have to be very careful to forumlate the benefits for the community
whatever you do, remember that the majority of mentors who review your proposal are p5 hackers, so don't assume any domain knowledge 16:38
TimToady once you're done with it, all you have to do is invert the process to come up with a lisp-to-perl6 translator :) 16:47
takadonet hey all 17:17
pmurias TimToady: so the plan would be to bait lisp hackers with our pretty syntax and use the lisp-to-perl6 translator to allow them to switch their code over? ;) 17:18
PerlJam lisp people are clearly not swayed by pretty syntax. 17:19
cxreg or fearful of punctuation 17:21
TimToady just call it a fancy macro processor and they should eat it up 17:25
tadzik hello 17:26
my today's idea: one can measure docs coverage by counting how many ^methods have their .WHY 17:27
takadonet tadzik: i like
masak oh hai zebras! 17:35
phenny masak: 30 Mar 23:00Z <sorear> tell masak STD has issues with nested subs; it generates spurious warnings. However it DID come up ok.
masak indeed :)
STD is generally so good that I'm always a little disappointed when it isn't perfect.
tadzik hey masak 17:36
masak tadzik: hey 17:44
kostja_osipov: hi! welcome.
takadonet how can you determine if a Class is already loaded? 17:46
moritz_ rakudo: use Test; say %*INC.perl 17:47
p6eval rakudo 4bf132: OUTPUT«undef␤»
moritz_ hm
I think there's a variable that holds the loaded modules
masak .perl shouldn't say 'undef'
moritz_ digging through the rakudo source should give an answer
masak: right 17:48
takadonet I have a list of objects and I don't want to load all of them since most of the time most will not be used
tadzik there should be no undef anywhere, should it?
masak tadzik: correct. 17:49
moritz_ rakudo: say keys %Perl6::Module::Loader::Loaded 17:50
p6eval rakudo 4bf132: OUTPUT«Null PMC access in isa()␤ in main program body at line 22:/tmp/Alr0qxiUAC␤»
moritz_ rakudo: say %Perl6::Module::Loader::Loaded.PARROT
p6eval rakudo 4bf132: OUTPUT«Null PMC access in find_method('PARROT')␤ in main program body at line 2:/tmp/9m52ufksHj␤»
moritz_ rakudo: say %Perl6::Module::Loader::LOADED.PARROT
p6eval rakudo 4bf132: OUTPUT«Null PMC access in find_method('PARROT')␤ in main program body at line 2:/tmp/SS7tvdNnGz␤»
moritz_ rakudo: say %Perl6::Module::Loader::LOADED 17:51
p6eval rakudo 4bf132: OUTPUT«Null PMC access in type()␤ in main program body at line 22:/tmp/BykO43DIJh␤»
moritz_ it's class Perl6::Module::Loader;
our %LOADED;
dalek d: a105156 | larry++ | STD.pm6:
don't complain about unused 'our' declarations
18:02
masak \o/ 18:10
sjohnson yo
masak.excited
masak Bool::True 18:11
sjohnson heh 18:14
masak pop quiz: which Perl 6 implementation do you think will be the first to implement Bool as an enum? 18:33
tadzik yapsi 18:35
colomon pugs? 18:38
tadzik "will be" :)
TimToady perl6: my $x = Bool::False; $x++; say $x 18:40
p6eval rakudo 4bf132, niecza v4: OUTPUT«Bool::True␤»
..pugs: OUTPUT«1␤»
sjohnson *gasp*
perl6: my $x = Bool::False; $x++; $x++; say $x
p6eval rakudo 4bf132, niecza v4: OUTPUT«Bool::True␤» 18:41
..pugs: OUTPUT«2␤»
colomon pugs--
tadzik . o O ( pugs: OUTPUT«2» )
blah, I failed a joke
. o O ( pugs: OUTPUT«1» )
patrickas sbp: still here ? 19:06
masak making Bool an enum is challenging because Bool is usually a low-level concept (involved in 'if' and 'while' constructs, for example), while enums build on quite a number of things and is high-level. 19:07
patrickas I am not sure how to best handle the issue you reported with the sequence op in the backlog. Currently in your case the sequence op is "fail"ing with a message. 19:08
rakudo: use fatal; my @random-stuff := 1, 3, 4, 7 ... *; say @random-stuff[^10].perl
p6eval rakudo 4bf132: OUTPUT«Unable to figure out pattern of series␤ in 'get-next-closure' at line 1␤ in <anon> at line 860:CORE.setting␤ in 'List::at_pos' at line 1␤ in 'Any::postcircumfix:<[ ]>' at line 1808:CORE.setting␤ in <anon> at line 1␤ in 'Any::postcircumfix:<[ ]>' at line 1␤ in main
..program bo…
patrickas Oh and hello all :-) 19:09
tadzik hello patrickas 19:10
masak hi patrickas
tadzik patrickas: you're the Gentoo guy, aren't you?
sbp patrickas: I am, hello
patrickas tadzik no I am not! But I sure look like him!
tadzik is confused
sbp the use fatal message is certainly much more helpful 19:11
tadzik yeah, you're the rakudo maintainer :)
sbp I wonder if there's any way to make the message sans use fatal more helpful?
patrickas actually maybe someone can help .. is that the right way to handle failure inside the sequence op in the first place? 19:11
tadzik patrickas: you might want to take a look at github.com/tadzik/gmpup I'm looking for Gentooers' feedback on this one 19:12
patrickas tadzik: I am even more confused! I am not the Gentoo guy nor have I ever been! :-(
tadzik hrm, weird. Must've mistaken you for somebody else then, nevermind :) 19:13
patrickas tadzik: hence the silly failed joke of me looking like him :-)
tadzik now I get it :)
it's a Patrick too, this guy, I thought that was you :) 19:14
sbp patrickas: I don't really understand why the Failure that you get when you consume the dodgy sequence isn't reported, but passed along as an object to try to get .count on 19:14
surely it'd be better for it to choke on the Failure?
sbp I understand at least that the Failure isn't arising in the first statement because it's a lazy expansion 19:15
patrickas sbp: beats me ... All I did was fail "error message" thinking that was the right thing to do 19:16
patrickas maybe someone will read backlog and help us out. I'll check the log later and if someone suggests a better way, I can implement any changes to the way the seq op fails. 19:22
bye all o/ 19:23
masak er. 19:23
1, 3, 4, 7 ...
I'm not sure I see the bug. 19:24
there's no obvious next number there.
PerlJam maybe it should have been 1, 2, 4 ,7 ? 19:25
PerlJam (or someone could enlighten me what the pattern in the original sequence is) 19:25
masak even 1, 2, 4, 7 wouldn't have an obvious next number, by the narrow definition of "obvious next number" used in the spec. 19:27
there are two types of sequence supported natively: arithmetic, and geometric.
1, 2, 4, 7 is a nice start of some other type of sequence. :) 19:28
Su-Shee 1+3 is 4, 3+4 is 7 so the next number is 11. (4+7)
masak not without a closure giving that rule.
PerlJam What?!? you mean sequences aren't magical?
;)
masak yes, just not as magical as you seem to like :) 19:29
"Perl 6: the madn^H^H^H^Hmagic only goes so far"
Su-Shee pft. closure schmosure. if I see the next number with my own eyes.. :) 19:30
masak it would be nice to see an API in the spec for providing user-defined "sequence guessers", perhaps through clever use of multis or sump'n. 19:31
or we could let clever module developers handle that bit, that's OK too.
colomon Seems to me in the old days, if you couldn't determine that a sequence was arithmetic or geometric, you just made the generating function *.succ (or maybe *.pred if the right-hand-side was less than the left-hand-side). Seems weird that the spec now says nothing about what is done. 19:56
masak arguably giving a loud error message is a better failure mode than just guessing that a weird enough sequence suddenly proceeds by steps of one, though. 20:00
could be argued either way, I guess.
Util +1 for loud error message 20:04
PerlJam what about some standard $*SEQUENCE_GUESSER as a fallback? (which would carp loudly by default) 20:05
or, how is the user to modify the sequence guessing algorithm? monkey patching?
masak again mumbles about someone providing a fantastic module for this... 20:06
Perl 6 is insanely pluggable. we don't need to provide everything out of the box.
the best we can do going forward is focus, not generalize... :)
"The core should be as big as is convenient, but no bigger." :P 20:08
PerlJam masak: so ... how is someone to write such a module? 20:08
TimToady um, all you need is an inner lexical scope defining infix:<...>
masak and the existing ones need to at least gracefully receive a &nextsame 20:09
which I guess they do. 20:10
TimToady there's a reason the current language is defined *lexically*, not by any ISA chain
colomon isn't that reversed, though?
if you use nextsame, then you have to figure out whether or not to call the existing infix:<...> 20:11
ideally for what we've been talking about, you want yours called only if the existing one doesn't find a solution.
masak colomon: I was thinking that the new multi would get first dibs at looking for matches, it being the newest addition. if it doesn't it just lets the sequence through. 20:12
colomon: nicely enough, that works even if someone did it in a scope between yours and the setting.
Util If the native perl6 ... will throw an exception that the lexical ... will catch, then the lexical ... can just pass everything through to the native, and if an exception is raised, either do its magic DWIM or propogate the exception upwards. 20:13
colomon Util: true 20:14
masak Util: I read your message as having a lot of pauses, and had to re-read it. :P 20:15
masak Util: why aren't you using our very nice infix:<...> syntax? :) 20:15
not that I'm forcing you. but it would make you look a lot less hesitant. 20:16
flussence
.oO( I tend to use markdown's ``s in normal text for that sort of thing )
20:16
masak Pod's C<...> would be fine too. 20:20
awww. I feel very stereotypical as a programmer, kvetching about people's lack of use-versus-mention distinction. :/
ok, general task for people: (1) there was a nice email to p6c or p6l some years ago. I don't remember who wrote it, but I remember it had a long list of the S28/S32 functions/methods, and it considered/commented the naming of all the parameters. could you help me locate this message? 20:21
(2) it would be very nice to act on the message in some way. maybe simply commit some of the suggested improvements to the spec, or submit RT tickets if they require some discussion? 20:22
moritz_ iirc it was a nopaste here on #perl6 20:29
and it expired when I came back to it later
masak awww :(
moritz_: who made it?
moritz_ I don't remember 20:30
PerlJam masak: ask on p6l and maybe whoever it is will come out of the woodwork 20:31
masak kostja_osipov1: Добро пожаловать :)
PerlJam++: good idea.
masak does that
masak mail sent. 20:35
patrickas back for a while! 20:41
masak: I was not questioning if the sequence should try to guess the next number, it was should it complain louder 20:43
masak patrickas: "Unable to figure out pattern of series" 20:44
that's the error.
patrickas here is the context
spb reported
rakudo: my @random-stuff := 1, 3, 4, 7 ... *; say @random-stuff[^10].perl
p6eval rakudo 4bf132: OUTPUT«Method 'count' not found for invocant of class 'Failure'␤ in <anon> at line 861:CORE.setting␤ in 'List::at_pos' at line 1␤ in 'Any::postcircumfix:<[ ]>' at line 1808:CORE.setting␤ in <anon> at line 1␤ in 'Any::postcircumfix:<[ ]>' at line 1␤ in main program body at line 20:45
..1␤»
patrickas I replied with
rakudo: use fatal; my @random-stuff := 1, 3, 4, 7 ... *; say @random-stuff[^10].perl
p6eval rakudo 4bf132: OUTPUT«Unable to figure out pattern of series␤ in 'get-next-closure' at line 1␤ in <anon> at line 860:CORE.setting␤ in 'List::at_pos' at line 1␤ in 'Any::postcircumfix:<[ ]>' at line 1808:CORE.setting␤ in <anon> at line 1␤ in 'Any::postcircumfix:<[ ]>' at line 1␤ in main
..program bo…
patrickas that's what I mean by louder ... unless you "use fatal" you have no idea what went wrong
masak huh.
masak didn't even know Rakudo had 'use fatal' already 20:46
yes, that one should definitely complain louder.
masak submits rakudobug
Tene masak: Yes, I implemented it. :) 20:47
The exceptions system isn't quite right, but it's a ways down on my list right now. :(
I wish I had more time. :(
masak me too :( 20:48
hugme: hug me
hugme hugs masak
masak hugme: hug Tene too
hugme hugs Tene
masak oh, and Tene++ for implementing 'use fatal' :) 20:50
patrickas ok then ... that's settled, /me disapears again in a puff of smoke
Tene masak: "use fatal" == 'my $*FATAL = Bool::True;'
Tene similarly 'no fatal' 20:50
masak Tene: I don't care if it was trivial. you implemented it -- kudos :) 20:52
Tene 'k
masak I wish more people would pick LHF like that. not just in the Perl 6 world, but generally in software. 20:53
we need more _why-like people, who see opportunities and paint the world in joyous colors. :)
Tene I wish I could find sysadmins looking for work. 20:54
masak I've been thinking of color pickers lately, by the way. and how basically all of them suck.
Tene I think I like your wish a bit better, though.
masak a color picker shouldn't be based on RGB or even HSL. 20:55
it should be based on how the brain thinks about color.
Eevee Lab? 20:56
masak and the fact that all we have... in 2011... is mostly the boring old dull color pickers, is that people aren't _why-like enough to rise up and throw out crap and replace it with decent stuff.
flussence Pixel.new(pear => 0.8, beige => 0.2) ?
Eevee (fwiw HSL is how *I* think about color; RGB and HSV are foreign languages)
masak HSL is a good step up if all you have is RGB. 20:57
but I'm talking about something much more brain-friendly than just the right triplet model.
tadzik when/where is Tene's use fatal? 20:58
Tene masak: mypaint has a colour picker I haven't seen before in its "colour changer" tool. 20:58
masak take flussence's idea, for example. why can't I write "pear" and get a pear-toned color in my color picker?
why do I have to pick individual colors? why can't I pick them in matching threes or fours? why can't I set whole color themes all in one swoop? 20:59
Tene tadzik: src/Perl6/Actions.pm, Jan 3 2010
masak there's von Neumann bottleneck involved in color pickers. :)
Tene tadzik: 4456d81dc9c1551a867d58d22c011c977298e537
masak hugme: hug git
hugme hugs git
tadzik oh, I wasn't a Perl6er by then :) 21:00
Tene Haha, looking at my commit history in rakudo, it's mostly silly LHF. :) 21:01
masak same here.
tadzik same here :)
benabik People taking care of LHF is how stuff gets done.
masak many small brooks... 21:02
benabik (You need a few people on ladders, but there's an awful lot of fruit at the bottom.)
flussence masak, you might like this then: colorschemedesigner.com/
masak flussence: yess! 21:03
flussence: but give me that in Gimp, in Inkscape, in OpenOffice. not just as a webapp. this is how it should look, always.
but yes, that's exactly what I have in mind when I think "better". 21:04
Tene masak: One of the other color pickers in mypaint has it.
They've got like... five?
flussence there's also a Color::Scheme on CPAN, which afaik is exactly this thing without the GUI part
masak falls in love with colorschemedesigner.com/ 21:05
I should pick up Gimp or Inkscape and try to patch something like this in. see if they accept it. 21:06
Tene mypaint.intilinux.com/ -- open-source digital painting program; I wish I had known about it back when I would have actually used it. 21:07
flussence I think Gimp has plugin-able colour widgets, even
masak 'night, #perl6. 21:45
TimToady um, implementing 'use fatal' with a dynamic variable would be incorrect, since pragmas are supposed to be lexically scoped... 21:55
Tene TimToady: The commit message clearly says that it's an incorrect implementation. 21:56
TimToady nod
TimToady just checking... 21:56
sjohnson la la la 22:29