»ö« 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.
grondilu How Perl6 treating decimals as rationals helped me solved a problem: perlmonks.org/?node_id=1004081 00:05
s/solved/solve/ 00:10
felher 'night, #perl6 :) 00:30
sorear night felher 00:31
[Coke] phenny: ask moritz to review rt.perl.org/rt3/Ticket/Display.html?id=59794 03:07
phenny [Coke]: I'll pass that on when moritz is around.
xenoterracide are IO objects cross platform like p5 Path::Class 04:46
xenoterracide wonders about ACCEPTS ... it's a very odd name 06:39
it's meaning seems to be that of which I would expect to be equals
sorear but it's not equality, in general 06:41
it's pattern matching
n: say ?( /foo/.ACCEPTS('foobar') )
p6eval niecza v22-32-gee5dcf1: OUTPUT«True␤»
sorear n: say ?( { *.chars > 4 }.ACCEPTS('foobar') ) 06:42
p6eval niecza v22-32-gee5dcf1: OUTPUT«True␤»
moritz \o 07:43
phenny moritz: 03:07Z <[Coke]> ask moritz to review rt.perl.org/rt3/Ticket/Display.html?id=59794
xenoterracide Found no writable directory into which panda could be installed 07:46
sorear o/ moritz
xenoterracide IO::Path.new(basename => "panda", directory => "/home/xenoterracide/.perl6/2012.10") in block at bootstrap.pl:19 # I just created it with mkdir -p as same user 07:47
sorear: also on earlier ACCEPTS, I guess I was reading the docs wrong... 07:51
moritz r: say &time 07:55
p6eval rakudo a41a48: OUTPUT«Nil␤»
moritz r: say &term:<time>
p6eval rakudo a41a48: OUTPUT«sub term:<time>() { ... }␤»
xenoterracide is there any way to introspect a module to see what it imported? 07:57
sorear r: use Test; say Test::EXPORT::.keys 07:58
p6eval rakudo a41a48: OUTPUT«ALL DEFAULT␤»
sorear r: use Test; say Test::EXPORT::DEFAULT::.keys
p6eval rakudo a41a48: OUTPUT«&plan &pass &ok &nok &is &isnt &is_approx &todo &skip &skip_rest &diag &flunk &isa_ok &dies_ok &lives_ok &eval_dies_ok &eval_lives_ok &is_deeply &done_testing &done␤»
sorear something like that? 07:59
xenoterracide sorear: yeah, oddly enough I was trying to find what test could do, so double thanks
jnthn morning o/ 08:17
moritz \o 08:19
[Coke]: RT #59794 closed, thanks 08:21
sorear o/ 08:23
xenoterracide are there docs on mkdir() can it do mkdir -p? 08:25
FROGGS sad that it doesnt read from env vars, that would be a workaround 08:28
but I dont know if it already can do -p by some switch
tadzik xenoterracide: Shell::Command has mkpath()
xenoterracide tadzik: thanks, I sent you a patch 08:40
tadzik xenoterracide: yeah, looking 08:41
Of course, I'm scared because it touches bootstrap.pl :P 08:42
xenoterracide: I'll set it throughougl... carefully when I'm back home, ok?
bootstrap.pl has a history of breaking in random moments on random platforms and making my cry 08:43
xenoterracide tadzik: no worries... the test case was a root install of perl6, and no ~/.perl6
tadzik: at the very least should probably add the warn message, so at least people can know what directory it's trying 08:44
a recursive mkdir might be better than using Shell::Command :/
tadzik xenoterracide: I see. I think that warn could be a bit more user-fiendly thing though
well, merged into the following die() maybe
xenoterracide: mkpath() is a recursive mkdir, really :) 08:45
xenoterracide yeah could be, this is me being very tired
tadzik github.com/tadzik/perl6-File-Tools...and.pm#L46
xenoterracide tadzik: yeah but does it use an actual shell command? that wouldnt' be very portable
tadzik sure. Thanks for the discovery and the patch :)
xenoterracide++ 08:46
xenoterracide ah
tadzik xenoterracide: nono. Shell::Command exists for the purpose of not running any shell commands
so it's mkdir -p, rm -rf etc reimplemented in Perl
jnthn maybe it shoulda been called Shellless::Command :P
tadzik Sellfish::Command
xenoterracide heh
moritz who's eating shell fish? 08:47
xenoterracide maybe mkdir should just be more DWIM 08:48
jnthn ain't eating 'em...they make him ill
xenoterracide pass 'em
I'll eat 'em
:D 08:49
kresike hello all you happy perl6 peopl 09:07
e
jnthn o/ kresike 09:17
kresike jnthn, o/
tadzik xenoterracide: hm, I don't quite get panda #26 09:18
where did that shebang come from, Rakudo Star?
xenoterracide tadzik: yeah, I'm trying to figure it out actually 09:20
I don't know much about this build chain
seems like it may have created some things using the full path 09:21
tadzik I don't know where that would come from 09:22
xenoterracide hmm
tadzik github.com/tadzik/panda/blob/maste...n/panda#L1 has the good shebang
must be Star doing some tricks
xenoterracide must be
star + notsofakeroot
eq disaster
or somesuch
xenoterracide see's if a rebuild ensuring the build is done in a fakeroot works 09:23
brrt \o perl6 09:39
xenoterracide wonders if this blog post does evil things that are causing my breakage 10:00
hoelz.ro/blog/building-rakudo-perl-...arch-linux
xenoterracide tries removing
hoelzro scrolls up 10:06
phenny hoelzro: 03 Nov 16:02Z <TimToady> tell hoelzro that the eject symbol (in yellow) is in there primarily for people who are colorblind. it used to just switch from green to red at that point. 10:07
hoelzro xenoterracide: sorry, what problems are you seeing?
xenoterracide hoelzro: the short is that this packaging is linking to the wrong absolute paths 10:09
hoelzro xenoterracide: which ones?
xenoterracide iirc pirs and this #! 10:10
zsh: /usr/bin/panda: bad interpreter: /home/xenoterracide/rakudo/pkg/usr/bin/perl6: no such file or directory
hoelzro ooo
interesting...
xenoterracide that's where it's built
but not where it gets installed to
hoelzro I'm guessing that perl6 has a switch to determine where it's supposed to live?
xenoterracide odly perl6 seems to work fine 10:11
moritz you're guessing wrongly
parrot hard-codes the installation path at compilation time
and rakudo relies on that path
hoelzro moritz: so the build process is hardcoding that path in?
xenoterracide then how does one tell parrot to change it
because it's doing evil nasty things that breaks stuff 10:12
basically it's fine that it hard codes it
just have to get it hard coding to the right place 10:13
moritz xenoterracide: in the parrot source dir, perl Configure.pl --prefix=/your/installation/base/path
then make install 10:14
and then configure rakudo with perl Configure.pl --with-parrot=/your/installation/base/path/bin/parrot
+ make install
hoelzro moritz: is there a way to view that hardcoded path?
short of strings?
brrt hoelzro, use parrot_config 10:14
hoelzro brrt: thanks 10:15
brrt parrot_config libdir :-)
xenoterracide moritz: does the --with-parrot actually do something if nqp was built seperate? 10:17
moritz xenoterracide: erm sorry, you have to configure nqp with --with-parrot
xenoterracide: and then tell rakudo where the nqp is
xenoterracide moritz: looks to me like both PKGBUILD's did that 10:18
privatepaste.com/2a9fcd036c actual error 10:19
aur.archlinux.org/packages/nq/nqp/PKGBUILD defines how nqp was built
aur.archlinux.org/packages/ra/rakudo/PKGBUILD how rakudo was built 10:20
looks like it does prefix properly and points parrot and nqp properly
moritz r: class A { submethod BUILD { $.x } }
p6eval rakudo a41a48: OUTPUT«===SORRY!===␤Virtual call $.x may not be used on partially constructed objects␤at /tmp/iZRDfuoD_H:1␤»
moritz xenoterracide: looks like Test::Builder::Plan wasn't updated to a new enough Perl 6 version 10:21
the error message doesn't imply any problem with paths 10:22
xenoterracide it does for me... /home/xenoterracide/rakudo/pkg/usr/lib/parrot/4.8.0/languages/perl6/lib/Pies.pm:98 < should not be looking in my home directroy for anything
moritz xenoterracide: maybe it doesn't (more) 10:23
xenoterracide I just rm-ed pkg
zsh: /usr/bin/panda: bad interpreter: /home/xenoterracide/rakudo/pkg/usr/bin/perl6: no such file or directory 10:24
moritz xenoterracide: the paths for the error messages are frozen at compilation time
ok, it does
xenoterracide idk, I'm going to bed, this can wait until tomorrow for me... but obviously it's pointing things at the wrong directories at compile time. so will have to work on why that is and how to fix 10:26
maybe that config file
dalek rlito: c3dc5b4 | (Flavio S. Glock)++ | t5/01-perlito/26-syntax-namespace.t:
Perlito5 - tests - namespace syntax
10:29
dalek rlito: 91e9e64 | (Flavio S. Glock)++ | t5/01-perlito/26-syntax-namespace.t:
Perlito5 - tests - namespace syntax
10:38
masak g'day, #perl6 11:17
moritz \o masak 11:18
masak r: say { 0 => 1, 1 => 0 }.max(:by(*.value)) 11:20
p6eval rakudo a41a48: OUTPUT«"1" => 0␤»
masak looks like a bug to me.
masak submits rakudobug 11:21
grondilu++ # discoverer
moritz r: say { 0 => 1, 1 => 0 }.pairs.max(:by(*.value))
p6eval rakudo a41a48: OUTPUT«"1" => 0␤»
moritz r: say (0 => 1, 1 => 0).max(:by(*.value))
p6eval rakudo a41a48: OUTPUT«1 => 0␤»
hoelzro I'll have to look at this packaging issue after work.
that's screwed up.
masak r: say max :by(*.value), { 0 => 1, 1 => 0 }
p6eval rakudo a41a48: OUTPUT«("0" => 1, "1" => 0).hash␤»
masak heh. 11:21
r: say max :by(*.value), { 0 => 1, 1 => 0 }.list 11:22
p6eval rakudo a41a48: OUTPUT«"0" => 1␤»
masak I think a number of method forms may simply be missing their :by parameter.
moritz r: say List.can('max')
p6eval rakudo a41a48: OUTPUT«max␤»
moritz r: say List.can('max').signature.perl
p6eval rakudo a41a48: OUTPUT«No such method 'signature' for invocant of type 'Parcel'␤ in block at /tmp/1M0W55f2Am:1␤␤»
moritz r: say List.can('max')[0].signature.perl
p6eval rakudo a41a48: OUTPUT«:(: $by = { ... }, Mu *%_)␤»
moritz r: say Parcel.can('max')[0].signature.perl
p6eval rakudo a41a48: OUTPUT«:(: $by = { ... }, Mu *%_)␤»
moritz seems it should work 11:23
masak weird. 11:24
moritz sub max(*@args, :&by = &infix:<cmp>) { @args.max(&by) } 11:25
that's the definition of max
masak oh!
moritz r: say (1, 2, 3, 4).max(:by(-*))
p6eval rakudo a41a48: OUTPUT«4␤»
masak r: say (1, 2, 3, 4).max(-*)
p6eval rakudo a41a48: OUTPUT«1␤»
masak there we go.
moritz oh right 11:26
12:22 < moritz> r: say Parcel.can('max')[0].signature.perl
12:22 < p6eval> rakudo a41a48: OUTPUT«:(: $by = { ... }, Mu *)␤»
masak that positional parameter made more sense when we did automatic mapping from named arguments to positional parameters.
moritz the : is the invocant marker
not a named parameter
masak I'd suggest changing even the method form to have a named parameter. 11:29
to mirror the sub form. 11:30
moritz I kinda think we've been back and forth on this issue
masak probably. 11:31
bbkr_ star: use NativeCall; sub fork() returns Int is native("libc") {*}; fork() # any idea why it cannot find libc? 11:44
p6eval star 2012.10: OUTPUT«Cannot locate native library 'libc.so'␤ in method postcircumfix:<( )> at /home/p6eval/star/lib/parrot/4.6.0/languages/perl6/lib/NativeCall.pm6:122␤ in at src/gen/BOOTSTRAP.pm:827␤ in any at src/gen/BOOTSTRAP.pm:811␤ in block at /tmp/wupoAPBIeq:1␤␤»
tadzik star: use NativeCall; sub fork() returns Int is native("libc6") {*}; fork() 11:46
p6eval star 2012.10: OUTPUT«Cannot locate native library 'libc6.so'␤ in method postcircumfix:<( )> at /home/p6eval/star/lib/parrot/4.6.0/languages/perl6/lib/NativeCall.pm6:122␤ in at src/gen/BOOTSTRAP.pm:827␤ in any at src/gen/BOOTSTRAP.pm:811␤ in block at /tmp/x0k0f_vSxx:1␤␤»…
bbkr_ when I provide full path /lib/i386-linux-gnu/libc.so.6 on ubuntu 12.04 it works 11:48
but I want to avoid os-specific code
star: use NativeCall; sub fork() returns Int is native("libc.so.6") {*}; fork() 11:49
p6eval star 2012.10: ( no output )
bbkr_ \o/
moritz str: use NativeCall; sub fork() returns Int is native {*}; fork 11:51
star: use NativeCall; sub fork() returns Int is native {*}; fork
p6eval star 2012.10: ( no output )
moritz bbkr_: if you don't provide an argument to the 'is native' trait, it looks only inside the current executable. At least on linux that finds system calls too 11:52
bbkr_ moritz: thanks. looks like example is outdated github.com/jnthn/zavolaj/blob/mast...ix-fork.p6 11:53
star: use NativeCall; sub fork() returns Int is native() {*}; fork
p6eval star 2012.10: OUTPUT«===SORRY!===␤None of the parametric role variants for 'Native' matched the arguments supplied.␤Cannot call ''; none of these signatures match:␤:(Mu , Routine $r, Str $libname)␤␤at /tmp/S1jr2Ubfmb:1␤»
bbkr_ reported in github.com/jnthn/zavolaj/issues/17 12:06
jnthn yes, don't do is native() :) 12:08
jnthn I guess if it's gonna be a common mistake we can make it work liek is native though... 12:10
masak depends if 'is native()' is useful as it is. 12:11
jnthn Well, today it just gives an error :) 12:12
arnsholt bbkr_: If you have any ideas on how to work around the $libname.so.$version thing so that just is native($libname) works properly, I'd be happy to hear about it =) 12:22
bbkr_ arnsholt: I have no idea :( 12:23
moritz it used to work on linux :/
arnsholt It did? 12:24
moritz yes 12:27
arnsholt moritz: That's odd, 'cause I don't think it should have 12:32
dlopen("c") and dlopen("libc") both return NULL on my Linux machine 12:33
It has to be dlopen("libc.so.6") to get a handle to the lib
moritz arnsholt: ah, sorry, I'm not talkinga about 'c' or 'libc', but about other libs
like
'libmysql'
arnsholt Right, right. That should still work 12:38
The reason this is annoying me is actually tests =/
arnsholt Hmm. Does anyone know how ld know that "ld -lc" should resolve -lc to libc.so.6? 12:41
FROGGS arnsholt: thats os dependent 12:44
arnsholt True. On Linux, I should add
FROGGS there is basically a regex like /[\/\\]lib\Q$lib\E[\-\d\.]*\.($dlext[\d\.]*|so|dll)$/ 12:46
where $lib is "c" and $dlext comes from $Config
(perl5 that is)
# takes from Alien::SDL that does it job well 12:47
arnsholt No, ld has to do something more than that. Your regex wouldn't find libc.so.6 for -lc
FROGGS I guess there is just a pattern and they take the first lib that matches it 12:48
arnsholt To the Open-Source-mobile! 12:50
arnsholt downloads the binutils source
tadzik Bitman and Bitmobile
arnsholt ^_^ 12:56
FROGGS arnsholt: if you find something, please tell me
arnsholt The GNU FTP server is really slow, so I'm still downloading
Woodi here is some docs on "linker scripts" www.sourceware.org/binutils/docs-2....C_Contents :) 13:06
Woodi maybe -rpath from libtool can help ? 13:51
leont_ On some modern linuxes, libc can no longer be assumed to be in /lib directly, due to multi-arch 13:53
There's a one-liner in perl 5's Configure to extract the locations out of gcc 13:54
FROGGS Woodi: -rpath tells the linker to use a specific dir to search for a lib during runtime 13:55
our problem right know is to know what library is the right one if we search for example for libc
there might be several 13:56
Woodi we know right lib
FROGGS do we? 13:57
Woodi linker finds linker script and it is ascii file countaing what to look for
leont_ Somehow I can't find it in the 24000 line shell script
Woodi strace perl6 nativecallTest.pl gives:
open("/usr/lib/i386-linux-gnu/libncursesw.so", O_RDONLY) = 3 13:58
read(3, "INPUT(libncursesw.so.5 -ltinfo)\n", 512) = 32
FROGGS Woodi: what if you need to preload the library because its noth in rpath? you need to know the full path before actually loading the lib
Woodi just linking stops and it should follow linker script instructions 13:59
FROGGS Woodi: do you have any experience with openbsd for example?
Woodi little :) I have fails on linux now 14:00
why ?
I do not saying rpath was right path...
FROGGS the problem I have there is that I an Alien module (perl5), that should be installed as non-root 14:01
this user has no rights to update the ld.hints, so the dir to where the libs are installed are not in the known paths
so no linker will find it
then there is LD_RUN_PATH, if you set in manually right before running your perl script it works 14:02
FROGGS but trying to set these env vars when the script is running is to late of course 14:02
but to do all these thing you must know what libs to load _before_ actually loading them 14:03
FROGGS I guess arnsholt have similar problems with NativeCall; sometimes you need to know the full path to the lib to guide the linker a bit 14:04
leont_: around line 1350 it looks like it does the same try&error like others do 14:06
Woodi NativeCall on linux have probably other problem. it try to link library in traditional Unix way but things goes modern: now linker finds ascii "script" whith info how to continue looking for needed lib 14:10
Woodi hmm, now probably lib version is called ABI and using macros from gnu/lib-names.h is required... sourceware-org.1504.n7.nabble.com/U...15032.html 14:39
and this: www.parrot.org/scratch/general-hand...hed-dlopen 14:43
[Coke] commented on that to point that user at github issues instead of trac. 14:56
Woodi another issue with NativeCall: Native call expected object with CPointer representation, but got something else 14:58
Woodi but when I put that parameter in other place of signature it complains about CArray 14:59
and when I define pure v6 sub in library implementing NC with CArrar[OpaquePointer] param in lexical scope of and pass it to native it looks working. 15:03
moritz the actual error message and the code would be helpful 15:04
Woodi ok
skids r: my @e; @e.push(1,(gather do { take 2; @e.push("OHA1"); take 3 } ),4); @e.gist.say; 15:07
p6eval rakudo a41a48: OUTPUT«1 2 3 4␤»
skids r: my @e; @e.push(1,(sink gather do { take 2; @e.push("OHA1"); take 3 } ),4); @e.gist.say; 15:07
p6eval rakudo a41a48: OUTPUT«OHA1 1 4␤»
isBEKaml hello, #perl6! 15:08
skids o/
PerlJam greetings!
masak isBEKaml! \o/
isBEKaml \o skids, PerlJam
masak: what do we have today? :) 15:09
moritz: Can I invite you to look at the commit 1ef7dd in roast? :) 15:10
masak: I added P6 code to LZW compression on RC. (direct translation of p5 code, though) 15:11
masak isBEKaml: ok, nice.
isBEKaml I plan to add some more until I grow familiar with p6 syntax. 15:12
masak sounds excellent.
isBEKaml RC's a great way to get familiar with languages.
masak the "inner sub" pattern is one I use a whole lot nowadays, and find very convenient.
I'm still not used to the "lexical class" pattern, but I imagine that might be nice in many situations, too. 15:13
r: class Safe { has $!key; my class Key {}; method lock { return Key.new }; method unlock($key) { say "unlocked" if $!key === $key } }; given Safe.new { my $key = .lock; .unlock($key) } 15:15
p6eval rakudo a41a48: ( no output )
masak hmmm
masak expected that to print "unlocked" 15:16
skids masak: I actually managed to use a lexical class usefully, though I haven't committed that code quite yet. It was to runtime choose between different native libs, or choose the pure perl6 implementation. 15:17
PerlJam Has this been mentioned here yet? www.kickstarter.com/projects/101402...sts/348855
masak skids: oh, nice. 15:19
Woodi masak: I was thinking about C problem with passing argument and returning error value (into|from) deep func call chain and desire to have exceptions... now have *impression* that modularity can resolve problem without exceptions... 15:20
moritz but why would you? you have exceptions allright :-)
Woodi moritz: exceptions are costly thing... 15:21
masak yeah, but they are exceptional.
Woodi at least in cpp :)
masak do not prematurely optimize. :)
Woodi that slogan is abused a lot me thing :) 15:21
isBEKaml I never heard of that argument wrt to C++ (about exceptions being costly).
Stroustrup would have failed himself if that were the case. :) 15:22
FROGGS "Unsupported use of - as character range; in Perl 6 please use .. for range, for explicit - in character class...." I love Perl 6's error msgs, next step would it to autocorrect my code ;o)
masak Woodi: it's feasible that you have a case where reinventing an exception mechanism in C++ is time well spent. I have insufficient data to tell. but my hunch is that it's not time well spent. 15:23
Woodi exceptions have big "infrastructure" comparing to just function calls
masak there's always a tradeoff between programming time and runtime. 15:24
skids r: class Safe { has $!key is rw; my class Key {}; method lock { return $!key = $_; }; method unlock($key) { say "unlocked" if $!key === $key } }; given Safe.new { my $key = .lock; .unlock($key) } # helps if you actually assign to $!key 15:25
p6eval rakudo a41a48: OUTPUT«unlocked␤»
FROGGS does somebody know if there is an RT ticket about the version.t spectest fail? I'ld like to see if there is a discussion about that, and I'm too stupid to use the search 15:26
because I've got a patch but I dont know how off the road it is
masak skids: ah, silly me. skids++ 15:27
r: class Safe { has (my class Key {}) $!key; method lock { return $!key = $_; }; method unlock($key) { say "unlocked" if $!key === $key } }; given Safe.new { my $key = .lock; .unlock($key) } 15:28
p6eval rakudo a41a48: OUTPUT«===SORRY!===␤Invalid typename in parameter declaration at line 2, near " class Key"␤»
masak oh, ok. :)
r: class Safe { my class Key {}; has Key $!key; method lock { return $!key = $_; }; method unlock($key) { say "unlocked" if $!key === $key } }; given Safe.new { my $key = .lock; .unlock($key) }
p6eval rakudo a41a48: OUTPUT«Type check failed in assignment to '$!key'; expected 'Key' but got 'Any'␤ in method lock at /tmp/ScD6_vkHh8:1␤ in block at /tmp/ScD6_vkHh8:1␤␤»
masak r: class Safe { my class Key {}; has Key $!key; method lock { return $!key = Key.new; }; method unlock($key) { say "unlocked" if $!key === $key } }; given Safe.new { my $key = .lock; .unlock($key) }
p6eval rakudo a41a48: OUTPUT«unlocked␤»
masak \o/
jnthn FROGGS: version.t fails for me but I didn't ever get to the bottom of why 15:30
FROGGS: If you have a patch that's awesome :)
Well, hopefully :P
FROGGS gist.github.com/4088242 15:32
basically I would just add the range of the greek letters there
skids r: class Safe { my class Key {}; method lock { Key.new } }; my $k1 = Safe.new.lock; class Safe2 { my class Key {}; method lock { Key.new } }; my $k2 = Safe2.new.lock; say $k1.WHAT, $k2.WHAT, so $k1.WHAT === $k2.WHAT 15:33
p6eval rakudo a41a48: OUTPUT«Key()Key()True␤»
skids r: class Safe { my class Key {}; method lock { Key.new } }; my $k1 = Safe.new.lock; class Key { }; my $k2 = Key.new; say $k1.WHAT, $k2.WHAT, so $k1.WHAT === $k2.WHAT 15:36
p6eval rakudo a41a48: OUTPUT«Key()Key()True␤»
masak heh. 15:37
next step is to try to use one safe's key to open up another safe.
either two safes of the same class or of different classes.
my bet is neither will work. 15:38
skids Should $k1.WHAT be "Safe::Key()"? 15:40
masak no, I don't think so.
package names aren't absolute in that way.
isBEKaml is there a way to get at the fully qualified type name of a variable? 15:41
masak and the :: relation is usually reserved for our-scoped stuff.
PerlJam "fully qualified type name"? 15:42
FROGGS jnthn: what do you think? gist.github.com/4088242
isBEKaml PerlJam: I think you know what I mean. :) A::B::C::D where D is the innermost class.
my $d = A::B::C::D.new; $d.<insert_your_invocator_here>.say returns "A::B::C::D"; 15:43
jnthn .u 3b1 15:44
phenny U+3B10 CJK UNIFIED IDEOGRAPH-3B10 (㬐)
FROGGS hmpf
masak r: class A::B::C::D {}; say A::B::C::D.new.WHAT
p6eval rakudo a41a48: OUTPUT«A::B::C::D()␤»
FROGGS okay, looks like I got my answer
PerlJam isBEKaml: what masak said :) 15:45
jnthn FROGGS: I'm confused what the patch does
What are the characters you've made it match that it didn't before?
isBEKaml okay, what about the case where it's my scoped? I can't directly invoke A::B::C::D.new, right?
masak right.
FROGGS well, ord of that alpha is 3b1 on my box, so I would add the urf8 range of the greek letters
so they will be recognized
isBEKaml but I can do the same within the class itself like masak/skids did. In that case, it's all relative, so I'd just see D(). hmmm 15:46
FROGGS r: "\x3b1".say
p6eval rakudo a41a48: OUTPUT«α␤»
FROGGS r: say so "\x3b1" ~~ /<alpha>/ 15:50
p6eval rakudo a41a48: OUTPUT«True␤»
FROGGS interesting, thats False on my box
r: say so "α" ~~ /<alpha>/ # False to on my box 15:52
p6eval rakudo a41a48: OUTPUT«True␤»
FROGGS r: say Version.new("1α1") cmp Version.new("1β1") 15:54
p6eval rakudo a41a48: OUTPUT«Increase␤»
FROGGS damn it, why does it work on feather?
jnthn FROGGS: Does your Parrot have ICU? 15:55
FROGGS ohh no, installed libicu right now and just recompiled perl6 15:55
but it is not the best thing that it does need some non-std libs... 15:56
jnthn Ok 15:56
jnthn Then we shoudl mark version.t as # icu in spectest.data 15:57
FROGGS then some magic will skip this test? 15:58
jnthn Yes
Lots of examples in spectest.data :)
FROGGS sounds good
jnthn ok, decommute time
bbl 15:59
FROGGS moritz: can you please merge&close this pull request? github.com/rakudo/rakudo/pull/76 16:22
kresike bye folks 16:23
FROGGS moritz: btw, would be handy to have commit bit for making release 16:23
masak FROGGS: merged. 16:24
dalek kudo/nom: 537e86c | (Cosimo Streppone)++ | t/spectest.data:
t/spec/S02-types/version.t depends on ICU

There's some strings containing greek letters in these tests that require ICU to be sorted correctly.
kudo/nom: 0066de8 | (Carl Mäsak)++ | t/spectest.data:
Merge pull request #76 from cosimo/nom

t/spec/S02-types/version.t depends on ICU
FROGGS thanks masak 16:25
masak yeech, a merge commit. :/
FROGGS: I don't know if we can hand out commit bits to the Rakudo repo without a whatsit TLA.
FROGGS (of course I made my pull request and seen afterwards that someone did the same already)
>.<
a what?
masak CLA. 16:27
FROGGS what is tla? three letter abbreviation?
mehr
masak www.perlfoundation.org/contributor_..._agreement
FROGGS meh
ohh wow, drawing signs on paper to send them to a walnut 16:28
;o)
FROGGS I guess fork will do 16:30
jnthn back 16:37
masak: You don't have to panic over merge commits. :P 16:38
masak aaaaargh merge commits 16:39
TimToady "Power tools, power tools / It's my favorite thing to use" 16:41
[Coke] I 16:43
TimToady 1 16:44
masak I watched a Git presentation today where the speaker compared Git to an old-skool shaving knife (as opposed to the safer electric shaver), because with Git "you can really shoot yourself in the foot".
I'm not sure I could mix my metaphors that much even if I tried. :)
tadzik Occam's Pistol? 16:45
masak anyway, the point was that whereas you could shoot yourself in the foot, it was also possible to get a closer shave.
TimToady you can also cut the rope
skids Anyone properly using a straightedge razor cannot shoot themselves in the foot, because they would not be using shaving cream in spray cans. 16:49
skids Besides with git it's more like it is easy to tie your shoelaces together, since it is hard to actually lose content. 16:52
TimToady gah, I've seen lose misspelled so many times that I had to stare at yours for five seconds before deciding it was right :/ 16:55
tadzik loosely spelled? :) 16:56
[Coke] MAHSPERL LERS?!? 17:06
really more fun with longer translations. ah well. 17:07
dalek volaj: 9ace1ee | jnthn++ | examples/unix-fork.p6:
Fix fork example; bbkr++. Closes #17.
17:15
TimToady revised for style: rosettacode.org/wiki/LZW_compression#Perl_6 17:38
masak (turning comments into type annotations)++ 17:40
TimToady isBEKaml++ for the initial translation 17:41
though technically it is wrong, insofar as it's assuming Latin-1 strings 17:48
or Buf, but if so, it's mis-typed 17:49
and neither implementations Buf type is really up to this task yet, due to various missing Stringy ops 17:53
*tion's 17:54
(everyone who's been helping add RC entries)++ 17:55
TimToady looks cross-eyed at that English syntax, wondering if other verbs can work that way, or whether "helping" is special 17:57
"making" maybe 17:59
"help him add entries" vs "make him add entries", with dropping of the indirect object perhaps 18:00
geekosaur mmm, causative
TimToady but *"
*"cause him add entries" 18:01
has to use the "to add" form of infinitive
geekosaur yeh, I was thinking how 'working to ...' doesn't allow dropping the 'to'
TimToady NB: * means 'ungrammatical' to a linguist
huf doesnt it also mean projected word roots? 18:05
or is that the same sense?
TimToady it's overloaded, sure
huf err, projected as in "how the word would've been in an unknown but suspected ancient common language"
ah
TimToady but the form I'm talking about is usually fairly obvious in talking about utterances, not roots 18:06
the examples are often quoted, or in a table of utterances
the ungrammatical ones marked with *, and the questionable ones with *?
googling for "him stop" only finds 'make him stop' so far 18:07
diakopter "caught helping" 18:08
"catch helping"
(or is that a gerund) 18:09
TimToady 'caught helping him stop' just has 'helping him stop' as a subordinate clause
diakopter oh, caught stealing
what I meant to type twice
"Let's catch him stealing the statue" 18:10
TimToady but that is not an example of something that let's you drop 'to'
*lets
diakopter oh
TimToady so far we've only found 'help' and 'make' 18:11
.oO(memorizing arbitrary lists...)
in the gerund form, the gerund is probably functioning primarily as a an adjective 18:13
er, adverb
"take him how?" "golfing" "shooting" etc
though you can't actually ask that in English
you'd probably say "take him where?" 18:14
but "where" is still a fundamentally adverbial notion
diakopter of the special verbs that start bare infinitives feel, hear, help, let, make, see, and watch it seems only make and help allow the 'to' in there also 18:17
doy 'make' doesn't, does it? 18:21
diakopter it's comparatively archaic, but yeah 18:22
hoelzro ok, I think I found the issue with the build stuff that we were talking about earlier
diakopter in the passive voice, they all require the 'to' 18:23
hoelzro github.com/rakudo/star/blob/master...ile.in#L82
diakopter (of the ones that make sense in passive)
hoelzro Should DESTDIR really come before PERL6_INSTALL?
DESTDIR ends up getting hardcoded into the shebang line ( 18:24
=(
jnthn TimToady: Can you give me some hints on how $*HIGHEXPECT is built/maintained? 18:27
jnthn TimToady: Specifically is it in some way tied to doing LTM, and it records the dba's encountered along the various fate paths? 18:34
dalek kudo/nom: e215ee4 | jnthn++ | docs/deprecations:
Deprecate current &foo semantics.
18:40
xenoterracide hoelzro: so I'm guessing you've had no luck in finding solutions? 19:56
hoelzro xenoterracide: well, I haven't worked on the solution aspect, but I think I found the problem 19:57
xenoterracide that's at least half way to the solution. maybe 19:57
hoelzro yeah 19:58
it *should* be as simple as removing DESTDIR from a line or two in tools/build/Makefile.in
xenoterracide hey that'd be cool
xenoterracide why is it whenever I touch software it breaks... 19:59
oh well... worst case is I'll probably have time/tuits to work on it this weekend 20:00
hoelzro hey, you found a great bug =)
xenoterracide right
hoelzro from what I've seen so far, Rakudo Star and packaging systems don't really play nice
which is why I wrote that article
masak url?
xenoterracide hoelzro: my approval
hoelzro masak: hoelz.ro/blog/building-rakudo-perl-...arch-linux 20:01
masak ah, nice.
xenoterracide but i'd say it's not just packaging systems... it's moving the thing after build time
masak I believe it comes down to a Parrot limitation or two. 20:02
hoelzro xenoterracide: well, from what I've seen, Rakudo Star's packaging process could be improved
xenoterracide so is panda the future? or is it just a stop gap for cpan6? and is anyone actualy still working on that?
hoelzro line 84 in tools/build/Makefile.in should not be prefixing DESTDIR to the perl6 path 20:03
xenoterracide right
hoelzro or the bin builder program should know about that
masak xenoterracide: no-one knows what the future of CPAN-like solutions for Perl 6 holds. all attempts I've seen at solving the issues in a top-down manner have either been direct failures, or successful solutions to some other problem. 20:04
xenoterracide: so the idea seems to be to grow in pace with the issues. panda and modules.perl6.org just happens to be the latest stepping-stone. 20:05
PerlJam wonders what cpan6.org is then 20:06
masak PerlJam: I consider it a massive project, mostly successful, solving a different problem.
xenoterracide what problem does it solve? 20:07
masak storing family photos, for example.
PerlJam masak: now I have to wonder what metric you're using for "success" :)
xenoterracide also wants to slap mark for solving any problem with XML
masak see the 47-page spec somewhere on that page.
PerlJam: mostly "the code exists, and compiles".
xenoterracide I had a problem.. I solved it with XML... now I have 2 problems
doy "The first release of the CPAN6/Pause6 modules is planned for April 2010." 20:08
xenoterracide feels the same about regexen
masak doy: hm. I may be wrong about it existing, then.
PerlJam doy: yesh, no plan survives contact with the enemy :)
xenoterracide seems like a case of not enough iterative development too much planning 20:09
s/planning/waterfall
masak well, I'm glad *someone* went that route, so we have a concrete data point of what happens then.
PerlJam masak: indeed.
masak in particular, I don't see any intersection between cpan6 and S11. 20:10
which I would... kind of expect in a Perl 6 CPAN-alike.
xenoterracide I wonder if this hardcoding path problem is only affecting pandoa 20:17
panda*
seemed to be
PerlJam
.oO( pandora would have a been a great name for some perl 6 thing ;)
xenoterracide still could be... 20:18
xenoterracide renames cpan to pandor
pandora*
masak PerlJam: still not to late to open that box, so to speak. 20:19
r: class Pandora::Box { method open { say "OH NO WHAT HAVE YOU DONE" } }; given Pandora::Box.new { #`( what, you thought I would open the box? sheesh. ) } 20:21
p6eval rakudo e215ee: OUTPUT«===SORRY!===␤Method 'balanced' not found for invocant of class 'NQPMu'␤»
PerlJam heh
masak innerestin'
PerlJam don't tempt Fate! ;)
masak seems to find me rakudobugs :P
r: #`( is it these comments that have bitrotted? ) 20:22
p6eval rakudo e215ee: OUTPUT«===SORRY!===␤Method 'balanced' not found for invocant of class 'NQPMu'␤»
masak seems so.
r: #`()
p6eval rakudo e215ee: OUTPUT«===SORRY!===␤Method 'balanced' not found for invocant of class 'NQPMu'␤»
masak submits rakudobug
std: #`()
[Coke] I would posit that rakudo star isn't meant to be packaged, it IS a package, and that if you wanted to package those things up, you could create a package for it.
p6eval std 04216b1: OUTPUT«ok 00:00 40m␤»
geekosaur std: #`() my $x = 1; 20:23
p6eval std 04216b1: OUTPUT«ok 00:00 42m␤»
geekosaur jes checkin...
[Coke] and, from previous conversations with allison, you would probably want a package for parrot, for nqp, for rakudo, for each of the modules...
masak [Coke]: sounds sane to me. 20:23
[Coke] whereas star is a "oh, heres a bundle of stuff we thought you might like."
masak ideally, a Star distribution could be expressed as an empty package with some dependencies on a Rakudo compiler and some Perl 6 modules, each of them its own package. 20:25
Woodi but installing nqp and Rakudo separately still puts everything into parrot/some/lib/dir ? 20:26
jnthn If those have bitrotted, it means we aren't testing them.
Which in turn means it's hardly surprising they broke.
masak it sounds unlikely that #`() wouldn't have any tests, but I guess stranger things have happened. 20:26
jnthn masak: Well, when I redid all the quote stuff, I didn't regress on any spectests. 20:27
masak *nod* 20:28
jnthn++
jnthn r: #`[foo]
p6eval rakudo e215ee: OUTPUT«===SORRY!===␤Method 'balanced' not found for invocant of class 'NQPMu'␤»
jnthn hm 20:29
[Coke] woodi; that sounds like the current state of affairs, yes. 20:30
;(not everything, but some libraries, sure.)
jnthn r: say Q { foo } 20:32
p6eval rakudo e215ee: OUTPUT« foo ␤»
jnthn Odd, that uses exactly the same construct...
PerlJam yeah, but that one doesn't have an NQPMu and the comment does :) 20:33
jnthn PerlJam: Yes. That's what doesn't make sense
Both are doing <quibble(%*LANG<Q>)> 20:34
[Coke] pointer to code?
jnthn Grammar.pm:375ish
r: say 1 + #`( foo ) 2 20:37
p6eval rakudo e215ee: OUTPUT«3␤»
jnthn Aha...
masak wat 20:38
jnthn rules. sometimes they don't...
masak :P
jnthn Spot the bug: 20:39
rule statementlist {
:my %*LANG := self.shallow_copy(pir::find_dynamic_lex__Ps('%*LANG'));
masak finds $*LANG in the current scope? 20:40
jnthn Nope
masak dang :)
[Coke] I don't see any tests for #'
jnthn If that was the issue nothing would work :P
masak [Coke]: #`
[Coke] whoops, it's #`, rechecking. 20:41
PerlJam [Coke]: it's #`
S02-lexical-conventions/comments.t
jnthn So if we have tests for this, the issue is we don't have one that covers it first thing in a block, or anywhere else a statementlist happens. 20:41
Got a fix; spectesting justin case.
masak jnthn: you never said what le bug was! 20:42
interested parties wanna know.
jnthn Oh, I was planning to run the guessing game until I commit the patch :P 20:43
masak well, we already know it has something to do with "first in a statement". that should narrow it down. 20:44
come on, #perl6, think! :)
PerlJam [Coke]: were you going to make a test for this? 20:46
[Coke] PerlJam: at $DAYJOB right now, but will be happy to off the ticket once jnthn++'s done. 20:47
(over the weekend)
jnthn Time's up! 20:48
dalek kudo/nom: 8959c8b | jnthn++ | src/Perl6/Grammar.pm:
Fix #`foo and friends at start of statementlist.

This makes sure we don't call <.ws> before we've populated %*LANG.
PerlJam jnthn: argh! 20:48
masak d'oh!
I thought we changed that behavior with rules... 20:49
did I just dream that?
jnthn Not in NQP and Rakudo yet.
masak oh!
jnthn Yes, the spec changed.
masak .oO( early days yet, it's only 2012... )
jnthn The spec changed in 2012 :P
masak that's what I mean. :)
sorear o/ 20:50
masak sorear! \o/
jnthn I think pmichaud++ has plans to work on it, so I'm leaving it for now.
dalek ast: 3d2fe5b | duff++ | S02-lexical-conventions/comments.t:
Simple test for #`() comment at start of statementlist
20:51
nwc10 "The spec changed in 2012" - "this year"? "this week" is so last year? :-(
[Coke] PerlJam: can you add a reference to RT #115762 ? 20:52
jnthn nwc10: I'm not sure exactly when in 2012 the chance I was talking about happened 20:53
nwc10 ah OK. I'll go back to sleep :-)
dalek rl6-roast-data: 05b83a5 | coke++ | / (4 files):
today (automated commit)
jnthn *chang
dalek ast: 7b08120 | duff++ | S02-lexical-conventions/comments.t:
Add reference to RT #115762
20:55
jnthn The test added recently in S12-methods/private.t seems wrong in some way.
(some throws_like issue)
jnthn wtf, it's almost 10pm and I didn't dinner... 20:56
jnthn goes to nom something 20:57
nwc10 you're turning into ilmari?
nwc10 20:57 * jnthn goes to nom something 20:58
20:57 < nwc10> you're turning into ilmari?
oops
sorear what's ilmari? 21:10
masak some mythical creature from the Perl 5 world who likes late snacks, I guess. 21:11
[Coke] *snrk* 21:13
nwc10 sorear: the current london.pm pub minion, who fails to realise that he's not yet had lunch. 21:13
masak who needs lunch when one has a pub! :D 21:14
sorear oh right
I think I met him in frankfurt
nwc10 quite possible
it's sort of an in joke on #london.pm - has ilmari had lunch yet?
but, today: 14:16 * ilmari realises he didn't have breakfast and is gettign quite light-headed 21:15
and that sort of stomach->brain signalling failure is not atypical.
jnthn I suspect mine is a case of having eaten small lunches for the last week, then having a huge one today. 21:29
[Coke] wonders if anyone else here has seen the "HUUUUUUUGE" car ads from the states.
. o O (it's ruined that word for me, I always hear it in the car guy's voice) 21:30
masak [Coke]: who, Steve Ballmer? :P 21:32
jnthn [Coke]: No, but one time I was in the US, I kept hearing this "I like...big..TRUCKS and I can not lie!" ads on the radio... 21:33
jnthn One of those ads that no matter how much you hate, etches itself into your brane... 21:33
masak [Coke]: somehow I found the guy on YouTube and listened to him saying that word for three minutes. weird. :) 21:34
doy you mean like youtu.be/KMU0tzLwhbE 21:38
masak :)
[Coke] masak: www.youtube.com/watch?v=DXRaboSo70A 22:20
(I bought a car from one of his dealerships in NYS)
masak [Coke]: this was the one I found, too. 22:21
[Coke] masak; though I like doy++'s better. :) 22:23
masak :)
masak 'night, #perl6 23:19
sorear night masak 23:25