»ö« 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! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
diakopter hello, world 07:34
sorear Hello.
nymacro hallo 07:37
masak morning, #perl6 08:22
jnthn lolitsmasak!
masak and lol, it's breakfast! 08:23
jnthn \o/
Trashlord sure is 08:24
colomon \o
sorear hi maska! 08:25
diakopter wants breakfast at 1:30 a.m. 08:34
dukeleto likes breakfast Any time
dalek rixel: ddfc90e | diakopter++ | sprixel/ (4 files):
refactor the framebuilder to copy the framechain on

Lots of cleanup/documentation of that routine.
sorear "copy" the framechain? 08:36
I never considered such a thing
dukeleto has anyone considered making something like hoogle for perl 6? 08:43
diakopter googles hoogle 08:44
dukeleto diakopter: it basically is a search engine of haskell function signatures 08:45
diakopter so I see.
dukeleto diakopter: you give it a signature, it shows you all function that have that signature
diakopter it's neat
mathw Morning 08:46
sorear oh yeah hoogle. I remember laughing at ndm when he proposed that and calling it useless.
mathw dukeleto: I always get confused - Hayoo is not the same as Hoogle, is it? (useful though)
diakopter sorear: yeah, copying the framechain instead of doing traversals on every load/store of a local/arg. 08:47
sorear diakopter: Have you considered using a display? 08:48
diakopter sorear: maybe, you'll have to help me out with your CS terminology 08:49
dukeleto mathw: nope, hadn't seen that. very similar though
masak dukeleto: been wanting to explore the idea of a Perl 6 hoogle, but haven't actually done so. 08:51
masak as with everything else, starting small and getting something to work quickly is probably the ticket. 08:51
dukeleto masak: it could be a useful interface to the periodic chart of operators 08:52
diakopter sorear: ok, I read about them some.. how is the framechain not already a display? 08:53
sorear because it's a chain
masak dukeleto: here's where I muse about it last time: irclog.perlgeek.de/perl6/2010-09-12#i_2816117
sorear a display is a compromise implementation 08:54
diakopter sorear: it's only a chain conceptually. it's implemented as a hidden class with a slot for each outer frame.
diakopter sorear: basically an array of pointers 08:54
sorear diakopter: so frame.outer5.field?
diakopter right.
sorear that's called ... a display 08:55
diakopter oh goody.
hence my question :)
dukeleto masak: a perl 6 hoogle is indeed a great idea. I will think about how to get a small but usuable version implemented. 08:57
masak ++dukeleto
jnthn Can easily parse out all the siggies using the Perl 6 grammar with custom akshun methods. 09:02
masak I wonder how much post-processing will need to be made. 09:03
there's also the tricky question of expectations versus reality.
if I enter 'Str --> Array', for example, I might expect &split to fall out. but &split is more like 'Cool, Cool --> List' 09:04
dukeleto masak: i guess a search filter can be strict or transitive, or some other fancy word 09:12
masak this is just a guess, but it probably needs to be non-strict in two ways: 09:17
(1) allowing for more parameters in the result than in the search (Hoogle already does that) 09:18
(2) applying some type fudging so that people typing in 'Array' get 'List' results, and people tying in 'Str' get 'Cool' results as well
results can be sorted according to some metric of how much fudging of different kinds was needed. 09:19
sorear rakudo: role Stop[$str] { method stop { $str } }; (2 but Stop["hi"]).stop.say 09:34
p6eval rakudo 970243: OUTPUT«hi␤» 09:35
sorear out 09:51
mathw sits, quietly hating subversion 10:15
cxreg parrot? 10:21
moritz_ good localtime 10:45
takadonet morning all 11:54
masak this seems to have been @gotofritz' reaction: twitter.com/gotofritz/status/26733215026 11:59
and more from @sixohsix: twitter.com/sixohsix/status/26733732601
jnthn ...waiting? Nah, I'm patching. 12:01
Idiot.
masak :)
yeah, I don't feel like replying any more.
jnthn
.oO( I'm patchin', not bitchin' )
12:02
masak we're "touchy" about people disseminating lies about Perl 6? fair enough.
rjbs It would be nice to have so much free time that I could waste it on bashing projects I don't care about. 12:03
...but I'd probably use that time for reading a book instead.
jnthn I find people who prefer to tear other people's work down rather than do something creative just rather sad. 12:04
masak I guess it underlies the mechanics behind trolling. easier to get reactions from people by being a jerk. 12:05
there's also a thin line between being actively mean and just being misinformed. it's easy to forget from within the echo chamber how little is known about Perl 6 on the outside. 12:19
moritz_ rakudo: sub f { 1, 2, 4}; .say for f 12:29
p6eval rakudo 970243: OUTPUT«1␤2␤4␤»
moritz_ rakudo: sub f { 1, 2, 4}; .say for my $ = f
p6eval rakudo 970243: OUTPUT«1 2 4␤»
moritz_ rakudo: sub f { 1, 2, 4}; .say for (my $ = f).list 12:30
p6eval rakudo 970243: OUTPUT«1␤2␤4␤»
masak rakudo: sub f { 1, 2, 4}; .say for $(f) 12:31
p6eval rakudo 970243: OUTPUT«1␤2␤4␤»
masak hm.
that's the first one I consider wrong.
moritz_ wonders if m:g/x/ really desugars to do { $/ = $_.match(/x/, :g); $/.list }
masak: agreed
masak submits rakudobug
jnthn rakudo: sub f { 1, 2, 4}; .say for f.item 12:32
p6eval rakudo 970243: OUTPUT«1␤2␤4␤»
masak that one too.
jnthn same issue
$(...) calls .item
masak *nod*
moritz_ rakudo: say (my $ = (1, 2, 3)).PARROT 12:38
p6eval rakudo 970243: OUTPUT«Perl6Scalar->Seq␤»
moritz_ rakudo: say (1, 2, 3).item.PARROT 12:39
p6eval rakudo 970243: OUTPUT«Seq␤»
moritz_ that's the underlying problem
masak rakudo: say ($(1, 2, 3)).PARROT
p6eval rakudo 970243: OUTPUT«Seq␤»
masak yes, it's explicitly showing that what ought to happen isn't.
moritz_ our multi sub item(@values) { @values.Seq 12:40
}
jnthn What would cause it to be containerized?
moritz_ let me just say "hu"
masak by all means.
moritz_ (and jnthn++ last touched this code, in March) 12:41
jnthn Huh, that'd mean it pre-dated the last list refactor... 12:42
moritz_ correct
jnthn In that caes it may well be bogus.
moritz_ (unless git blame is playing tricks on my)
jnthn No way of knowing if pmichaud++ missed it or chose to leave it as it is. 12:43
moritz_ jnthn: how would a correct wrapping in Perl6Scalar would look like?
jnthn moritz_: Good question.
jnthn moritz_: I mean, one way is to assign it to one. 12:43
masak rakudo: sub is-palindrome($s) { $s eq $s.flip }; say is-palindrome('[]][') # pkrumins++, twitter.com/pkrumins/status/26744178147
p6eval rakudo 970243: OUTPUT«Bool::True␤»
jnthn But I think return is meant to decontainerize if it's not an l-lvalue sub.
masak I bet lue++ will like that one. :) 12:44
jnthn For now though it'd just work to change it to (my $ = @values.Seq) I guess
And then it'd return the container.
masak aye.
moritz_ jnthn: I don't quite understand the relation between itemization and containerization... care to explain?
and why .Seq?
jnthn I see them as orgnogonal. 12:45
moritz_ why not just my $ = @values ?
jnthn Because in the previous list model a parcel would become a Seq in item context.
moritz_ but in this list model, there's no reason for it?
jnthn As I said, it may be bogus.
No idea.
moritz_ ok
jnthn I'm the wrong person to ask.
moritz_ asks pmichaud 12:46
jnthn Hopefully pmichaud++ will get around to documenting the new list model soon. :-)
mfollett rakudo: my @fib := (0,1,*+*...*) 13:14
p6eval rakudo 970243: ( no output )
mfollett my @fib := (0,1,*+*...*); say @fib[3]
hrrm…didn't that used to work? 13:15
takadonet it does.... 13:18
takadonet looks at moritz_ and masak
moritz_ looks back 13:21
moritz_ seen smash 13:23
aloha smash was last seen in #parrot 7 days 19 hours ago saying "github.com/mirrors/perl/tree/perl-1-maint".
moritz_ that's the URL I was looking for :-) 13:24
tadzik rakudo: my @fib := (0,1,*+*...*); say @fib[3] 13:30
p6eval rakudo 970243: OUTPUT«2␤»
tadzik it does
rakudo: my @fib := (0,1,*+*...*); say @fib[30]
p6eval rakudo 970243: OUTPUT«832040␤»
mfollett If I just put 'my @fib := (0,1,*+*...*)' in the REPL it takes a bit and segfaults in * 2010.09, if I do 'my @fib := (0,1,*+*...*);say @fib[30]' then it works just fine 13:39
nymacro mfollett, probably because it is trying to output the result of the assignment on the REPL 13:40
mfollett nymacro: oh, hahah, that would make sense 13:41
nymacro++
shortcircuit Is there a PIR implementation on top of JavaScript? I'd be nice to have an in-browser REPL. 13:48
Otherwise, is there anything PIR depends on that would make such an implementation impossible?
moritz_ you need much more for running Rakudo than PIR 13:49
you need all the built-in PMCs, all the rakudo PMCs, all the opcodes...
shortcircuit Mm.
moritz_ the problem is that it'll be *very* slow 13:50
shortcircuit wonders what the shortest path to getting a working client-side, in-browser P6 REPL would be. 13:50
moritz_ it's probably much better to translate to JS on the POST level
pmichaud good morning, #perl6 14:43
moritz_ oh hai pmichaud 14:44
colomon \o
moritz_ I implemented ss///, and then noticed that we don't have a 'samespace' function as backend yet :/
moritz_ rakudo: say 'abc'.samecase('XYZ') 14:51
p6eval rakudo 970243: OUTPUT«ABC␤»
colomon rakudo: say 'abc'.samecase('XyZ') 14:54
p6eval rakudo 970243: OUTPUT«AbC␤»
colomon rakudo: say 'abc'.samecase('ZyBot')
p6eval rakudo 970243: OUTPUT«AbC␤» 14:55
colomon rakudo: say 'abcd'.samecase('ZyBot')
p6eval rakudo 970243: OUTPUT«AbCd␤»
dalek kudo: 0dc4b80 | moritz++ | src/Perl6/Grammar.pm:
A step towards handling ss///.

This wires up the adverb generation for ss///, but doesn't introduce a Cool.samespace() method yet, which is necessary as the backend.
Includes a small refactor of compile time adverb handling.
15:03
smash hello everyone 15:20
moritz_ \o smash
idea for the next "weekly" challenge: github.com/moritz/perlgeek.de/blob/...espace.txt
any comments?
pmichaud looking 15:22
looks great 15:23
moritz_ thanks
pmichaud I'm spectesting a fix for Parcel.item now.
moritz_ (for looking)
smash updated gil.di.uminho.pt/users/smash/rakudo-bench.html with the new rakudo star release 15:24
moritz_ so .pick got faster, and everything else a bit slower? 15:25
pmichaud I'm guessing strings got slower 15:26
but that's really a guess
moritz_ startup time seems to be constant 15:27
smash i might run the script again during the night, to make sure nothing interefered with it last time i executed it
smash moritz_: the graph scale can play nasty tricks here 15:28
moritz_ actually startup time improved by nearly 10%
pmichaud well, the numbers tell the tale
it looks like the heavy scripts are running about 10% slower than previously
pmichaud are there instructions somewhere about how to reproduce the numbers in these charts? 15:29
smash pmichaud: not yet, it's just a bunch of stupid scripts
pmichaud oh, the other thing that might've changed is gc 15:30
smash: how many times do you run each script?
oh, 10. 15:31
pmichaud reads the page :-)
smash yes, 10 times
that's why it takes hours and hours to run 15:32
moritz_ pmichaud: I think the biggest GC changes were included after the parrot release
pmichaud okay
smash pmichaud: but i'm open to suggestions on how to run it 15:33
moritz_ perlgeek.de/blog-en/perl-6/contribu...space.html lolIblogged 15:35
colomon smash++ 15:37
sorry I haven't gotten around to adding more benchmarks yet.
smash colomon: i haven't had the time to improve the harness yet :(
dalek kudo: 5ce8fcf | pmichaud++ | src/builtins/Parcel.pir:
Make sure Parcel.item returns an itemized Seq. Addresses RT #78284, but it also seems to expose a bug in either .trans or S05-transliteration/trans.t .
15:51
flussence so I went and did something useful: gist.github.com/617012 15:54
pmichaud seems expensive, though 15:56
moritz_ flussence: I'd prefer a solution that doesn't use s/// or .subst internally
pmichaud why not just comb self for \S+\ and then stitch it together ?
pmichaud [~] self.comb(\S+) Z $other.comb(\s+) 15:57
oops, need /'s
moritz_ modulo length limits
Z stops at the shortest list
pmichaud well, that can be fixed :-)
moritz_ sure; I just want to point out that it's not *that* trivial 15:58
pmichaud sure
I'm just saying that's far better than repeated substitutions :-)
and is the core of a better approach
what should happen in the case where self has more components than $other ? 15:59
moritz_ ws should be copied unchanged
flussence should leading/trailing whitespace be changed to match, or is it only the contents of each whitespace that matters? 16:00
moritz_ doesn't quite understand the question... example?
pmichaud rakudo: sub ss($str, $other) { ($str.comb(/\S+/) Z $other.comb(/\s+/)).join('') }; ss("a b c d", "x y\n\tz"); # first attempt 16:01
p6eval rakudo 970243: ( no output )
pmichaud rakudo: sub ss($str, $other) { ($str.comb(/\S+/) Z $other.comb(/\s+/)).join('') }; say ss("a b c d", "x y\n\tz"); # first attempt
p6eval rakudo 970243: OUTPUT«a b␤ ␤»
flussence If I had ' a\tb'.samespace('x\ny z'), should it come out as 'a\nb' or '\na b'?
pmichaud flussence: the latter 16:02
moritz_ pmichaud: we want to attract new committers, not activate overworked ones :-)
pmichaud moritz_: but the overworked ones need -Ofun too :)
flussence ok, that sounds much easier to implement
moritz_ pmichaud: sure :-)
pmichaud and certainly I can prod the newer committers into an approach I'm more likely to accept :) 16:02
moritz_ rakudo: .say for [1, 2, 3].list 16:03
pmichaud perlcabal.org is still down?
p6eval rakudo 970243: OUTPUT«1␤2␤3␤»
Juerd pmichaud: Not that I know of.
moritz_ doesn't understand why that .trans test fails
pmichaud moritz_: I suspect it has something to do with the non-array pair being itemized now 16:03
moritz_ pmichaud: perlcabal works hear
Juerd pmichaud: Depends on what you mean, exactly, by the way. perlcabal.org in most contexts is an alias for feather1
moritz_ perlcabal.org/syn/ shows a nice HTML page 16:04
pmichaud oh, now it's working.
A second ago I was getting "cannot connect to server"
moritz_ rakudo: my $x = [1, 2, 3] => [4, 5, 6]; .say for $x.key.list
p6eval rakudo 970243: OUTPUT«1␤2␤3␤»
moritz_ rakudo: my $x = [1, 2, 3] => [4, 5, 6]; .say for $x.value.list 16:05
p6eval rakudo 970243: OUTPUT«4␤5␤6␤»
pmichaud I suspect those are unchanged
moritz_ pmichaud: the single pair is passed to a slurpy parameter, where its itemness shouldn't matter, IIRC
pmichaud it's not the pair itself, but the arguments 16:05
i.e.
moritz_ (yes, unchanged)
pmichaud rakudo: my $x = (<1 2 3> => <4 5 6>); .say for $x.key 16:06
p6eval rakudo 970243: OUTPUT«1 2 3␤»
pmichaud rakudo: my $x = (<1 2 3> => <4 5 6>); .say for $x.value
p6eval rakudo 970243: OUTPUT«4 5 6␤»
pmichaud rakudo: my $x = (<1 2 3> => <4 5 6>); my $y = ([<1 2 3>] => [<4 5 6>]); .say for $x.key.list; .say for $y.key.list; 16:07
p6eval rakudo 970243: OUTPUT«1␤2␤3␤1␤2␤3␤»
moritz_ that's the old rakudo version, and both seem fine to me
pmichaud rakudo: my $x = (<1 2 3> => <4 5 6>); my $y = ([<1 2 3>] => [<4 5 6>]); .say for $x.value.list; .say for $y.value.list;
p6eval rakudo 970243: OUTPUT«4␤5␤6␤4␤5␤6␤»
moritz_ rakudo: sub f($x) { return $x.list }; .say for f [1, 2, 3]
p6eval rakudo 970243: OUTPUT«1␤2␤3␤»
moritz_ rakudo: say [1, 2, 3] ~~ Iterable|Positional 16:08
p6eval rakudo 970243: OUTPUT«Bool::True␤»
pmichaud in the new rakudo, <1 2 3> as a key is being stringified, it seems. 16:09
moritz_ oh.
pmichaud rakudo: my $x = (<1 2 3> => <4 5 6>); my $y = ([<1 2 3>] => [<4 5 6>]); say $x.key.WHAT; say $y.key.WHAT; 16:10
p6eval rakudo 970243: OUTPUT«Seq()␤Array()␤»
pmichaud that's the difference between the two
moritz_ also say Seq()\nArray()\n here (with newest rakudo) 16:11
pmichaud right, but the question is one of item/list context (more)
rakudo: say "abcxyz".trans( <x y z> => <X Y Z> ); # part 1 16:12
p6eval rakudo 970243: OUTPUT«abcXYZ␤»
pmichaud rakudo: say "abcxyz".trans( Seq.new(<x y z>).item => Seq.new(<X Y Z>).item ); # part 2
p6eval rakudo 970243: OUTPUT«abcXYZ␤»
pmichaud huh
moritz_ rakudo: my $x = (<1 2 3> => <4 5 6>); my $y = ([<1 2 3>] => [<4 5 6>]); say $x.key.PARROT; say $y.key.PARROT; 16:13
p6eval rakudo 970243: OUTPUT«Perl6Scalar->Seq␤Perl6Scalar->Array␤»
moritz_ looks correct in both cases
and the same on the new rakudo
pmichaud locally: 16:16
> say "abcxyz".trans( < x y z > => <X Y Z> )
abcX Y ZAny()Any()
> my $x = (<x y z> => <X Y Z>); .say for $x.value.list; 16:17
X Y Z
moritz_ tries a simple fix by guessing 16:18
pmichaud > my $x = ((1,2,3) => (4,5,6)); say $x.value.list 16:24
4 5 6
> my $y = (a => (4,5,6)); say $y.value.list
456
o_O
> my $y = ('a' => (4,5,6)); say $y.value.list 16:25
4 5 6
looks like the problem is somewhere in the definition of &infix:«=>»
pmichaud gist.github.com/617072 # something to do with infix:«=>» 16:30
moritz_ hm... double Perl6Scalar somewhere? 16:32
pmichaud not finding one
and that shouldn't matter in the case of .list anyway
oh, very weird. 16:33
(nopasting)
gist.github.com/617081 # must be something in the binder 16:34
or in the attribute initializer 16:37
moritz_ ./perl6 -e '.say for (1, 2, 3).item.item.list # does what I expect it to do
ie three separate lines
pmichaud right
it's something to do with the pair constructor
pmichaud gist.github.com/617088 # pair constructor changes sense of $value somehow 16:38
might be an issue with all constructors 16:40
gist.github.com/617092 # problem with generic constructor 16:41
moritz_ so to summarize, you can't successfully .list on something that's returned from an attribute 16:43
pmichaud that appears to be the current problem, yes.
which means the attribute isn't being initialized properly.
assignment works properly, though. 16:44
gist.github.com/617097 # assignment to an attribute works
moritz_ say XYZ.new(value => (1, 2, 3).item).value.list; 16:46
123
moritz_ it really needs to be passed to a sub to trigger the bug 16:47
pmichaud I'm guessing the problem is BUILD/BUILDALL
oh
I suspect BUILD/BUILDALL isn't properly dereferencing before binding
pmichaud hmmm, that doesn't appear to be it either. 16:51
moritz_ had this idea while listening to a podcast about designing board games 17:02
can you construct a board game where you build a meta object system 17:03
PerlJam moritz_: Perl 6 home edition? 17:03
moritz_ and in the end you get points if your system is powerful, but also if it integrates well with that of other players
PerlJam: I thought more that you have some cards that describe very basic behaviour, and you can combine them somehow
the problem is that I can't explain what a meta class is to at least 99.99% of the population 17:04
so I'd need to construct some problem space that's isomorphic to meta classes, but closer to the real world 17:05
moritz_ is now firmly convinced that he is crazy
PerlJam you know ... most games seem to be about competing with others. There need to be more games where you are rewarded for communicating and cooperating with the other players.
moritz_ there are lots of those
I know many games where you totally have to trade resources with other players to win 17:06
and that trade usually involves good communication
PerlJam "There need to be *more* games ..." :) 17:07
moritz_ :-) 17:07
PerlJam and what does "win" mean anyway?
moritz_ (btw Germany has the biggest market world wide for board and card games) 17:08
PerlJam germany++
moritz_ PerlJam: it means marking one or more player with a virtual funny hat
PerlJam I think the whole idea of "winning" distorts people's thinking. They usually end up thinking of it in terms of "doing better than someone else" 17:09
dalek ok: c66f847 | moritz++ | README:
[README] link to PDFs; maettu++
17:12
flussence alright, I gave this another shot: gist.github.com/617012 17:15
gfldex PerlJam: "win" means that you played better then in the last round 17:16
moritz_ gfldex: only under some very narrow certain conditions 17:17
PerlJam I win! The last time I compared notes with everyone, I had more children than anyone else, ergo, I win. ;) 17:20
PerlJam wonders when the next round starts ...
moritz_ flussence: I like this much better... I think the re-matching with m:nth can be avoided if you obtain match objects from .comb in the first place
flussence ooh, I hadn't thought of that 17:21
moritz_ .comb(:match, $regex)
moritz_ wait, it's matching against the other string... 17:22
hm 17:23
another idea
PerlJam errands &
moritz_ first comb $other
then self.split with a limit of @new-spaces - 1
so you automatically get all excess spaces in the self in the last chunk 17:24
pmichaud right
that's what I'm trying now :)
pmichaud gist.github.com/617162 # samespace() using split and zip 17:27
pmichaud probably want a +@new instead of @new in the split, though. 17:29
moritz_ pmichaud: seem to mistreat trailing spaces 17:33
pmichaud that's possible, definitely
anyway, anything that relies on :nth() I'd consider to be sub-optimal
moritz_ flussence++ # both versions 17:34
flussence++ # tests
pmichaud afk, lunch 17:39
flussence
.oO( I wish vim had a "pipe syntax-highlighted text to stdout and exit" flag )
18:01
moritz_ flussence: Text::VimColor 18:02
flussence: you can easily write such a wrapper with that perl module 18:03
flussence moritz_++ # that worked great! 18:15
one-liner I used, if anyone finds it useful: 18:16
cat samespace.p6 | perl -MText::VimColor -E 'say Text::VimColor->new(string=>join("", STDIN->getlines),html_full_page=>1)->html' | elinks -dump -dump-color-mode 1 -dump-width $COLUMNS
moritz_ flussence: I do the syntax hilighting on my blog with Text::VimColor 18:20
dukeleto moritz_: i was wondering what you did for that. It looks really good. 18:27
moritz_ dukeleto: it was a major decision point while chosing the blog system 18:30
sorear good * #perl6 18:45
sorear is trying to think of a sane way to fake tweaks without implementing general multi methods
dalek rixel: 36d8db7 | diakopter++ | sprixel/ (2 files):
verify that simple arg binding works
19:03
rixel: c718fb3 | diakopter++ | sprixel/ (4 files):
verify closures can be perlesque locals.
dalek rixel: 131f5e8 | diakopter++ | sprixel/ (3 files):
verify that recursive nested string eval works.
19:51
sorear uh, why does Rakudo have a Role class 20:16
sorear or rather, why is SomeRole ~~ Role 20:16
moritz_ because the spec mentions Role in several places? 20:17
sorear I expected that SomeRole.HOW ~~ Role 20:18
sorear I don't see any mention of Role outside of S32 20:24
moritz_ there's a mention in S03 20:28
dalek kudo: 668719b | moritz++ | src/ (3 files):
implement Cool.samecase, .subst(:samespace) and ss///

Patch partly by flussence++
20:42
dalek ast: 59b8c22 | moritz++ | S05-substitution/subst.t:
[subst.t] fix some tests, and unfudge them for rakudo
20:44
cosimo hi everyone 20:51
phenny cosimo: 28 Sep 06:25Z <moritz_> tell cosimo perl6-cache-memcached added. You also have commit access to perl6/ecosystem on github now, so you can do it yourself next time
cosimo moritz_: saw that, thanks!
cosimo rakudo: my $x = 'abcd'; $x ~~ s:g[bc] = '12'; say $x 20:58
p6eval rakudo 5ce8fc: OUTPUT«a12d␤»
cosimo rakudo: my $x = 'abcd'; $x ~~ s:g/bc/ = '12'; say $x
p6eval rakudo 5ce8fc: OUTPUT«===SORRY!===␤Confused at line 22, near "$x ~~ s:g/"␤»
cosimo rakudo: my $x = 'abcd'; $x.subst('bc', '12', :g); say $x 20:59
p6eval rakudo 5ce8fc: OUTPUT«abcd␤»
cosimo rakudo: my $x = 'abcd'; $x.subst(/bc/, '12', :g); say $x
p6eval rakudo 5ce8fc: OUTPUT«abcd␤»
cosimo rakudo: my $x = 'abcd'; $x.subst(rx:/bc/, '12', :g); say $x
p6eval rakudo 5ce8fc: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
cosimo rakudo: my $x = 'abcd'; $x.subst(rx[bc], '12', :g); say $x 21:00
p6eval rakudo 5ce8fc: OUTPUT«Could not find sub &rx␤ in main program body at line 22:/tmp/Lj3E_YbDvu␤»
cosimo ook 21:00
cosimo rakudo: my $x = 'abcd'; $x ~~ s:g[bc] = '12'; say $x 21:10
p6eval rakudo 5ce8fc: OUTPUT«a12d␤»
cosimo rakudo: my $x = 'ab[cd'; $x ~~ s:g[< \[ >] = '12'; say $x
p6eval rakudo 5ce8fc: OUTPUT«Could not find sub &s:g[< \[ >]␤ in main program body at line 22:/tmp/r1qOxMHost␤»
cosimo rakudo: my $x = 'ab[cd'; $x ~~ s:g[\[] = '12'; say $x 21:11
p6eval rakudo 5ce8fc: OUTPUT«ab12cd␤»
cosimo rakudo: my $x = 'ab[cd'; $x ~~ s:g[\[ | \]] = '12'; say $x
p6eval rakudo 5ce8fc: OUTPUT«ab12cd␤»
cosimo rakudo: my $x = 'ab[]cd'; $x ~~ s:g[\[ | \]] = '12'; say $x
p6eval rakudo 5ce8fc: OUTPUT«ab1212cd␤»
cosimo rakudo: my $x = 'ab[]cd'; $x ~~ s:g[\[ | \]] = ''; say $x
p6eval rakudo 5ce8fc: OUTPUT«abcd␤»
cosimo so I can't use s:g[ < [] > ] to specify either '[' or ']' chars 21:12
masak \o/ 21:12
cosimo masak: hi! have a question for you I think 21:17
23:06 < cosimo> so I can't use s:g[ < [] > ] to specify either '[' or ']' chars?
but this works
sorear cosimo: you'd have better luck if you put a space between :g and [
cosimo rakudo: my $x = 'ab[]cd'; $x ~~ s:g[\[ | \]] = ''; say $x
p6eval rakudo 5ce8fc: OUTPUT«abcd␤»
sorear \o/ masak 21:18
cosimo rakudo: my $x = 'ab[]cd'; $x ~~ s:g [<[]>] = ''; say $x
p6eval rakudo 5ce8fc: OUTPUT«ab[]cd␤»
cosimo rakudo: my $x = 'ab[]cd'; $x ~~ s:g [<\[\]>] = ''; say $x
p6eval rakudo 5ce8fc: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/_DhFATJW0h␤»
cosimo mmh
rakudo: my $x = 'ab[]cd'; $x ~~ s:g [ < [] > ] = ''; say $x 21:19
p6eval rakudo 5ce8fc: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/3hwsewKMYO␤»
cosimo rakudo: my $x = 'ab[]cd'; $x ~~ s:g [ < \[\] > ] = ''; say $x 21:20
p6eval rakudo 5ce8fc: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/8OcrC5S4IS␤»
masak pmichaud: re: #78284 -- if the problem in a ticket is fixed, but the fix exposes another (unrelated) problem, the ticket can still be closed, IMHO. (by opening a new ticket with the new problem, one keeps the injection between issues and tickets straight.) 21:23
masak I'm almost fine with keeping the old ticket... but if so, I would like it to be renamed to describing the new issue rather than the old one. 21:24
cosimo sorear: thanks 21:24
masak mst :) twitter.com/shadowcat_mst/status/26779271666 21:31
sorear for the self-appointed Head Jerk of Perl, mst is remarkably enlightened 21:32
masak that's his secret weapon.
slavik mst? 21:34
sorear Matt S. Trout
masak slavik: Matt S. Trout
sjohnson mst
slavik is he important?
sjohnson guys nickname
sorear very
sjohnson pretty popular in the perl community
slavik I see
sjohnson he hangs out on #perl 21:35
masak slavik: his node has a high degree in the Graph of Perl.
slavik gotcha
higher than TimToady?
sjohnson no
slavik so we're safe
sorear in the Graph of Perl5, mst's degree may now have a higher degree 21:36
masak slavik: mst wants to start the tradition of "State of the Velociraptor", which would in some sense make him belong to the same category as TimToady. (but still not as degree-ful, I guess.) 21:37
I think he is a good front figure of Perl 5.
even his Perl 6 criticism is more on the teasing side than on the poisonous side. 21:38
sorear mst understands that he doesn't need to fear Perl 6 21:38
slavik Perl6 > Perl5
masak sorear: that's not 100% correct. 21:39
sorear: I've had it from mst that "if Perl 6 rattles its swords too much, I will not hesitate to play ugly". (quote might not be exact)
sorear masak: by "rattles his swords" do you mean "we start acting like deranged idiots"? 21:40
masak sorear: were you part of the p5/p6 discussion this time last year? 21:41
sorear If I was I was on the P5 side.
I didn't start taking P6 seriously until ~March 21:42
masak it ended with mst and me publishing one blog post each, suggesting a way to view/understand the desires/fears of the other (sub-)community.
but it *started* from the realization that the two communities were -- unwittingly and avoidably -- getting on each other's nerves. 21:43
mst deserves the credit for initiating the 'peace talks'. 21:44
the two posts: strangelyconsistent.org/blog/how-pe...ill-us-all and www.shadowcat.co.uk/blog/matt-s-tro...ck-perl-6/ 21:45
masak moritz_: [backlog] a MOP board game. interesting. 21:49
masak I also believe that creating an isomorphism is necessary. 21:50
masak "objects" and "classes" are already in the human subconscious, thanks to guys like Plato and Socrates. 21:50
masak hm, those concepts are probably older than that, actually. "biological" intuition seems quite built-in to the human brain. 21:51
masak PerlJam: [backlog] the nice thing with competing games over cooperating games is that the former have a tension having to do with some kind of zero-sum-ness. with cooperating games, you don't have to second-guess opponents as much, and they tend not to get as deep. :/ 21:54
colomon masak: I'm wondering what kind of game Lacuna Expanse will turn out to be. 22:00
masak oh! just remembered. 'finite games' tend to be competitive, and 'infinite games' cooperative. 22:01
there's a book: en.wikipedia.org/wiki/Finite_and_Infinite_Games
colomon (I'm immensely fond of Shadows Over Camelot, which is a mostly cooperative game. (And very finite, unless there's a non-obvious meaning to the term "finite games".))
masak right. it's mostly a trend. 22:02
colomon It seems like Lacuna Expanse will allow us to trade and work with each other... or blow each other to smithereens. It will be interesting to see how it plays out once a few more people have spaceships. 22:04
colomon If the empire stats in the game are not lying to me, no one in the game has any weapons at the moment. 22:06
sorear is this like a Perl6 MMO?
cosimo w
masak sorear: it's written (partly) in Perl 5. 22:07
colomon sorear: Lacuna Expanse is a perl 5 MMO
Tene masak: you could use some trailing whitespace or a footer on strangelyconsistent. Every time I get to the end of a post, it takes me a bit to recognize that it's the end, instead of the page not loading all the way or something. 22:08
masak Tene: thanks for the feedback. I'll add some trailing whitespace right away. in the long run, I plan to have a footer of some kind. 22:09
I just don't want to add in complexity before I know what to use it for :)
Tene Well, a footer could be as simple as a <hr/> 22:10
Just something to indicate the end of the document
masak I'm not too fond of <hr/>s 22:11
Tene Sure.
comet/snowman?
;)
I used to hang out with the lacuna expanse guy on IRC. I think I'm still in a channel with him.
Yeah, #utah
masak Tene: added some whitespace. better now? 22:12
Tene Yeah, that's better.
Thanks.
masak \o/
I like it better too.
masak explicitly encourages others to suggest visual improvements to his blog 22:13
Tene definitely needs more comet/snowman 22:14
masak :)
maybe up in the header?
flussence I kinda like the lack of layout, it's less distracting from the words
masak flussence: I plan not to move away too far from the lack of layout.
masak ooh happy happy happy! my presentation software now exists. and more than 24h left to work on content! 22:24
dalek ecza/master: 56ae7e1 | sorear++ | / (3 files):
add delegate/class benchmark to perf/
22:59
ecza/master: e82259c | sorear++ | src/ (2 files):
Implement parsing/BEGIN for simple roles
masak I love how hacking on something pays off in terms of nice graphics. my new presentation technique is called "infinite canvas", and is something of which I've been dreaming for quite a while. 23:01
Tene masak: I'm curious. Tell me more? 23:02
masak Tene: ok, so we have SVG, right?
Tene Right. 23:03
masak SVG allows us to put things on a 2D plane, and then show these things as a presentation.
Tene Right.
masak the basic idea is to put the whole presentation in the same plane. all of the slides.
everything else flows from that.
Tene Hmm.
masak proximal ideas thus become close to each other in the plane. 23:04
zooming in and zooming out takes on a very concrete role.
I currently have the viewports of each slide being given as rectangles in a separate layer in the SVG. this seems to work well. 23:05
if I want, I can annotate these rectangles with transition effect instructions.
Tene Huh. 23:06
masak everything gets rendered as PDFs in the end, but the transition effects get pretty close to feeling like the presentation is animated. 23:07
Tene I'm curious to see what you produce with this. 23:07
masak I'll publish it on Sunday. including the source code. 23:08
(Perl 5, due to superior XML tooling. zefram++)
dukeleto masak: that sounds really awesome, can't wait to check it out. I hate how most presentation software imposes linear thought 23:11
masak I'm fairly anti-bullet-point. I already find that this method makes me focus on form and visual presentation more than on text. and I can do the whole presentation from within Inkscape. 23:16
dalek ecza/master: 5bbfa53 | sorear++ | / (5 files):
Avoid retaining frames for rules and tokens
23:52
masak zzz & 23:55