»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
diakopter theoretically there are other invokable things besides coderefs 00:00
like CFunction
P5SV will be invokable, ish 00:01
dalek p: 49838b9 | dwarring++ | examples/rubyish/rubyish-examples/fractal-tree.rbi:
colored the fractal tree
02:12
p: 3a3ae17 | dwarring++ | examples/rubyish/t/ (2 files):
nqp::xxx -> nqp:xxx
p: d64ee9f | dwarring++ | examples/rubyish/rubyish.nqp:
rubyish '\' source line continuation, etc
JimmyZ std: macro prefix:<if>($a, $b) { ... } 02:13
camelia std a0bcfb1: OUTPUT«Potential difficulties:␤ $b is declared but not used at /tmp/r_s9rZsx3Y line 1:␤------> macro prefix:<if>($a, ⏏$b) { ... }␤ $a is declared but not used at /tmp/r_s9rZsx3Y line 1:␤------> macro prefix:<if>(⏏$a, $b) {…»
JimmyZ std: macro prefix:<if>($a, $b) { if {{{ $a + $b }}} } 02:14
camelia std a0bcfb1: OUTPUT«===SORRY!===␤Expression needs parens to avoid gobbling block at /tmp/N395niHeeW line 1:␤------> macro prefix:<if>($a, $b) { if ⏏{{{ $a + $b }}} }␤Missing block (apparently gobbled by expression) at /tmp/N395niHeeW line…»
JimmyZ std: macro prefix:<if>($a, $b) { $a + $b }
camelia std a0bcfb1: OUTPUT«ok 00:01 131m␤»
japhb__ Gah, from the absurdly slow department: 02:34
r: IO::Spec::Unix.canonpath("/a/.") for ^1000; say now - BEGIN now;
camelia rakudo e22ac2: OUTPUT«(timeout)»
japhb__ r: IO::Spec::Unix.canonpath("/a/.") for ^500; say now - BEGIN now; 02:35
camelia rakudo e22ac2: OUTPUT«9.2826684␤»
japhb__ 'cause, OUCH. That function is used deep in the call trees of a lot of IO stuff.
JimmyZ It was much slower 02:36
japhb__ JimmyZ: Meaning, at some point in the past it was even slower than the above would indicate? 02:52
JimmyZ yes, iirc 02:53
japhb__ I get the feeling that speeding up the current version will involve either A) finding an obvious oops, or B) involve deep stuff, because canonpath consists almost entirely of '$path ~~ s {} = ""' constructions, with a few eq comparisons and such. Meaning that most likely, somehow that construction is really dragging. 03:00
labster oh ouch, that is slow. 03:11
r: for ^1000 { my $str = 'a||b'; $str ~~ s/ '||' /\|/ }; say now - BEGIN now; 03:13
camelia rakudo e22ac2: OUTPUT«4.90180351␤»
labster r: for ^1000 { my $str = 'a||b'; $str ~~ s { '||' } = '|' }; say now - BEGIN now; 03:14
camelia rakudo e22ac2: OUTPUT«5.12081435␤»
labster The construction looks like it could be optimized a little, most of that time looks like it's in building strings. 03:20
r: IO::Spec.Unix.canonpath('/a/b') for ^1000 ; say now - BEGIN now; 03:21
camelia rakudo e22ac2: OUTPUT«No such method 'Unix' for invocant of type 'IO::Spec'␤ in block at /tmp/WlkGNcMKSB:1␤␤» 03:22
labster r: IO::Spec::Unix.canonpath('/a/b') for ^1000 ; say now - BEGIN now;
camelia rakudo e22ac2: OUTPUT«(timeout)»
lizmat decommute&
japhb__ Odd time to be decommuting ... what timezone are you in today, lizmat? 03:23
.oO( Hawaii )
dalek osystem: c2e87a5 | (Andrew Egeler)++ | META.list:
Add simplistic Email::MIME (no charset/transfer-encoding/creation support yet)
04:07
ecs: 75b2e71 | (Geoffrey Broadwell)++ | S99-glossary.pod:
Correcting sigil definition in S99 to include &. Still not including the Role names to avoid further confusion.
04:20
diakopter retupmoca++ 04:43
retupmoca: nice work :) 04:45
lizmat japhb__: it was 4:22 am when I did that: because of a storm, our fast ferry across the Irish Sea was cancelled 07:00
so we had to take one about 6 hours earlier :-( 07:01
it was still a 3 hour ride to the ferry, but now safely on board :-)
moritz safe travel then! 07:33
is anybody working on unifying nqp's Configure*.pl and Makefiles? 07:36
FROGGS_ moritz: nobody picked that task yet afaik 07:38
lizmat moritz: it's going to be a bumpy ride for the next 3 hours 07:39
FROGGS_ moritz: but you know about that one, right? github.com/perl6/nqp/issues/110 07:40
moritz FROGGS_: yes
FROGGS_ what I would think is that you end up with nqp-moar, nqp-jvm and nqp-parrot, then a wrapper `nqp` that points to your favourite, is able to list the other candidates, and let you switch the favourite 07:42
like perlbrew does
dunno if that fits the needs of that ticket, since it mentions debian-alternatives... which, well, is debian-specific 07:43
moritz well, alternatives can be used on debian 07:44
I guess a simple 'make install-without-nqp-link' or so would be fine for debian, which then takes care of creating the 'nqp' alias
FROGGS_ yeah
perl Configure.pl --but-please-don't-create-the-wrapper-because-I-am-daxim-:o) 07:45
moritz fwiw my plan so far is
1) move the generated files into per-vm directories 07:46
2) unifiy the makefiles
3) unify the Configures
and at each step, make sure it still builds :-)
dalek p/unified-build: de8a945 | moritz++ | gen/ (3 files):
create and .gitignore gen/{parrot,jvm,moar}
07:47
p/unified-build: e222b61 | moritz++ | tools/build/Makefile-Parrot.in:
[parrot] build stage{1,2} in gen/parrot/
FROGGS_ ahh yeah, we need the per-vm directories for fudged source files only, right? 07:48
moritz I want to put every VM-specific, generated file into a per-vm dir 07:49
so that if there happen to be name collisions, we are fine
FROGGS_ k
FROGGS_ I think I am going to bisect this these days: t/spec/S06-other/main-usage.rakudo.parrot ....................... Dubious, test returned 1 (wstat 256, 0x100) 08:02
Failed 19/22 subtests
moritz is this the one that succeeds when run on its own? 08:03
FROGGS_ yes
but since it fails always on my box when running with -j4, it should be bisectable
moritz the question is whether to bisect rakudo or t/spec/ 08:04
FROGGS_ I guess nqp+rakudo? 08:05
moritz well, if you find a starting point for the bisect by going back in time in nqp+rakudo, then that's what you need to bisect 08:08
dalek rlito: 674c046 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - perl6 - refator "while <>" to "for lines"
08:13
dalek rlito: 2e7463d | (Flavio S. Glock)++ | html/perlito5to6.html:
Perlito5 - perl6 - update example in html
08:17
dalek p/unified-build: f4848dc | moritz++ | tools/build/Makefile-Parrot.in:
[parrot] generate nqp in gen/parrot/

currently that nqp is only invocable from gen/parrot/; need to fix that before the build can succeed
08:49
dalek p/unified-build: e4903ea | moritz++ | tools/build/Makefile-Parrot.in:
unbust the build

  "make test" does not work though
09:00
mathw morning 09:11
fglock p56: print $_ while <> 09:12
camelia p5-to-p6 : OUTPUT«print($_)␤ for lines()␤»
jnthn o/ mathw, * :) 09:21
moritz jnthn: I'll have to pick your brain on some build system / library path questions, but not right now 09:22
moritz (Ronja has her first day in kindergarten today, and I have to fetch her early :-) 09:23
tadzik :)
jnthn moritz: I need to leave for the airport in 10 mins anyways :) 09:26
FROGGS_ moritz: ohh, you need to fetch it from thin air then :/ 09:31
jnthn commute & 09:39
lizmat land ho! decommute continues& 10:28
dalek rlito: 994fbee | (Flavio S. Glock)++ | / (6 files):
Perlito - www.perlito.org is down, use github page instead
11:16
tadzik www.fsf.org/blogs/community/recogn...udrey-tang 12:02
dalek rlito: 1e10200 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - perl6 - refactor 0..num to ^(num+1)
12:10
moritz fglock: fwiw I would refactor 0..$#num to @num.keys 12:13
(personal preference only)
fglock yes, makes sense to me - adding to the TODO 12:26
dalek rlito: c022193 | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - perl6 - TODO update
12:30
fglock p56: print for 0..9 12:35
camelia p5-to-p6 : OUTPUT«.print␤ for ^10␤»
diakopter fglock++ :) 12:37
dalek p: 384469f | (Tobias Leich)++ | tools/build/PARROT_REVISION:
bump parrot revision, closes #133
12:39
felher Is it possible to write something like bpaste.net/show/140995/ or do I have to check that via, say, BUILD 12:57
felher ( I know that I also could use a subset for that. ) 13:02
timotimo felher: that should work. it will explode inside build or buildall if you get it wrong 13:26
felher timotimo: maybe thats NYI :) 13:30
r: class X { has $.x where * > 0; }; X.new(x => -3).x.say;
camelia rakudo e22ac2: OUTPUT«-3␤»
timotimo wait what 13:32
you may have to use a subset then
timotimo r: class X { has $.x where * > 0 }; say X.HOW.methods; 13:34
camelia rakudo e22ac2: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤ in any methods at src/gen/Metamodel.nqp:425␤ in block at /tmp/Mqft1HBMYY:1␤␤»
timotimo r: class X { has $.x where * > 0 }; say X.HOW.methods(X);
camelia rakudo e22ac2: OUTPUT«x␤»
timotimo r: class X { has $.x where * > 0 }; say X.HOW.methods(X).perl; 13:35
camelia rakudo e22ac2: OUTPUT«(method x(Mu $self: Mu *%_) { ... },)␤»
timotimo r: class X { has $.x where * > 0 }; say X.HOW.attributes(X).perl;
camelia rakudo e22ac2: OUTPUT«(Attribute.new(),)␤»
timotimo r: class X { has $.x where * > 0 }; say X.HOW.attributes(X)[0].^methods;
camelia rakudo e22ac2: OUTPUT«<anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> compose apply_handles get_value set_value container has-accessor readonly package Str gist␤»
timotimo hum.
moritz r: class X { has $.x where * > 0 }; say X.^attributes[0] 13:36
camelia rakudo e22ac2: OUTPUT«Mu $!x␤»
moritz r: class X { has $.x where * > 0 }; say X.^attributes[0].WHAT
camelia rakudo e22ac2: OUTPUT«(Attribute)␤»
moritz r: say Attribute.^methods 13:36
camelia rakudo e22ac2: OUTPUT«<anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> compose apply_handles get_value set_value container has-accessor readonly package Str gist␤»
timotimo one of these anons must be storing the refinement thingie 13:37
moritz timotimo: I believe many of those methods coem from the bootstrap
timotimo that would perhaps explain why they don't have a name set
r: class X { has Int $.x where * > 0; }; X.new(x => -3).x.say; 13:38
camelia rakudo e22ac2: OUTPUT«-3␤»
timotimo r: subset Positive of Cool where * > 0; class X { has Positive $.x }; X.new(x => -3).x.say;
camelia rakudo e22ac2: OUTPUT«Type check failed in assignment to '$!x'; expected 'Positive' but got 'Int'␤ in block at src/gen/CORE.setting:838␤ in method BUILDALL at src/gen/CORE.setting:821␤ in method bless at src/gen/CORE.setting:810␤ in method new at src/gen/CORE.setting:79…»
timotimo at least that works!
r: class X { has Int $.x is rw where * > 0; }; X.new(x => -3).x = -10;
camelia ( no output )
timotimo neither of those blows up :o 13:39
moritz maybe there 'where * > 0' is parsed as an attribute trait that is not yet implemented? 13:40
timotimo r: class X { has Int where * > 0 $.x; }; X.new(x => -3).x.say; 13:41
camelia rakudo e22ac2: OUTPUT«Error while constructing error object:Could not locate compile-time value for symbol Undeclared␤===SORRY!===␤Error while compiling, type X::Undeclared␤ what: Type␤ symbol: Int␤ suggestions: 1␤ at line 2, near " where * >"␤»
timotimo right
moritz calling classes 'X' is a bad idea :-) 13:44
felher well, at least it's an exceptional idea... (well, yeah, pretty bad pun, I admit it :) ) 13:45
GlitchMr Is naming classes like 'X' is as bad idea as using $a and $b as lexicals in Perl 5? 13:51
diakopter worse, b/c it can have non-local effects 13:53
jnthn Naming something so it collides with a name of a thing in the setting is typically a bad idea, unless you intend to do it :) 14:13
jnthn evening talks; bbl & 14:17
japhb__ tadzik: ping 14:51
tadzik japhb__: pong
japhb__ Rather than go through the whole fork-pull annoyance, can you either give me a commitbit for Shell-Command, or fix rm_rf so that it sorts the file list before reversing it? 14:52
This causes panda build failure on some filesystems.
tadzik I'll give you a commit bit
japhb__ thx 14:53
tadzik should work now 14:54
japhb__ pushed 14:59
nwc10 "sort then reverse" so that subdirectories are deleted before their parents? 15:01
japhb__ nwc10: yes, and so that files are deleted before containing directories. 15:02
--> bus &
dalek rlito: 794f076 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - perl6 - refactor_range_operator wip
15:04
TimToady idly wonders whether ^@num will end up more optimizable than @num.keys 15:05
felher Is there a way to import some Class and giving it a new Name in the Prozess? Something like 'use very::deeply::nested::class::in::some::strange::module::ClassName as MyClassName; MyClassName.new ...". I think I did ask that once and probably did just forget, so sorry for that.
moritz felher: 'constant' can be used for aliasing
felher tests that right away
TimToady see also S11:554 and following 15:07
synopsebot Link: perlcabal.org/syn/S11.html#line_554 15:07
felher moritz: if you meant to use constant like "constant NewName = foo::bar::OldName", yeah, that works just fine, thanks. :) 15:10
moritz felher: exactly what I meant, yes 15:12
TimToady aliasing is supposed to be built into 'use'
moritz TimToady: with which syntax? 15:13
TimToady do I need to repeat the link I just gave?
moritz erm, no :-)
ah, with use Aliased:name<Original::Name>; 15:14
TimToady though :name is perhaps a bad name for one of two names :) 15:15
TimToady didn't add that...
:was or :really would be clearer to the reader 15:16
felher TimToady: I guess 'the short name' of foo::bar::SomeClass:ver<1.2.3> would be 'SomeClass'? Or foo::bar::SomeClass with just the version stripped? 15:17
TimToady :from is taken, I guess, but the original intent was to use :from for that
japhb__ TimToady: FWIW, :from makes more sense to me as "from this other world" than "from this other name" 15:18
TimToady well, the second component was the from-name, but maybe it's confusing to call that "name" 15:19
PerlJam Why not "use Foo::Bar::Baz:as<Fred>" for aliasing? Is that another of those end-weight things?
TimToady yeah
PerlJam That feels more natural to me, but I can see how it could hide the alias if you're not careful. 15:20
TimToady maybe a cleaner fix would be to reduce :from to :from<name version> and then have some prefix for name that indicates some language other than P6 15:21
or maybe there's just some other thing we're too stupid to think up yet :) 15:22
the prefix could live in package namespace anyway, lang::Java::Foo::Bar::Baz 15:25
or some such
japhb__ Gah, how do I force the Shell-Command submodule in panda to update to the latest commit? (I could just nuke it and clone again, but there has got to be a standard way ...)
TimToady then you could just look in the lang package to see what languages are supported :)
diakopter rj: constant a = a 15:26
camelia rakudo-jvm e22ac2: OUTPUT«===SORRY!===␤java.lang.NullPointerException␤»
diakopter dear lazy#perl6, write me an ircbot in Perl 6 to send emails to rakudobug only if requested on channel (not on privmsg) 15:29
rbug: rj: constant a = a
rbug: rj: constant a = a # email subject: NullPointerException when nonsense constant initializer
TimToady plus putting lang::Java into the name hierarchy means we could probably have a Perl6 lang::Java stub that specifies how to delegate to the Java name system 15:31
ingy moin o/ 15:32
TimToady otoh, not all languages are named with identifiers
need to cogitate on that a bit more, I guess 15:34
diakopter sends you a round rumination
hugme: are you written in Perl 6? 15:37
hugme: hug
hugme diakopter:
diakopter hugme: hug?
hugme diakopter:
diakopter hugme: hug hug 15:38
hugme hugs hug
diakopter .. must be written in Perl 6
diakopter commutelariatrastrialafastalismariananklermontrositration & 15:41
retupmoca r: my @foo = (1,2,3); say @foo[0][0][0]; 15:43
camelia rakudo e22ac2: OUTPUT«1␤»
retupmoca why does that work?
TimToady because every item is also a list of one element
r: say 42[0] 15:44
camelia rakudo e22ac2: OUTPUT«42␤»
diakopter nqp-m: my @foo := [1,2,3]; say(@foo[0][0][0]);
camelia nqp-moarvm: OUTPUT«This representation (P6int) does not support positional access␤frame_name_0␤»
retupmoca oh, ok. That actually makes sense
TimToady npq is pickier
it's one of the intentional dwims built into Perl 6, along with flattening in list context, and numeric/string conversions 15:45
retupmoca yeah, I actually like that I think 15:46
I just keep thinking in perl5
diakopter rj: my @foo; @foo[0] := @foo; say @foo[0]
camelia rakudo-jvm e22ac2: OUTPUT«(timeout)» 15:47
diakopter nqp-m: my @foo; @foo[0] := @foo; say(@foo[0])
camelia nqp-moarvm: OUTPUT«Rebuild in progress␤»
TimToady .gist is not smart enough to recognize recursion
diakopter boo
dalek nda: d634901 | (Geoffrey Broadwell)++ | ext/Shell__Command:
Updated Shell__Command to latest upstream
TimToady or maybe it's .perl at that point
diakopter rj: my @foo; @foo[0] := @foo; print @foo[0] 15:48
camelia rakudo-jvm e22ac2: OUTPUT«(timeout)»
diakopter rj: my @foo; @foo[0] := @foo; print @foo[0].WHAT
camelia rakudo-jvm e22ac2: OUTPUT«use of uninitialized value of type Array in string context␤»
diakopter o_O
japhb__ rj: my @foo; @foo[0] := @foo; print @foo[0].DUMP 15:51
camelia rakudo-jvm e22ac2: OUTPUT«Array<1>(␤ :$!flattens(▶Mu),␤ :$!items(BOOTArray<3>(=Array<1>)),␤ :$!nextiter(▶Mu)␤)»
permutation Can someone help me with this code? I'm trying to obtain a text with 30 amino acids in each string using the 21 amino acid. I'm in the testing stage and I really like how this code is working for me. The only problem is that I cannot output the resut into a textfile. I can see the result in the command prombt. Here is the code: gist.github.com/anonymous/7011819 anyhelp will be greatly apprechiated. I'm new to this 17:43
pippo_ r: "one, two, three" ~~ /(\w+) % ','/ 17:44
camelia rakudo e22ac2: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter % (must be quoted to match literally)␤at /tmp/RHy6lgYfjs:1␤------> "one, two, three" ~~ /(\w+) ⏏% ','/␤Unable to parse regex; couldn't find final '/'␤at /tmp/RHy6lgYf…»
pippo_ why it does not work? 17:47
grondilu pippo_: because there are spaces 17:47
hum no, actually
r: r: "one, two, three" ~~ /(\w+)+ % ','/ 17:48
camelia ( no output )
grondilu r: say "one, two, three" ~~ /(\w+)+ % ','/
camelia rakudo e22ac2: OUTPUT«「one」␤ 0 => 「one」␤␤»
moritz r: "one, two, three" ~~ /(\w+) ** ','/
camelia rakudo e22ac2: OUTPUT«===SORRY!=== Error while compiling /tmp/C0uw5umsPJ␤Quantifier quantifies nothing␤at /tmp/C0uw5umsPJ:1␤------> "one, two, three" ~~ /(\w+) ** ⏏','/␤ expecting any of:␤ postfix␤ infix stopper␤ …»
grondilu r: say "one, two, three" ~~ /(\w+)+ % [','\s+]/
camelia rakudo e22ac2: OUTPUT«「one, two, three」␤ 0 => 「one」␤ 0 => 「two」␤ 0 => 「three」␤␤»
moritz grondilu++
r: say "one, two, three" ~~ /:s (\w+)+ % \, / 17:49
camelia rakudo e22ac2: OUTPUT«「one」␤ 0 => 「one」␤␤»
grondilu r: say "one, two, three" ~~ /[\w+]+ % [','\s+]/
camelia rakudo e22ac2: OUTPUT«「one, two, three」␤␤»
grondilu r: say "one, two, three" ~~ /\w+ % [','\s+]/ 17:49
moritz permutation: $op.print prints the empty string. You likely want $op.print($_)
camelia rakudo e22ac2: OUTPUT«「o」␤␤»
grondilu r: say .perl given "one, two, three" ~~ /[\w+] % [','\s+]/ 17:50
camelia rakudo e22ac2: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter % (must be quoted to match literally)␤at /tmp/uGPKAnfQkH:1␤------> .perl given "one, two, three" ~~ /[\w+] ⏏% [','\s+]/␤Unable to parse regex; couldn't find final '/'…»
grondilu r: say .perl given "one, two, three" ~~ /[\w+]+ % [','\s+]/
camelia rakudo e22ac2: OUTPUT«Match.new(orig => "one, two, three", from => 0, to => 15, ast => Any, list => ().list, hash => EnumMap.new())␤»
grondilu r: say .[0] given "one, two, three" ~~ /[\w+]+ % [','\s+]/ 17:51
camelia rakudo e22ac2: OUTPUT«(Any)␤»
grondilu r: say .[0] given "one, two, three" ~~ /(\w+)+ % [','\s+]/
camelia rakudo e22ac2: OUTPUT«「one」␤ 「two」␤ 「three」␤␤»
grondilu r: say .[0] given my @ = "one, two, three" ~~ /(\w+)+ % [','\s+]/ 17:52
camelia rakudo e22ac2: OUTPUT«「one, two, three」␤ 0 => 「one」␤ 0 => 「two」␤ 0 => 「three」␤␤»
pmichaud r: say "one, two, three" ~~ rule / (\w+)+ % ',' / 17:55
camelia rakudo e22ac2: OUTPUT«===SORRY!=== Error while compiling /tmp/SnChtQ5_3U␤Malformed regex␤at /tmp/SnChtQ5_3U:1␤------> say "one, two, three" ~~ rule ⏏/ (\w+)+ % ',' /␤ expecting any of:␤ postfix␤ infix stopper␤ …»
grondilu permutation: why don't you just output to STDOUT and use redirections? 17:56
pmichaud r: say "one, two, three" ~~ rule { (\w+)+ % ',' }
camelia rakudo e22ac2: OUTPUT«「one」␤ 0 => 「one」␤␤»
permutation moritz: but why when I use .print for [X]... i can see the result in the command prompt but when it's writing to the text file, it output it as empty strings?
pmichaud r: say "one, two, three" ~~ /:sigspace (\w+)+ % ',' /
camelia rakudo e22ac2: OUTPUT«「one」␤ 0 => 「one」␤␤»
pmichaud hmmm.
permutation: ".print" works on $_. $op.print doesn't. 17:57
pmichaud ".print" is the same as "$_.print" 17:57
grondilu permutation: $op.print($_) will do 17:58
pmichaud you can also do: { my $*OUT = $op; .print for [X] } 17:58
permutation grondilu: I tried $op.print($_), it didn't work 18:01
pmichaud: i'll try your suggestion and see
grondilu r: say $*OUT.print("hi")
camelia rakudo e22ac2: OUTPUT«hiTrue␤»
grondilu r: $*OUT.print("hi")
camelia rakudo e22ac2: OUTPUT«hi»
grondilu r: $*OUT.print($_) for <a b c> 18:02
camelia rakudo e22ac2: OUTPUT«abc»
grondilu $op.print($_) should work
permutation thanks everyone, after looking at everyone's comments and playing with it. I finally got it to work. grondilu: $op.print($_) works!! 18:10
pippo "one, two, three" ~~ / (\w+)+ % ', ' / 18:15
r: "one, two, three" ~~ / (\w+)+ % ', ' /
camelia ( no output )
pippo r-jvm: "one, two, three" ~~ / (\w+)+ % ', ' / 18:16
camelia ( no output )
pippo n: "one, two, three" ~~ / (\w+)+ % ', ' /
camelia ( no output )
pippo ?
FROGGS pippo: you have to "say" or "print" it
r: say "one, two, three" ~~ / (\w+)+ % ', ' / 18:17
camelia rakudo e22ac2: OUTPUT«「one, two, three」␤ 0 => 「one」␤ 0 => 「two」␤ 0 => 「three」␤␤»
pippo OK Thank you!
FROGGS r: say @("one, two, three" ~~ / (\w+)+ % ', ' /).perl
camelia rakudo e22ac2: OUTPUT«((Match.new(orig => "one, two, three", from => 0, to => 3, ast => Any, list => ().list, hash => EnumMap.new()), Match.new(orig => "one, two, three", from => 5, to => 8, ast => Any, list => ().list, hash => EnumMap.new()), Match.new(orig => "one, two, three", fr…»
FROGGS r: say @("one, two, three" ~~ / (\w+)+ % ', ' /)
camelia rakudo e22ac2: OUTPUT«「one」␤ 「two」␤ 「three」␤␤»
FROGGS r: say @("one, two, three" ~~ / (\w+)+ % ', ' /)>>.Str.perl
camelia rakudo e22ac2: OUTPUT«("one", "two", "three")␤»
rjbs This channel makes me happy for many reasons, but the nice use of non-ASCII characters is up there. 18:18
flussence_
.oO( I still need to get those bracket chars working on my laptop... )
18:19
jnthn evening, #perl6
diakopter jnthn: ahoyah 18:23
FROGGS o/
jnthn survived his evening talks :) 18:24
Got a sore throat, though :/
diakopter is getting a cold too it seems 18:25
FROGGS jnthn: I know what would be good now :o)
moritz \o
jnthn FROGGS: oh? 18:28
.oO( Beer? )
moritz jnthn: are you up for some build and library path discussion? 18:30
FROGGS jnthn: of course beer :o) 18:31
jnthn moritz: sure, let's try )
moritz jnthn: ok, my goal is to be able to build all NQP on all backends within the same source dir 18:32
diakopter moritz: I think the different backends should have different libdirs
moritz jnthn: so I think a good approach is to split off generated files into different directories
diakopter (when installed)
moritz jnthn: which works fine, until I try to invoke NQP from within the source dir, not within the build dir 18:33
jnthn moritz: Which generated files, ooc? 18:34
moritz jnthn: all of them, if possible
jnthn I know that if we try to not build stuff into blib/Perl6 we're gonna hit fun...
Ah, but we're still on NQP at the moment?
moritz yes, NQP
sorry
so I have this branch 'unified-build', which starts to do that for parrot 18:35
diakopter moritz: you don't agree?
moritz diakopter: I agree
./gen/parrot/nqp-p -e 1
"load_bytecode" couldn't find file 'ModuleLoader.pbc'
because ModuleLoader.pbc is in gen/parrot/, not in .
jnthn Right 18:36
It relies on it being in the install location or in .
moritz can I somehow fudge the include path, preferably from within nqp?
jnthn Well, if we toss the fake executable and go to the same approach as the other backends then it's just the --include or --library args (I forget which) to Parrot... 18:37
Not sure if that's throwing the baby out with the bathwater though
moritz or else I could create an ./nqp that is a shell script/batch file that invokes parrot with all those amgical args
jnthn: we could still use the fakexecutable for the installed nqp
jnthn True
jnthn In which case this approach has a decided attraction :) 18:38
Since a similar approach will work just fine for JVM and MoarVM too :) 18:39
dalek p/unified-build: 6059c4a | moritz++ | tools/build/Makefile-Parrot.in:
executable name nqp-p
moritz ok, in this branch, stuff is built in 3rdparty/*, config.stats, dynext/*, gen/parrot/*, src/gen/nqp-config.nqp and src/vm/parrot/* 18:41
*config.status
so I guess src/gen/nqp-config.nqp is the only real problem of those, since all others are parrot specific
jnthn I think that path may just come from the Makefile, though 18:42
moritz yep, looks easy to fix 18:43
jnthn yay 18:50
dalek p: 0637faa | pmichaud++ | src/vm/parrot/HLL/Backend.nqp:
Update HLL::Backend::Parrot to use new EvalPMC/PackfileView API.

Resolves issue #76, but requires a Parrot newer than RELEASE_5_7_0-20-g07dfdb4. See issue #76 for more details.
18:51
p: dc9d7ff | pmichaud++ | src/vm/parrot/stage0/ (9 files):
Update parrot bootstrap files for EvalPMC/PackfileView changes.

Fixes NQP issue #76.
moritz any reason not to bump PARROT_REVISION to 5.9.0 immediately? 18:52
pmichaud it's already been bumped. 18:52
FROGGS moritz: already done so
pmichaud it was bumped before I did the merge. 18:53
moritz oh, my local master was out of date, sorry 18:53
dalek p/unified-build: 175cec1 | moritz++ | tools/build/Makefile-Parrot.in:
move nqp-config to gen/parrot
jnthn pmichaud: Does this give us/get us much closer to --target=pbc? 18:54
pmichaud jnthn: yes. 18:57
pmichaud now we wait for Parrot to switch to PackfileView PMC. 18:57
I can go ahead and add a --target=pbc option sooner than that (currently NQP issue #139), but it won't work unless/until the PackfileView PMC is enabled. 18:58
jnthn ok
No hurry, it may just cut some time off builds
pmichaud right.
I'll probably add --target=pbc in the next day or so. 18:59
I just wanted to go ahead and get this much in place for the release.
moritz pmichaud++
jnthn Nice
pmichaud especially since it handles the bootstrapping issue that would otherwise be present 19:00
lue hello world o/ 19:05
colomon goodbye cruel world 19:08
moritz hopes that colomon doesn't jump off a cliff or so
colomon lives somewhere that is very flat 19:09
FROGGS somebody forgot to turn of flattening, ehh?
off**
in germany we would say this was a flat joke 19:10
colomon someone forgot to turn off the glaciers.
nwc10 om nom cwm 19:14
jnthn
.oO( Which cabaret was set in a glacier? Moulin Rouge )
19:18
nwc10 groans 19:21
FROGGS I don't get it :/ 19:25
nwc10 I thought I got it, but now I'm confused. 19:26
jnthn en.wikipedia.org/wiki/Moulin_Rouge
en.wikipedia.org/wiki/Moulin_(geology)
japhb nwc10, Some years ago I saw the results of a contest to come up with the shortest English sentence containing all 26 letters in the alphabet. The commentators said something along the lines of "Apparently to do well at this, you need to know the word cwm."
nwc10 I was confusing it with what is acutally en.wikipedia.org/wiki/Roche_moutonn%C3%A9e
FROGGS ahh 19:27
dalek p/unified-build: 0ad9563 | moritz++ | tools/build/Makefile-Parrot.in:
fix bootstrap-files
nwc10 :-)
jnthn Such are the risks inherent in taking the plunge with an esoteric pun... :) 19:28
moritz such puns are hard for us non-natives to understand
jnthn I'm not entirely sure all natives know the geological meaning of moulin :) 19:29
FROGGS you would have to box these puns so we can handle them
lue
.oO(I'm not an "NQP guy", so I can only deal with C<Pun>s, not these weird native C<pun>s.)
19:30
colomon r: lines.sort 19:39
camelia ( no output )
colomon r: lines.sort.say
camelia rakudo e22ac2: OUTPUT« Einig laß in Brüderchören, Hast seit frühen Ahnentagen Heimat bist du großer Söhne, Heiß umfehdet, wild umstritten Land der Berge, Land am Strome, Land der Hämmer, zukunftsreich! Land der Äcker, Land der Dome, Mutig in die neuen Zeiten, Vaterland, di…»
colomon r: lines.sort.splurt("probably-cant-do-this") 19:40
camelia rakudo e22ac2: OUTPUT«No such method 'splurt' for invocant of type 'Parcel'␤ in block at /tmp/TR4xXUkXwt:1␤␤»
rurban Is this the german or austrian hymn?
colomon spew?
moritz rurban: Austrian
rurban yes, I thought so :) 19:41
moritz rurban: (and shouldn't you know this? :-)
colomon r: lines.sort.spurt("probably-cant-do-this")
rurban I sounded familiar. but my wife and mother is german so I was not sure
camelia rakudo e22ac2: OUTPUT«No such method 'spurt' for invocant of type 'Parcel'␤ in block at /tmp/VTmKktUC6I:1␤␤»
lue How can you tell it's austrian, specifically? (I really need to brush up on my German...)
rurban Land der Erbsen, Land der Bohnen, 19:42
Land der vier Besatzungszonen,
Wir verkaufen dich im Schleich,
Vielgeliebtes 􏿽xD6sterreich!
Und droben 􏿽xFCberm Hermannskogel
Flattert froh der Bundesvogel.
dalek rlito: ef76153 | (Flavio S. Glock)++ | / (6 files):
Revert "Perlito - www.perlito.org is down, use github page instead"

This reverts commit 994fbee82747d0539fece6538e6d1d19fb9d3f73.
moritz lue: not from the language, but if you lived there for a while, you should know :-)
rurban The language is the same, the culture also.
jnthn "Österreich" is a pretty big clue too ;)
diakopter nqp-m: say(32)
camelia nqp-moarvm: OUTPUT«32␤»
lue
.oO(At least it's real easy to tell when some piece of text is Swiß German.)
moritz camelia: it's probably spurt 'file', @lines; or so 19:43
colomon "Österreich" is something like "east kingdom"?
rurban And the composers also mixup
colomon: yes
colomon r: "probably-cant-do-this".path.spurt(lines.sort) 19:44
camelia rakudo e22ac2: OUTPUT«No such method 'spurt' for invocant of type 'IO::Path'␤ in block at /tmp/YuicwlqYvB:1␤␤»
rurban just austria had the only emperor (kaiser) in europe, not just a king. 19:45
dalek rlito: 02b74b6 | (Flavio S. Glock)++ | / (2 files):
Perlito - perl6 - fix a reference
moritz rurban: ... for some time, yes :-)
diakopter difference between emperor and king? 19:46
moritz ok, I had this really stupid idea of switching around the default input of camelia based on date
rurban germany was for a long time the success of distributed government
The Kaiser was the only one crowned by the pope
lue kaiser is a particularly Roman sort of king-like thing. (Caesar -> Kaiser)
diakopter _._. 19:47
moritz like, using the Address to the Haggis on Burns Night etc.
colomon +1 to Address to the Haggis 19:48
lue moritz: rotating inputs doesn't sound like a bad idea to me.
lue wonders how many here would guess whereabouts he's from if utters "Wittekind".
colomon You could just leave it AttH, I like Burns.
rurban And when german and austria overdid it with their centralistic government approach, we know what came out. So maybe russia will be now powerful than before
diakopter _._ 19:49
dalek rlito: ce7b71d | (Ahmad M. Zawawi)++ | Makefile:
Added .gitignore and minify produces Perl 5 and 6 JS files that end with the .min.js suffix
19:51
rlito: f3f095d | (Ahmad M. Zawawi)++ | .gitignore:
Added forgotten .gitignore
rlito: 5177835 | (Flavio S. Glock)++ | / (2 files):
Merge pull request #15 from azawawi/master

Perl 5 and 6 minified with the .min.js suffix
dalek albot/host07: c34f4aa | moritz++ | stdin:
stdin => Address to a Haggis
19:56
moritz r: say get 19:58
camelia rakudo e22ac2: OUTPUT« Fair fa' your honest, sonsie face,␤»
dalek albot/host07: d2a5ea4 | moritz++ | stdin:
remove leading space
moritz r: say get
camelia rakudo e22ac2: OUTPUT«Fair fa' your honest, sonsie face,␤»
moritz r: say lines.grep(m:i/knife/).elems 19:59
camelia rakudo e22ac2: OUTPUT«Cannot call 'match'; none of these signatures match:␤:(Cool:D : $target, *%adverbs)␤ in method match at src/gen/CORE.setting:3386␤ in block at /tmp/XU2SHKm1Ob:1␤␤»
moritz r: say lines.grep(/:i knife/).elems 20:00
camelia rakudo e22ac2: OUTPUT«1␤»
moritz r: say lines.grep(/:i haggis/).elems
camelia rakudo e22ac2: OUTPUT«2␤»
moritz r: say lines.grep(/:i haggis/)
camelia rakudo e22ac2: OUTPUT«But mark the Rustic, haggis-fed, Gie her a Haggis␤»
colomon r: say lines.grep(/:i clan/) 20:10
camelia rakudo e22ac2: OUTPUT«␤»
colomon r: say lines.grep(/:i puddin/) 20:11
camelia rakudo e22ac2: OUTPUT«Great chieftain o the puddin'-race!␤»
colomon always forgets the right words, which is why it's nice to have it as stdin 20:11
masak evening, #perl6. 20:34
I just realized something.
timotimo that it's evening?
masak "cargo culting" is a form of positive bias.
moritz "cargo culting" is the most basic form of learning
masak that, too ;) 20:35
moritz newborns just do what they see others do; they don't understand why
masak also, the form of madness that consists of doing the same thing over and expecting different results, is also a form of positive bias.
...maybe.
moritz one day, when trying to brush my daughter's teeth, I thought I could use that "learning by mirroring" to good effect 20:37
I opened my mouth wide and said AAAAAAAAAHHH, and after a while she did too. Succcess!
timotimo masak: so cargo culting is basically like madness :) 20:38
moritz fast-forward a few days: $daugther doesn't want her teeth brushed. I open my mouth wide and say AAAAAAAAAHH. She does the same, and immediately clasps her hand in front of her open mouth. Defeat!
masak :) 20:39
moritz out-smarted by a 2y-old
masak interesting though that she still mirrored you :) 20:40
moritz timotimo: when it comes to software: yes.
masak moritz: I learned a trick yesterday. when feeding a child, don't go "please open your mouth wide so I can put food in it". instead, go "show me what it sounds like when you bite into this piece of food" ... "oh wow, that sounded like a <something hilarious>!"
(repeat N times)
I found that really clever. I also saw it work in practice, really really well. 20:41
moritz masak: :-)
masak I think there's a psychological payoff involved. the feeder deposits some amount of imagination into the mind of the child, in the form of the choice of hilarious thing.
timotimo that sounds like an umbrella! 20:42
masak LOL
timotimo could probably succeed at feeding masak
masak probably.
moritz though of course when a child is old enough to be amused by that kind of stuff, it is probably also old enough to refuse food for good reasons 20:43
masak I was just thinking that. "how long before that scheme stops working?" 20:45
masak finds en.wikipedia.org/wiki/The_Hedgehog_and_the_Fox and thinks "Perl 5 is a hedgehog and Perl 6 is a fox" 21:24
...for some reason.
lizmat caught up on backlog again and calls it a day 21:39
diakopter lizmat: glad you had safe travels; 'nite 21:43
diakopter masak: when you're a nail, everything looks like a hammer 21:43
dalek p: 45b52fd | dwarring++ | examples/rubyish/ (10 files):
rubyish - style, use of '(' ~ ')' constructs, etc
22:27
dalek rl6-roast-data: e5babfd | coke++ | perl6_pass_rates.csv:
today (automated commit)
22:45
timotimo when you're a null everything looks like a Segmentation Fault (core dumped) 22:47
[Coke] thinks he's finally recovered from the lung crud he got post workshop. o/ 22:52
timotimo glad to hear! 22:57